|.NET Core Version 1 Released - So What?|
|Written by Mike James|
|Wednesday, 29 June 2016|
In some senses this is a momentous event - Microsoft has a Version 1 of the cross-platform open source .NET Core. But is it momentous more because of the change in approach it signals, or is there some real value in it. In short, should you rush out and install .NET Core?
Mostly the answer is probably not.
There are some programmers who want to do exactly what .NET Core is designed for and for these it is an exciting time. For the average programmer, it is difficult to see where the revolution would lead and why anyone would want to follow.
Version1.0 of .NET core is a cross-platform basic library for .NET applications. It supports all of the standard .NET languages - C#, VB, F# and C++. You can write programs that will run under Windows, OS X, Linux and with Xamarin iOS. It is supported by Red Hat and, in fact, under Linux the Red Hat implementation is the standard.
It is composed of the .NET Runtime which will run compiled MSIL code; a framework library that provides primitive data types etc; a set of SDK tools - compilers etc; and a loader.
In many ways .NET Core doesn't even provide as much infrastructure as Mono, the first open source port of .NET, did and still does. The Mono project even had an open source version of Silverlight - something that isn't likely to happen in the official open source project.
So isn't the ability to run .NET programs on just about any platform that matters (note: BSD Unix seems to be missing) an important opportunity?
The big problem is that there is no common UI.
Microsoft hasn't, and isn't likely to open source Win Forms or WPF and who knows what dependencies Universal Apps have. The big problem is that Win Forms needs Windows and there rest need DirectX which are only available on Windows.
What this means is that if you are targeting .NET core then the only sort of cross-platform applications you can write are console apps - and not many programmers want to write console apps. This is the reason that the .NET Blog says:
".NET Core is a cross-platform, open source, and modular .NET platform for creating modern web apps, microservices, libraries and console applications."
The web apps reference really means in conjunction with ASP.NET Core 1, which has also just been released. This is great if you are working on a brand new MVC-style ASP app, but not if you have a legacy Web Forms ASP .NET app. While there are some enthusiastic people excited by the new way of doing Microsoft-style websites, it is difficult to see why a this is preferable to other approaches unless you are already a Microsoft shop, and even in this case it is a young technology that might not be a good bet for the future.
If you don't buy into the new ASP.NET you can create microservices, libraries and console apps - well that's still a minority. Most apps need a GUI of some description and this is currently what is lacking. There is no cross platform GUI for .NET Core except for Xamarin Forms, which is another unknown technology for most Microsoft programmers.
The bottom line is that .NET Core is a step in the progress of the Open Sourcing of selected Microsoft technologies and as such we should celebrate.
Should you rush off, download it and get programming?
or email your comment to: firstname.lastname@example.org
|Last Updated ( Wednesday, 29 June 2016 )|