Mono Ships ASP.NET server
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). "
It's a weird experience to run the same exe in Windows and Linux with the .NET or Mono runtimes. When Mono supports WinForms (by translating them to Gtk#), so GUI apps written with Visual Studio .NET's GUI builder work on Linux, that will be significant.
.NET Doesn't need to match up with J2EE in terms of features or performance, all that will matter will be whether Microsoft's marketing department can outspend Sun/IBM/Bea.
All signs point to yes.
I think this is terrific. I know very little about the fine details of coding for .NET, but I understand the significance of this project to the community of open source and non-windows users. Good job folks. Keep it up. =)
I send you this message in order to have your advice.
Further proof that more is accomplished through innovation than through litigation.
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 . Sun has also fully pened up the Java development standards process under the new Java Community Process (JCP). Even to the point of granting full open source re-implentations of J2EE such as JBoss...
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.
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.
- jon
Ganymede, a GPL'ed metadirectory for UNIX
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.
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.
I really don't think Miguel and friends are motivated at the prospect of "over throwing the evil empire." Of course you would have to ask them though.
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
A bunch of web pages do not constitute a legally binding contract.
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.
Mono implements a piece of technology offered by Microsoft. There is no innovation there, at least not on the Mono part. Nothing wrong with that, but please, stop briinging the 'innovation' term into the discussion, since Mono is not about innovation.
.NET when Yukon (SQLServer 2003) comes out, late 2003, which will have generics support). However I don't see this happen soon.
It CAN be about innovation by implementing generics into the Mono runtime before MS does this (MS will release the updated 2.0
Never underestimate the relief of true separation of Religion and State.
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
Never underestimate the relief of true separation of Religion and State.
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
KangarooBox - We make IT simple!
It is superb technology: a combination of many of the best features of Java, Delphi, C++, and Perl. It doesn't "reek" of anything. (Well, maybe of Java, if you think Java reeks.) Mono will make it possible to use the excellent ISO C# language, the excellent ASP.Net, and the excellent .Net class libraries, without ever leaving the excellent Linux platform or having to use any product from MS.
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.
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
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!
This guy is 100% correct.
.NET/Mono, Microsoft turns around a sues them for royalties.
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.
Well, I'll chime in on ASP.NET a bit. I've been mainly a Java and PHP developer, but have been working with ASP.NET for the past few weeks (I never used ASP).
... in development, they have their own components with a psuedo event-model ... ie when you click a button it can call a method on the server, but it renders to html when sent to the client).
.NET than any other environment, and .NET as a framework doesn't really have many features that you can't get elsewhere (tomcat, j2ee, axis). But, it is a quite an impressive architecture nonetheless.
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
*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.
My Karma: ran over your Dogma
StrawberryFrog
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.
There is nothing so silly as other peoples traditions, and nothing so sacred as our own.
From a technical perspective, .NET might be a very nice platform. I'm certaining hearing that it is. The speed with which the Mono team formed and started executing was impressive.
.NET. Mono copies that design. If Microsoft's patents were not enough to stop people using .NET apps on non-MS platforms, all MS has to do is CHANGE THE DESIGN.
.NET apps will be TRULY portable, something MS DOES NOT WANT because it makes their platform inconsequential. In fact, if they did not defend their platform, this would be the death of MS.
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 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?
You obviously don't get the point that this Mono initiative is Open Source. .Net and C# are open standards now, Microsoft released it out into the wild. I am not sure if Microsoft hired this guy just to create C# or whether he works as MS full-time, but the creator of Turbo Pascal and Delphi also created C#. It isn't a replacement for C/C++, but instead it serves it's own purpose, and quite well I might add. It is very easy and intuitive to base business components on the .Net structure because that's what it was designed to do from the ground up. I might be a little more leary if Microsoft had never opened up the language to the public to use kind of like Sun with Java. Be open minded about it and take a look at mono, I think you'll be very surprised.
-> Sometimes, you just gotta break free from the shackles of proprietary code.
Just so people know, there's been much concern that the CLS will take languages that are paradigmatically different from the C/C++/C# family of langauges (like Haskell, which is a functional language) and strip away the syntax that makes them powerful in their own way (closures, continuations) until they're basically C/C++/C#, differing in syntax only.
At which point, the CLS would no longer be a good thing.
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.
> Let me start by saying that programming COM objects is the most retarted way of programming functionality. True, using VB or Delphi, it is easy, but using f.e. C++, it's not. Read Don Box' book Essential COM to see what I mean.
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.
--
Two witches watched two watches.
Which witch watched which watch?