Microsoft has just announced they open sourced .NET,” including ASP.NET, the .NET compiler, the .NET Core Runtime, Framework and Libraries, enabling developers to build with .NET across Windows, Mac or Linux.” They’re including a patent promise. Miguel de Icaza reports that the Mono project will be “replacing chunks of Mono code that was either incomplete, buggy, or not as fully featured as it should be with Microsoft’s code,” and he also notes that “Microsoft has stated that they do not currently plan on taking patches back or engaging into a full open source community style development of this code base, as the requirements for backwards compatibility on Windows are very high.” Nevertheless, this is a very interesting development that demonstrates that Microsoft is serious about remaining relevant.
MIT License? So some might argue it’s now more open source than Java? Well I guess there are still closed Windows specific parts that creep into your code because they are not clearly marked as such. At least that is the criticism I heard, never wrote .NET code myself.
There are no Windows specific parts open sourced, the CoreCLR and its supporting technologies have been open sourced.
Right, that’s the potential problem. Non open sourced windows only parts that one might use while developing on windows and then try deploying on Linux.
There is always that potential problem. Even Java. I’ve run into Java server applications before and thought “great Java! write once, run anywhere! This should work on my Linux Box!” Err Nope. Windows only Java.
I’m sure the same issues do happen with popular open source applications that are more commonly deployed on linux, like Mysql, PHP and others.
Actually, they don’t. It’s pretty much only graphical Windows applications that fuck up that way.
Are you talking about Java apps?
Yeah, I’ve come across ones that were server side only, no UI, Windows only.
I don’t know if Linux desperately need .NET but some folks would like the ability to run ASP.NET websites on lower cost hosting platforms such as Linux servers.
Yeah, if its a new app, you can do that today with Mono. Obviously, Mono was struggling to keep up with Microsoft developments, so this should allow you to use up to date .NET versions easier.
The BCL won’t take community contributions, the core of .NET (CLR, GC, JIT compiler, etc.) will take community contributions and in fact a pull request has already been accepted and merged into master.
I am glad to see Microsoft in this openness process they already started; actually right now I see Microsoft by far more developers, hackers, homebrewers, etc. -friendly to, say, Apple.
By the way, why do you guys think on this move from Microsoft and Java’s future?
Do you think their destinies are orthogonal or maybe this will move a lot of developers away from Java to C#?
It will certainly defer or cancel the need of many existing .net shops migrating to Java to “future proof” their platform.
Except, that is absolutely *not* happening anyway, and is not even vaguely on the cards for most .Net shops.
VS-2015 supports Java.
http://nakedalm.com/installing-visual-studio-2015-side-side-2013-wi…
In what concerns my world, big bucks consulting, things will stay the same, as big corporations use both eco-systems.
But it will certainly foster .NET adoption in non-Microsoft platforms.
Is there any programs developed with .NET that Linux desperately needs then?
Depends on how Java continues to develop, and how well .net works on non windows platforms.
I’d suppose that large corporations are going to wait a while to see if this sticks around. Nothing would be worse than an unsupported version with a critical heart bleed/ poodle style vulnerability.
Java has already seen pretty serious erosion on the corporate LAN for a variety of reasons, this will only further cement this outside of needing Java to more directly hook into Oracle products. Java will continue to be used for backend/service type applications, but this move by Microsoft will certainly “legacy-ify” many Java codebases, and in many places where new development was going to be Java, .Net will now have to at least be considered since if they already have the hardware (*nix) to run Java apps/services, that same hardware can be used for .Net code. Java kind of sealed its own fate though, but that’s outside the scope of this thread. Java still has a very important role when it comes to devices, embedded systems, etc…which is ironic, b/c that’s how Java started out.
Here’s my .00002: I’m a .Net/Application Architect for a fortune 100 company, and what I’m excited about (for now at least) with this news is the ability to greatly reduce our Windows license costs by moving large chunks of our service layer (which is by far the largest layer in any large corporation) to cheap commodity hardware, running barebones OS’s/hypervisors. If .Net is ported to *nix, I can drop these service assemblies in, make some configuration changes, and have a solution that is vastly cheaper than Windows, assuming we have the proper support engineers in place to run the OS’s (this is the largest cost of any application environment: support). If Apache support can be provided for asp.net websites, and all of the functionality in IIS is supported, those are more Windows servers we can get rid of. This is a very tall order though as IIS is very baked in Windows, so starting with self hosted servers is more attainable at this point so early in the game.
It’s an exciting time to be a MSFT developer. We all knew this was coming at some point, but nothing of this magnitude all at once. People seem to think there is this great divide between the MSFT and FOSS world…there is not, these are just different tools that accomplish the same job at the end of the day. Everyone I know is elated at this news, in the space of the corporate LAN, this is what we call a game changer.
The new Community edition of VS 2013 is a nice addition. Free, and full addon functionality. MS is certainly changing.
Installed. I was just in the process of finally updating VS2010 with SP1 on my surface, as it is getting more likely that I can do real work on it… and 5 minutes after that was done I read my email … AAAGH!
This is the best news I’ve heard from Microsoft.
Now I can use Visual Studio’s latest version for free even in business.
Make sure you double check the license, there are restrictions when used in an “enterprise” environment, whatever that means.
The problems with the patent licence:
http://endsoftpatents.org/2014/11/ms-net/
The protections only cover distributing the code as part of a compliant .Net runtime, or as part of a program to run on such a runtime.
So if any compiler code was added to GCC or Python then there’s no protection and MS reserves the right to sue for infringement of their software patents.
Even making a streamlined .Net runtime would invalidate your protection since they specify that only compliant runtimes which implement all mandatory parts of Standard ECMA-335 qualify for patent protection.
So bascially you’re safe if you want to fine tune or port MS’s software.
How is this different from the patents covering the Java Runtime, GPL v.3 etc.
If I have a patent, and I decide to allow the Python project to use this patent, then Python and derivatives are covered by the promise, not ruby or GCC etc.
All it means is that .NET is better covered with patent promises than most other technologies on linux inclusive of PHP, Ruby, Perl and Python. I think that is where the animosity is coming from.
Besides a lot of the patents that covers the CLR etc are not owned by Microsoft and are not theirs to give away. So I totally do not have a problem with this.
The difference is that GPLv3 section 11 says that the distributor can’t sue you for patent infringement for exercising the freedoms the licence gives you:
“””Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor^aEURTMs essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.”””
If Microsoft distributed their code under GPLv3, we’d know were safe from their software patents, and we could rejoice and look for ways to use this code to improve existing projects.
Another difference is that Microsoft has a mountain of software patents, and using them against free software is part of their business model (think smartphone royalties). So we’ve good cause to worry about Microsoft.
We’ve no reason to worry about the Ruby or PHP developers sueing other free software projects with software patents.
… but undoubtfully a major move by Microsoft.
I should have exchanged title/content
Looks like Microsoft is serious about supporting .NET on all platforms and in all kinds of development environments, not just Windows. This, plus the open-sourcing and the release of a free Visual Studio Community Edition finally put .NET on an equal footing with Java, and remove almost all of my previous reasons not to consider using .NET.
What remains to be seen is how much platforms like ASP.NET MVC will be needed in the future. Most new web projects are ditching server-side templating in favor of client-side frameworks like Angular and in a few years when Web Components mature, the transition to client-side templating will be more or less complete. At that point all that is needed of a web server is the ability to serve static resources and provide REST services, sending JSON objects back and forth. The rich client is dead, long live the rich client!
Sure the .NET platform is about more than just ASP, but I’ll be curious to see how both Java and .NET technology stacks compete to maintain relevance in a world where their utility is slowly being eroded and upstarts like node.js are aggressively making inroads.
Then again, maybe performance-intensive applications involving things like WebSockets, WebRTC and heavy-duty number-crunching will give platforms like Java and .NET a new reason for being… so far they have both adapted to new situations admirably, so I wouldn’t count them out…
Edited 2014-11-13 07:25 UTC
The problem is the .NET trademark/name has a very negative history attached to it. A re-branding is required.
And I don’t mean Windows with .NET. I mean the OSAlert comment section. Back in my heyday this article would have been littered with comments exclaiming “It’s a trap!” MS is the EVIL. I’m so glad we are beyond that now. As a long time linux/mono user it’s nice to see we can actually talk about reality now.
To all who think that now .net is on equal footing with java, this is nonsense – at least for the enterprise. The java ecosystem is extremely diverse. The java community has always had open source as a core value in their culture. There is so much open source written on the java platform that even Microsoft with all their money will never be able to compete against. Then there is the JCP, an organization composed of all major corporations and individuals, that fosters the future of the platform. In fact the most popular implementations on the Java EE standard are open source and there are others immensely established that innovate outside the standard.
Don’t get me wrong. These are great news for those who have invested in the MS technologies. However, .net has no chance of competing with java on the enterprise sector.