Visual Studio 2017 15.3, .NET Core 2.0 Trio Previews Now Out

It's the third preview for VS 2017 15.3, which sports mostly fit-and-finish improvements of many user-reported issues, and second preview for the .NET/ASP.NET/Entity Framework Core 2.0 trio.

By Michael Domingo

06/29/2017

There's now a third preview of Visual Studio 2017 15.3 floating around, as well as a second preview for .NET Core 2.0, ASP.NET Core 2.0, and Entity Framework Core 2.0. VS 2017 15.3 Preview 3 sports mostly fit and finish updates, while the Core trio come with a number of new features across the board.

While VS 2017 15.3 Preview 3 addresses mainly user-reported issues that cropped up from the first two previews, it does come with a few new features for developers to trot out for testing, highlighted in a blog from Microsoft Principal Program Manager Christina Ruana. Among them is the ability of the Continuous Delivery Tools to create build and release definitiions from within the VS IDE to build and deploy .NET or ASP.NET Core projects to Azure Web App Services. For .NET Core Docker Linux image users, the team says that Debian Stretch is now being used in the Docker multi-arch tags.

Two other features: Extensions diagnostics now exposes how an extension might be involved in a VS crash; and large C++ solutions can now use lightweight solution load to improve solution load performance.

Details on these features and the issues that were fixed in this version are in the release notes here.

Along with Visual Studio 2017 15.3 preview, the Core trio are in their second preview, being developed in parallel with each other.

.NET Core 2.0, which is described by Microsoft as its "cross-platform, open source, and modular .NET platform for creating modern web apps, microservices, libraries and console applications," also comes with a slew of user-related issue fixes (like all the other previews described below), as well as an ability to be used on Azure App Service.

Other new enhancements and improvements:

OS support: Now has support for SUSE Linux Enterprise Server starting with version 12 SP2, and improved support for macOS Sierra.

dotnet restore: The command is now implicit when running the run, build, and publish commands, so that all required project dependencies and tasks are installed.

.NET Standard: .NET Framework libraries can now be referenced from the .NET Standard libraries under VS 2017 15.3; .NET Standard Nuget packages no longer have required dependencies, since they get their dependencies from the .NET Core SDK.

Details on these fixes are in a blog post announcing this preview, from Microsoft's Rich Lander.

ASP.NET Core 2.0 Preview 2, described by Microsoft as an "open-source and cross-platform framework for building modern cloud-based Internet-connected applications, such as web apps, IoT apps and mobile backends," comes with support for Angular and React by way of SPA templates that are now in the SPA templates dialog, improvements for configuring Kestrel server limits, and Razor support for C# 7.1. Two features that were anticipated from the Preview 1 release -- .NET Core Identity as a Service, and default configuration schema for HTTPS configurations -- won't be available just yet. Those features "have been pulled out of the ASP.NET Core 2.0 release to give them more time to bake," writes Microsoft's Jeffrey T. Fritz, in a blog post announcing this preview.

As for EF Core 2.0, described by Microsoft as a "lightweight, extensible, and cross-platform version of Entity Framework," this second preview is showcasing a few new features, including a security feature that can help developers avoid accidentally offering ways into their apps via SQL injection. Developer can now use C# 6.0 interpolated strings (for example, to embed variables in a query's SQL format string) to build SQL at runtime.

A feature that Microsoft's Diego Vega notes in a blog post was in the initial preview, automatic table splitting for owned entity types, is being refined "so that by convention owned types will share the table with their owner," he writes. And he also highlights the ability to map "database scalar functions to method stubs so that they can be used in LINQ queries and translated to SQL. It currently only supports scalar functions, and developers must manually create the mapped function from within the database prior to taking advantage of database scalar functions.

Vega also notes some significant breaking changes. For one, it's not compatible with existing providers, so providers will need to work with Microsoft by creating an issue in the GitHub repo to get some action on making the transition. As well, all code dependent on EF Core has to be recompiled to work with version 2.0, as there's no binary compatibility with version 1.

There's quite a bit more than we'll cover here, in the blog, including tips on installing and upgrading it, as well as installing and upgrading any new runtime and tooling packages.

About the Author

Michael Domingo is a long-time software publishing veteran, having started up and managed several developer publications for the Clipper compiler, Microsoft Access, and Visual Basic. He's also managed IT pubs for 1105 Media, including Microsoft Certified Professional Magazine and Virtualization Review before landing his current gig as Visual Studio Magazine Editor in Chief. Besides his publishing life, he's a professional photographer, whose work can be found by Googling domingophoto.

Featured

This week saw two third-party vendors of dev tools -- UX and UI toolkits and controls -- release new offerings that include support for two of Microsoft's main open source frameworks, the cross-platform .NET Core 3.1 and Blazor, which allows for creating browser-based web applications with C# instead of JavaScript.

Clustering non-numeric -- or categorial -- data is surprisingly difficult, but it's explained here by resident data scientist Dr. James McCaffrey of Microsoft Research, who provides all the code you need for a complete system using an algorithm based on a metric called category utility (CU), a measure how much information you gain by clustering.