News

What's New in Final Release Candidates for .NET 8, .NET MAUI, ASP.NET Core and EF8

.NET 8 and all its components are now one month from general availability as Microsoft shipped the second and final release candidates for the framework and the associated NET MAUI, ASP.NET Core and EF8.

They will ship during the company's .NET Conf 2023 event happening next month, Nov. 14-16.

At this point, the code is pretty much set as the dev team focused primarily on getting things into final shape for GA by refining features and fixing bugs rather than introducing major new features.

[Click on image for larger view.] .NET Release Schedule (source: Microsoft).

With that said, here's how Microsoft described the RC2s for its developer tooling offerings.

.NET 8
".NET 8 RC2 is now available," Microsoft announced today, Oct. 10. "This is our last release candidate. This release includes new NuGet package READMEs for .NET packages, simple CLI-based project evaluation for MSBuild, publishing containers to tar.gz archives, and Tensor Primitives for .NET."

Highlights of the announcement post include:

  • NuGet package READMEs for .NET packages are introduced to provide important information to users and help them quickly understand what a library is and what it does. This is part of the dev team's effort to increase the adoption and quality of NuGet package READMEs.
  • MSBuild has a new new, simple CLI-based project evaluation feature that makes it easier to incorporate data from MSBuild into scripts or tools using the --getProperty, --getItem and --getTargetResult flags in order to facilitate project analysis.
  • The SDK Container Publish tooling has a new capability to create a container directly as a tar.gz archive, which can be useful for workflows that require scanning or moving the image before pushing it, thu expanding available deployment options.
  • Introduction of Tensor Primitives for .NET, enhancing support for machine learning and data science operations. Tensor Primitives is a new set of APIs that introduce support for tensor operations, which are essential for AI and machine learning workloads. It provides vectorized implementations for operations like cosine similarity, dot product, matrix multiplication and more.

Also, information about notable fixes and much more is available in the .NET 8 RC2 release notes.

.NET MAUI
"Today, we take one step closer to .NET 8 general availability (GA) by shipping .NET MAUI in .NET 8 release candidate 2 (RC2)," Microsoft said. "As with RC1, this release is covered by a go-live license so you can receive support when using it in your production applications. In this release we have focused on issues that regressed throughout the previews, and regaining some performance that was lost as we improved the reliability of hot reload, visual state manager, bindings, and app themes."

Microsoft calls this framework the evolution of Xamarin.Forms because it lets devs create desktop apps in addition to traditional iOS and Android mobile targets. It has experienced development problems, and Microsoft-centric developers are watching it closely following recent news that Microsoft was killing Visual Studio for Mac, which experienced its own serious development problems. In fact, Microsoft sought to placate any sunsetting fears, as detailed in the Visual Studio Magazine article, "After Killing Visual Studio for Mac, Microsoft Reassures Fearful .NET MAUI Devs."

Highlights of the announcement post include:

  • .NET MAUI is covered by a go-live license and has no breaking API changes from .NET 7.
  • Several optimizations were made to boost performance of of ActivityExtensions.GetWindowFrame on Android, and "Setter Specificity."
  • The team fixed several issues related to UI elements and controls to improve consistency and visual accuracy across platforms.
  • Platform-specific fixes were enacted targeting drag-and-drop functionality, tab bar appearance and certain platform behaviors for a consistent user experience across platforms.
  • Microsoft shipped a service release 8 (version 7.0.96) for .NET 7 with high-priority fixes.
  • Xamarin developers can use Xcode 15 and Android API 34 with Visual Studio 17.8 Preview 3 or the latest stable version of Visual Studio for Mac.

More information can be found in the .NET MAUI release notes.

ASP.NET Core
Today's announcement post about ASP.NET Core updates in .NET 8 RC 2 shows much of the dev team's efforts in this cycle were devoted to Blazor, Microsoft's scheme for doing web development primarily with C# instead of the usual mainstay, JavaScript. The post noted 11 items for Blazor, while every other component shows just one item, except for Servers & Middleware, with two.

For .NET 8, Microsoft introduced an important new concept for Blazor, the ability to provide a full-stack Web UI. The company said with the release of .NET 8, Blazor is a full-stack web UI framework for developing apps that render content at either the component or page level with:

  • Static server rendering to generate static HTML.
  • Interactive server rendering using the Blazor Server hosting model.
  • Interactive client rendering using the Blazor WebAssembly hosting model.
  • Automatic interactive client rendering using Blazor Server initially and then WebAssembly on subsequent visits after the Blazor bundle is downloaded and the .NET WebAssembly runtime activates. Automatic rendering usually provides the fastest app startup experience.

Highlights of the announcement post include:

  • HTTP logging middleware has new capabilities such as duration logging, combined logs and custom interceptors.
  • IdentityModel libraries have been updated to version 7x, which improves performance, consistency and Native AOT compatibility.
  • Form binding for minimal APIs and Blazor now supports types with IFormFile properties.
  • SignalR TypeScript client now supports stateful reconnect, which reduces the downtime of clients with temporary network issues.
  • Blazor Web App template has new options to enable interactive render mode globally or per page, and to use Blazor identity UI.
  • Blazor WebAssembly Standalone App template has been renamed and updated to support static site hosting without an ASP.NET Core server.
  • @rendermode Razor directive can now be applied at the file scope to specify a render mode on a component definition.
  • Enhanced navigation and form handling for Blazor has been improved with new attributes and events to control and customize the behavior.
  • Circuit closing for interactive server components has been implemented to free up server resources when there are no remaining interactive components on the page.
  • Form model binding in Blazor now honors the data contract attributes for customizing how the form data is bound to the model.
  • HttpContext can now be accessed as a cascading parameter from a static server component.
  • The PersistentComponentState service can now be used to persist and read component state in a Blazor Web App.
  • The [Inject] attribute now supports injecting keyed services using the InjectAttribute.Key property.
  • Dialog element now supports the cancel and close events in Blazor.

Much more information is available in the newly updated "What's new in ASP.NET Core 8.0" documentation.

EF Core 8
The announcement post for EF8 focuses on "a few of the smaller features included" in the Object-Relational Mapper (ORM) offering, though it also contains links to some 68 individual items for .NET 8 overall.

Highlights of the announcement post include:

  • EF Core 8 requires .NET 8 and this RC 2 release should be used with the .NET 8 RC 2 SDK.
  • EF Core 8 will align with .NET 8 as a long-term support (LTS) release.
  • EF Core 8 introduces new features such as:
    • Changing the sentinel value for properties with database defaults
    • Supporting updates accessing multiple entity types
    • Improving query translation using SQL IN instead of EXISTS
    • Mapping rowversion columns to long or ulong properties
    • Eliminating unneeded parenthesis in generated SQL

More information can be found in "What's New in EF Core 8" documentation and the EF Core roadmap.

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus

Featured

  • Microsoft Further Embraces OpenAPI Spec (formerly Swagger)

    Microsoft has long embraced the OpenAPI Specification (formerly known as Swagger) for describing APIs, and it's now taking that support to the next level with a new online resource.

  • Get Good at DevOps: Feature Flag Deployments with ASP.NET WebAPI

    They provide developers with the ability to toggle features on and off without having to redeploy code, making it easier to manage risk, test features in production, and facilitate smoother releases.

  • Implementing k-NN Classification Using C#

    Dr. James McCaffrey of Microsoft Research presents a full demo of k-nearest neighbors classification on mixed numeric and categorical data. Compared to other classification techniques, k-NN is easy to implement, supports numeric and categorical predictor variables, and is highly interpretable.

  • Building Secure and Scalable APIs in .NET 8

    Tony Champion: "From giving you access to the entire lifecycle of a request, the ability to configure and extend authentication and authorization, .NET 8 gives you the power to create APIs to meet even the most demanding needs."

Subscribe on YouTube