Slashdot Mirror


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). "

25 of 406 comments (clear)

  1. That's nice by jonabbey · · Score: 2, Interesting

    Mono is some great stuff, but it's going to take some time before .NET matches up with J2EE on Windows, let alone on the UNIX platforms.

    Gtk# is more interesting, I think.

    1. Re:That's nice by jonabbey · · Score: 4, Interesting

      You're talking about the The Middleware Company's "shootout" between their "optimized" PetStore implementation and their .NET version.

      Laying aside that Sun never put the PetStore demo forward as a benchmark, The Middleware Company did a lot to optimize the .NET version that they did not do for the Java version. The fact that Microsoft was paying for the comparison may have had something to do with this.

      Read Rickard Öberg's analysis of the comparison to learn all of the ways in which the comparison was flawed. To name just one, The Middleware Company announced that it took fewer lines of code in the .NET version to do the same thing, but they left methods in their Java version that were never even called anywhere in the code.

      In addition, the .NET version did aggressive caching in memory, in such a way that it would be impossible to scale the code across more than one server, while the J2EE version was implemented using BMP, which robs an application server of the ability to do any caching whatsoever.

      It goes on and on and on. Read the analysis for yourself.

  2. Does Mono build on MacOS X? by Rubel · · Score: 2, Interesting

    I don't see anything about a port for Darwin/MacOS X on the Mono web site. A full Aqua-# project would of course be a lot more work, but it would be fun to see it started in console mode or X-windows.

    Has anyone tried building Mono on MacOS?

    1. Re:Does Mono build on MacOS X? by sg_oneill · · Score: 3, Interesting

      Miguel. Congratulations on this milestone, I honestly doubted it and I'm now eating my words!

      Now, backpat asside, how will using winelibs for the winforms stuff impact on the LinuxPPC & alpha stuff (etc)... Can this be worked around... It'd sure be nice to run this on those crazy little powermac penguin boxen I got bangin' around my workplace.
      (I'm picturing here running borlands eventual kylix.net apps on nutty old macs!)

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
  3. I should feel sorry for Microsoft, but... by Anonymous Coward · · Score: 0, Interesting

    I'm going to enjoy watching the Mono developers catch up, then pull ahead of the Microsoft developers -- on Microsoft's own pet project.

    Bye bye lock-in fees for Microsoft. Bye bye forced sign-ups for Palladium.

    All those years of putting features and lock-in ahead of quality and good design are coming back to haunt Microsoft. Mono is able to build on top of a modular platform, while most of Microsoft's C# and .Net had to be written from scratch.

    That's how the handful of Mono developers are able to keep up to Microsoft's hundreds of .Net developers. Well, that, and the fact that Microsoft's management, up to and including Bill Gates, are probably interfering in the project, especially rushing the early design phase. I think I'd hate working at Microsoft.

  4. Re:No DB2? by miguel · · Score: 5, Interesting

    The volume of database providers in this release is the work of very few but very active hackers: Brian, Dan, Rodrigo, Tim and Ville. It is amazing the amount of code that these hackers pulled in the last two months.

    It is easy to know when the System.Data hackers are working, your inbox gets hammered with patches from the mono-patches list.

    You can help us support DB2, but you will have to get your hands dirty and start coding like the crazy hackers that brought all these providers (and Reggie has agreed to contribute his optimized provider as well).

  5. Re:/home/linuxuser$ mint myapp.exe by jchristopher · · Score: 3, Interesting

    Miguel,

    Could you explain why, when I install Ximian Gnome, your software overwrites all the shortcuts in the "foot" menu and replaces them with your own offerings?

    This, frankly, sucks. Folks trying Linux are just getting familiar with their systems and the programs that are typically installed. Then they get the bright idea to install Ximian because it looks "friendly", and you come along and take away all their programs.

    Keep in mind that most folks won't know how to get those shortcuts back (if it is even possible). Your software is advertised as being ideal for newbies, yet in practice, it is actually hostile. This is typical of open source software, in that your own self-serving interests (promoting Ximian) are placed above that of the user.

    In short your software is stupid.

    Thank you.

  6. Re:ASP.NET or PHP by miguel · · Score: 5, Interesting

    Well, having ASP.NET is very convenient to move applications and components from Windows and deploy them on Linux or Unix systems. So I think that this is a plus on its own.

    In terms of choices, I have to admit that I personally am more of an old school strongly-typed kind of person, and I like programming more with a language that I understand like C#. There is nothing wrong with PHP or Perl, but I feel a bit insecure with them. Like when you have to order water in a restaurant, and you do not want to look cheap, so you end up asking for `bottled water' even when you are trying to not spend a lot of money [1].

    Mono and .NET offer a very interesting crossroads: the possibility of sharing components and existing classes independently of the language that was used to create it.

    I strongly believe that scripting languages are great for quickly building web solutions, and I would love to see more work between the PHP (and other scripting communities) and Mono. We are certainly interested in helping out.

    For instance, the Mono runtime is easily embeddable, it could be used in existing systems with ease: for example, allow any language but use the PHP API to write web pages is one option (check the link for a few more samples and the tutorials), or hosting any programming language on Apache (as its done with the Apache/Mono module mod_haydn.

    Miguel.

    [1] Although as you grow older, you become more cynical, and you just tell the waiter `Get me a glass of the cheapest form of water you have'.

  7. Re:Yay Mono team by phorm · · Score: 5, Interesting

    Good thing a:

    If we can get a better "forms" implementation on 'nix (windows-like without windows bugs), that would be awesome

    Secondly, but verrry important to those who do webhosting, clients requesting ASP pages would be able to run on 'nix servers, no longer requiring special windows dedicated hosts. For those who prefer 'nix servers, and many hosts do, running a windows server in the bunch is a pain in the butt!

    If this actually pulls through, I will be amoung many who are very, very impressed.

  8. Re:What, no COM support? by pVoid · · Score: 3, Interesting
    Why are you trying to peel off COM reliance?

    What's the purpose of such a thing?

    Are you also trying to peel off CORBA reliance?

    Please explain your point of view, because I just can't understand why people are running away from COM as if it were the plague... and into this new swamp that is .NET.

  9. Re: Dangerous Because of Microsoft Patent Claims T by Anonymous Coward · · Score: 1, Interesting

    The patent above does not describe any technology related to the .NET Framework, but instead it seems like it might *remotely* talk about Passport, which is something that Mono is not really involved with.

    Interesting comment nonetheless, but the link to the patent might have been to `method to defibrilate cows' and might have been slightly more on-topic.

  10. Tell that to Unisys - Gif patents by NZheretic · · Score: 4, Interesting

    Unisys were well aware of the widespread use of LZW GIF image compression in many vendors software, so it's better to use PNG.

  11. Re:What, no COM support? by TummyX · · Score: 3, Interesting

    Um duh. Yes I've been programming with COM for 5 years.

    How do you tihnk CoCreateInstance constructs an object from a classid?
    How do you think COM knows which IID relates to which interface?

    Yes. The registry.

    You have to register all com interfaces and objects in the registry. .NET allows "xcopy" installs. No registry entries, just copy the entire directory and you're done.

    COM simply wouldn't work without some kind of registry or repository.

  12. no mention of dotgnu? by Anonymous Coward · · Score: 1, Interesting

    in comments or article, or at go-mono, why?

  13. A valid alternative to Chillisoft ASP? by PsyQ · · Score: 3, Interesting

    Is the performance still acceptable and can compatibility be guaranteed? Chillisoft ASP is great if you're a commercial ISP or otherwise make money from hosting ASP stuff, and therefore can afford the price. But for the little educational student webserver, it's out of the question.

    Can this compete? Or do the users have to learn a whole new brand of ".NET ASP" to do anything useful with it? I never knew anyone who uses ASP, so I never looked -- are there other free ASP-on-Linux solutions out there?

  14. Re:/home/linuxuser$ mint myapp.exe by weeble · · Score: 2, Interesting

    I pay for Ximian Express as a way of supporting Evolution. When Ximian first arrived you had to download 100Mb to get it started.

    I did file a bug report on the conversion of the menus and the fact that on Red Hat 7.X Ximian killed the KDE menus when using a Gnome desktop.

    The feedback I got was to create a link to another directory in /etc

    This I do not think is suitable for a newbie. I think that it is also terrible to seriously damage the KDE menu structure in all versions of one of the biggest distributions.

    I had seriously considered at the time to stop making payments and would have asked my girlfriend to stop too; however I saw the funding of Evolution as more important so we switched to Mozilla and left the payments running.

    Still not happy :-)

    --
    Slashdot Beta should die a painful death.
  15. Does it build on windows? by johnburton · · Score: 3, Interesting

    This may be a stupid question but does mono work on windows? Everything seems to imply it will but then the downloads section all seem to be for linux. I'd be interested in having a play with it on windows as it's the only environment available to me most of the time.

    --
    Sig is taking a break!
  16. mono on windows95 by mcbevin · · Score: 4, Interesting

    one useful feature mono will hopefully provide is the ability to run .net programs on older _windows_ systems.

    thats right :) - microsoft doesn't support .net on windows 95 (presumably as part of their overall strategy to force upgrades by making their old os versions obselete).

    having written a windows forms application (the decision to use windows forms based on the fact that it really is one thousand times nicer than win32/mfc to create gui applications with), i was a bit shocked to find out that my application won't run under windows 95 at all, and that for other old microsoft OSes a TWENTY megabyte download is required to support it! (a bit of a jump from the one or two megabytes for the visual basic dlls).

    and one further note - about 'pure' .net applications (ones that don't call the win32 api and are thus potentially more portable) - the inability to do any multimedia stuff (even a simple beep) without resorting to win32 calls, makes it pretty much impossible for any reasonably large application :).

  17. Re:/home/linuxuser$ mint myapp.exe by IamTheRealMike · · Score: 4, Interesting
    To avoid emulating Win32 ourselves, we chose to use WineLib as the foundation for implementing Windows.Forms. Later to match the native look of the linux desktop we will provide the Wine team with patches to use the Gtk rendering engine on Unix and the Cocoa rendering engine on MacOS.

    Hmmm. Considering the amount of effort that was required to make WineLib work correctly on Linux/PPC, are you seriously planning the totally enormous investment of resources it'd take to port Wine to MacOS as well? Considering the primary motivations seem to be to improve GNOME development tools and increase Windows compatability, is the MacOS port just a throwaway comment or are there serious plans?

    Only porting the core windowing and widget library would probably cut down the amount of work involved, but for instance Wine is heavily dependanct upon X11 currently....

  18. Re:Sort of off-topic, but... by TeeWee · · Score: 3, Interesting
    what the heck is .Net?

    Basically, the .NET framework evolved from the COM+ framework earlier and is Microsoft's answer to middleware. .NET's biggest competitor is the J2EE specification, with implementations from BEA (WebLogic), IBM (WebSphere) and Oracle (iAS) the biggest names in the business. Apart from J2EE, there's always custom middleware, forex building your own CORBA components and custom data access code. More control over the stuff, but more bug prone as well.

    Technologies included in the .NET framework:
    • CRI(?) The Common Runtime layer. The thing which runs the compiled code, sort of comparable to a Java runtime environment.
    • Several languages: C#, VB.NET, C++.net, J#, maybe some other language I forgot. They all run on the Common Runtime layer and therefore 100% interoperable. A C# module can call a VB.NET module.
    • ASP.NET: ASP as it should have been done. Brings it up to par with JSP.
    • Support for XML Web services. Calling modules over a http call using XML/SOAP.
    • ...

    Basically, anyone who imlements a CRI will be able to run .NET applications, so theoretically it's not a Microsoft only platform. I seem to remember that Microsoft also released a beta for BSD just to make that point. But so far, as expected, there's no real serious alternative to the .NET platform released by Microsoft for Windows.

    Primers:
    • For a Java oriented serverside programming site: The Serverside
    • Several O'Reilly titles: .NET framework (more general), Programming C#, Programming ASP.NET (last two specific for the languages)
    • Wrox has a good set of .NET books that are worth looking into

    Caveat when buying books: see that they cover the latest release and not forex the beta release!
  19. Curious - what is your problem with JCP? by SuperKendall · · Score: 3, Interesting

    You allude to Java needing a standards process - have you read or looked at any of the Java Community Process stuff? What is your problem with a system that lets companies and individuals besides Sun propose and comment on enhancements and additions to Java?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  20. Re:bleh. by Allthefuckinggoodnam · · Score: 4, Interesting
    can you offer any REAL advantages of PHP over ASP.NET? I've worked only a little bit with the two of them, and PHP I haven't used much since version 3, and a very brief stint helping a client port a PHP4 site over to JSP. Most of the development I've done has been with JSP/Servlet/Struts, and from my perspective I can't imagine going back to using PHP, although I could see using ASP.NET for enterprise development. To be clear, I am a J2EE developer who is trying to look at ASP.NET as objectively as possible. Here is what I see as advantages that ASP.NET has over something like PHP:

    For instance:
    • I can swap out my serverside scripting language from C# to VB to JScript++ to theoretically any language that supports the CLR.
    • I can use really nifty tag libraries for such features as automatic pagination.
    • I can trap events in a framework that abstracts out many of the intricacies of HTTP.
    • My pages will be compiled and the compiled code will be reused (granted, not a full compile, but byte code interpretation is still faster than text interpretation).
    • I can get binary reuse of components written for .NET, which is a concept that seems to be completely irrelevant in PHP.
    • With code behinds I have a very simple mechanism for separating business or integration code from presenation logic.
    • I get to use full featured object oriented programming languages that are strongly typed and offer all of the advantages of such languages (IO libraries, interface/class inheritance, db libraries, xml processing, ldap abstraction layers, SOAP processing, EAI libraries, connection pooling, multithreading, remote object lookup (COM and .NET remoting, hell, even COM/EJB bridges), etc.).
    • The tool support for .NET is another very compelling reason to look at ASP.NET.
    • In memory session support

    • Again, I'm trying to look at reasons why I would prefer PHP to ASP.NET, and it seems like there are reasons that you are convinced are compelling, so I'd be interested in hearing them.
  21. Re:Someone tell me: What's the big deal? by sheldon · · Score: 3, Interesting

    We're discussing ASP.NET, not ASP. Totally different, it would be like comparing Perl CGI scripts to JSP.

    As for most of your other complaints, they all involve cost. So here we have this Mono implementation. On top of that the .NET SDK from Microsoft is free, that includes compilers and everything. Microsoft has an ASP.NET development environment called Web Matrix that's free. They have an Open source web server you can use that's free, and so on and so forth.

    "Please someone tell me what's the big deal of all this crap?"

    If all you know about is Linux news you saw on /. you probably aren't knowledgeable to call anything else crap.

  22. Re:What a tremendous waste of time by Alex+Belits · · Score: 3, Interesting

    It's an infrastructure, and a very closed one -- ideas of its creators are imposed on the design and can not be changed. If successful, it captures not just software, it takes the area in the noosphere and pollutes (or improves) the process of thinking of all developers that go into that area. This is a kind of work that absolutely can not be developed by anything with commercial interest in mind and end up useful -- examples for that are legion -- PL/1 vs. C, STREAMS vs. BSD Sockets, RPC vs. socket-based protocols with protocol-specific parsing, Motif vs. GTK, H.323 vs. SIP, MPEG audio vs. Vorbis, and I hope, SQL will be next to go. In all cases except PL/1 later there was an open or semi-open implementation of bad standard, and it ended up being absolutely useless for any purpose other than to drag bad code into good systems, thus delaying the development of better one.

    --
    Contrary to the popular belief, there indeed is no God.
  23. VM questions for Miguel by karlm · · Score: 3, Interesting
    This is oftopic for this thread, but Miguel is defianetely one of the people to ask:

    Microsoft claims that the CLR bytecode is designd for JIT. Java bytecode was definately originally designed to maximize portability of interpreters (as in there are JVMs for 8-bit microprocessors and 64-bit "big iron") rather than for optimal recompilation to native code.

    To what extent is this true? Please tell us about features in the bytecode or the class file format that are optimized for efficient recompilation on the fly. I've read Ken Thompson's paper at Bell labs about the design of the DIS virtual machine. It would seem that a stack-based virtual machine is much less suitable for JITs than a memory based virtual machine. Cam you refute this, particualrly on non-register-starved platforms (PPC, ARM, Itanium)? Granted, memory machines much more complicated in concept than stack machines. However,for optimum register allocation in the native code, you need to basiclly undo the stack machine's register allocation (to two GP registers, the top of the stack) before doing register allocation, while memory machine bytecode is basically ready for register allocation with little preprocessing.

    You must have some gripes about MSs VM design. What are the main ones? What about the VM imposing C#s object model at the "hardware" level instead of using constructs written in bytecode and using privledged VM modes (analogous to privledged CPU instructions on a real machine, but perhaps much higher-level instructions) to enforce security restrictions? (This seems to be one of the main gripes of enthusiasts of non-ALGOL-descended languages on the .NET platform.)

    While you're at it, can you point to features that indicate MS really wanted a VM that worked elegantly with languages very unlike C#? I've heard that a main deterant to Stackless patches being merged into the main Python distribution is the changes necessary are very ugly to do in the JVM and would probably cause a major split with the Jython people. Would it be easy to get efficient handling of tail-recursion and efficient implementations of Stackless Python? How badlymangled internally are Perl.NET and Python.NET?

    Thanks for all of your hard work, and good luck in the future.

    --
    Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.