Mono 2.0 and .NET On Linux
Several readers noted the release of Mono 2.0, which is compatible with Microsoft's .NET Framework 2.0. According to Miguel de Icaza, "... users can move over server applications built for .NET and client applications built with Windows Forms." InternetNews points out that only about half of the .NET apps out there will work on Mono 2.0, for a variety of reasons including (but not limited to) legacy Windows-only libraries and Microsoft's progress on .NET 3.0 and 3.5 APIs.
I like Mono, I really do, however it's always playing catch-up, it's by it's very nature it's always going to be one step behind Microsoft. Without the support of features in .Net 3.5, very few people are going to choose it for new developments.
Most of it anyway; but crucially, LINQ.
The bits missing (Windows Workflow Foundation, Windows Communication Foundation and Windows Presentation Foundation) aren't as crucial in my personal opinion; they are just nice toys you aren't going to miss if you've never had them before.
LINQ however is a killer feature IMO; I'm glad to see that's now available on mono.
throw new NoSignatureException();
"A question: Is there a functional IDE for Mono, for us who don't want gnome or even gnome libs on our System?"
Um, what? You'll get gnome cooties?
Monodevelop is a good IDE, and I don't think having GTK and related libs installed is going to steal your masculinity or anything.
Trust the Computer. The Computer is your friend.
Except that C# is a decent little language? It's good to see it open-source, that way it can have a life after Microsoft tires of it.
I don't want to run my stuff on Microsoft technologies but I have potential (and actual) customers who already do use them.
In order to integrate their application and ours we needed to code a little plugin to run on their ASP.NET (or whatever the correct name is) servers.
Mono allowed me to develop the required plugin on a Ubuntu box. (They then wanted the resulting assembly signed, we gave them the source code so they could do it themselves).
Microsoft was relevant to us because we had a potential customer who used it and isn't about to abandon their entire existing system just for us.
Without Mono there would have been two options: .NET
a) Pony up to MS to develop in
b) Don't do the business.
neither of which are particularly appealing.
Mono allows competition and competition is good.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
Yeah, it's a bitch trying to develop .net apps on my Amiga. I wish developers would stop assuming I'm using a Linux distro with features. Assholes.
How we know is more important than what we know.
Good luck porting over LoadDLL("C:\\windows\\system32\\mylib.dll");.
The existence of a working mono is a necessary condition, not a sufficient one, for porting an application. Whether that condition is fulfilled and to what degree, I'll leave up to you to discuss.
Portability comes from being largely independent of the differences between the platform you want to port from and the one you want to port to. Good portability engineering consists of gathering all the platform-specific bits into one unit with a uniform interface, such that it's easy to write platform-specific modules for all the platforms you want to support; then, make sure to test on all your target platforms.
For a good piece of engineering, see Simon Tatham's puzzle collection (http://www.chiark.greenend.org.uk/~sgtatham/puzzles/). To see the importance of testing on all your target platforms, see the state of synergy on the Mac (http://synergy2.sourceforge.net/ -- "The Mac OS X port is incomplete [...]"). To see the importance of isolating your platform dependence, see any code that makes liberal use of fork and ioctl everywhere [sorry, I can't name an example].
Also, good portability engineering done up front is much less work (i.e. cheaper for your employer) than when the project is already deployed on windows only.
-- Jonas K
There's a big difference between the two - because devs don't target WINE, WINE is the "embrace" part of moving from Windows. Because devs target .NET, .NET is the "embrace" part of moving from Linux.
So, these two technologies are actually on opposing sides of this particular ideological fence - one is an attempt at removing lock-in, the other is an attempt at locking-in.
I'm a minority race. Save your vitriol for white people.
I wish the real .NET could be installed on Wine. Not because I like .NET, but because I want to run those programs that people make in .NET these days, in Wine just like I can do with regular programs. If Wine wants to work like Windows, it should also be possible to install the real .NET on it just like you can do on the real Windows. They should try to make it work just as well as they did with MS Office. Then it would become possible to run so much more programs in Wine without problems and without having to reboot to Windows!
You're not making much sense. Yes, people don't target WINE, they target the Windows API, just like they target the .NET API. Wine is a means of running Windows code on linux, Mono is a means of running .NET code on linux. People will be writing code for both, so might as well support running it on linux.
Mono is Java in disguise, if you want cross platforms without traps use Java
It is like the mortgage crash, a few saw it coming, they said so, but the majority didn't care
A few people says that Mono is a legal and technology trap (search the web for mono trap), in the future this will reveal true, do not forget that you where warned
The .NET platform and C# looks like decent enough technology, but I just don't think it's compelling enough to prompt a switch from Java.
With these back-room Novell/MS deals, the patent situation around Mono continues to be as clear as mud, and with Java I get it all under the GPL (with a clear and written patent grant) right from the source. Not to mention Sun's process for advancing the platform (JCP), while not perfect, is far more open and community driven, catering to much wider variety of vendors and platforms than Microsoft.
With Eclipse and Netbeans, the Java tool support on Linux is fantastic as well. With RedHat and JBoss, the server platform is also well supported on Linux.
So, yeah, nice work, but no thanks.
Before I tear apart what you think passes for an argument, let me say that the Mono folks are doing an amazing job and they get way too little credit. The tinfoil hat brigade around here seems to have taken on Mono as its personal whipping boy, and it's totally unfair and uncalled for.
Sure, but weren't you supposed to be talking about Mono there somewhere? Java used to provide lock-in, too. Hence, the GNU Classpath project, which is pretty much identical in its goals to Mono. Funny that I never saw you people screaming about that one being a trap.
Wow, get some perspective there. How many killer apps are there on Linux that the Windows people are craving? KDE? Gnome? Firefox? OpenOffice? None of those are on .NET and most of them run on Windows, anyway. Do you think that Firefox, OOo and KDE are all helping people move away from Linux by providing Windows ports? Isn't it more likely that without those Windows ports, most of these projects would go nowhere?
It's really quite obvious to anyone with any actual knowledge of how the industry works that people are going to write applications without Linux in mind. The Mono project, just like the Wine project, lets people who run Linux run applications that other people wrote for Windows.
As it turns out, there's also a bunch of useful libraries that Mono includes that you can use when coding for platforms other than Windows. It boggles my mind that anyone would think that this is somehow a trap. It's just a useful way to access Unixy things on Mono. But it clearly can't be breaking Linux lock-in or whatever pea-brained scheme you've come up with.
.NET has been around for 7-8 years now. Do you honestly think code can't become legacy in that amount of time? Here's a tip: if you think Linux has any lock-in potential for applications written on it, then perhaps you shouldn't talk too much about intellectual integrity.
really? I thought MS has dropped support for OpenGL, apart from its very legacy v1.1 base. And you know they will never write a managed wrapper for it.
So, who will write a .NET game using opengl? If you're a Windows dev (and most game devs are) then you'll be using DirectX.NET, which oh so conveniently is not available for Linux.
So close. Yet so immensely far. Do you see the problem now? Its business a usual for MS, but with the added bonus of saying "But we are working on Linux interoperability, Mr DoJ, look - Mono".
To be pedantic I think the C# language definition is open source. What isn't is the runtime. You could write a C# compiler with its own runtime and you'd have a pretty nifty alternative to Java.
What you can't do is copy the windows runtime. I wonder how mono would do if Microsoft invoked patents against it. I suspect not well, but with Mono in its current state it is to MS's advantage - they can say they are multi-platform but know that most people will give up because of the 50% of programs that won't run and turn to Windows.
WINE is as to Windows as Mono is as to .NET
This is basic logical reasoning.
As a .net developer, you have to notice that Managed DirectX doesn't exist anymore, and XNA is too nowhere near as powerful as MDX was. There is SlimDX, which is a binding around DX10, which is quite cool, but has only become available recently.
.NET. It provides cross platform .NET bindings for openGL, SDL/glut/glfw, as well as OpenAL, devil and CG. It's basically a cross platform XNA equivalent.... but a lot better ;)
/. is full of MS bashing, I'd actually suggest you go try mono with the Tao framework, and it might prove to be a suprisingly pleasing environment to work in....
The Tao Framework is more or less the best thing out there right now for
Whilst i appreciate
All the budding developers who hear about .NET's cross-platform nature will want to learn it. All, except the wisest, of them will be forced to learn MS .NET from MSDN. They'll code a few .NET applications in C#, test them on M$ Windows and let their brains embrace .NET beyond all question. One day they find that most of their applications don't work on Linux/Mono. They'll scream on all public forums - "Linux is crap!!!". Someone tries to explain to them that the problem is because of their heavy usage of M$-specific extensions which are not part of ECMA .NET. Then they'll scream again - "ECMA .NET?#??!!#! WTF is that?". Such is the depth of lock-in involved with .NET.
The largest prime factor of my UID is 263267.
Or better: Write a C# compiler that compiles to the java virtual machine.
C# is an iso standard language, which puts it in the same league as C/C++.....
...and OOXML.
Java used to provide lock-in, too. Hence, the GNU Classpath project, which is pretty much identical in its goals to Mono. Funny that I never saw you people screaming about that one being a trap.
The Java Trap was that you might get stuck on a language with no FOSS implementation and be reliant on a proprietary runtime. GNU Classpath and friends disarmed the trap by providing FOSS backends.
The Mono Trap is that you might get stuck on a platform encumbered by patents, so that even if you're coding on a 100% FOSS system, a court ruling granting an injunction against further release and development of Mono could yank the rug out from under you. Maybe that's no big deal for cute games or desktop applets, but there's no way on Earth I'd stake my business on a platform that may be nuked from orbit at any moment.
It's really quite obvious to anyone with any actual knowledge of how the industry works that people are going to write applications without Linux in mind.
It's equally obvious that Microsoft has never entered a relationship without destroying its partner. The naivety behind thinking that maybe they'll play nice this one time, for the first time in the history of their company, is simply astounding.
Dewey, what part of this looks like authorities should be involved?
Thats the exact position Java has been in for years. Language Spec and JVM spec were open, but Sun's runtime was not. Anyone could make their own runtime. Yet people complained that Java was not open. So why would MS get special treatment for an open spec without an open platform?