February 2017 Updates and Thoughts

February 2017 thoughts and updates -header image

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:

NET Core Ship Date - February Update 1
Source: commit 21217cefb344b84292508bea4e6b3ed3f18058e7 to roadmap.md in the .NET Core 2.0 repository

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:

NET Core Ship Date - February Update 2
Source: commit 388215e8715a4ccfac9b22ccf7094a7138a6759b to roadmap.md in the .NET Core 2.0 repository

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.

.NET Core LTS table
source: https://www.microsoft.com/net/core/support
(correct as of 23/02/2017)

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.

SDK Changes

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

dotnet new
view raw shell.sh hosted with ❤ by GitHub

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
view raw shell.sh hosted with ❤ by GitHub

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.

A .NET developer specialising in ASP.NET MVC websites and services, with a background in WinForms and Games Development. When not programming using .NET, he is either learning about .NET Core (and usually building something cross platform with it), speaking Japanese to anyone who'll listen, learning about languages, writing for his non-dev blog, or writing for a blog about Retro Gaming (which he runs with his brother)