February 2017 Updates and Thoughts
Today’s header image was created by Tim Gouw, the original source for the image is available here
I thought that I would mix it up a little this week, so I’ve combined a few smaller thoughts and updates into one larger one.
.NET Core Release Date
There is still no concrete release date for .NET Core 2.0 (or .NET Standard 2.0 for that matter), but the official GitHub Repository was updated a few days ago with newer rough dates for the release of .NET Core 2.0.
Dates are correct at the time of writing this post.
Initially, the dates where changed to Quarter 3 of 2017:
Immo Landwerth commented on the commit stating that:
I think there was a typo. The goal was always to ship .NET Core 2.0 and .NET Standard 2.0 at the same time (Summer, AKA Q3).
Source: discussion on the commit
After which, the release date where altered to include a preview of the .NET Standard:
This tells us a few things (that haven’t been officially announced through other channels yet):
- .NET Core 2.0 and .NET Standard 2.0 have slipped to Quarter 3 of 2017
- There will be a preview build of both .NET Core 2.0 and .NET Standard 2.0 in the next quarter
For all of us who are waiting to use .NET Core 2.0 for our business/enterprise apps, this is a little in the way of bad news. Especially since, once .NET standard 2.0 is released, .NET Core 2.0 will have the same API surface with .NET Framework 4.6.1
Which is what we’ve been told my Immo Landwerth in his video series on .NET Standard, and the many interviews he’s done with prominent .NET podcasters of late.
For those of us who want to use .NET Core 2.0 in real world applications as part of our day job, we’ll have to explain to our project managers, tech leads and (potentially) customers whether we want to wait for version 2.0 or to just start work with the current LTS version.
This would depend entirely on the customer requirements, obviously.
The above table shows that .NET Core 1.0.1 is the current LTS version.
This is correct at the time of writing, for more up to date information please check: https://www.microsoft.com/net/core/support
I wonder whether this will lead to a large number of poly fill like libraries for plugging holes in the .NET Core API surface until .NET Core 2.0 is released.
Visual Studio 2017
Over the last few months, Microsoft have been teasing a Visual Studio 2017 release. It’s been in release candidate for a while, and those of us who have been holding off installing it (for whatever reason), have been waiting with bated breath for the release of the RTM version. Well, the day is almost upon us.
Being a little overly dramatic today, aren’t we Jamie?
It was announced in early February (right around the time of Visual Studio’s 20th birthday), that there will be a live streamed event on the 7th and 8th of March 2017 to officially release Visual Studio 2017.
As a side note: one of those two days in my birthday.
According to the launch site:
On March 7, watch our live stream with Julia Liuson, Brian Harry, Miguel de Icaza, and Scott Hanselman as they share the newest innovations in Visual Studio, .NET, Xamarin, Azure, and more. After the keynote, Microsoft engineers will lead interactive technical demo sessions to help you get the most out of Visual Studio 2017 and the rest of our tools and platform.
Which means that there will be a lot to see.
For those who don’t know:
- Julia Liuson is the Corporate VP of Visual Studio
- Brian Harry is the Product Unit Manager for Team Foundation Server
- Miguel de Icaza is the person behind Gnome, Mono and Xamarin
- and if you don’t know who Scott Hanselman is then I can’t really help you.
Only kidding, Scott Hanselman is one of the Project Managers of the .NET Team.
The live stream is coinciding with launch events happening globally, too. I wont be able to attend any of the in person events, but I’m going to be watching as much of the live stream as I can.
Speaking of Visual Studio 2017, shortly before the announcement of the release date for the new version, Release Candidate 4 for version 1.0.3 of the .NET Core SDK was released. Among the new features where full support for cproj projects and the new templating engine.
I have posts on both of these topics planned already, but if you wanted to get a head start on the templating stuff then check out Scott Hanselman’s blog post on them.
Alongside csproj and the templating engine, support for Fedora 23 and OpenSuse 13.2 have been dropped as support for those distros has been dropped by their respective maintainers.
Templating – A Quick Intro
The most important change (and a breaking one for some of my earlier posts) is that the
command will no longer create a Console Application, but it will list the available templates. By default the output of the ‘dotnet new’ command on this version of the SDK will be similar to the following:
|Template Instantiation Commands for .NET Core CLI.|
|Usage: dotnet new [arguments] [options]|
|template The template to instantiate.|
|-l|--list List templates containing the specified name.|
|-lang|--language Specifies the language of the template to create|
|-n|--name The name for the output being created. If no name is specified, the name of the current directory is used.|
|-o|--output Location to place the generated output.|
|-h|--help Displays help for this command.|
|-all|--show-all Shows all templates|
|Templates Short Name Language Tags|
|Console Application console [C#], F# Common/Console|
|Class library classlib [C#], F# Common/Library|
|Unit Test Project mstest [C#], F# Test/MSTest|
|xUnit Test Project xunit [C#], F# Test/xUnit|
|Empty ASP.NET Core Web Application web [C#] Web/Empty|
|MVC ASP.NET Core Web Application mvc [C#], F# Web/MVC|
|Web API ASP.NET Core Web Application webapi [C#] Web/WebAPI|
|Solution File sln Solution|
|dotnet new mvc --auth None --framework netcoreapp1.0|
|dotnet new console --framework netcoreapp1.0|
|dotnet new --help|
There’s a write up on the new features of this version of the SDK here.
Though, as I said earlier, I’m planning a post on these new features.
That’s About It, Really
Like I said at the beginning of this post, I thought that I would mix it up a bit by talking about some of the recent changes and events happening around .NET Core and related stuff.