It’s a Great Time to be a .Net Developer

Authored by S. Ravi Kumar 

After watching the .NET Conference 2019, a three-day virtual conference organized by Microsoft, I can tell you it was an amazing conference with valuable information. The one thought that comes to my mind after this conference is "It's a Great Time to be a .Net Developer." Why? Because it's the one framework which can be used to develop any application you want or need with excellent tooling and support from Microsoft, as well as many third-party vendors like Jet Brains, Telerik, Infragistics etc.

Major announcements from the conference are as follows:

.NET Core 3.0

The long-awaited 3.0 version of the framework was released. .NET Core is the cross-platform development framework of Microsoft used to develop all applications ranging from desktop, web, cloud, mobile, games, IoT & AI. This is big milestone for .Net developers because:

  • WPF & Windows forms development, companies maintaining their legacy apps can now port their applications to .NET Core and utilize the latest features and technologies.
  • .Net Core, by default, supports side-by-side installation and self-contained EXEs (Self-contained EXEs do not require frameworks to help them execute as they execute independently). This feature is now extended to WPF & Windows forms applications.
  • Full-stack Web development using C# and Blazor. You no longer need JavaScript for full-stack web development.
  • C# 8.0 with many new features!

ASP.NET Core 3.0

The next version of .Net Core's web framework ASP.NET Core was released, and includes updates:

  • gRPC a language-agnostic, high-performance Remote Procedure Call (RPC) framework which helps you build strongly typed contracts of communication between applications.
  • Worker Service template a kind of application for long-running backend processes which can be used to host those long-running microservices to handle continuous responses.
  • Identity Server 4.0 - an OpenID Connect and OAuth 2.0 framework to manage Authentication as a Service, API Access Control, Federation Gateway, along with options to customize as per users' requirements.
  • Blazor a component-based sub-framework of ASP.NET Core to build SPA (Single Page Architecture) based full-stack web application using C# & HTML.

C# 8 Announced

The next version of C# language was announced and  has new features to ease application development using .NET framework:

  • Support for Nullable reference type: One of the main issues for C# developers is 'null exceptions'. When using this feature, a developer can mark the variables to support null, and the compiler will not check to ensure they are not assigned or initialized to null anymore.
  • Default interface members. Developers can now add members to interfaces and provide an implementation for those members. This language feature enables API authors to add methods to an interface in later versions without breaking source or binary compatibility with existing implementations of that interface. Existing implementations inherit the default implementation.
  • Pattern matching support which gives tools to provide shape-dependent functionality across related, but different kinds of data to make them more productive. This feature helps developers keep data and functionality apart. Patterns matching is available in Switch expressions, property patterns, and positional patterns.
  • Asynchronous streams allow developers to create and consume streams asynchronously. In order to consume async streams, C# 8 has added await-able for each loop to traverse through async streams.

App Center Support for Windows Applications

App Center is the DevOps suite of Azure services used by developers to Build, Test, and Distribute applications. Once deployed, it also helps developers monitor the status and usage of the app using real-time app diagnostics data, in addition to engaging with users via Push services. Earlier this service was limited to mobile and web applications only, in this conference, Microsoft announced support for WPF, and WinForms apps developed using .NET Core 3.0 on App Center.

Xamarin Announcements:

Xamarin is an open source app platform from Microsoft for building cross-platform mobile (iOS, Android), Mac desktop, wearable (watches), & tv apps with .NET. In .NET Conf 2019 Microsoft announced following enhancements for Xamarin Developers.

  • XAML Hot Reload for Xamarin.Forms: Make changes to your XAML UI and view them reflected live on your emulator, simulator, or physical device.
  • Xamarin Hot Restart: Test changes made to your app, including multi-file code edits, resources, and references, while using a much faster build and deploy cycle.
  • iOS 13 and Android 10: Take advantage of the full power and performance of native platforms and APIs. Including iPad OS, dark mode, and foldable support.

Blazor Server-Side Released

As mentioned above, Blazor is a component-based sub-framework of ASP.NET Core to build SPA based full-stack web application using C#. Currently, Blazor is supported via two hosting models Blazor WebAssembly which run on the client-side browser on WebAssembly and Blazor Server where the app is executed on the server from within an ASP.NET Core app. UI updates, event handling, and JavaScript calls are handled over a SignalR connection. Because of the following features, Blazor is considered the next big thing in the .Net world:

  • Write code in C# instead of JavaScript.
  • Leverage the existing .NET ecosystem of .NET libraries.
  • Share app logic across server and client.
  • Benefit from .NET's performance, reliability, and security.
  • Stay productive with Visual Studio on Windows, Linux, and macOS.
  • It is built on a common set of languages, frameworks, and tools that are stable, feature-rich, and easy to use.

ML.NET Announcements

ML.NET is a cross-platform open-source machine learning framework written in .NET Core which allows .NET developers to develop/train their own models and infuse custom machine learning into their applications using C# or F#. In.NET Conf 2019, Microsoft released a preview version of a new tool for ML.NET called "Model Builder" which takes data as input and create ML models and generates code for using those models in the .NET application.

.NET Core 3.0 IoT Support

In.NET Conf 2019, Microsoft showed the example usage of .NET Core on IoT:

  • For running apps on Raspberry Pi and other devices including ASP.NET Core apps
  • Read sensor data & write to displays.
  • Deploy .NET Core apps directly onto devices or with containers.

With so many usages and benefits of .NET Core, it's not surprising that every month more than 1 million developers are joining to start .Net Core development and have contributed to .NET Core framework features with 100 thousand plus PR (Pull Requests).

To close, I reiterate It’s a Great Time to be a .Net Developer by showing the following diagram used by Microsoft that showcases the complete breadth of the .NET framework

We are hosting a local .NET Conf this Saturday where we will followup the major announcements and show sample applications using the newly announced features of .NET framework. 

For questions and comments, or to speak to an expert, contact us here.