Microsoft to Open Source .NET Stack, Expand Platform to OS X, Linux

Microsoft today announced that it is furthering its commitment to cross-platform development with an expanded open source program for its .NET platform and additional support for operating systems outside of Microsoft Windows.
"With billions of devices in the market today, developers need tools that target many different form factors and platforms," said S. Somasegar, corporate vice president, Developer Division, Microsoft. "Through Visual Studio and .NET we are committed to delivering a comprehensive end-to-end solution for developers to build and manage applications across multiple devices and platforms."
After releasing several .NET libraries earlier this year to the open source community, Microsoft confirmed it would open source the full server .NET stack, making it available to developers via Github. The company also is expanding .NET to run on third-party platforms such as Linux and OS X and is working with the open source Mono project to ensure these cross-platform operations are ready for enterprise-level applications.

Microsoft-dotNET-logo
As part of its Connect() event, Microsoft also unveiled its next generation Visual Studio 2015 developer suite with expanded cross-platform support. Additionally, the Redmond company announced the immediate release of Visual Studio Community 2013 and Visual Studio 2013 Update 4.

This open source initiative is part of a broader campaign to support platforms outside of Windows and Windows Phone. The company now offers Office on the iPhone and iPad and is continuing its support for Apple's OS X platform. An updated version of Office for Mac is rumored for release sometime in 2015.

Top Rated Comments

(View all)
Avatar
68 months ago
So to recap, Microsoft is going open source and free with some of their products, Google is moving towards closed source with parts of Android, and Apple is now selling phablets faster than they can make them. Also my iPad is now as fast as a MacBook Air. What kind of alternate reality tech world have I suddenly stumbled into?
Rating: 37 Votes
Avatar
68 months ago
This seems huge, Nadella is killing it.
Rating: 21 Votes
Avatar
68 months ago

.Net was suppose to be a cross platform language


In Microsoft-speak, "cross platform" means it will run on different versions of Windows. I'm not joking.
Rating: 18 Votes
Avatar
68 months ago

This seems huge, Nadella is killing it.


.NET is actually a joy to work with. Being able to write apps in C# for OS X has been a dream for a lot of developers. It's a very lovely language and supporting framework.

I don't mind Objective-C. I like Swift (a lot). Though being able to use C# on OS X and have first-party support and tools from Microsoft would make me a very happy camper.
Rating: 8 Votes
Avatar
68 months ago

I wouldn't call this Microsoft going open source. This is them making it easier for themselves to release clients to other operating systems without having to create a completely native client. Also allowing people to leverage their technology in other software...the end game is that Microsoft is not counting on Windows anymore but are still very much a paid software company.


How much more "open source" than the MIT license can they possibly go?
Rating: 6 Votes
Avatar
68 months ago
Not what you think

It seems like most of you should have first read the actual MS announcement.

This announcement says that their server-side .NET framework will be eventually able to run on Linux and OS X. Linux matters for servers, but OS X is not all that relevant. This announcement has nothing to do with desktop GUI apps. It's all about the server and enterprise. Relevant quote:

Delivering on its promise to support cross-platform development, Microsoft is providing the full .NET server stack in open source, including ASP.NET, the .NET compiler, the .NET Core Runtime, Framework and Libraries, enabling developers to build with .NET across Windows, Mac or Linux. Through this implementation, Microsoft will work closely with the open source community, taking contributions for future improvements to .NET and will work through the .NET Foundation.

“A strong, open source, cross-platform CLR opens significant new options for building large server-based systems,” said Brian McCallister, chief technology officer, Groupon. “This significantly expands the choices developers have when finding the right tool to solve their problem. I’m very excited to have access to the quality virtual machine and tooling of the CLR without having to completely rework our production infrastructure in order to run it!”


There is also nothing in this announcement about allowing you to write .NET software using a Mac. MS does not have a Mac IDE and I don't expect them to create one either.

This is a good direction for Microsoft and .NET, but unless you are an enterprise software developer using .NET, this announcement will not affect you in any way.
Rating: 4 Votes
Avatar
68 months ago
A little too late

This would have had more impact a few years ago, when .NET peaked. Since then, other cross platforms tools have emerged.

Hard to say what impact this will have on the Mac. Apple doesn't allow pre-reqs for application in the Mac App Store, so no app that require ".NET Framework 4.5 for Mac OS X".
Rating: 4 Votes
Avatar
68 months ago

I wonder how this will impact the Wine project? People have been working with Windows software on OS X and Linux for years. Can anyone speculate what this could mean? Is it possible that we could just "recompile" C# or .NET software for OS X and Linux? Or will it just work? Like Java?


I don't see how this would affect Wine. Wine is supposed to run compiled Windows executables. It is not aimed at being a portable .NET runtime. Further, not every Windows app is written in a .NET language. In fact, most aren't, and you can tell when they are because they take forever to load. :) Does Wine include a .NET runtime? If not, can it work with an existing one? I don't recall ever trying, but my intuition says no to both. I do remember trying with Mono, which did work (well, on Linux--with some effort on OS X) and might be a better comparison to make here--in fact, MS's annoucement mentions that they seem to be working together.

I predict no effect on Wine, which will continue to be useful as a last resort for running native Windows EXEs on Linux and a few other OSes. Microsoft's announcement will simply help the relatively Windows developers who do use .NET. Even then, I think there will still be a lot of effort involved in porting an app--I doubt you'll be able to take a .NET EXE and run it on a Mac, for example, but even porting code could be a bit of a challenge. May .NET code I see still invokes native Windows APIs, so of course that would need to be removed and worked around for other platforms; second, the CLR itself is different from all the libraries built on top of it. If you write a System.Windows.Forms app, has Microsoft said they're porting that library to other platforms? (Or even WPF for that matter, which despite the "W" seems like it might be a better candidate for porting? Or will they leave GUIs up to third-party libraries like GtkSharp?)

All things considered, however, I find this announcement exciting. I always enjoyed using Visual Studio for hobbyist projects, and not being limited by the Express versions will be great. If it makes doing the same on a Mac easier (by an officially supported pathway), that's even better.
Rating: 3 Votes
Avatar
68 months ago


- MS release a Windows version that isn't horrible and IMO is on a better track than OS X at the moment (tablet/mobile/PC consistent experience


not so sure about that - Windows 8 was considered a flop, and people hate it. two versions of IE? two "modes" of apps? it's confusing and I don't think a very successful implementation. perhaps that's why they're skipping 9 and going to v10 for the next major version.

I feel much better about OS X -- a solid OS that gets out of my way, is stable as hell, and isn't pretending it's a touch OS.
Rating: 3 Votes
Avatar
68 months ago
I know Linux people love dependency hell and shared libraries all over their system, but keep that crap out of my Mac software. If it's not all in the app bundle, I don't want the software (this doesn't include app associated data, like sample libraries). The Mac App Store doesn't allow prerequisites. That then means developers will be fattening up their app packages or .net installers will come as part of every app package that needs it. Neither of which I want.

External linked/shared libraries and frameworks are legacy engineering concepts and marketing (to developers) that programmers just won't let die. Microsoft created an entire system folder wrapper/emulation subsystem just to try to deal with the decades of DLL hell that legacy DOS/Windows created with its sloppy system architecture and design guidelines (as in, no guidelines). We do not live in the days of tiny storage devices, so there's no need to avoid compiling your code into the binary. If you need to reuse code, so be it. Code reuse isn't the cause of bloat; bad code is.

If it's not provided by the OS API, it should be compiled into the binary, or at the very least never live outside the app bundle. Dependencies SUCK. Multiple objects to position in a user's file system sucks. That's why Microsoft has a pile of breakable shortcuts to executables inside cluttered application folder hierarchies, and Apple has a programs folder where you can pretty much put things wherever the hell you want to, as it should be.
Rating: 2 Votes
[ Read All Comments ]