Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×

New Mono 1.2 Now Supports WinForms 304

smbarbour writes "The Mono project (the open-source .NET compatibility library acquired by Novell when Ximian was purchased) has released version 1.2. They are now including support for WinForms. Ars Technica has a detailed rundown on the new release. The Mono project supports Visual Basic.NET as well, so developers that use VB.NET now have the possibility of directly porting applications to Linux." From the article: "Relatively high memory consumption and performance bottlenecks are commonly perceived as being amongst Mono's most significant weaknesses. Some critics frequently refer to various performance issues to support arguments against broader adoption of Mono technology in open source projects, most notably within the GNOME community. The performance improvements in Mono 1.2 could potentially address such criticisms, but it is likely that a lot more work will be required before the problems are completely resolved."
This discussion has been archived. No new comments can be posted.

New Mono 1.2 Now Supports WinForms

Comments Filter:
  • by AuMatar ( 183847 ) on Friday November 10, 2006 @05:24PM (#16799554)
    So now not only do we have to wait for submarine patents on C# and the runtime, now they can hit us on anything in their API as well. Especially with the Novell deal, people ought to realize that MS is just waiting for a chance to use their patents against open source. This is turning a bad idea worse. Just say no to Mono.
    • by nurb432 ( 527695 )
      I tend to agree totally.

      While the concept of what mono offered was a great idea, the risks are far greater. just choose something like python instead. Its also cross compatible and i dont think the rug can be pulled out from underneath you at the last minute.
    • by Anonymous Coward on Friday November 10, 2006 @05:35PM (#16799694)
      Could patents be used to completely disable Mono?

      First some background information.

      The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.

      Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms.

      The Mono project has gone beyond both of those components and has developed and integrated third party class libraries, the most important being: Debugging APIs, integration with the Gnome platform (Accessibility, Pango rendering, Gdk/Gtk, Glade, GnomeUI), Mozilla, OpenGL, extensive database support (Microsoft only supports a couple of providers out of the box, while Mono has support for 11 different providers), our POSIX integration libraries and finally the embedded API (used to add scripting to applications and host the CLI, or for example as an embedded runtime in Apache).

      The core of the .NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): 218.html [].

      Basically a grant is given to anyone who want to implement those components for free and for any purpose.

      The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.

      The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless.

      Not providing a patented capability would weaken the interoperability, but it would still provide the free software / open source software community with good development tools, which is the primary reason for developing Mono.

      The patents do not apply in countries where software patents are not allowed.

      For Linux server and desktop development, we only need the ECMA components, and things that we have developed (like Gtk#) or Apache integration.

      With the new Novell/Microsoft agreement, will the patent policy change?

      Mono is a community project, and as such, we will continue to implement the policy of not integrating knowingly infringing code into Mono.

      And we will continue to follow the steps outlined in the previous topic if code that potentially infringes is found: finding prior art, finding different implementation techniques, or if none of those are possible, removing the code from Mono.
      • by Richard W.M. Jones ( 591125 ) <rich&annexia,org> on Friday November 10, 2006 @06:27PM (#16800232) Homepage
        Can someone please tell me, which patents is Microsoft alleging that Mono infriges? Patent numbers please, not general assertions or FUD.


        • by penix1 ( 722987 )
          Can someone please tell me, which patents is Microsoft alleging that Mono infriges? Patent numbers please, not general assertions or FUD.

          My guess would be one of these:

          Microsoft+winforms [] patent search.

      • by segedunum ( 883035 ) on Friday November 10, 2006 @06:55PM (#16800506)
        The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.
        NO. Microsoft has made it abundantly clear that when you implement the the ECMA stuff, and your own CLR, you are entering into a RAND agreement with Microsoft, and they have patents essential to the running of it: n/0,14179,2887217,00.html []

        This was pointed out years ago. No, how long does this agreement last? The answer is, as long as Microsoft wants it to. Should Microsoft revoke this agreement, or initiate a revocation, then the worst that will happen is that the ECMA standards will be revoked. The ECMA wording on this is pathetically weak and under no circumstances gives a legally binding long-term guarantee. This is why we had all that rubbish about a 'letter from Microsoft' that didn't materialise some time back: nduct.htm []

        The whole 'ECMA is safe' thing is what the Mono people would have you believe. It isn't. The RAND stuff is double speak, because Microsoft do have patents that are specific to implementing .Net, CLR, the ECMA stuff etc. Not Java or anything else - just .Net. The e-mail quoted above basically means nothing.

        It's actually more likely that the Microsoft specific stuff like ADO.Net, ASP.Net and Windows.Forms are safer since these are only namespaces in an API, although their patents basically say that if you're implementing .Net stuff and running it in a CLR then it applies. Fairly clever actually. They're saying that if you want to implement some of the stuff in a JVM or something, then that's OK, but if you're cloning a Microsoft compatible .Net then it applies to you.
        • FUD (Score:5, Insightful)

          by oohshiny ( 998054 ) on Friday November 10, 2006 @08:36PM (#16801464)
          Microsoft has made it abundantly clear that when you implement the the ECMA stuff, and your own CLR, you are entering into a RAND agreement with Microsoft, and they have patents essential to the running of it:

          It doesn't matter what Microsoft "makes clear", they are simply spreading FUD, and so are you. You don't enter into agreements by implementing a public standard. You may be infringing on their patents, but given the vast amount of prior art, it seems unlikely that Mono is infringing on any claim that would hold up. And Microsoft's statement of terms may not be satisfying, but a court would take it into account if there ever were a lawsuit.

          And what's the alternative? Sun has many patents on Java, has actively defended their intellectual property against FOSS projects, and open source implementations need to implement the entire Java platform in order to be useful.

          Mono, in contrast, is a separate implementation, under an open source license, based largely on its own APIs and libraries. Also, Microsoft's patents have been scrutinized in detail.

          The situation may not be very satisfying, but for anybody wanting something faster than Python and higher level than C++, the choices come down to Java and C#. Technically, I think C# is superior, and at least for now, the legal situation surrounding it is also better than Java.
        • be specific (Score:4, Interesting)

          by idlake ( 850372 ) on Friday November 10, 2006 @08:43PM (#16801530)
          People like you produce a lot of hot air, but please be specific for once:

          * Which patents is Mono suppose to be violating?

          * What reasons does anybody have to believe that those patents actually are worth the paper they're written on?

          * Given Microsoft's royalty-free licensing terms, what argument could they possibly make to a judge about damages?

          * Why do you believe that those patents are hard to work around should Microsoft be insane enough to assert them?

          * Which modern platform is guaranteed to be free from potential patent claims (from Microsoft or anybody else), and where is the evidence?

          If people like you can't provide clear, convincing answers to these questions, then we might as well stick with Mono for the time being.
        • by msobkow ( 48369 )

          My understanding is the core libraries/packages/whatever-the-buzzword-of-the-w e ek-is and the syntax of C# are specified by the ECMA standard. This is analagous to the ANSI specs that cover C++ syntax as well as core libraries and STL.

          But as with ANSI C++, a language and base libraries is a very, very small part of a complete application environment. It's nice that the Mono team is redeveloping compatible APIs, but that won't prevent the same game that eventually killed OS/2: Every time IBM's team got

      • by mikaelhg ( 47691 )
        Very nice astroturf! Which PR company do you have to hire to be able to push this kind of astroturf and get it upmodded by sock puppet accounts?
    • Re: (Score:2, Interesting)

      by RealSurreal ( 620564 ) *
      A week ago I would have said you were a paranoid, FUD-spreading nutjob but now I have to agree with you. Novell have sold themselves out and I'm going to be deeply suspicious of anything they do from now on.
    • Could this be the reason Novell signed that agreement with Microsoft?
    • Re: (Score:2, Insightful)

      by debackerl ( 1025744 )
      Stop spreading FUD about patents. Microsoft will likely never attack because Novell could counter-attack using the Open Invention Network. If you never heard about OIN, just google for "Mono patent OIN". Also up to now Microsoft has never been hostile to this new implementation. Of course this does not mean they would never attack, but they know what would happen to them in that case. Also Mono take care of doing clean-room implementation to have a pretty clean implementation.
    • Microsoft proposed C# as an open standard for anyone to lose and implement. If They try to sue anyone for implementing C# wouldn't they risk running into RICO and fraud issues?
  • Since the linux version is forever a 'coming soon' rumour, maybe mono will let imeem work on my Ubuntu box.
    • yeah, right about the time the new Duke Nukem is released for quad-core x86-64 technology with support for 3D holographic displays using quantum computer acceleration units.
  • Very good! (Score:5, Interesting)

    by Orion Blastar ( 457579 ) <orionblastar@gmail . c om> on Friday November 10, 2006 @05:27PM (#16799596) Homepage Journal
    I want to be able to develop applications in both Windows and Linux. VS.Net and Mono allow me to use the same code with very little tweaking between platforms and keep using my Visual BASIC skills I learned over a decade ago.

    Windows Forums means I don't have to rewrite part of the program that uses forms for Linux.

    I hope this gets more VS.Net developers porting over to Linux using Mono. Linux can really use more easy to use and easy to develop applications without having to learn kernel hacking and methods that exist only for Linux. This is a good thing and maybe the corporations will decide to have some Linux workstations if they can develop VB.Net applications for them the same way they develop them for Windows.
    • Re: (Score:2, Informative)

      "Windows Forums"?

      You know, this has been my major concern with Mono -- moronic Visual Basic programmers migrating to Linux. And if spelling isn't enough:

      Linux can really use more easy to use and easy to develop applications without having to learn kernel hacking and methods that exist only for Linux.

      Most software I use can be compiled with very little modification between Linux or OS X (using X11). I'm a Linux developer and I rarely touch kernel code, and then, only for fun. We have a local radio station

      • My requirements for leaving Win32 and GDI are 1) hardware-assisted scrolling, 2) fast blit of memory frame buffer where I can set the pixels, and 3) vertical sync-locked screen updates. Java Swing can do 1) with Graphics.copyArea(), 2) with BufferedImage, VolatileImage, and while Swing only offers BufferStrategy on full-screen Windows, I have written a Linux-X11-OpenGLX vertical sync checker and access it with JNI. Furthermore, the heretofore pokey horizontal scrolls and partial screen updates in X11 are
      • by abradsn ( 542213 )
        You are an idiot. Because some1 spells something wrng you thnk that you R smart. They had valid pointz and you are just an idiot.
    • by HiThere ( 15173 ) *
      If that's what you want, use Java, Ruby, Python, or some other approach.

      This one looks too dangerous to risk. It *MIGHT* be safe... but "do you feel lucky?".

      MS has issued a clear warning that is some project becomes popular, they will bankrupt it. Exactly which patents might be used aren't obvious, but there have long been suspicions that MS has some patents covering parts of .net which are ostensibly "Well, the API is open. Build it if you can." This contract with Novell right before the release of a v
      • by abradsn ( 542213 )
        That is not a good thing if you already have code written. Besides, the languages you mention might (read do) have pitfalls that others don't share. I don't want to port 100k or 200k lines of code to Python. It would be quicker and shorter to write my own compiler or in this case... use one that someone else wrote for that operating system.
    • Don't count on your visual basic skills you learned "over a decade ago" helping you out much. VB.Net syntax is similar to old-school vb5-6, but writing apps for the .net framework is a completely different kettle of fish. The difference between C# and is tiny compared with the difference between vb6 and vb7 (

      You can still hack something ugly together with (or c#) in a hurry, but if you want to do it right you have to take a different approach.
    • by Quarters ( 18322 )
      What good are your decade old Visual Basic skills when the entire concept and syntax of the language changed between VB6 and VB.NET? They're entirely different. VB.NET shares more in common (quite a lot, really) with C# than it does with VB6.
    • I want to be able to develop applications in both Windows and Linux. VS.Net and Mono allow me to use the same code with very little tweaking between platforms and keep using my Visual BASIC skills I learned over a decade ago.

      So would RealBASIC [], with the added advantages of producing actual native binaries, having a reasonable UI on OS X, and not being open to Microsoft patent claims.

  • Indeed. (Score:5, Interesting)

    by Shados ( 741919 ) on Friday November 10, 2006 @05:28PM (#16799606)
    This is a pretty cool project, and its coming along nicely. I really want to see it succeed, because that would allow me to spread my skills to a wider array of customers. Unfortunately, in its current state, MONO is only a partial implementation of .NET 1. And honestly: .NET 1 was garbage, and the vast majority of software that had the unfortunate badluck of being developped under it have been upgraded to the excellent .NET 2 by now (it is rare that apps get updated that quickly, for example between different java version.).

    And now with .NET 3 out (which is only an extension of .NET 2, not an actual new version of the framework...dumbass marketing idiots at microsoft), .NET 2 is even more important.
    • Re: (Score:3, Informative)

      by Shados ( 741919 )
      Ok, before someone wacks me with a stick. Seems like Mono after all does have partial .NET 2 features. They should be careful though...I see on their roadmap ASP.NET 2.0... while C# and such are under ECMA standards (I beleive), ASP.NET technologies are partially patented and not given out as a standard for anyone to play with. Playing with fire there.
    • .NET 3 (Score:3, Insightful)

      by nurb432 ( 527695 )
      its not just an 'extension', its a vehicle to kill off pre XP machines.
      • As a win32 programmer, the quicker the general populace moves to XP or above, the happier I'll be. It may not seem like it from a user perspective, but there *are* good API changes that 2k has no equivalent of.
    • People around here are acting like Mono supports WinForms for the first time.

      Apparently, these people either never heard of Mono before, or assumed it was an STD. Really, nothing has changed -- it's just getting a little better and a little more complete. Basically, it's like Wine, only it might take on a life of its own outside of simply allowing Windows programs to work elsewhere.

      I doubt it, though. Right now, my money's on Perl6.
    • by XMyth ( 266414 )
      Why do you say .NET 1 was garbage? I'm really curious. I've using .NET since Beta1 and I really didn't have any big problems with .NET 1.0. 2.0 added some great stuff for sure (generics and anonymous methods, YES!) but I didn't feel .NET 1.0 was lacking in any great way.
      • Re:Indeed. (Score:4, Interesting)

        by Shados ( 741919 ) on Friday November 10, 2006 @09:25PM (#16801826)
        Well, the ADO.NET model was fairly bad, asynchroneous execution support was poor, no generic, no nullable types, VB.NET didn't support automatic documentation. The framework's architecture assumed a lot of generated code, but without a good way to deal with it (partial classes). Lack of 2 way databinding, making all the RAD-like features 95% useless in corporate environments. And so on and so on. A lot of the architecture of the API was also remenecent (spelling?) of the old Microsoft-style MFC/VB6, keeping the same weaknesses. A lot of them have been fixed in .NET 2, but still there's a bunch left (Like how the System.Drawing namespace relies a lot on GDI, and uses Enumerations for configurations, instead of the Strategy pattern to allow us to extend it).

        Thats for the language. ASP.NET 1 is really where the garbage was (the above was mostly that the languages weren't mature enough). The page model was horrible in every ways, shape, or forms.

        Visual Studio 2002/2003 was a fairly poor and feature-lacking IDE, too (and lets face it: in the microsoft world, the IDE is part of the environment).

        I guess the reason I felt that way, was that Java 1.5 came out not that long after .NET 1, and had most of the features above, so when came time to pick a framework, you had on one side a free (not "Free") framework that can run on most relevent platforms, and has all the features you'll want, and on the other side, you have an obviously feature-lacking framework that is -bound- to get a major overhaul, thus crippling your investments, and it only runs on one platform to boot.

        If you did .NET 1 in Windows Form or services, its not so bad. It wasn't adequate, but it was to be expected from a version 1. If a company did ASP.NET (not counting web services), I really feel like they wasted a lot of money. Yes, you can upgrade it relatively easily: however, ASP.NET 2 allows for much better and cleaner software architectures, the like that were not possible in 1.1. Adding new components to a large scale apps using 2.0 architecture when the app was started under 1.0/1.1 means that your architecture will be fairly consistant. AKA: You're screwed.

        Don't get me wrong, if you look at my posting history, I'm starting to have a reputation to being a Microsoft butt kisser, so I'm definately not biaised against them. I just feel .NET 2.0 should have been the first version, as it is truly a good product (which is why 3.0 is just an extension of 2.0, as it should be), while 1.1 had to go through several major architectural changes.
  • Nono (Score:2, Funny)

    by Anonymous Coward
    This is Monkey business.
  • Sharp Develop (Score:2, Interesting)

    by dedalus2000 ( 704571 )
    so does this mean sharp develop will now run on mono?
    • Of course, Linux has MonoDevelop, which is great for developing Linux apps and can be used for developing Windows apps.

      However, I think there is some merit to the question. Sharpdevelop on Linux could be a good choice when people need to develop applications targetted at Windows, but when they prefer developing on Linux. The advantage of Sharpdevelop for that purpose would be that its primary platform is Windows, so you're less likely to incorporate Linux-specific features in your apps. (In a sense, Mono
  • I haven't really been following Mono, or .NET, but upon reading this I was suddenly reminded of the story from a couple days ago about Novel and Microsoft getting into bed together. []

    Now, I'm sure a number of anti-microsoft fanboi-types will automatically jump all over this, but I'm hoping that someone who isn't a member of that group can explain to me if .Net (and sorta by extension, Mono) is a big enough deal to Microsoft that they would worm their way into this solely for the purposes of shitcanning Mono

  • Dump VB.NET in exchange for C#. You'll get more supporters on an open source system if you move to language that more closely resembles C, C++, Java. Sure they're compatible on a Windows box, but C# seems like a better choice between the two on Linux.
    • by thechronic ( 892545 ) on Friday November 10, 2006 @06:22PM (#16800152)
      One of the major points of the .NET framework is having multiple languages being able to compile to same bytecode. The implementation of Mono or .NET has nothing to do with which high-level languages utilize it, therefore dumping VB.NET over C# doesn't buy you anything. In fact, having more languages to choose from encourages development using Mono...and if you don't like VB or C# or managed C++, you can make your own language, as long as it can be described by the semantics of the CLR.
    • Re: (Score:3, Insightful)

      by Shados ( 741919 )
      The "real" .NET framework supports C/C++, but also a total of, at last count, 44 languages (give or take a few since last i checked). Removing any of them really goes against the whole idea.
      • The idea is not to remove them, but to place greater emphasis on C like languages. In my opinion, emphasizing .NET C++/C# increases the maintainability of the code because there is a lower learning curve associated with them. Going from C++ and Java to C# was a snap because most of the syntax was the same. Granted, there were a couple of things that kinda chaffed, like the capitalization of methods ( Foo.Bar(int baz); ) Aside from that and a few others, it wasn't a bad transition at all, when compared to
        • by Shados ( 741919 )
          Makes sense. I felt like they were putting a lot of emphasis on C#, though. The case of methods is indeed a bit confusing. Microsoft tends to make its environments with Visual Studio in mind, so most .NET developers actualy never notice, since Intellisense catches it all. When you have to edit code in VIM though because you're at the customer's site and you realise there's a bug in your code behind (which can be modified without having to recompile manually), and you fight to figure out the case, its a mess
  • From mono 1.20 release notes:

    ADO.NET, ASP.NET, System.Configuration, and Windows.Forms only contain partial support for 2.0 APIs, full support will only be available in Mono 2.0.

    How partial is that support?

    First try:

    $ mono Test.exe

    ** (Test.exe:6411): WARNING **: Missing method System.Windows.Forms.ToolStripItem::set_ImageTrans parentColor(Color) in assembly /usr/lib/mono/gac/System.Windows.Forms/ 7a5c561934e089/System.Windows.Forms.dll, referenced in assembly /path/to/Test.exe

    Unhandled Exception:
  • by caudron ( 466327 ) on Friday November 10, 2006 @07:59PM (#16801090) Homepage
    I'm a developer. I've made considerable money as a .NET developer, specifically, and while I am fully entrenched in the Free Software camp, I admit that I like the.NET framework overall. That said ... ...The open source community has some of the best and brightest minds in the software world involved in its improvement. So the question that naturally follows is, "Why haven't we designed and implemented our own framework?"

    Seriously, we spend endless hours debating which is less evil---java or mono---and we complain that both don't offer us the flexibility we have grown accustomed to in the F/OSS world, so why haven't we just started from scratch and done our own linux-centric framework to ease RAD work and simplify the task of getting started in Linux development.

    I'm not suggesting it has a place everywhere. Certainly most kernel work and most driver work would need to stay C-based, but if we had a framework designed from the ground up to open Gnome and KDE devlopment (well, userspace development in general, really) it would get used. There's obviously a market for it. Developers argue over Java and .NET/Mono endlessly as to which is best for Linux development, which is faster, which is easier, which is just plain better. Write in whatever language you want, but write to the framework that best opens Linux up the developer. Without question, that would be the framework that was written specifically for it.

    I dunno. There may be good reasons, but I don't see them from my vantage point.

    Til I see a solid and Free alternative, I'm gonna stick with Mono (which I'm impressed with so far), but I'll keep my eye out.

    Tom Caudron []
    • by Ash-Fox ( 726320 )
      So the question that naturally follows is, "Why haven't we designed and implemented our own framework?"
      Python is one.
      • by caudron ( 466327 ) on Saturday November 11, 2006 @04:46PM (#16808136) Homepage
        I don't disagree that Python is a good language, that makes development easy, but I'm not talking about languages. I'm talking frameworks---one totally divorced from the languages used to code against it. Python is great, but it's not even in the ballpark of .NET's scope, power and flexibility (Oh man, I am SO gonna get a /. beatdown over that comment ).

        Python is to Linux as VB is to Windows. That has its place, and I'm glad it's there, but I mean a framework that would have compile to a VM that sits above the OS (perhaps even in userspace!) and that has bindings for c#, python, ruby, smalltalk, etc...).

        I haven't thought through the details fully, and I could be totally wrong (wouldn't be the first time) but I don't know of anything that makes coding on Linux as easy as coding against .NET (except mono and java, which being /potentially/ non-free causes us some problems).

        Consider this the feedback of a Windows developer by trade who uses Linux exclusively at home. Anecdotal, but it's the opinion of many/most Windows developers. And they often won't go with mono becuase mono is consistently about 15 months behind MS in its API.

        Tom Caudron []
    • "Why haven't we designed and implemented our own framework?"

      We have. Many of them. One for Python [], one for C++, one for Objective-C [], one for Smalltalk []...

    • by killjoe ( 766577 )
      Ruby on rails, django, spring, hibernate, and a thousand others.
  • I developed a whole game platform using embedded Mono with Irrlicht - it was somewhat larger footprint initially - but the amount of functionality and speed of code development completely demolishes the alternatives - namely C/C++ code. I never ran into ANY speed issues with the VM - so perhaps that's just interface code.

    And given the state of most game engines - an extra 4 MBytes of resident code was not a problem.
  • The more the merrier (Score:4, Interesting)

    by Brandybuck ( 704397 ) on Friday November 10, 2006 @09:26PM (#16801832) Homepage Journal
    As a professional Qt developer, I have a great number of clients who come to me to get out of the .NET trap. They were promised by Bill Gates and Miguel Icaza that .NET was transparently crossplatform. That it was a fully open standard. That there were not any performance or memory problems. Companies too cheap to upgrade from freebiee VS Express are forking over the cash for single-platform Qt licenses. Why? Because Qt is turning out to be THE native C++ API for Windows, Mac and Unix.

The program isn't debugged until the last user is dead.