If you are a .NET Core user, then you must be aware of the recent development in the framework. For those of you who are still unaware of .NET Core, Microsoft has announced an upcoming version of the cross-platform framework at the .NET Conf 2019. The .NET Conf 2019 was held in September and witnessed a major update for visual studio and .NET Core. The new version of .NET CORE is called ASP.NET Core 3.0. Along with the announcement, Microsoft has also highlighted a few of the features of the new version. ASP.NET Core 3.0 integrates some exciting new features that have been discussed below in this article.
Let us take a look at these features and see how well they perform,
- New project templates
You need Visual Studio 2019 to use .NET Core 3.0. Visual Studio has predefined templates that the programmers can use for their projects. These templates are now available in ASP.NET Core 3.0. Some of these templates are-
- ASP.NET Core web application
- Blazor app
- gRPC service
- Razor class library
These templates have been further divided into sub-templates. These sub-templates define how you want to deploy your templates. For example, if you click on the ASP.NET Core web application template, it will take you to the sub-template section with available options like API, empty, Web Application and Web Application MVC. These templates and sub templates have been improvised in the latest version of ASP.NET Core.
- Register MVC/ razor pages/ web APIs in new ways
ASP.NET Core 3.0 brings new options to register the MVC pages in the startup.configureservices. In the older versions of the framework, MVC pages were registered using the AddMvc command. In the latest version, users can instead use templates to register MVC pages. The same can be applied to Razor pages and web APIs. The three new templates are AddControllers(), AddControllersWithViews(), and AddRazorPages(). To register MVC applications, you should use AddControllersWithViews(), for Razor pages, you must use AddRazorPages() and for Web APIs you can use AddControllers(). Also, the AddMvc command is still in use and behaves exactly like the older versions.
- End point Routing
End point routing was introduced in .NET 2.2, but it was not the default option for the middlewares. Endpoint routing makes it easier to work within the application instead of having terminal middleware that does not communicate between themselves. Instead, by using endpoint routing you can treat them as single middleware. However, older methods are still available but it is advisable to use endpoint routing. End point routing provides several advantages over traditional routing as it lets you route diversified subsystems.
- Blazor Server Side
Blazor server comes bundled with the latest version of ASP.NET Core. By this recent development, blazor has become a full-fledged framework for developing Single Page Applications (SPA). As most of the processing load is on the server, remote clients’ web browser downloads a small page over a signal connection and updates its UI. The client side model deploys WebAssembly to download and run a .NET application within a browser’s boundaries. Blazor has released a server side of the framework and plans to release a client side later sometime. Microsoft also has plans to release Blazor PWA and Blazor Hybrid editions.
- JSON Serialization Classes
.NET Core 3.0 has removed the shared framework of JSON.NET. Users can now use JSON serializer instead, for JSON processing. This is done with the help of a new set of classes. You can start by using the Jasonserializer class in the system. This class has serialize() and deserialize() that serialize .NET data types to JSON and JSON data types to .NET respectively.
- Authenticating and Authorizing Middleware
In the latest version of ASP.NET Core, you can use identityserver4 for authentication and authorization of middleware. You need to call UseAuthorizzation() command to use the [Authorize] attribute. Also, identityserver4 can be used to enable the following security features- Authentication as a Service (AaaS), Federation Gateway, Access control for APIs, and Single sign-on/off (SSO) over multiple application types
- C #8 Support
In .NET Core 3.0, the support for C #8 has been extended. The highlights of this update are nullable reference types, asynchronous streams, disposable ref structs, null-coalescing assignment and pattern matching enhancements like switch expressions, property patterns, tuple patterns, and positional patterns.
So with the new update, Microsoft has focused on three main pointers for the ASP.NET Core framework. These three pointers are-
- Desktop workloads
- Integration of artificial intelligence and machine learning
- Web and cloud app development
Microsoft is constantly updating its .NET framework to extend its compatibility with other applications and that is evident in this 3.0 version. There is also a plethora of other improvements, such as utilizing declarations, parsing and arranging fixes, cryptography etc. The most important update of them is parsing and arranging fixes. This update lets you accurately parse and format negative zero, round inputs of any length and then parse it accordingly and apply a case insensitive check, thus supporting preceding whenever available.
The new version has extensive support for the operating systems. The systems are Windows Server: 2012 R2 SP1+, Windows Client: 7, 8.1, 10 (1607+), RHEL: 6+, macOS: 10.12+, Ubuntu: 16.04+, Fedora: 26+, SLES: 12+, Debian: 9+, Alpine: 3.8+, and openSUSE: 42.3+.
Microsoft also has plans to release an update that will fix the bugs and patches in this new version of the framework. The update will be released in the middle of November 2019. Microsoft is pushing itself to improve the .NET framework and its application on hybrid platforms. Moreover, with the advancement in technologies, the company is also looking forward to integrating cloud development and machine learning features into this framework. So keep an eye out for future updates.