News

Microsoft Ships .NET Core 2.2 and Previews .NET Core 3.0

Amid the hubbub caused by Microsoft open sourcing WPF, WinForms and other desktop tech, the company also shipped the final version of .NET Core 2.2 and unveiled the first preview of .NET Core 3.0.

.NET Core is Microsoft's modernization of the aging, Windows-only .NET Framework, using a modular approach to take components open source and cross-platform. Those components include ASP.NET Core and Entity Framework Core, which have also shipped in their v2.2 editions.

Microsoft said the .NET Core 2.2 update features diagnostic improvements to the runtime, support for ARM32 for Windows and Azure Active Directory for SQL Client, while noting that "The biggest improvements in this release are in ASP.NET Core."

That Web-dev-oriented offering features a host of improvements, ranging from better Open API (Swagger) library integration to various performance enhancements.

"The main theme for this ASP.NET Core release was to improve developer productivity and platform functionality with regard to building Web/HTTP APIs," said Microsoft's Damian Edwards in a blog post. "As usual, we made some performance improvements as well."

Desktop on .NET Core 3
[Click on image for larger view.] Desktop on .NET Core 3 (from May announcement) (source: Microsoft).

Meanwhile, Entity Framework Core 2.2, providing object-database mapping functionality, sees hundreds of bug fixes, in addition to new features. Microsoft's Diego B Vega detailed new functionality such as:

  • Spatial data support: This is used to represent the physical location and shape of objects).
  • Collections of owned entities: This introduces one-to-many associations for model ownership, along with the existing one-to-one associations.
  • Query tags: These simplify the correlation of LINQ queries in code with generated SQL queries captured in logs.

For .NET Core 2.2 proper, developers can go here to learn about:

  • Tiered compilation: This is a feature that lets the runtime more adaptively use the Just-In-Time (JIT) compiler to get better performance during both startup and throughput.
  • Injecting code prior to Main: .NET Core now lets developers inject code prior to running the Main() method via a Startup Hook. "Startup hooks make it possible for a host to customize the behavior of applications after they have been deployed, without needing to recompile or change the application."
  • Windows ARM32: The team will add support for Windows ARM32, just like the Linux ARM32 support that shipped in .NET Core 2.1. "Windows has had support for ARM32 with Windows IoT Core for some time," Microsoft said. "As part of the Windows Server 2019 release, ARM32 support was also added for Nanoserver. .NET Core can be used on both Nanoserver and IoT Core." However, problems were encountered that prevented the publishing of .NET Core builds for WindowsARM32 in this update, and it's now planned for .NET Core 2.2.1, shipping early next year.

Finally, .NET Core 3.0 Preview 1 sees new functionality to create desktop apps with technologies like WPF and Windows Forms. Support for those Windows-only frameworks is being added to the previous capabilities for Web APIs, Internet of Things (IoT) projects and console applications.

".NET Core 3 is a major update which adds support for building Windows desktop applications using Windows Presentation Foundation (WPF), Windows Forms, and Entity Framework 6 (EF6)," Microsoft's Rich Landers said in a blog post. "ASP.NET Core 3 enables client-side development with Razor Components. EF Core 3 will have support for Azure Cosmos DB. It will also include support for C# 8 and .NET Standard 2.1 and much more!"

That will need to be done with Visual Studio 2019, however, as VS 2017 can't be used for .NET Core 3.0 projects. Luckily, the company just this week also shipped Visual Studio 2019 Preview 1.

.NET Core 3 Preview 1 introduces a host of new features and functionality, including applications being built with executable (.exe) files by default; a local dotnet tools scenario to add to the global tools scenario introduced in .NET Core 2.1; ranges and indices; an in-box JSON Reader, Async streams; cryptography enhancements and much more.

Lander pointed to release notes for more information, but there didn't seem to be any release notes available there, which several developers complained about.

More information is coming, though, said Lander: "We'll be releasing more detailed posts on .NET Core 3 in the coming weeks, which will also include an update on .NET Standard 2.1, which didn't make it into Preview 1 yet."

Lander emphasized that developers using the traditional .NET Framework shouldn't feel pressured to port existing applications to .NET Core. However, the company has advised developers that .NET Core will see many more new features introduced than the Windows-only .NET Framework will, and recommends all new projects start on the newer platform if possible.

.NET Core development takes place in the open on GitHub.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube