It has only been about a year since .NET Core 1.0 RC came out. We are now getting close to .NET Core 2.0. We have been playing with .NET Core since the betas and feel like the quality of the 1.0 runtime was very good. Our only complaint has really been odd Visual Studio behavior. We would expect that with 2.0, the adoption is likely to skyrocket.
So, what is changing with .NET Core 2.0?
1. Release Date
Keep an eye on the .NET Core roadmap over at GitHub. It currently says Q2 for a preview/RC type release and Q3 for general availability.
The Visual Studio 2017 release date is March 7th, 2017. As part of that, we should see a bunch of .NET Core 1.0 improvements along with the new csproj file format.
2. .NET Standard 2.0 Expanded APIs & the Ability to Reference Full Framework Libraries
.NET Standard 2.0 will broaden the set of APIs available to include a lot of the missing features. It sounds like 2.0 will make virtually all full framework APIs available. Some popular complaints were System.Drawing, DataTables, and others. You can search the code of over on GitHub to see the changes. Isn’t open source awesome?
One of the biggest problems with .NET Core was the lack of third party libraries. For example, when 1.0 came out, popular logging libraries like log4net were not even available (it is now). However, this was really only a problem if you wanted to deploy your app on Mac or Linux. You could have used .NET Core and targeted full .NET framework and not had these issues.
.NET Standard 2.0 has added a new compatibility shim that will enable any .NET Core app to reference any full framework library.
Of course, this will only work for cases where the .NET Framework library uses APIs that are available for .NET Standard. That’s why this isn’t the preferred way of building libraries you intend to use across different .NET platforms. However, this compatibility shim provides a bridge that enables you to convert your libraries to .NET Standard without having to give up referencing existing libraries that haven’t been converted yet.
Also check out this great blog post: .NET Standard 2.0 – Making Sense of .NET Again
3. xproj Project Files Replaced by New Version of csproj
One of the biggest differences with .NET Core was the new project files. Visual Studio used xproj and project.json files instead of the traditional csproj. The new project file format was much simpler but didn’t work with some other .NET tools like msbuild. The new csproj is supposed to include a lot of the benefits learned from the xproj experiment.
4. MSBuild Works Again
This is a big deal and was a big problem for us at Stackify. Our build process for Prefix used MSBuild and Installshield to package it up for deployment. By switching to xproj, all of that was broken. Getting MSBuild support back will be much appreciated for those that already have a lot of existing build and deployment processes in place.
5. Visual Studio 2017 – Tooling Enhancements
The Visual Studio tooling for .NET Core 1.0 has always been a little weird. I have personally seen lots of issues with adding and removing references and switching the target framework in project.json. I have also seen issues where you use the dropdown in the editor to debug the code for one target or another and getting odd results. Let’s hope these and other issues all get resolved.
I think we can all expect that Visual Studio 2017 and .NET Core 2.0 will ship at the same time since we know that the new version of Core requires the new csproj files.
One of the other big advantages of Visual Studio 2017 is how easy it is to install. Microsoft spent an enormous amount of time trying to streamline and improve the installation experience. Check out the Microsoft docs site to learn more about the changes and new features of VS 2017.
Changes are on the Way!
We will continue to update this as we learn more and after the release. We are excited to get our hands on it and build cool stuff with it. We will also be working to ensure that Prefix and Retrace also work perfectly with 2.0 as they come out.
Did we miss something we should add to this list?
Let us know in the comments below!
- 3 Key DevOps Needs for Every Development Team - March 27, 2017
- Why .NET Core Made C# Your Next Programming Language to Learn - March 27, 2017
- What is DevOps? – Give Your Development Team Ownership - March 26, 2017
- Stackify Prefix & Retrace Featured on the On .NET Show - March 10, 2017
- Big Stackify .NET APM Update is Here! v4.6 of Windows Agent Release - March 8, 2017