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

180 of 406 comments (clear)

  1. bleh. by jchristopher · · Score: 2, Funny

    Mono? I don't feel well.

    1. Re:bleh. by Anonymous Coward · · Score: 2, Funny
    2. 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.
    3. Re:bleh. by Jerry · · Score: 2
      Exactly.


      This will become "patent"ly clear when Gates sends his Lawyer lizards onto the Mono project to take all their work, and put them in jail for copyright infringement.

      --

      Running with Linux for over 20 years!

    4. Re:bleh. by Jerry · · Score: 2
      All of those 'pros' are wiped out by the fact that an 8th grader can write VB script which will pour through the security holes in your WinXX OS, Internet Explorer and *.asp to take over your site. :-)


      This says nothing about the License 6 costs and the "new and improved" EULAs, which require that you hand control of your PC over to Gates & company, nor the "phone home" spyware that constantly reports back to Redmond what you do and where you go, even if you don't want it to.


      And *.jsp has Extensible Tags. Through this mechanism, a user can create custom tags--essentially allowing anyone to extend the JSP tag language. This is not something you can do with ASP.


      ASP can run only on machines running IIS--and therefore only on NT/W2K/XP, unless you want to invest (more $$$) in a third pary app. So, it does require a commitment to Microsoft. JSP doesn't tie you to any particular Web server or operating system and, outside of Microsoft, is becoming a widely supported standard.


      And, have you tried Sun ONE Studio 4 update 1 from Sun. I have run both the WinXX and Linux version and it is superb! Apache-Tomcat is on or off with a button click from the IDE. JDBC connection to and Oracle, MySQL or PostreSQL backend (I won't mention MS backends) is another click or two. Built in version control with CVS is outstanding. My Athlon 1 GHz with 512MB runs it just as fast as my Dell 2.2GHz box with 1 GB RAM at work.

      --

      Running with Linux for over 20 years!

    5. Re:bleh. by zaqattack911 · · Score: 2

      You forgot something!

      one huge scalability advantage of both j2ee and .NET over php is remote objects!

      Splitting up a distributed web-app over different servers, cities, countries!

      --noodles

  2. /home/linuxuser$ mint myapp.exe by MagPulse · · Score: 5, Insightful

    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.

    1. Re:/home/linuxuser$ mint myapp.exe by miguel · · Score: 5, Informative

      People are working hard to get Windows.Forms to work. We initially planned to have a Gtk backend, but turns out that Windows.Forms sadly exposes bits from the Win32 API that would be very hard to emulate (or at least terribly painful to debug).

      The major problem is the Control.Wndproc method which effectively allows any control to hook up to the Windows message system. This is not a problem for most applications, but many special "effects" in widgets are created by hooking up here and processing the messages here.

      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.

      Far from ideal, but its the only way we can guarantee good portability with minimal pain to the developers.

      There is now a new momentum to get this work moving, and given that it is possible today to test the various controls in Windows against the real implementation, you do not have to fight the incomplete Windows.Forms code before testing your code.

      More details: http://www.go-mono.com/winforms.html (for the Windows.Forms plans and mailing lists)

      Miguel

    2. 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.

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

      Software developed with Gtk# will run on Windows, you only need to install Gtk# in Windows as well .

      (I heard today on the irc channel for mono (irc.gnome.org, channel #mono) that the upcoming 0.6 release of Gtk# will distribute all the files you need for running on Windows as well).

    4. Re:/home/linuxuser$ mint myapp.exe by miguel · · Score: 5, Informative

      Yes, I can explain.

      The menu reorganization was actually something that we took quite seriously. The issue that we were facing was that the contents of the menus on the default configuration of Gnome was hard to use, and the organization was the remainings of the work that had been done many years before.

      So we actually conducted usability tests on real users to try out Gnome, and perform a number of tasks. We observed them, we interviewed them, and we made changes to the software to reflect the needs of users.

      Our intention is to allow Linux to be used as a desktop solution.

      We tried our best to make it easy for newcomers, and am sorry to hear that you disagree. But at least you could use this experience to advise new users: depending on their needs maybe Ximian is right for them, or maybe not.

      Anyways, you can file a bug report against the problems that you found on bugzilla.ximian.com, they might be worth following up.

      Miguel.

    5. Re:/home/linuxuser$ mint myapp.exe by miguel · · Score: 4, Informative

      No, it means that some of the dependency libraries (Gtk in this case) are native applications an not CIL applications, so you need to have the .so files in Linux compiled with C or the .dll files in Windows compiled with C.

    6. Re:/home/linuxuser$ mint myapp.exe by Anonymous Coward · · Score: 2, Insightful

      Would it be possible for the Gnome people to consider the needs of people who aren't newcomers occasionally? It's distressing when functionality is removed because it might confuse newbies. I installed RH 8.0 recently and was surprised at how bad the new window manager and panel are compared with the Gnome 1.x versions. I really don't want a huge panel all the way across the bottom of the screen when I really only use it for launching apps, but I am no longer allowed to have a smaller centered one that hides when I don't use it. I don't want little animated boxes when I minimize a window, but there's no way to turn them off that I've found; and why is there a seperate fonts preference box but no WM control box. Why can't I change that stupid hat icon to something else by right-clicking on it? Why can't I access most of the (actually readable) bitmap fonts that come with X? Why do I have to put up with this shit just because I want to get the twenty-year-old version of Python off of my RH 7.3 setup?!?!

    7. 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.
    8. 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....

    9. Re:/home/linuxuser$ mint myapp.exe by sg_oneill · · Score: 3

      Nah mate. Miguel should be given a pat on the back for actually dealing with punters in a helpfull way.
      Let it ride dude, it sure beats "grits" or cluster imagining.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    10. Re:/home/linuxuser$ mint myapp.exe by marauder404 · · Score: 2

      I'm very glad to hear about this. This is one area that Microsoft simply excels because they have money. Doing this kind of research takes time and effort -- too many people underestimate what it takes and what a good usability study can bring. Too many times, OSS is just a collection of tools written by and for engineers. This is encouraging, as it's been one of the biggest roadblocks toward Linux desktop sucess.

    11. Re:/home/linuxuser$ mint myapp.exe by weeble · · Score: 2

      There is no big deal for me.

      In the UK there is only a small uptake of ADSL, many users have to pay for their time online 3p a minute. This and they get cut off every two hours.

      My point in relation to having to download 100Mb is that this is just to use an email client. It is insane to have to change so much software to install an email client, the install corrupted menus and and caused numerous problems.

      That was the deal. :-)

      --
      Slashdot Beta should die a painful death.
    12. Re:/home/linuxuser$ mint myapp.exe by Brian+Knotts · · Score: 2
      match the native look of the linux desktop

      And which "linux desktop" would that be, pray tell?

      There are more than one, you know.

    13. Re:/home/linuxuser$ mint myapp.exe by thelexx · · Score: 2

      "are you a peace activist or pro-Palestinian?"

      It IS possible to be both you know.

      --
      "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
    14. Re:/home/linuxuser$ mint myapp.exe by AIXadmin · · Score: 2
      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?

      With companies like Sybase, Oracle, and Cache supporting Mac OS X. Mac OS X is no longer a platform you can discount.

  3. 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 Anonymous Coward · · Score: 4, Insightful

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

    2. Re:That's nice by jonabbey · · 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.

    3. Re:That's nice by g4dget · · Score: 2, Flamebait
      before .NET matches up with J2EE on Windows,

      J2EE is a mess. Whether .NET matches up with it or not doesn't matter.

    4. 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.

    5. Re:That's nice by jonabbey · · Score: 2

      And see The Middleware Company's own FAQ in which they respond to the criticisms of their comparison.

  4. 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 miguel · · Score: 5, Informative

      Mono today works on LinuxPPC in interpreted mode, but does not work on MacOS X since the calling conventions are not the same.

      We started work three months ago on a new JIT engine whose main aim was portability (although the current JIT can be ported, most optimizations and coarse-opcodes had to be reimplemented over and over). The new JIT engine design has two intermediate level representations: a higher level one, and a low-level that can be as precise as required for a target CPU. The funny thing is that the new JIT is actually faster JITing code than the current JIT even with the added layer.

      The lower-level layer is actually something we are very proud of, Paolo architected a register allocator and instruction scheduler at the same stage, and we are using the PowerPC on MacOS X as the second platform to target to guarantee this time that the JIT is actually easy to port.

      We are hoping to release the new JIT engine in February/March.

    2. 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. Re:Does Mono build on MacOS X? by miguel · · Score: 2

      It wont be directly Wine, but WineLib, and it is possible to run your WineLib applications on other non-x86 platforms.

      Regarding MacOS X: our plan is also to provide patches to the Wine guys so that Wine renders its widgets using the right toolkit. So in MacOS it will use Cocoa, and on Unix Gtk.

      Another good news is that Kylix.NET compiled applications seems to be working on Mono without problems.

      Miguel

    4. Re:Does Mono build on MacOS X? by miguel · · Score: 3

      The license of the new JIT will be LGPL, just like the current one. We are keeping the same runtime, io-layer, threading, and GC in Mono. The only bit that will change is the JIT compiler.

      Now, just like the current JIT, we do require copyright assignments to the runtime code base, and we do in fact relicense the runtime to those who are interested in it, but the LGPL version will always be available.

      Miguel

    5. Re:Does Mono build on MacOS X? by miguel · · Score: 2

      It will actually not use all of Gtk, it would only use the Gtk theme drawing functions.

      Gtk does not have strings attached for commercial developers like Qt does, there is no requirement for an upfront payment of a license to use the toolkit like there is for Qt for commercial application development.

      Since the rendering has to be abstracted anyways, people could provide a Qt backend.

      Miguel

  5. Yay Mono team by litui · · Score: 2, Insightful

    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.
    1. 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.

    2. Re:Yay Mono team by jaavaaguru · · Score: 5, Informative

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

      GTK+'s "forms implementation" is more advanced than Windows's. When you design a form, you can specify the size of cetain controls, and let GTK work out the sizes of other controls automatically on the fly. This gets round the problem that you see on Windows where if someone changes their display preferences to use "Large fonts", some text doesn't fit within the fixed sized label that the form has. With the GTK model, the label and other controls around it would resize automatically so the text fits in perfectly.

      Also, you can specify how controls on a form should be a aligned, and the alignment it handled by GTK, so you don't have to place controls on the exact pixel you want them to appear on (which is related the the previous problem). Yes, I know you can "snap to grid", but that still messes up with non-standard sized controls and in the scenario mentioned above with large fonts. I could just say "It's similar to the way Java handles GUI design", but I'd see all the Windows GUI designers respond with "but Java's UI looks horrible". On a system running only Gnome or similar, GTK is what all programs use, so they all look the same - none of this horrible inconsistency you see on Windows. GTK handles the themes or skins, so if the user doesn't like the look of your app, they can change the theme, and all apps still look the same as eachother. I know XP can do that, but dev tools on XP won't let you design a form in a GUI point 'n' click environment that follows GTK's ideas of automatically placing and aligning controls on the fly.

      As someone who's spent a bit of time creating programs with user interfaces in MFC, Java and GTK, that is my opinion. Now, do you still think that Windows has a better "forms implementation" ?

    3. Re:Yay Mono team by jaavaaguru · · Score: 2

      Me: Now, do you still think that Windows has a better "forms implementation" ?

      You: Visual Studio also includes these features

      That makes it looks like Visual Studios idea of forms has just caught up with the current standard in non-MS software, but is not any better.

      That looks like a "no" disguised as a "yes" ;-)

    4. Re:Yay Mono team by jaavaaguru · · Score: 3

      Has VS.NET just added a totally kick ass forms implementation? yes.

      My original question asked what made it better than GTK+'s forms. We've already established they have a new forms implementation that's supposedly good.

      Yes VB6 comes to mind immeditely

      That's a classic example of what I was on about. VB6 was around at the time I started having a look at GTK+. VB6 has all the flaws that my original post was talking about. If I had rememberd VB6, I would have mentioned it.

      Your original message compares the low-level Win32 APIs with GTK+

      Blah. My message compared GTK+ to MFC, both were the current standard on their respective platforms at the time I used them.

  6. Bravo! by telstar · · Score: 2, Insightful

    Further proof that more is accomplished through innovation than through litigation.

    1. Re:Bravo! by AlXtreme · · Score: 2, Insightful

      I would call it immitation, not innovation. But then again, 99% of all innovations are just immitating ones that someone else already had thought up.

      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 ;o)

      --
      This sig is intentionally left blank
  7. Dangerous Because of Microsoft Patent Claims Trap by NZheretic · · Score: 5, Insightful
    Microsoft's CEOs have made it "patently" clear that they intend to restrict competing .Net implementations by cultivating Microsoft's patents, such as United States Patent Application #20020059425 "Distributed computing services platform" [uspto.gov] which covers the design and inter-operation of .NET based implementations.
    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...

    JBoss received the green light last week, after Sun told ComputerWire that it would allow all of the APIs contained in J2EE 1.4 to be open sourced. Fleury had expressed concern that certain critical APIs, including Enterprise Java Beans (EJB) 2.1, would be not be made available to open source organizations.

    However, Java Community Process director Onno Kluyt said: "Sun's plan with 1.4 is that although it started before JCP 2.5, by the time it ships it will allow the creation of independent implementations. I don't think the APIs are that interesting, because the license that sits on top of J2EE will allow that [independent implementations]".

    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.

  8. What they didn't announce... by MAXOMENOS · · Score: 5, Informative
    ...is that this version of Mono also comes with Mono Basic. Just like VB.NET, only Free-as-in-Speech.

    It doesn't sound like much, but for porting a lot of business logic to Linux, this is a potentially huge development.

    Another thing that's needed to get this project up to par with MS .NET is an IDE. Fortunately, the SharpDevelop folks are working on that...

    So far this project has been very impressive. Kudos to the Ximian folx.

    1. Re:What they didn't announce... by miguel · · Score: 5, Informative

      An old version of the VB compiler is included in the release, but we did not have time to integrate the new VB compiler patches from Marco, but hopefully those will make it into the next release. There are screenshots of it in windows and with Gtk#.

      SharpDevelop does require Windows.Forms, if you are interested in getting this superb development environment running on Linux with Mono (it includes Intellisense), you could help with the Windows.Forms porting effort

      Miguel.

  9. ASP.NET or PHP by Anonymous Coward · · Score: 3, Funny

    what good is ASP or ASP.NET if we already have PHP you might ask. Well, firstly, ASP is a Microsoft product. If you don't know, Microsoft is a reputable software company that has been in business since 1975. PHP is just some silly freeware ASP clone hosted by a buch of computer geeks and hackers on some obscure website. Clearly a product from a major player in the software industry will be a better product.

    1. 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'.

    2. Re:ASP.NET or PHP by scotch · · Score: 2
      I've always heard you weren't supposed to drink the water in Mexico. Maybe the bottled water isn't such a bad idea.

      Regards

      --
      XML causes global warming.
    3. Re:ASP.NET or PHP by Arandir · · Score: 2

      the possibility of sharing components and existing classes independently of the language that was used to create it.

      Can that be any language, or only special languages like VB and C#? If this is available for any language, then why invent a new language like C#?

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    4. Re:ASP.NET or PHP by miguel · · Score: 5, Informative

      The "contract" for language interoperability is called the Common Language Specification (CLS) and furthermore, languages are divided in CLS producers, consumers and consumer/producers.

      You can think of the "CLS" as a richer contract than say the CORBA IDL or the COM IDL: they define APIs. Now on top there is a virtual machine that allows you to run either native code or "CIL" code that executes on the common runtime.

      There are plenty of CIL compilers (C, C++, C#, JavaScript, Fortran, Cobol, Eiffel, Ada, VB, Haskell) that can produce/consume CLS code.

      It is great if your language can produce and consume CLS classes, but its also good it it can consume them, because then a large body of code is available to you.

      Miguel.

    5. Re:ASP.NET or PHP by Corrado · · Score: 3, Insightful
      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.


      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 .Net servers. Might as well use Mozilla & Mono.

      Oh, ok then, they will sell servers. No, all the .Net stuff will run on Linux/Solaris/OS390/etc.

      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 .Net classes are under some patent.
      --
      KangarooBox - We make IT simple!
    6. Re:ASP.NET or PHP by BigJimSlade · · Score: 2

      This would be less funny if one of my co-workers hadn't said something to me along those lines yesterday. I don't know if he was joking or not. (We run a 99% Microsoft shop.)

    7. Re:ASP.NET or PHP by Chops · · Score: 2

      As someone pointed out another comment, Steve Ballmer has said that MS will try to squash free implementations with their patents.

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

  11. Re:?? Love it or Hate it ?? by thelexx · · Score: 3, Funny

    You reminded me of a cartoon I saw in Car&Driver years ago. It had an image of a screaming woman going over a cliff in a car, with the caption "Definition of Mixed Feelings: Watching your mother-in-law go over a cliff in your new Ferrari." Watching Mono develop is the geek equivalent.

    --
    "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
  12. Re:That's nothing compared to Parrot by Elian · · Score: 2
    Ah, the "Parrot sucks" troll. I'd wondered if you were going to show up. Ignoring the things that the mono project has had that Parrot hasn't, like a number of paid employees and a full specification, (Microsoft did all the hard work there. And, alas, they did it wrong in a few places) who cares that mono's got more stuff?

    Why are you so insecure that the very existence of another project gets you so worked up? Kinda sad, really, that you feel the need to spoil what should be a good brag moment for Miguel and company.

    This is Miguel's announcement. Put your bile away and don't spoil it.

  13. Re: Dangerous Because of Microsoft Patent Claims T by throx · · Score: 2

    IANAL, but don't you lose your rights to a patent if you don't aggressively defend it?

    Microsoft has publicly admitted their knowledge of Mono through publications such as MSDN and other places. They can't claim they haven't known about Mono, known its aims or known anything about what the project was capable of. I don't see how they can pursue a patent claim now - 12 months later - if my first paragraph is true.

    --

    Fear: When you see B8 00 4C CD 21 and know what it means

  14. Re: Dangerous Because of Microsoft Patent Claims T by Twirlip+of+the+Mists · · Score: 3, Informative

    IANAL, but don't you lose your rights to a patent if you don't aggressively defend it?

    No. You're thinking of trademarks. If you let a trademark get diluted in the marketplace, your claim to that trademark grows weaker, or even goes away entirely. Patents don't work like that.

    --

    I write in my journal
  15. Re: Dangerous Because of Microsoft Patent Claims T by ToasterTester · · Score: 2

    Actually MS has a spec' for non-Windows versions of .NET. This is what is to be used for the FreeBSD and Mac versions of .Net that MS is backing alreay. It is a subset of the CLR that needs to be supported.

  16. Re: Dangerous Because of Microsoft Patent Claims T by Edgewize · · Score: 2

    No. That is for trademarks, not copyrights or patents. This is why xerox is a verb but Unisys was able to sue creators of GIF files.

  17. 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.

  18. Hidden message here by darkwiz · · Score: 3, Informative

    Not to detract from Miguel and the Mono team here, but I can't help but think that there has to be a hidden message in the image he used for a screen shot... I can't quite put my finger on it...

    Oh well <whistles>

  19. 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.

    1. Re:Tell that to Unisys - Gif patents by karlm · · Score: 2

      I think quite literally, the LZW patent expired 20 Dec. 2002. However, I think I read this on /., a few weeks ago, so it may or may nto be true.

      --
      Copyright Violation:"theft, piracy"::Anti-Trust Violation:"thermonuclear price terrorism"<-Overly dramatic language.
  20. COM, CORBA, J2EE, .NET... by pVoid · · Score: 4, Insightful
    Can someone please explain why .NET is so good?

    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.

    1. Re:COM, CORBA, J2EE, .NET... by miguel · · Score: 5, Informative

      I am going to try.

      The .NET Framework is actually a new platform for software development, and incorporates many ideas that have been floating around before.

      The .NET Framework includes basically three components: programming languages, a common language runtime and a set of class libraries for acomplishing various kinds of tasks.

      The framework was designed so multiple programming languages could share the same set of class libraries with minimal effort, and also to allow a large set of programming languages to work together rather than having each one create its own "micro platform".

      Now, the .NET Framework offers a couple of ways of doing distributed computing with RPC calls: one is called the Remoting framework and the other one is called Web Services (its not exactly like this, but for now this will work).

      Remoting is the closest thing to a CORBA replacement, but its not a great replacement. I personally like CORBA more for plenty of reasons that I hope one day I will write down.

      Web Services is the "in" thing to do today, so the .NET Framework has some tools as well for making it easy for developers to write client and server applications using the web services protocols.

      Another things that .NET does is it simplifies the development of COM components and the use of COM components (there is plenty of literature on this subject on msdn.microsoft.com).

      Most COM developers I have talked to claim that .NET makes them more productive. You wont loose a lot by trying it out, you can always go back to your current tool set if you do not like .NET.

      Miguel

    2. Re:COM, CORBA, J2EE, .NET... by pVoid · · Score: 2
      common language runtime and a set of class libraries for acomplishing various kinds of tasks

      So if I understand you correctly, .NET is kind of like the enhancement of what automation was set out to be: a common way for any COM object abiding to automation rules and specifications to be able to use the environment (such as data, variables etc) of the application without doing 'marshalling conversions' when switching between languages? (for example: using variants and safe arrays to access data both in C++ and VB).

      I was aware of that, but still am not too clear on the full extent of this commonality.

      See, I understand the noble intent, but these are my gripes:

      Web Services could simply have been implemented as another 'standard interface' such as IMarshall... IWebService (or whatever...)

      Automation could have easily been 'enlarged', or extended so that all said languages (SQL, VB, C#, unmanaged C++ - via libraries) could interoperate. It's not like .NET is backward compatible... all the implementations of the languages will have to be changed anyhow...

      .NET, so far, is only more productive (IMHO), because of how good Moft's IDE is. And this has always been the case - Moft knows this very well, and has very well capitalized on the matter: the better your IDE and code generation suites are suited for RAD, the more market penetration you will get (because more programmers are programming for your platform)... Thus, ever since VC4, the capital focus has been on getting programmers to compile applications as fast as possible (hence all the wizards etc).

      I see your good intent, Miguel, but I still don't think it's a good enough reason for me. (just because, for example: COM is so elegant that it can actually be used in a fully interuptible-fully pre-emptible environment which is the NT kernel). More cruft, means more breaking points... means more IIS style security breaches that span several modules of runtime support.

    3. Re:COM, CORBA, J2EE, .NET... by IamTheRealMike · · Score: 2
      Remoting is the closest thing to a CORBA replacement, but its not a great replacement. I personally like CORBA more for plenty of reasons that I hope one day I will write down.

      Please do. One thing I don't understand is where Bonobo fits into all of this. Up until I saw the Python bindings for Bonobo, I was of the opinion that CORBA was really slow and too heavyweight for the desktop, based on no real evidence except what I'd heard other people say, the morass of C glue I'd seen in the gnome source tree and the "killev" script.

      The Python bindings (and the plans for the Ruby bindings) though seem to show that constructing Bonobo/CORBA components is actually quite easy if you use a higher level language, and considering that GNOME2 uses corba all over yet still feels snappy and responsive to me, the speed of it can't be that much of an issue.

      So where do Bonobo and Mono fit together? Wouldn't it be easier to improve the tools available for GNOME hackers by encouraging the use of higher level languages like Python and Ruby rather than C? I understand the argument about sharing class libs, but it seems to me that so far anyway virtually all Mono/.NET code is written in C# anyway, and using lots of languages together seems not to happen so much in practice.

      Of course with good tools you need good documentation, and although desktop documentation is quite good in gnome developer docs aren't so great - I know, I know, if I had time I'd try and do something about it but my plate is full with other stuff. It seems that'd be another way to improve gnome developer tools that isn't quite so drastic.

      Don't get me wrong, I think Mono is a fascinating project and regardless of whether it catches on as developer tools for Linux, it'll be invaluable for Windows compatability anyway.

      Thanks for your time Miguel.

    4. Re:COM, CORBA, J2EE, .NET... by Hard_Code · · Score: 2
      --

      It's 10 PM. Do you know if you're un-American?
    5. Re:COM, CORBA, J2EE, .NET... by Hard_Code · · Score: 2

      "As far as I have seen so far, .NET is basicly the MS version of .NET"

      How perceptive. :)

      --

      It's 10 PM. Do you know if you're un-American?
    6. Re:COM, CORBA, J2EE, .NET... by tenchiken · · Score: 2

      Let me also take a whack at this. Being a Linux/C++ and sometimes Java before starting to work on .NET last year, I have a few opinions. .NET is a radical step beyond the old windows platform (COM/DCOM/MFC) because of two things: The CLI and the WS/Remoting arch. The CLI is a managed space (similar to Java's JVM) but where Java was originally designed for embedded systems, CLI/CLR was designed for integrated components. .NET is a component based paradigm. Distributed communication between assemblies does not require any DCOM or Remoting magic, and versioning is now robust. Where COM intercepted every ecall to a object, the interfaces and proxies are now built directly into the runtime model so the amount of magic neccessary to make things talk together is minimal. .NET can be aspect oriented. Attributes allow code that used to be 25 someodd lines of nothing but enum and struct definitions to be expressed much mor ecohesivly in 5 lines.

      COM+ services (which do not use com or DCOM unless you use distributed transactions) allow cheap and easy transactions, object pooling etc.

      COM required some really ugly things to deal with the lack of managed space in C++. In addition, COM on top of C++ just left things messy for large projects.

      Web services are far more interoperable then CORBA. Far simpler as well. It frankly usually takes only one line of code to reveal a API endpoint to a web service. Click on a few buttons in VS.net to consume it, and end up with a object in your local namespace. Point perl etc at it, and everything was well.
      There is now a WMI interface in .NET (which is pretty cool) and outside of kernel space C# is much easier then C++ or java for effective engineering.

      It comes down to power=work/time. It's possible to do a lot of work in a little amount of time.

    7. Re:COM, CORBA, J2EE, .NET... by awitod · · Score: 3, Insightful

      I'll try to hit the high points I've found without mentioning any of the stuff you're likely to have heard of in the marketing materials.

      There are two fundamental differences between .Net and COM that I think are pretty compelling.

      1.) COM is interface oriented and .Net is object oriented. True, you can do COM with OO languages like C+, but at the COM layer you're still fairly restricted in terms of what you can easily pass between processes. IDL is not very friendly when it comes to complex data types and creating interfaces that require the marshalling of them has some nasty side effects in terms of dependencies between components, not to mention the need for custom marshallers.

      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, .Net objects are fairly easy to manipulate between tiers. There are three basic serialization technologies in the framework, (XML, Binary, and SOAP) as well as support for a variety of protocols (remoting channels include SOAP, HTTP, and TCP) and rolling your own is not that hard to do.

      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 .Net you can be OO and avoid the expense of chatty interfaces that cross physical and process boundaries.

      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.) .Net assemblies, by default, are local to the project path instead of being global to the machine and do not depend on the registry. In terms of time savers, this one is huge (no more DLL hell!) and it makes both versioning and deployment a lot easier.

      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 .Net will download it to a cache and execute it just like it was insatlled on the machine), and because .Net supports code signing, you can (if you want) ensure that referencing bits will only load specific versions (and protect yourself from Trojans).

      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, .Net really shines. And if it is a 100% .Net implementation, you're left wondering how you ever put up with the headaches inherent in COM in the first place!

    8. Re:COM, CORBA, J2EE, .NET... by PDHoss · · Score: 3, Funny

      (Score:5, Informative) by miguel (7116)
      (Score:5, Informative) by miguel (7116)
      (Score:5, Informative) by miguel (7116)
      (Score:5, Informative) by miguel (7116)
      (Score:5, Informative) by miguel (7116)

      Okay, I don't know who you think you are, Mr. miguel (7116) (if that's even your real name), but if you think you can Karma Whore your way to success by posting a bunch of information from other sites and posting a mess of links, you have another think coming!

      You big jerk. ;)

      PDHoss

      --
      ======================================
      Writers get in shape by pumping irony.
    9. Re:COM, CORBA, J2EE, .NET... by pVoid · · Score: 2

      Very good points. With an answer like this, it's definitely worth investigating.

    10. Re:COM, CORBA, J2EE, .NET... by miguel · · Score: 2

      Bonobo is just a set of CORBA interfaces, it still requires an underlying implementation of CORBA to communicate (In GNOME this is called "ORBit").

      I have been trying to get people interested in writing a CORBA implementation, but those interested are too busy with school or with other projects. Eventually we will get around doing a CORBA implementation for .NET and Mono.

      In the meantime a lot can be achieved by just "wrapping" Bonobo and CORBA as you pointed out with the Python example.

      Miguel

  21. Re:What, no COM support? by pVoid · · Score: 2
    Then why not use Java?

    COM is language independant. It's a binary format with a small number of runtime environment support routines... it is not platform dependant. Incidentally, COM objects interacting with only other COM objects are also platform independant.

    Platform independance is not a reason to supercede COM.

  22. Re:What, no COM support? by TummyX · · Score: 2, Informative


    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


    Um. Because .NET is simply a better environement for writing componentised apps.

    COM relies too much on windows APIs, it's not cross platform, it relies too much on the system registry and it only works on windows.

  23. Sort of off-topic, but... by kir · · Score: 2, Redundant

    ...what the heck is .Net? Now, before you drill me as a moron or a troll, hear me out.

    I've some vague understanding about what .Net is and what it is supposed to provide (XML web services... OK.), but can anyone point me to a good primer on the matter?

    I've never even tried to keep up with .Net (WTF kind of name is that anyway?). I've got enough to keep me busy without having to worry "the next big thing".

    --
    3cx.org - A truly bad website.
    1. Re:Sort of off-topic, but... by gunga · · Score: 2, Informative

      You could start here:
      Oreilly Network ONDotNet

    2. 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!
    3. Re:Sort of off-topic, but... by TeeWee · · Score: 2

      Thanks :) I knew it was something else (notice the questionmark in the posting) but was too busy to look it up...

  24. Temperature drops in hell by sanermind · · Score: 3, Funny

    It almost seems like blasphemy to be able to compile and run Visual Basic in a linux environment. Yikes! What is this interoperable world coming to? What next, a paperclip for emacs? ;)

    --

    ---
    the pen is mightier than the sword, the sword is mightier than the court, the court is mightier than the pen.
    1. Re:Temperature drops in hell by joib · · Score: 3, Funny

      Well, not for emacs, but you can have a paperclip for vi:

      Vigor

    2. Re:Temperature drops in hell by pointwood · · Score: 2

      Well, it already exists for Vim, so... ;)

  25. Re:What, no COM support? by pVoid · · Score: 4, Insightful
    COM relies too much on windows APIs, it's not cross platform, it relies too much on the system registry and it only works on windows

    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

    // the interface pointer requested in riid

    );

    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.

  26. Re: Dangerous Because of Microsoft Patent Claims T by Malcontent · · Score: 2

    Yes but are those specs covered by a patent and will microsoft publicly state they will never pursue any lawsuits.

    --

    War is necrophilia.

  27. 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.

  28. Re:What, no COM support? by pVoid · · Score: 3, Informative
    So can you explain to me the mechanics behind the 'self registration' that .NET promotes?

    Aside from that, CoCreateInstance might in a windows implementation look up the registry... but it might in a linux implementation look up a flat file, and on a BSD imp look in a sql db... it wouldn't change the behaviour of CoCreateInstance... And so, CoCreateInstance as a definition is not tied to any specific platform.

  29. Re:What, no COM support? by pVoid · · Score: 2
    Btw:

    How do you think COM knows which IID relates to which interface

    COM doesn't know that. IUnknown::QueryInterface (implemented by your object) knows that.

  30. Re:Amazing! by Binarybrain · · Score: 3, Insightful

    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

  31. IN SOVIET RUSSIA.... by yokem_55 · · Score: 3, Funny

    ...the "in soviet russia" jokes piss you off!

    --
    ...and IN SOVIET RUSSIA, beowulf clusters imagine 1, 2, 3 profit!!!! jokes made out of YOU!!!
    1. Re:IN SOVIET RUSSIA.... by absurdhero · · Score: 3, Funny

      no no no, you got it all wrong. its:
      YOU piss off the "in soviet russia" jokes!

  32. 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?

    1. Re:A valid alternative to Chillisoft ASP? by jpmorgan · · Score: 3, Informative

      ASP.NET is fundamentally a pretty different (and much more advanced) technology than ASP.

    2. Re:A valid alternative to Chillisoft ASP? by miguel · · Score: 3, Informative

      It is not an alternative to Chillisoft ASP, it is more of a complement.

      Chillisoft ASP implements the old ASP system for Unix systems. ASP.NET is radically different from ASP, pretty much the only thing they share is the name and the fact that they are web-related technologies.

      ASP.NET was originally a project inside Microsoft by a few guys that wanted to do ASP-like systems "right", and they called this system XSP. Later marketing came and figured `The right name for this technology is to reuse the old name, and stick a .NET at the end'. So they did.

      So if you have systems that you want to move to Unix/Linux that currently use ASP, you will go for Chillisoft. If you have systems that you want to move to Linux/Unix that use ASP.NET you go with Mono.

      ASP developers do have to learn this new technology, as it has almost no relationship with the old platform.

      Miguel.

  33. same problem exists with Sun by g4dget · · Score: 4, Troll
    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

    There are so many things wrong with that that it's hard to know where to begin:

    • A bunch of web pages do not constitute a legally binding contract.
    • It is rather unclear what exactly the extent is to which these promises would open up Java.
    • For an open language standard, it is insufficient only to open up the standard to open source implementations.

    Sun has renegged on several previous promises regarding Java: they failed to go through with standardization, twice, and they failed to deliver lots of functionality that they promised (e.g., value classes).

    If Sun wanted to open up Java, they would go through a standardization process, identify all the relevant patents in question, and make a legally binding commitment as part of the standards process. Instead, we are just getting fuzzy promises while Sun keeps filing Java-related patents.

    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.

    1. Re:same problem exists with Sun by e_n_d_o · · Score: 4, Insightful

      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.

    2. Re:same problem exists with Sun by g4dget · · Score: 2
      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 don't think so; perhaps, you might be able to get them for unfair business practices, but you couldn't force them to license patents. Besides, the published language is pretty vague, so Sun can almost certainly say things like "oh, no, we didn't mean THAT patent, we only meant those other patents".

      I don't think any open-source developer in his right mind would "throw their lot in with either company."

      If groups like the Apache foundation or Mono build large software systems involving Java or C#, they are tying themselves to those languages, and they are giving those companies a hell of a lot of publicity and value.

      However, open-source developers are more than willing to support open technologies, even if they are backed by big mean corporations

      C++ is an open technology backed by big, mean corporations; I have no problem with that. Java and C#, so far, are closed technologies because the companies that created them have also patented important chunks of those language and runtime definitions and have not dedicated those patents to the public domain.

    3. Re:same problem exists with Sun by bwt · · Score: 5, Informative

      * A bunch of web pages do not constitute a legally binding contract.

      That is certainly true. A contract is a quid-pro-quot between two parties where each side assents to give up some form of consideration to the other.

      On the other hand, patents and copyrights do not require a contract to use -- they only require a licence. A licence is a unilateral grant of permission. Any unambiguous statement granting permission suffices, so while you are correct that their grant is not a contract, it is a licence and your point is offbase.

  34. 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!
    1. Re:Does it build on windows? by stud9920 · · Score: 2

      The binaries run fine in windows xp with .net installed.

    2. Re:Does it build on windows? by johnburton · · Score: 2

      But what about building the source and running without .net ?

      --
      Sig is taking a break!
    3. Re:Does it build on windows? by thasmudyan · · Score: 3, Informative

      Yes Mono itself also works on Windows! You can even use the compiler without Cygwin or other supporting environment stuff. There is even a Windows binary release available although it's a bit outdated. And compared to the .NET runtime it's a very small package to download (yet, Mono isn't complete). Only thing that's preventing true "crossplatform" GUI development on Mono is windows.forms, the ability to use the native Windows windowing objects and classes.

  35. 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 :).

    1. Re:mono on windows95 by TummyX · · Score: 2, Informative


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


      Not necessarily true. You can make 'purer' .NET applications by doing P/Invoke calls to cross platform C apis instead of Win32 APIs.

      For example, if you use SDL instead of DirectSound your .NET application will run on Unix and Windows. .NET makes it easy to access traditionall DLLs with P/Invoke but that doesn't mean they have to be Win32 DLLs :).

    2. Re:mono on windows95 by tenchiken · · Score: 2

      Thank goodness something does not support windows 95.

      re:

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


      Not true, Mirosoft has released Interop Assemblies that are quite nice for DirectX.

  36. Microsoft patents are irrelevant by g4dget · · Score: 5, Informative
    All the Microsoft patents that have been identified as relating to C#/CLR so far are irrelevant. For example, the patent you reference has no bearing on the Mono project; if it applies to anything, it applies as much to Java and C++ programs.

    Sun's patents, if anything, look much more worrisome. For example, patent 6,477,702 patents the basic Java bytecode architecture and can be used by Sun to shut down any competing implementation. Furthermore, despite lots of cheery announcements, there is no indication that Sun has made a legally binding commitment to license this patent freely for open source implementations, let alone competing commercial implementations. The way it looks to me is that Sun is just stringing the community along with promises, and they will change their tune when they feel that they have established a secure enough market position. Sun has broken lots of Java-related promises; they are not to be trusted either.

    1. Re:Microsoft patents are irrelevant by g4dget · · Score: 2
      Hardly irrelevant.

      Those Microsoft patents don't cover anything related to the C# or Java languages. They are general patents on distributed systems. Even if they hold up, they don't affect the Mono language or runtime.

      In contrast, the Sun patent that I cite goes to the core of Java implementations: if you implement a working JVM, you infringe that patent, no ifs or buts about it.

      Nothing forces Microsoft to leverage their patents against every infringer,

      Well, if Microsoft has a patent that covers both C# and Java,what kind of systems do you think they would be going after first? I would guess Java.

      Note that as part of the ECMA C# standardization process, Microsoft committed to RAND licensing of all C#-related patents. Sun, in contrast, withdrew their standards body applications over IP issues and has never made a legally binding commitment.

      I think neither company is to be trusted. Both have claimed openness, and both are doing a lot of underhanded things behind the scenes. Until either company makes legally binding commitments, neither is to be trusted. And, no, the fluff we have been getting from Sun over the JCP is not a legally binding commitment.

  37. STD by stud9920 · · Score: 2, Funny

    Does mono ship with a VD-compiler ?

  38. No, read on to know why: by Otis_INF · · Score: 5, Informative

    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.

    COM as a functionality is great, but it should have been more transparent for the developer, like VB did this: you just program classes and hey, check it out, they're COM objects now!. Using Visual Studio, creating COM objects was (at least using ATL) a bit painless, but don't try it using f.e. UltraEdit32 and no helper library.


    So if I understand you correctly, .NET is kind of like the enhancement of what automation was set out to be: a common way for any COM object abiding to automation rules and specifications to be able to use the environment (such as data, variables etc) of the application without doing 'marshalling conversions' when switching between languages? (for example: using variants and safe arrays to access data both in C++ and VB).

    No. .NET is the replacement for the VB runtime for VB programmers, the C(++) Runtime / STL / Win32 lib for C/C++ programmers etc. It's the general target platform for _ALL_ CLS compliant languages (C#, VB.NET, J#, JSCript.net etc. C++ is partly CLS compliant, if you want to use templates or multiple inheritance, you can't).

    The multi-language part is not a result of 'making it a better marshaller' or better 'automation platform', but simply a result because now all languages have the same API, the same functionality on board: it doesn't matter which language you pick, you can target the same API and use the same cool functions with ease in VB.NET as you can in C++.NET.

    As a result of this, the code you compile will run in a VM. This VM, the CLR, is the heart of .NET. The objects you create, run inside application domains, which is totally different than COM objects do, in relation to the SCM.

    Webservices is a term for a piece of 'logic' as I call it. Functionality. It's not 1:1 projectable on a piece of code, like 'that class can serve as the base class for all webservices'. This is due to the fact that a webservice, when you use SOAP f.e., depends on a lot of tiny building blocks to do whatever it should do. That's why it couldn't be another Interface. (I also doubt what that would have brought to the plate, you can create webservices using the new ATL extensions and using plain C++, thus not .NET, but its harder). Webservices is not a 'part' of .NET, you can build webservices WITH .NET. That's a different thing!

    About the productivity: Now people can use a language that suits their needs and preferences (f.e. I prefer C# over VB.NET, while I've developer a lot of COM objects for n-tier systems in VB) and use a much richer API than they ever could. It doesn't depend on MS' tools. Sure the new VS.net is great, but the rich .NET api is the key of its success. Add to that the wonderful ASP.NET functionality (which is really years ahead of anything else) and the very good documentation of the API and you're set.

    Also I don't see your kick in the balls towards IIS style security. To me this sounds like you really do not understand 1) the power of the strong typing inside .NET and the amazing security featureset available to a developer and 2) that COM IS one of the causes of security leaks and DDos attack possibilities, simply because people forgot to use smartpointers and kept memory nonfreed. This is over now.

    --
    Never underestimate the relief of true separation of Religion and State.
    1. Re:No, read on to know why: by pVoid · · Score: 3, Insightful
      First off:

      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.

    2. Re:No, read on to know why: by Ayende+Rahien · · Score: 3, Insightful

      > 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?
  39. Tell me, where is the innovation? by Otis_INF · · Score: 4, Insightful

    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.

    It CAN be about innovation by implementing generics into the Mono runtime before MS does this (MS will release the updated 2.0 .NET when Yukon (SQLServer 2003) comes out, late 2003, which will have generics support). However I don't see this happen soon.

    --
    Never underestimate the relief of true separation of Religion and State.
    1. Re:Tell me, where is the innovation? by e2d2 · · Score: 2

      Well actually since the defintion of Innovation is to introduce something new I think Mono qualifies. .Net on Linux is new and therefor innovation.

      Just because it has bee done before or builds on the works of others does not mean it is not new. Although I would agree that the word innovation has been thoroughly misused enough to warrant a scoff any time it comes up.

  40. COM works on Mac OS :P by Otis_INF · · Score: 2

    IE runs on a COM support layer, ported to Mac OS X and earlier version, plus Solaris/ HP-UX. The COM Specifications, written by the Open Group, is os/platform independent. It's the implementation which has to retrieve the CLSID to read the actual binary from disk (i.e. where it is located). But that moniker logic can be done without a registry entry on windows as well: a file moniker. (i.e. at runtime binding of a com object located in a file).

    I agree that there is no need for porting COM to Linux. COM was a great technology to provide functionality to a wide spread of languages. That is now taken care of by .NET. All MS and others (like Oracle has done with their System.Data provider) have to do is release .NET assemblies now.

    --
    Never underestimate the relief of true separation of Religion and State.
  41. Paperclip ALREADY in Emacs... by MosesJones · · Score: 3, Funny

    Do you really think that an editor that includes the mayan calendar by default wouldn't ALREADY have had clippy created.

    Of course in Emacs he is called Pinhead and is much more helpful.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
  42. Re:What, no COM support? by Otis_INF · · Score: 3, Insightful

    .NET assembly names match the actual assembly file name. .NET searchs the exe dir and bin sub dir.

    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 .NET, using the CLR, not the platform where the CLR and the implementation of the .NET api are located on. So running Rotor on FreeBSD will run my C# programs as good as the .NET CLR, as long as the necessary assemblies of the .NET API are there with Rotor. The same goes for Mono.

    Supporting COM in .NET was a wise decision. Leaving it out of Mono will developers limit to use DCOM enabled execution of COM objects on windows servers from Linux servers running Mono. True, this will take a big effort and it might not be a big advantage, but it can be a limit on Mono's acceptance among windows developers. That last part is the main issue here: attrackt windows developers to use Mono on linux instead of .NET on Windows. Your point about supporting CORBA and bonobo is therefor missing the point completely: a windows developer doesn't care about CORBA nor will he do that in the future. He does care about code he already wrote and want to reuse f.e. Can he do that on Linux with Mono? If so, perhaps Mono is an alternative. If not, Mono is nice but not an alternative and the windows programmer will stay where he is: on windows.

    --
    Never underestimate the relief of true separation of Religion and State.
  43. Love it by GCP · · Score: 3, Insightful

    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."
  44. Re:Time for the crackers to come by WWWWolf · · Score: 2, Insightful
    soon we will see the real juice of these new technologies. And, soon, we will see how they can whitstand against serious attacks, exploits and break-ins.

    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!

  45. Excellent point by GCP · · Score: 2

    And if you're less concerned about portability, ISO C# will make it possible to do some really powerful, native things on other platforms, such as Linux or Mac OS X (Cocoa).

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  46. Re:Time for the crackers to come by Ektanoor · · Score: 2

    And where do you think real exploits get born from? Kidding with scripts and playing "../../.."?

    Depending on the architecture of the algorithms and the philosophy of the implementantions, any system catches its environment of exploits. The loose connectivity of .NET architecture and the fact that it is deeply used for networked apps will surely mean a huge potential for exploits. C didn't have such a plague because it is not a network system per se. But its system libraries demonstrated long ago how one can get into deep trouble, due to the loosy structure of the language. Java on the contrary, was a system that was built for the network but with some concern on security. However, this costed the language some inflexibility, that was implemente to avoid certain risks. From both these systems, .NET takes the best and the worse. You may use C#, GTK#, VB or whatever. It feels like a Super-Mega-C library. However, this also means that I can put into the wagon a lot more things and interact it with even more. Can you talk about security in face of this situation? As a professional, I can tell you that no matter what bottom line you may take, .NET is a wild elephant on security. No one can make such a loose flexibility without freeing some fundamental security knots, the most important of them, a rapid and effective way to acknowledge critical situations. In a situation where you can face tons of libraries, apps and languages at once and in one place, it will be impossible to get a clear picture of a potential problem in minimal time. And that starts not in Microsoft's conspirations, but on the idea of creating a whole universal system for network apps that looks more as a can of worms.

  47. Chilisoft by Epeeist · · Score: 2, Informative

    You can use ASP pages on UNIX now if your really want to. Just look up Chilisoft on Google to see how.

  48. Worth the risk by GCP · · Score: 2

    The soon-to-be ISO C# language is wonderful to work in. The cloning of the full .Net system may be entirely successful, or some substitutions may be required for legal reasons.

    Either way will be okay with me. Yes, I'd like to be able to run unmodified Windows apps on Linux, but there will be enough local platform (P/Inovoke) stuff used in most major GUI apps that binary portability won't be likely anyway.

    It doesn't have to be like Java: obsessively the same -- at the binary level -- regardless of the costs.

    A little bit of porting work in exchange for access to some local platform features and potentially a better end product -- I'll take that tradeoff.

    I think Mono will provide it, regardless of what MS does.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    1. Re:Worth the risk by Ben+Hutchings · · Score: 2

      C# won't be an ISO standard but an ECMA standard. The latter standards body is probably more willing to adopt a vendor specification intact.

    2. Re:Worth the risk by twistedemotions · · Score: 3, Informative

      *cough* *cough* BS!

      C# will be and ISO standard. To be published shortly:

      ISO/IEC 23270 (C#)
      ISO/IEC 23271 (CLI)
      ISO/IEC 23272 (CLI TR)

      "In late December, 2001, ECMA submitted the standards and TR to ISO/IEC JTC 1 via the latter's Fast-Track process. The subsequent 6-month evaluation and comment period resulted in two NO votes (Japan and UK) on the draft standards, and one NO vote (Japan) on the draft TR. All comments resulting from this review were considered at a ballot resolution meeting held in October, 2002. The two NO votes on the standards were resolved, making acceptance unanimous. However, Japan did not change its NO vote on the draft TR (Japan would like to see a formatted/readable rendering of the CLI class library as part of the standard, not as a TR; this will be considered for a future edition).

      The ISO/IEC standards and TR will be published in December, 2002, and will be known formally as ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR). Equivalent specifications will be adopted as 2nd edition standards and TR by ECMA at its December, 2002, General Assembly."

      The full story is here.

  49. Re:Time for the crackers to come by Ektanoor · · Score: 2

    Partially correct. But you forget that the problem may not be the .NET itself and Mono or Microsoft's implementations... By itself, .NET looks inoccent and simple, implementators may feel secure for its children. However .NET is usually looked as an all-whole integration of local and network apps also. And I believe that the real trouble will happen when, libraries established and servers running, some people start creating .NET apps. Then, with all this loosy ideology and global interactivity, bugs and back-doors will pop-up. Frankly, I believe that .NET will be more important as a transportation system. To bring up the beef to the customer. When he bites it, the .NET apps will just help bring him the delicious smell of rotten meat and do everything so that he doesn't forget for that smell for months.

  50. Re:Time for the crackers to come by thasmudyan · · Score: 2

    Well at least pure C# software will most likely not have buffer overrun weaknesses. I for one think it's time to build this into the programming languages and compilers instead of relying on programmer's discipline. So languages like C#, Java, Object Pascal (...) are the way to go!

  51. Re:Time for the crackers to come by Ektanoor · · Score: 2

    So exactly is the part of .NET that you think makes it more prone to exploits than C and Java again?

    The part that is related to interacting .NET to everything else. That's the loose cannon.

    Any Java standard application that you run using "java" can format your harddisk.

    You may call me ignorant, jerk or whatever. But you just don't launch "java" by loading an applet in your browser right? And the thing cannot format you HDD just like that because its infrastructure does not allow to directly interact with your machine without your knowledge. With .NET, in a near future, you may really risk not only to format something but also get "Now all your data belong to us". Java does not have such a deep interaction to other aplications or libraries as .NET. In fact, it is pretty isolated in its environment, interacting with databases and other stuff through tons of interfaces. On .NET, this frontier dissolves nearly to the impossible. Even if there are guidlines, even if the CLI is supposed to have all the security it can, even if these GTK# and VBs will have their own library infrastructure, separated from its classical GTK+ or VisualBasic DLLs, it will be impossible to get a guaranteed security. Generally, security is inversly proportional to flexibility. The more flexible you do an app, the less secure it is. This is not a strict law. But here, we are talking about something that allows several programming languages to interact. And programming languages mean nothing less than several tons of different ways to program algorithms. And algorithms can have lots of interesting problems, depending on the language they are programmed.Yes there is some animal called Common Language Infrastructure, but can you really care that this thing is strict enough to hold the security tight? I don't think so. I cannot believe that someone can manage to write in C# the same way one does in Basic. Besides why we would need so many linguages in this thing? Frankly if anyone will try to restrict the linguistics of this thing, we will end up with a Java-alike language that can just be spoken in many dialects. And I am sure that this is not the intention of the original creators of .NET. They want something like a Babylon machine, capable of understanding everyone and serve everything. This is what makes me believe, that in the future we will see that .NET, its libraries and servers are not so innocent as they look now.

    Java is exploitable and we all know about that. However to create real exploits, one has to dig up inside the forest of its virtual machine and interfaces. To reach an exploitable zone, one has to calculate several moments, from the interface level down to the zone where JVM acts with the real machine. Being an enclosed environment, Java makes this a lot too difficult to be done. On .NET I may see things quite to similar to Java and its world. However the loose interactivity of this thing breaks the shell of security like the one Java possesses.

    Frankly I wouldn't be admired to see a new type of exploit - the worm tunnels, systems that break into a computer and create a more active and permanent presence in it, by using the .NET communication infrastructure. A small piece of code breaks the security, calls some central node for apps/control and actively uses the victim computer for its nefarious activities. Naivety? Let's wait and see.

  52. Re:Time for the crackers to come by Ektanoor · · Score: 2

    Impossible pal. The problem of buffer overflows is related not only to the programming language itself but also the the architecture you run the programs on. Intel, AMDs and alikes are prone to buffer overflows because they do not make strict distinctions between code and data. While one works in such architectures, the potential of exploits is always above zero.

    C#, like Java, may not be so prone to buffer overruns while they remain in a certain virtual architecture that avoids many of the weaknesses of the real processors. However, .NET is more deeply integrated to other systems and environments than Java. At least I don't see those same strict barriers that would block java application environments, from using C/C++ library functions or vice-versa. In any case, the .NET infrastructure is much more loosy in this. Now C is simply and generally assembler for humans. In fact, it is the bottom line of the architecture you work with. C++ is just a more complex frame, but is is not so far from C. Saying that there is nothing dangerous in this interaction, is not only stupid but irresponsible.

  53. ASP or ASP.NET by quintessent · · Score: 2

    ASP != ASP.NET

    1. Re:ASP or ASP.NET by sg_oneill · · Score: 2
      ASP != ASP.NET

      Not only that but;-

      Basic != Visualbasic != Visualbasic.net

      C++ != Visual C++ != Visual C++.net


      Can you see a pattern forming!

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
  54. No buffer overruns by StrawberryFrog · · Score: 2
    From both these systems, .NET takes the best and the worse.


    Rubbish. I can't speak about the java/network security half of that comparison, but the main problem with C as a network programming language is the potential for buffer overrun exploits. Environments like Java, Python and .NET (excepting unmanged code) eliminate the posibility of that class of error, making them far more suitable from that point of view.

    You don't have the foggiest clue what you are talking about.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

    1. Re:No buffer overruns by Ektanoor · · Score: 2

      As I told to one other guy here, the problem of buffer overruns is not withing the language only but also with the damn system you work with. AND THAT'S THE PROBLEM WITH .NET! And you nearly note that thing:

      Environments like Java, Python and .NET (excepting unmanged code) eliminate the posibility of that class of error, making them far more suitable from that point of view.

      Exactly, that's what .NET is completely weak. In certain architectures, you cannot avoid completely the chance for buffer overruns. Even Java, on an Intel machine, carries always the potential for such trouble. Even a Linux kernel, carrying special code to control buffer overruns cannot guarantee an 100% security (probably 99,9999 but never 100%).

      Now can you tell me that a supersecured environment like .NET that, still allows you to contact some piece of trash like C can be considered secure? That reminds me of some supersecured building, cameras and signalisation everywhere, which some director broke by entering through the backdoor.

      And before talking about "foggiest clues", go learn something about how programming languages are seen by the computer. I highly recomend you someone like Donald Knuth...

      And besides people. Keep C out of this discussion. C is not to be blamed for all the problems. C just gives instructions to the processor. If the processor cannot give a shit of a difference between code and data, that's a question to be asked to those who created it. Probably they will say it was a lot cheaper and effective to do it that way. And maybe they were right. However, every piece of code/data, entering the damn processor, has always the chance to put that guy nuts. And C here has absolutely nothing to do with it.

    2. Re:No buffer overruns by StrawberryFrog · · Score: 2
      Now can you tell me that a supersecured environment like .NET that, still allows you to contact some piece of trash like C can be considered secure?

      well, yes I can. Simply because .NET does not allow just any program to run unmanaged code. But of course you knew that didn't you, genius? BTW, you still need to tone down the ranting.

      Keep C out of this discussion. *shrug* you brought it up.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

  55. Re:What, no COM support? by spongman · · Score: 2

    the IID->interface mapping is needed by cross-apartment marshalling. when marshalling/unmarshalling an interface in the channel COM needs to locate the proxy/stub code for that interface. the mechanism for doing this involves a registry lookup.

  56. Someone tell me: What's the big deal? by Qbertino · · Score: 2, Troll

    I really don't understand this. I'm not a biassed fight tooth and nail OSS freak but this stuff seems just soooo lame.
    ASP sucks. Period. It has sucked, it sux and it probably allways will suck. This .Net thing seems to me more like a joke than anything else. I know NOBODY exept one (and check they Site to see they can't even do valid HTML -> www.q-in-media.de ) in the industry actually using it - but then again that might be a different story in the US. So at least M$ wants us across the pond to believe.
    It costs a zillion Euros, isn't even plattformindependent and, well ok, Mono is it's OSS counterpart and probably gonna be something usefull in the future. But what is the big deal?
    Understand me:
    I'm currently doing a little Python project. Python seems to be a very cool PL. It's interpreted, OOP, GPLd, runs on just about anything that runs on electricity, has TKs for all major OSes and, shure enough, it works! And it cost me nada.
    There's an OSS Appserver done with it called Zope that comes with a Webinterface for all your servicing needs, sort of installs in 2 minutes on any given OS (4 minutes if you're of the not-so-savy type) and suits 99% of all Inet related Tasks that you might ever want to do.
    Anything else I can get Java and a zillion OSS things, from JBoss to Cocoon, for it or I pick C++ for speed in 3D and grafical stuff.
    Now once again I ask: Please someone tell me what's the big deal of all this crap?

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re:Someone tell me: What's the big deal? by rbolkey · · Score: 2, Insightful

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

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

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

    2. Re:Someone tell me: What's the big deal? by avdp · · Score: 2

      The only thing that's really the same between ASP and ASP.NET is the first three letter of the name.

      Give it a try before judging. But for sure, you are way off base if you put down ASP.NET based on ASP (which DOES suck).

    3. Re:Someone tell me: What's the big deal? by Gaijin42 · · Score: 2

      Well, my entire industry (aerospace) is using it, my last industry (insurance) is using it, every developer I talk to is using it, so I think maybe you aren't looking very well. Of course, if you only associate with linux developers, you arent going to see it. .Net does not cost a zillion euros. .Net is free. (Of course, you have to have a windows box to host it from). Visual Studio closts alot, but there is Web Matrix available for free, or you can just use notepad (or vi :) )

    4. Re:Someone tell me: What's the big deal? by IPFreely · · Score: 4, Insightful
      Yes, ASP Sucks.
      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::
      1. There is already some old code out there for .NET (hard to imagine with it being so new).
      2. There are plenty of developers who will go ahead and develop in .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.

      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.
    5. 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.

    6. Re:Someone tell me: What's the big deal? by thelexx · · Score: 2

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

      Until MS decides to change the libraries in such a way that will break them on non-Windows systems, as they are not a part of any standards body submissions. According to Miguel, Wine is already depended on to deal with parts of the Forms library.

      --
      "Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
    7. Re:Someone tell me: What's the big deal? by sheldon · · Score: 2

      "But is it a GPL-compatible license?"

      Who cares. I prefer freedom over coercive licenses like the GPL.

      "Last I heard it was a non-commerical educational crap license."

      You heard wrong. There's nothing in the licenses for .Net SDK or Web Matrix which precludes you using them for commercial purposes. I just read through the Matrix one now and see nothing of that nature.

    8. Re:Someone tell me: What's the big deal? by IPFreely · · Score: 2
      That has been a threat all along. Meanwhile, the wine team has managed to make very credible inroads to Windows compatibility. MS could have made moves to break that compatibility on several occasions. The Samba team has managed to keep up with MS changes so well that they probably know the MS protocols better than Microsoft engineers do.

      I have seen comments here before to the effect that MS actually spends a lot of time compatibility testing a large number of competing software to make sure it does not break. I believe that. It would be very difficult for them to identify and implement a change that would break a single application (mono) while maintaining compatibility with all those others, and even harder to do it in such a way that mono could not be easily fixed and reissued in a matter of days.

      I'd bet that MS wishes they had put more such "Windowsisms" into the design before releasing the first draft of .NET just to keep mono at bay. But they didn't see it coming, and it's too late now.

      --
      There is nothing so silly as other peoples traditions, and nothing so sacred as our own.
    9. Re:Someone tell me: What's the big deal? by alyandon · · Score: 2

      You don't have to write ASP pages in VBScript - you can always use server side JScript which is a far more featureful language (ie: true classes/inheritance).

      Also, ASP pages are compiled and placed in a cache when first requested - so ASP can perform quite decently when the developers in question have more than 40 functioning interconnected neurons in their head and write decent code. The problem with most ASP implementations I've seen were the result of poor programming practices. :)

      However, ASP is showing its age and I'm glad to see that Microsoft is somewhat looking to the future by releasing ASP.NET... it will be interesting to see how well it establishes itself in the market compared to J2EE. I always say the more choices you have the better.

  57. EVERYONE TAKE HEED OF THIS!!! by Anonymous Coward · · Score: 5, Insightful

    This guy is 100% correct.

    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 .NET/Mono, Microsoft turns around a sues them for royalties.

    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.

    1. Re:EVERYONE TAKE HEED OF THIS!!! by Xerithane · · Score: 2

      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.

      Go ahead, we have P2P and FreeNet.. you can't stop an open source development movement or charge money for royalties. You can maybe take care of the heads, assuming you have jurisdiction. I personally would find it amusing to watch Microsoft attempt to battle with a distributed enemy.

      Beauty of open source: distributed in nature.
      Beauty of the internet: distributed in design.

      Lets just setup freenet nodes for "rebel projects" and be content.

      --
      Dacels Jewelers can't be trusted.
    2. Re:EVERYONE TAKE HEED OF THIS!!! by g4dget · · Score: 2
      Unless someone clarifies the legal status of Mono in regards to Microsoft's patents, this is 100% definitely the situation that will occur.

      But it isn't just Microsoft's patents. Anybody could sue implementors of Java or C# over patent infringement. Microsoft can sue Sun over Microsoft's Java-related patents. Sun can sue Microsoft over Sun's bulging patent portfolio.

      We need to look at who holds which patents and which languages they affect. We also need to look at who has made what legally binding commitments.

      My impression so far is that Microsoft has no patents that are important to either Java or C# implementations, while Sun has several such patents. Furthermore, Microsoft has had to disclose any relevant patents as part of the ECMA standardization process, while Sun has pulled out of standardization processes over IP issues. I don't know whether Microsoft is a threat, but they sure look like less of a threat to me than Sun at this point.

  58. This is great news for developers! by glh · · Score: 2

    The mono project is very exciting. I'm looking forward to installing ASP.NET on Slackware and see how well my existing apps port over. My .NET user group will certainly do some open source projects on the platform and demonstrate how well (or not) it works.

    One thing that really excites me is that Mono could be sort of a "bridge" of technology. It can bring Windows developers to linux, and linux developers to windows. And no worry about the platform. Of course, Java attempted to do this, but lawsuits prevented it from really going forward on the Windows platform (couple that with the marketing machine). Now we have the "reverse" situation that we had 5 years ago. Mono is attempting to produce a .NET "clone" if you will, for the Linux platform. It's doubtful that lawsuits / litigation will arise because C#/CLI is an open standard (ECMA). However, after recently speaking at a Linux user group on .NET many were very frightened that MS might have something up their sleeves. I guess only time will tell.

    1. Re:This is great news for developers! by alext · · Score: 2

      Mono is attempting to produce a .NET "clone" if you will, for the Linux platform. It's doubtful that lawsuits / litigation will arise because C#/CLI is an open standard (ECMA).

      So if someone gives me their lawnmower, I can assume they won't mind me clearing out the rest of their garage?

    2. Re:This is great news for developers! by glh · · Score: 2

      So if someone gives me their lawnmower, I can assume they won't mind me clearing out the rest of their garage?

      I think the question is more "If someone tells me how to build a lawnmower, they won't mind if I do?"

      And the answer to that would most likely be no.. Besides, the "lawnmower" that Mono is building isn't a Toro tractor mower, it's more like a push-behind Craftsman.

  59. Re:Time for the crackers to come by thasmudyan · · Score: 2

    You are right of course, the underlying architecture itself is still very much vulnerable (on all platforms). But at least those languages make it hard for application developers to create weaknesses like that. Of course it remains to be seen where most exploits will come from, but (taking Java and Delphi as an example and comparing it to C++ apps) I think that most mistakes are made by application developers and that infrastructure code on the other hand (like compilers or protocol stuff) is more thoroughly tested in that respect.

    Saying that there is nothing dangerous in this interaction, is not only stupid but irresponsible.

    I never said there is nothing dangerous in tight integration like that. I just wanted to make a comment on the security of .NET executables by taking one of the most often exploited weaknesses of traditional compiled apps into account. What's true for Java is also true for "pure" .NET apps.

  60. Re:.NET vs COM/COM+ by Glorat · · Score: 5, Informative

    A very succinct explanation I got while on a .NET training course was that .NET reversed something that Microsoft got wrong:

    COM: A very lightweight wrapper for intra-machine communication. Low overhead and fast. Forces programmer to handle all other issues like memory management, implementing interfaces etc. etc.

    COM+: A heavyweight framework for inter-machine (remote) execution. Tries to do all things and as such suffers from being ghastly to set up and use

    In short
    COM: Light for local machine execution
    COM+: Heavy for remote execution

    Microsoft decided they got this completely wrong and have reversed it

    dotNET local machine: Uses a CLR and common type system. This handles all memory management etc. etc. inside a virtual machine making things easy for the coder (with overhead of course)

    dotNET remoting: Has become very lightweight. You just send XML soap messages over TCP. That's light and that's also what web services are based on. Can you imagine even considering web servicse with COM+ ?

    So that's what they've changed in terms of COM/COM+. Having used it, I'm glad I never have to touch COM+ again and I'm glad that Microsoft have realised that a java style CLR/VM works well for general programming

  61. Re:No buffer overruns - offtopic trollfodder by StrawberryFrog · · Score: 2, Insightful
    do keep C out of the story as I didn't brought it up


    *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 .NET have nothing to do with the main reason for buffer overflows


    Well, here's the thing. AFAIK, buffer overruns happen a lot in C programs but very seldom if ever in Java, python or .NET programs, and then unsually with the help of C extensions. Coding in these languages would (despite other non-security-related drawbacks) make internet software a lot more secure, as the single most common flaw would be mostly eliminated. The fast that the real machine under the virtual machine is still theoretically vulnerable is true but irrelevant.


    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 .NET code amounts to the same thing.


    Can you comment on how the .NET and Java virtual machines require that those interested in security study x86 processor architectures? Can you comment on how these virtual machines share this flaw or not?


    Or not, as you don't seem to be making any coherent points anyway.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  62. WAKE UP by e40 · · Score: 4, Insightful

    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.

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

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

    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?

    1. Re:WAKE UP by Anonymous Coward · · Score: 2, Insightful

      So, Microsoft breaks compatibility at some point. We're no worse off. The compatibility break doesn't kill the usefulness of Mono on the other platforms it runs on.

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

  63. "Release early" too early? by yerricde · · Score: 2

    Is it not going to be open source as you are not allowing people to contribute openly?

    "Release early, release often" does not mean release the product of one day of planning. Good free software projects start with the cathedral model, with only one or a few engineers working on the thing. Then, once there's enough architecture in place to sustain the beginnings of a bazaar, the developers produce a first milestone release.

    --
    Will I retire or break 10K?
  64. Re:No buffer overruns - offtopic trollfodder by Ektanoor · · Score: 2

    You just don't take the point. We are talking here about corrots and apples. Your ideas and considerations are purely based on the fact that you ignore the fact that code is all equal for machines. You make such remarkable distinctions between languages but forget that the machine, doesn't give a Hell if you write in C or Java. C, Java and most languages are not insecure by themselves. There is nothing in C to make you automatically fall into buffer overflows. It is the way the machine processes the code and data that creates it.

    And remember. C is just human macro-assembler. You can make even more pretty buffer overflows in Assembler or machine code.

    Your opinion for the irrelevance of the real machine is not perfectly correct. First note the overblow of putting a virtual machine over the real one. Second, the insecurity of the real machine remains at the same level. The problem of security in Java is that is quite difficult to go all the way down to explore something in the border between JVM and the host machine.

    The use of JNI does weak Java security. Frankly this could rise serious problems in the future. But comparing it to C is something I wouldn't risk to do. C code, done the right way, can be a lot more secure than any Java code. I have seen such pieces of code. Gigantic marvels where speed is combined to nearly military security. However it costs a lot more to create such code than using Java. Choosing each of the ways depends highly on the priorities, guarantees and needs you have for the code. Claiming that one piece of code is far better than other, here, is very difficult.

    Here one may ask. But if one combines real ironmade C with .NET, the code would be quite full-proof. Correct. But does anyone think that 99% of developers would be able to do that? Without an HOWTO-MAKE-SECURE-.NET-APPS-FOR-REAL-DUMMIES we will see sure trouble arounf here. Besides, even if that HOWTO existed, 90% of the people would not give a dman about it.

    And, once again, if you read me well you may see that I don't give a Hell to C libraries.The problem is on the freedom to code .NET and its interaction with the most raw of all things - the binary code.

  65. Laches by yerricde · · Score: 2, Informative

    If you let a trademark get diluted in the marketplace, your claim to that trademark grows weaker, or even goes away entirely. Patents don't work like that.

    It works for patents as well, just not as strongly. Look up the laches doctrine and see how it applies to patent infringement lawsuits. Quick summary (IANAL): If Alice harms Bob in delaying legal action for an infringement, then Alice loses the right to collect damages for infringements that happened before she filed the lawsuit.

    --
    Will I retire or break 10K?
  66. Re:What a tremendous waste of time by jimmy_dean · · Score: 2, Insightful

    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.
  67. SIMPLY: dotNET = Java Clone + More Crap by JohnDenver · · Score: 2

    While you're description is very accurate, your assuming the person knows what the COM+ framework J2EE, BEA, Runtime Layers, Frameworks, and Web Services are...

    To put it simply and all semantics aside, .NET is basically a Java clone. Like Java, .NET runs all of it's programs in a virtual machine. Unlike Java, you can write .NET programs in 20 programming languages (now including Java). All of these languages can talk to each other pretty seamlessly. .NET also has a lot of new tools to make your programs connecting/communicating with other programs on the net a lot easier using a technology called SOAP.

    --
    "Communism is like having one [local] phone company " - Lenny Bruce
  68. 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
    1. Re:Curious - what is your problem with JCP? by g4dget · · Score: 2
      Standards processes involve an independent body that controls and supervises the standardization process. Standards bodies have well-defined and proven rules that many people established and agreed on before any individual standard is being considered.

      The standardization process often involves a whole host of legal agreements and guarantees that don't exist with the JCP. For example, many standards bodies, not only is the submitter bound to disclosure of related patents and RAND licensing terms of their patents, but so are the other members of the standards body.

      So, yes, Sun might be very good about taking third party input (although, in my experience, they aren't), but taking third party input is not the main point of standards bodies. Well-understood, well-defined rules and legal guarantees are, and those are present only to a much smaller degree with the JCP.

      Another problem with the JCP is that it isn't producing a standard for Java, it's producing a large set of pieces that define specific bits of functionality. Think of it this way: do you know what APIs were part of the Java platform in March 2000? What about today? The only definition of what the Java platform comprises is whatever Sun decides to put into their latest release. A standards body, in contrast, produces a complete and consistent definition at a specific point in time. If we had an "ISO Java 2002" standard, everybody could implement it that and third party implementations could be compatible with that. Later decisions by Sun wouldn't affect compatibility. But, of course, that is exactly what Sun doesn't want.

    2. Re:Curious - what is your problem with JCP? by SuperKendall · · Score: 2

      Standards processes involve an independent body that controls and supervises the standardization process. Standards bodies have well-defined and proven rules that many people established and agreed on before any individual standard is being considered.

      And the JCP does not fit in what way...?

      There is an independant (from Sun, which is only one member among many) panel that controls what goes in Java and what does not, with members from many companies. On a smaller level, anyone is free to comment on public drafts or even propose additions as an individual, a practice I find very nice. How many other "standards bodies" would let an individual have any say at all?


      The standardization process often involves a whole host of legal agreements and guarantees that don't exist with the JCP. For example, many standards bodies, not only is the submitter bound to disclosure of related patents and RAND licensing terms of their patents, but so are the other members of the standards body.


      Would such an agreement read something like:

      4. Intellectual property: In-Bound
      A. Contributions to the Spec Lead. You hereby grant to each Spec Lead (and, if different, Maintenience Lead) for each Expert Group for which You are not the Spec Lead, with respect to teh Output of the JSR led by the Spec Lead, a perpetual, non-exclusive, worldwide, roayalty-free, fully paid-up and, subject to section 4.D irrevocable, licence, with the right to sublicence...


      Each company and individual praticipating in the JCP has to sign something like that, and all of the other text located here

      I'm not sure why you would want any sort of RAND style licensing in your standards body at all.


      Another problem with the JCP is that it isn't producing a standard for Java, it's producing a large set of pieces that define specific bits of functionality. Think of it this way: do you know what APIs were part of the Java platform in March 2000? What about today?


      Yes, you mostly see individual pieces being worked over as it's a more rigorous process to add a core API or feature. But that still does happen (like with generics) through the JCP.

      Telling you what the API looked like in March 2000 is really quite meaningless - instead at any point you can easily see what API's are in what version of the JVM, which is much more important to know (as I'm using 1.3.1 at work now, even though 1.4 has been out for some time). You can find a list of various API's here, which tell you EXACTLY what you can expect to exist from any 1.3.1 J2SE implementation, and optional API's that you can make use of as well if you need to. You can find the bytecode spec if you like as well, and build the whole thing from scratch which to me is the CORE definition of having a real standard.

      To me, a standards body really does two things: (1) Keep any one organization from controlling the standard (which implies that it keeps the technologies used patent free), and (2) make sure that ANYONE can build an implementation of the standard which would work with other implementations, using only the documentation produced by the standards body. The JCP meets both those requirements and has other nice features as well like individual participation, which means to me you are going to see more varied discourse on a standard and not a puppet body echoing the will of one member.

      If the JCP were not a real body, things would be different in the Java world as Sun does not always get its own way. Generics would have been in 1.4 if it were up to Sun alone.

      Anyone who wants to know more about the process of the JCP shoudl read over the process overview here, or the full detail here.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
  69. A free interview? by runderwo · · Score: 2

    Is it just me, or were the comments in this story like getting a free interview from Miguel on the .NET/Mono topic? :)

  70. Haskell.. by 198348726583297634 · · Score: 3, Insightful

    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.

  71. Re:Contract is proof of licence by bwt · · Score: 2

    Where do you get the idea that a licence can be revoked at any time? They can stop granting the licence freely to anyone, but for those who have relied on having it already will have a very strong "explicit permission" defense.

    As for "your word against theirs", that is true and courts are very good at looking at the available evidence to figure out who to believe. In this case they published on the internet which means that 1) neutral 3rd parties witnessed it and 2) it's probably in an archive and/or cache somewhere and 3) the person taking advantage of the grant may have a verifiable record

    Under these circumstances, during discovery, no corporation (except maybe Arther Anderson :-] ) is going to fail to produce the exact page they displayed when asked for it. The words "obstruction of justice" do have an impact on corporations.

  72. Re:What, no COM support? by Ayende+Rahien · · Score: 2

    I believe it would take me about a day to implement the main ideas of COM on Linux.
    The only hard part is marshalling.

    --

    --
    Two witches watched two watches.
    Which witch watched which watch?
  73. Re:This is great and all but I have 1 BIG question by miguel · · Score: 3, Informative

    You will be glad to know that we are busily working on a version of Gnome2, but since Gnome2 is very good on its own, we wanted to make sure that there was a reason for people to upgrade to Ximian's version, so we are spending quite some time in addressing the needs from our users.

    The wait will be worth it. I can not talk about release dates. I can tell you that a number of previews has been sent to alpha testers for evaluation, and we will have to incorporate their feedback before we are ready to release the new version.

    Now the right person to talk about these things is Nat Friedman who is in charge of the desktop work. He has quite a few new tricks for the new release, but I wont spoil his debuting new desktop here ;-)

    miguel.

  74. Not hardly an ASP.NET server by Fizzlewhiff · · Score: 2

    Very misleading article title. The web server is nothing more than a very basic and somewhat broken web server used to test ASP.NET classes. While it can serve ASP.NET pages I wouldn't say they have shipped a server.

    --

    'Same speed C but faster'
  75. 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.
  76. Re:and why is this? by sheldon · · Score: 2

    "PHP is much better for working with various aspects of the network, Operating System and even other languages. PHP is to ASP as a remote controlled car using standard parts is to a Radio Shack special that welds and glues all the proprietary parts together... that and it only turns in reverse and only a right hand turn at that. YAY!"

    PHP is much better than ASP.

    ASP.NET is much better than PHP.

    Hopefully that helps you gain some perspective on what's being discussed here.

  77. The Real Conspiracy by ChaoticCoyote · · Score: 2

    It's a tad late to get into this discussion now, but I'll add this thought (tired as I am):

    Microsoft doesn't care about Mono as a competitor; in fact, I'm pretty sure that, internal to Microsoft, Mono is seen as a Good Thing.

    Because it is another Java killer.

    Sun has dropped the ball on Linux Java so many times and in so many ways. Slow implementations, poor visual quality, and a general attitude of "okay, we did Linux, so quitcher bitchin'".

    I've developed large apps in both Java and .Net; in my experience, Java is the more comprehensive and stable option. But Java suffers from poor implementation beyond Sun's favored Windows and Solaris platforms. Mac Java is always one generation behind; Linux Java is rough at best.

    The entire point of Java is portability -- the quality of the Java experience is directly tied to the quality of the Java implementation for a given platform.

    Now enter Microsoft, which has been limited to the world of Windows. Until now, Java could boldly claim the high moral ground of portability (albeit a dubious claim; in fact, Java is "Write once, test everywhere.").

    But if a reliable, free version of .Net is available for Linux and other platforms, Java suddenly loses one of its reasons to live. Why develop in unreliable Java when you can write a portable app in .Net?

    Microsoft has every reason to support Mono's success -- because, in the end, it legitimizes their new "platform" at the expense of Sun's Java.

    I'll bet Gates has a copy of The Prince (by Machiavelli) on his shelf.

  78. You're underestimating C# by GCP · · Score: 2

    It's a great language to work in. If MS makes it impossible to have a full .Net clone, I would still be delighted to have a good ISO C# compiler (even a native compiler), a runtime (which could just be a library that links to native code, like the GC libraries for C++), the subset of libraries included in ISO CLI, GTK# for GUIs, and whatever other libraries the OSS community develops for various useful things (like CPAN, but for Mono).

    In fact, if MS starts suing people to prevent them from implementing an ISO standard, the ISO committee would lean strongly toward making this OSS alternative the basis for the next version of the ISO standard.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  79. Remember the ISO standard by GCP · · Score: 2

    ISO will take a dim view of MS suing people to prevent implementations of an ISO standard. If MS sues anyway, the OSS community will create alternatives that ISO would take very seriously as the basis for the next version of the standard. MS doesn't control the votes of the national representatives on the ISO committee, nor does an ISO standard control MS, but there are powerful commercial incentives for MS to avoid losing control.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  80. 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.
  81. you missed my point by Otis_INF · · Score: 2

    What I ment was:
    Windows (the server variants) are designed to be application / functionality servers, that is: they provide functionality to others, be it clients or other servers. Now, when you have functionality build into com objects, you can now instantiate, as you know, that object from another server, by using DCOM. You can use this same functionality from .NET.

    When is this useful? Well, f.e. in the following scenario (don't bug on my that its a sucking solution, I didn't cook it up ;)): 2 months ago I was hired to help with a project that was about an intranet application build with .NET. It had to have print functionality, for letters, generated with data from the application. How to print the letters with templates that can easily be changed by the customer? We choose for word, since it has a COM interface. Now we managed to build .NET code which instantiated word on another machine which was the letter machine (old win32 box with a dedicated printer for this) and which was able to generate the letter on that machine from the intranet webapp. Now, if the webapp was moved to Mono, it will fail, since mono doesn't support the instantiating of COM objects on other machines. And believe me, allthough word is heavy for this usage, a lot of intranet applications use it for printing and generating letters. This is just 1 example of using a COM object on another machine in a .NET application, but I'm sure there are more. Mono will not support these structures. True, it would be great to just keep everything 100% .NET code so the transfer to mono would be free of pain, but in the real world this is hardly the case. At least for some time.

    --
    Never underestimate the relief of true separation of Religion and State.
  82. Re: Dangerous Because of Microsoft Patent Claims T by Chris+Johnson · · Score: 2

    What difference would it make if they publically stated something? PR releases aren't necessarily legally binding. And look who you're dealing with...

  83. Re:Amazing! by Chris+Johnson · · Score: 2
    I think it would be quite reasonable to conclude that they are working to support and expand the 'evil empire', because in spite of a great deal of evidence they don't consider it evil, and they want more of it.

    This would explain why Microsoft are not actively combating 'Mono'. Why fight what you can co-opt? MS are not stupid. They have these guys doing their work for them, and they don't even have to pay 'em. Why stop them?

  84. Re:What a tremendous waste of time by alext · · Score: 2

    -1 Fanciful

    Dotnet is not an open standard, only C# and the CLR, comprising approx 120 classes out of 1200 in Dotnet, are standardized.

  85. Re: Dangerous Because of Microsoft Patent Claims T by Malcontent · · Score: 2

    I agree with your sentiment. But at least saying things out loud might discourage them beforehand and shame them afterwards. I am not implying that these people have any sense of shame however.

    --

    War is necrophilia.