The State Of .NET Core
Written by Mike James   
Monday, 02 February 2015

It has only been a short time since Microsoft open sourced the ,NET framework and yet the project does seem to be taking on a life of its own. Is this the genie out of the bottle? 



Back in November the big news was that .NET was being open sourced, but it wasn't exactly clear what this actually meant. Instead of throwing open the current .NET code base as an on going project, .NET Core was established as a new project to construct a portable version of the libraries. What was initially disappointing was the very small number of classes uploaded to GitHub. 

Now we have an update on how things are going from team member  Immo Landwerth. The first thing to say is that the project has been forked over 1000 times. Are all of these people keen on contributing to the project? It could be an indication at least because there have been around 250 pull requests to date - including Microsoft's contributions.




At the moment the ratio of internal to external contributions is 48% to 52%, i.e. the Microsofties are slightly outnumbered. However, they are still in full control.

Not only that but if you want to contribute you have to sign a contributor license agreement (CLA). When a contributor submits a pull request the system automatically determines how big the change is. If it is small then it submits it with a cla-not-required but if it is big and you haven't already signed a CLA you are directed to fill in a web form where have to assert that you are not putting code which belongs to someone else into the code base.

What is even more interesting is that the project is now over 500K lines of code and 75% is still to be transferred. There is an Excel spreadsheet detailing what is on its way.

The libraries now in the repro are: 

  • System.Collections.Immutable
  • System.Numerics.Vectors
  • System.Reflection.Metadata
  • System.Xml
  • Microsoft.Win32.Primitives
  • Microsoft.Win32.Registry
  • System.Collections.Concurrent
  • System.Collections.Immutable
  • System.Collections.NonGeneric
  • System.Collections.Specialized
  • System.Console
  • System.Diagnostics.FileVersionInfo
  • System.Diagnostics.Process
  • System.IO.FileSystem
  • System.IO.FileSystem.DriveInfo
  • System.IO.Pipes
  • System.IO.UnmanagedMemoryStream
  • System.Linq.Parallel
  • System.Numerics.Vectors
  • System.Reflection.Metadata
  • System.Text.RegularExpressions
  • System.Threading.Tasks.Dataflow
  • System.Xml

What is still mystifying is how useful the final .NET Core will be and how it will be integrated into main stream .NET development. There are so many unanswered questions.  The bulk of most .NET applications is UI and yet there are no UI libraries listed in the spreadsheet.

There are also confusing comments such as 

"Our current thinking is that we don't provide implementation that are inherently Win32 specific, for example, we'll not implement the registry. Unfortunately, that namespace also contains concepts that aren't really tied to Win32, such as handles and will most likely use for implementing general concepts across all operating systems (such as file IO)."

Yet, as you can see, the Microsoft.Win32.Registry library is already in the repro and others are listed in the spreadsheet. Does this mean only parts of the libraries are going to be implemented. 

When asked what percentage of .NET will not be on GitHub we have the answer:

"... it's probably gonna be a fairly large number, considering the massive surface area of technologies like Windows Forms, WPF, and WF"

The bottom line is that it still isn't very clear where this particular juggernaut is going.



Azul Intelligence Cloud Expands Support

Azul has announced that its cloud analytics solution, Azul Intelligence Cloud, now supports Oracle JDK and any OpenJDK-based distribution. More DevOps teams will now benefit from its ability to b [ ... ]

Pharo 12 Adds New Breakpoint System

The latest version of Pharo, the open-source Smalltalk-inspired language and core library adds a new breakpoint model based on the debug point system.

More News


raspberry pi books



or email your comment to:


Last Updated ( Wednesday, 04 February 2015 )