Microsoft’s effort to make .NET open source is an effort to encourage sharing bug fixes, encourage sharing of documentation and libraries. Now, .NET could compete on a perfectly level playing field.
Microsoft has released .NET Core as open source. The decision to make it open source is an effort to encourage documentation sharing, sharing of bug fixes and libraries. Primarily, the move is aimed at outcompeting Java. There’s no benefit to Windows and as a matter of fact, their own Windows Server sales. .NET could now compete on a perfectly level playing field.
IMPLICATION OF .NET CORE OPEN SOURCE
With a growing array of consumer and enterprise needs, custom software has taken precedence than out-of-the-box solutions because they do not address individual needs while maintaining scalability minus the big price. New technologies provide the promise of enhanced productivity and improved competitiveness, but present logistical challenges as well. The move of open sourcing .NET to take it cross platform means shifting to a modular design that Microsoft could develop in an agile manner. This means a better .NET indeed. However, making sense of the technology means thinking on both the new technology and the strategy behind it.
WHY YOU NEED .NET CORE AND WHAT YOU GET FROM IT
A dozen years or so since the release of the first .NET, developers ended up with fragmented, multiple versions of the framework for various platforms. From the .NET Compact Framework to Silverlight, Windows Store and Windows Phone apps, each time Microsoft has taken .NET to a new platform, the ‘common’ language supposedly ended up with a different subset, which is: every time, there is a different runtime, application and framework model, with various development being done at every layer and APIs, which go back to a common code base but have not stayed common all the time.
MORE MICROSOFT CONTROL
Sure, various platforms always are going to have different capabilities and features, but as .NET becomes open source and spreads beyond platforms that Microsoft controls, having a common core instead of a set of loosely coupled subsets gets even more important. This is the basis for .NET Core and the open source strategy of the Microsoft framework.
Microsoft attempted tackling the concern before, with shard projects and portable class libraries to at least enable grouping the code for numerous .NET versions together and sharing what could be shared, and universal applications that also organize the shared code to make adding per platform code easier. Both are based on the contracts concept, which cover one pre-defined area of the APIs and should be thoroughly supported on a platform, or not at all. Those were introduced confusingly in the Windows 8 time frame, but not the same as the contracts WinRT applications use to access file sharing or picker. They are a way of abstracting APIs so they could be used as if they were the same for every platform.
SOME UPDATES OF .NET CORE
- Languages would be enhanced with throw expressions and binary literals
- Pattern and tuples matching, together with other languages
- Tooling from xproj/project.json system to .csproj/MSBuild
- Accommodation of ARM 32/64 processors for Linux and Windows
Probably the most interesting upgrade is the expected update of F#. The ‘functional first’ language of Microsoft would be updated with full .NET core support later this year. The update would have a better IDE and take benefit of using tuples. Already, F# boasts having features such as syntax, autocomplete and document formatting. It is not a surprise to see that they would also add support for ‘fixed’ keywords and annotations.
THE OPPORTUNITY OF .NET CORE
The .NET core technology makes sense for a cross-platform environment. That is why this is a Microsoft technique that developers should pay attention to. Some more pessimistic feedback regarding the .NET core plans have the tendency to underestimate changes scope or assume a sort of idealized past when .NET was made as a more modular cross-platform stack all along. Open sourcing the framework does not simply replicate Mono or fill in Mono’s holes. Those are only initial opportunities. Mono is beginning to use the ‘reference source’, which is available for the framework, but in the long term would take .NET core.
.NET core is Mono’s componentized version and of the full framework that works with Mono. It would in time be the de facto cross platform implementation for stacks. A lot of the benefits of open sourcing the .NET framework go far more than making code available or getting it into other platforms even, that is what is driving the decision of Microsoft to open source it. Microsoft showed an unprecedented transparency level and willingness to take feedback about the framework.
Microsoft is ready to make .NET core the future by making it open source. The way it is being built is very significant to reach to a wider market.