Mono Ships ASP.NET server 407
Miguel de Icaza writes "We have just released the new version of Mono the new version includes a working version of ASP.NET. The release includes a sample web server that "hosts" the ASP.NET runtime (it can be hosted anywhere, for instance in Apache, with mod_haydn). The web features of ASP.NET would not be very useful without the support of a backing database. The new version of Mono includes database providers for Oracle, MS SQL, Sybase, ODBC, OleDB, Gnome Data Access, SqLite, MySQL and of course, Postgres. The C# compiler is now 37% faster due to some nice optimizations on the JIT engine and in our class libraries. You can use it to develop GUI applications using Gtk#. Screenshots for mPhoto and the GUI debugger (which can debug both JITed apps and native applications). "
/home/linuxuser$ mint myapp.exe (Score:5, Insightful)
Re:That's nice (Score:4, Insightful)
All signs point to yes.
Yay Mono team (Score:2, Insightful)
Bravo! (Score:2, Insightful)
Dangerous Because of Microsoft Patent Claims Trap (Score:5, Insightful)
Although there is prior art examples of individual technologies such as the JVM etc, Microsoft patents such as the one mentioned, define and claim the interoperation of the components, in such a way that any re-implementations will be sure to be covered by the patents. This remains true even for the Microsoft specs submited to standard
In comparison, Sun has granted the Apache and all open source developers FULL access to the specs, test kits and granted the full rights to develop competing products under the JSPA [apache.org] . Sun has also fully pened up the Java development standards process under the new Java Community Process (JCP) [jcp.org]. Even to the point of granting full open source re-implentations of J2EE such as JBoss [theregister.co.uk]...
There those that claim that .NET is open to re-implementation, but until Microsoft make a simliar public legal declaration to Sun's JSPA, any .NET reimplementation represents a pending legal mindfield.
Re:That's nice (Score:5, Insightful)
Just like Microsoft is outspending the Apache Foundation?
Sun/IBM/BEA/Oracle/Apache.. Microsoft may well pull it off, but it's hardly a foregone conclusion.
COM, CORBA, J2EE, .NET... (Score:4, Insightful)
Microsoft isn't really good at explaining itself in a rational manner because Bill has his head up his ass, and will not let his technical team talk. Instead his marketing team is in charge of explaining to the world what they do. As a result, .NET to me is something as low-level and small as a binary format specification (similar to COM objects), and as high-level and strategic as 'the end of non-distributed computing, and the emergance of <ooooh>Web Services</ooooh>'. Something that is so broad in breadth is not a clear definition in my books.
Is there anyone out there that knows why .NET should supercede COM or CORBA? Why the functionality of Web Services isn't merely provided as an implementation in COM model?
COM is a beautiful specification and model (so is CORBA - and the two are almost identical in fact)... they are compact enough to actually be usable in kernel mode (WMI providers in Windows are COM interfaces). So what is our eternal ass rash that makes us want to get the better suped up version of the same old shit?
I don't know about other programmers, and how they feel of all of this, but a new standard evolving every 5 years is way to much for me. And as such, I have yet to be convinced I should start learning anything in .NET. What have you, comrades, to say about this? Have you started using .NET, and have seen fundamental differences in principle that make obsolescence for COM a MUST?
On a side note, kudos to Mono for doing this work.
Re:What, no COM support? (Score:4, Insightful)
Hmmm... Have you used COM before?
STDAPI CoCreateInstance( REFCLSID rclsid, //Class identifier (CLSID) of the object
LPUNKNOWN pUnkOuter, //Pointer to controlling IUnknown
DWORD dwClsContext, //Context for running executable code
REFIID riid, //Reference to the identifier of the interface
LPVOID * ppv //Address of output variable that receives
);
Can you tell me where you see the registry in there? Even malloc is shielded behind an IMalloc interface for crying out loud. The implementation of the runtime happens to use the registry, but that is COMPLETELY hidden to the actual spec of what COM is.
Re:Bravo! (Score:2, Insightful)
I hope for Miguel and the rest that Mono works out nicely, but imo it's just a workaround, and not a solution, to the evil empire (if ya can't beat em, don't join them, just hit harder
Re:/home/linuxuser$ mint myapp.exe (Score:2, Insightful)
Re:Amazing! (Score:3, Insightful)
I don't think this project should be considered a counter attack. It should be considered an advancement in open source and nothing more. Just my opinion
Re:same problem exists with Sun (Score:4, Insightful)
IANAL, but in the case of Sun making these statements regarding open source Java and J2EE implementations, I believe those who make investments (both in time and/or money) do have a fairly solid guarantee that Sun will be held accountable for these statements even if they decide to "go back on their word."
I'm very curious to know whether these pages could constitute a legal contract. They have consideration, in that Sun receives more developers and more implementations of its frameworks in exchange for more liberal licensing. The pages makes an offer that is accepted by parties developing implementations. The documents are official and exist for the purpose of informing developers of their rights.
As far as I'm concerned, both Sun and Microsoft are greedy and untrustworthy, and the open source community would be foolish to throw their lot in with either company.
I don't think any open-source developer in his right mind would "throw their lot in with either company." However, open-source developers are more than willing to support open technologies, even if they are backed by big mean corporations whose executives vacation at retreats where they club baby seals, if they know they are developing on an open platform and they can develop software to provide benefit to themselves and others.
Tell me, where is the innovation? (Score:4, Insightful)
It CAN be about innovation by implementing generics into the Mono runtime before MS does this (MS will release the updated 2.0
Re:What, no COM support? (Score:3, Insightful)
No. You create references to assembly filesnames in your own assembly and with that also a version of the assembly so you can install multiple assemblies with the same filename. I can call my assembly FOO and the assembly file bar.dll. The compiler creates a reference to 'bar.dll' with a certain version. When I start the program with that reference, the CLR will look in the current directory for bar.dll to load the assembly objects I try to instantiate. If bar.dll is missing it will consult the GAC (Global Assembly Cache). If bar.dll is not found there, it's not loaded.
Mono is designed to be cross platform.
No. _.NET_ is designed to be cross platform, since the platform a class talks to, uses and consumes is
Supporting COM in
Re:ASP.NET or PHP (Score:3, Insightful)
Do you honestly think that Microsoft will allow this? Sure, they say it's great now, but what about in a couple of years? What are they going to sell?
Desktops? No, Windows is now just a dumb terminal front end to
Oh, ok then, they will sell servers. No, all the
So, Microsoft wont be selling desktops and they wont be selling servers. That makes sense. What is the angle here? What money making scheme am I missing? Are they holding back on some prime APIs or maybe all the
Love it (Score:3, Insightful)
On the other hand, if you are less of an ideologue and more practical about technology, Mono makes it "safe" to use MS technologies when they are the best choice, because you don't have to make everything MS. You can order a la carte.
Re:Time for the crackers to come (Score:2, Insightful)
The strength of the .NET is directly proportional to the strength of the implementation of the .NET. Just because .NET comes on UNIX doesn't mean that all exploits against Microsoft's runtime magically start to work on these platforms - barring, of course, exploits that exploit design flaws in the platform rather than bugs.
Microsoft may have bugs in their platform that lets it execute arbitrary code - well, that bug likely may not be in Mono runtime. Or, the other way around!
EVERYONE TAKE HEED OF THIS!!! (Score:5, Insightful)
I talked to my high school buddy who was a patent attorney, but who quit the business because he hated the whole business of IP law because he was morally against it.
I asked him what could happen, and theoretically, depending on the strength of the patents, Microsoft could sit back and wait for Mono to be developed, wait until a critical mass of applications gets developed on it, and then start charging royalties to anyone using that technology.
Unless someone clarifies the legal status of Mono in regards to Microsoft's patents, this is 100% definitely the situation that will occur.
Think about it, it is exactly what Rambus tried to do with SDRAM. Microsoft is a business and looks to Linux as a major threat. It is a jackpot for Microsoft in two ways:
1) They get the Open Source schmucks to do their work for them
2) Once a bunch of businesses have implemented their business on
We need to get a legal clarification of Mono before any real development starts occuring. My guess is that it is stepping on a whole shitload of Microsoft patents, and it is the onus of the implementors (ie. Ximian) to make sure that they develop around those patents, or 1) be prepared to try to quash the patents or 2) pay whatever royalties Microsoft charges.
Re:Someone tell me: What's the big deal? (Score:2, Insightful)
From what I can gather, ASP.NET is leaps beyond ASP. It's nearly a completely different creature. First off, it separates presentation and logic layers cleanly. I've generally used PHPLib templates in the past, and the ASP.NET method is very nice (however, presentation is more than just html
Another interesting thing about ASP.NET is that the logic layer is compiled code, which should make it scale infinitely better than ASP (I don't really have the environment to quantify the improvement though).
One of the reasons I was iffy about ASP was that I don't like VB all that much. But with ASP.NET, I've been using C#, which comes very naturally. It'd take less than a day to be comfortable with C# from a Java background.
One last caveat though, the VS.NET IDE makes a world of difference, and save a lot of time (I've used emacs for php and java coding in the past). Without the IDE, I don't think I'd be much more productive in
Re:No buffer overruns - offtopic trollfodder (Score:2, Insightful)
*shrug* you started out discussing (in a loose sense of the word) C libraries etc. Go read what you posted. I did, just to check. What I brought up is buffer overruns, as I think it's a most important security topic. Of course you seem to think that the equivalence of code and data is *far* more important. Why? BTW, can you name one major recent exploit in software in the wild that involved this 'flaw' in processor architecture but was not a buffer overrun fo some kind?
C, Basic, Java or even
Well, here's the thing. AFAIK, buffer overruns happen a lot in C programs but very seldom if ever in Java, python or
And while we are at it, do you feel that the presnece of mere JNI makes Java as insecure as C? Bear in mind that unmanaged
Can you comment on how the
Or not, as you don't seem to be making any coherent points anyway.
Re:Someone tell me: What's the big deal? (Score:4, Insightful)
Yes, People Should be doing new development in something else.
That said, there are a couple of reasons to support .NET on other platforms via mono::
.NET (hard to imagine with it being so new).
.NET anyway for business reasons or lack of knowledge about other options. That same codebase may not be ported to other platforms by the authors or others, so the only way to get it outside of windows is to move the entire environment out.
1. There is already some old code out there for
2. There are plenty of developers who will go ahead and develop in
Mono makes it possible (or will eventually make it ppssible) to take complete .NET applications and run them on something other than Windows. This will end the Windows Lock-in factor for a lot of one-platform applications.
A Lot of business decisions are based on the application software, not the OS platform. The software is chosen first, then the platform is brought in to support it. By making the platform choice wider, businesses can opt for something other than Windows to support their .NET applications.
The ultimate goal is to simply have all developers develop for something other than windows. But it's a long slow process to change that mindset and technical merit often has an alarmingly low priority in that process.
WAKE UP (Score:4, Insightful)
People, you need to wake up. Stop being technophiles and think. This is Microsoft we are talking about here. They do NOTHING for the benefit of their customers. They do EVERYTHING to gain market share and ensure the domination of their operating system.
MS is playing "nice" now by not serving legal injunctions based on their patents. Will they continue?
Let's say some of the people that reply to this post say "The patents are irrelevant blah blah blah blah". OK, fine. Let's say they are. That doesn't even matter, here's why:
MS defines
Remember when OS/2 had win32s compatibility? Remember Microsoft's response? IBM took the win32s distribution from MS and binary mapped it into a valid set of OS/2 libraries and programs. Within a very short period of time, MS released a NEW VERSION OF WIN32S TO BREAK IBM'S USE. Analysis at the time showed that the changes, which were few, were gratuitous and the only conclusion was as I've stated it. I did some googling and this [google.com] is a good summary.
If Mono is too successful, this will happen again. "Too successful" means that
Let me put it another way:
Microsoft is enabling, for the first time in their history, users to write portable programs and that portability could kill or severely damage Microsoft. Microsoft knows that they will be able to prevent this, if need be, and they will only show that card if they need to. After all, no need to give the conspiracy theorists ammo, right?
Re:What a tremendous waste of time (Score:2, Insightful)
Re:WAKE UP (Score:2, Insightful)
OS/2 had a small enough application base that win32s compability was important to its success. Linux and Mac OS X do not, and never have, relied upon Windows compatibility.
If Microsoft changes their implementation in such a way that it is strongly coupled to the underlying Windows implementation, they'll be divorcing their platform from the developers who've come to depend upon a cross-platform solution. With Linux use undeniably on the rise and anecdotal evidence suggesting that OS X really is causing some Windows defections, that could turn out to be a miscalculation for Microsoft... especially if competitors know how to spin it for all it's worth.
So I'm not too worried about breakage, OS/2 style.
That's not to say that I trust Microsoft not to pull some legal rabbit out of their hat to try and subvert Mono... on the contrary, I expect it. They don't need a case they can win, all they need is enough money to bankrupt their opponent with legal fees, and I suspect that Ballmer has that much change in his pocket.
I've read the assurances on Mono's site, but I've also seen a convicted monopolist get off with a weak hand-slap, so I don't put much faith in "justice" being served by the U.S. legal system...
Re:COM, CORBA, J2EE, .NET... (Score:3, Insightful)
There are two fundamental differences between
1.) COM is interface oriented and
As a result, most distributed app's based on COM usually work by passing simple data between tiers instead of passing objects. Each tier winds up implementing code that consumes that data into a redundant object model.
In contrast,
Admittedly, the client and server bits still need to understand the type definitions, but passing an object around that encapsulates data and enforces business rules is very straightforward. With
For example, I just did an app that sends and receives objects that are serialized and deserialized to and from XML between a Windows Service and a mainframe using MQ-Series.
2.)
Because of this, you can run two versions of the same application side-by-side, you can deploy an application with XCopy or from a web server (with the right security policy you can place a WinForm app on a web server and
Finally, these are complimentary technologies. If the application is truly distributed between diverse environments, there is no reason not to mix-and-match RPC models. However at the boundaries,
Haskell.. (Score:3, Insightful)
At which point, the CLS would no longer be a good thing.
Re:No, read on to know why: (Score:3, Insightful)
To me this sounds like you really do not understand
Be good. Instead of trying to win the argument by accusation, try to see what I'm talking about.
C++ is a strongly typed language. Yet it can be horribly prone to errors.
COM is *not* a source of security leaks. That's like saying DLLs and EXEs are a source of security leaks. Destroy them.
As I said earlier in anther post, all of what you mentionned above could have been achieved by simply enhancing/creating the two languages you mentionned: C#, VB. VB up till now didn't support proper object orientation. And it's compiler was pretty much crap (internals weren't thread safe etc.etc.etc)...
All the new Good Things (tm) you are talking about here have already been done with Java. Why not just use Java then?
And this comes back to a secular war between Java and C++ people. About how some people defend their right to use C++, which has templates, and some other people don't know what templates are and say C++ is a hack job.
Whatever your choice, you have to respect the others too... and saying "well, sorry, STL is gone, and templates supports are gone... because now you have an object model for your entire API" isn't gonna cut it for me.
What I mean by the kick in the balls towards IIS style security: it's quite a simple engineering concept really... the more complex your system, the easier for there to be bugs, flaws. It's that simple.
COM, is in it's essence, as broad and neutral a specification as PE, or ELF. It basically defines binary entry points in a binary file, defines method calling conventions, and memory allocation conventions through those method calls.
Last of all, if you've used ATL, and do not realize what a beautifuly useful library it is, I don't think we should be talking here... Have a good time using your .NET objects that you created via UltraEdit.
Re:No, read on to know why: (Score:3, Insightful)
No, it's not.
First off, COM is a great way to combine parts of programs together. And if you want to have COM in C++, yes, you've to do quite a bit yourself, because in C++ you *don't* have things done under-the-scenes for you.
COM itself is quite simple, IUknown and nothing much beside it. The interfaces are complex, because you do quite a lot with them, and with combinations of them.
That is why you can have a lot of stuff automated for you by librarys, ATL is a good example, but certainly not the only one.