.NET 8

.NET 8

Episode Nine

.NET 8 will be Microsoft's latest version of their .NET open-source cross-platform framework for modern apps and services.

Intro

I'm Peter and this is the RoguePlanetoid Podcast where you will find insights about Microsoft or related platforms and technology, along with so much more whether you are beginner or an experienced professional or just interested in technology. Keep Current, Keep Coding!

Welcome

Welcome to episode nine of the RoguePlanetoid Podcast about .NET 8 which is due to be released in November during .NET Conf 2023. .NET 8 will be Microsoft's latest version of their .NET open-source cross-platform framework for modern apps and services. You can build web apps and services for Windows, macOS, Linux and Docker or using a single codebase to create native mobile and desktop apps for Windows, macOS, iOS and Android. .NET also allows you to build cloud-native apps that run on all major platforms and microservices that run on Docker containers. You can download the current version of .NET along with any available preview or release candidate of newer versions at www.dot.net or check out the link in the show notes.

What is .NET?

.NET was originally released by Microsoft in 2002 as .NET Framework alongside the first version of C# which was the programming language created for .NET along with Visual Studio .NET which was the development environment for .NET Framework. This ushered in a new era of programming for developers on Windows for Windows and I was there from the start when I got the Alpha version of Visual Studio.NET and the first version of .NET Framework back in 2001. I've used every single major version of not only .NET Framework but the newer versions from .NET Core onwards that are now just known as .NET. It has been amazing to see the progress that .NET and the related platforms have made throughout the years. I started using .NET with Visual Basic .NET as had I came from Visual Basic 6 which was the previous way of creating applications quickly and easily known as rapid application development. I have also used many of the platforms that could either use .NET directly or were based on it such older technologies such as Windows Forms and Web Forms along with Windows Presentation Foundation and Silverlight using Visual Basic.NET or current technologies such as Windows App SDK and Blazor using C#. .NET today is a cross-platform framework for creating modern apps and services reaching far beyond Windows to support Linux or desktop on macOS or mobile on iOS or Android and even run your code on Docker containers. .NET today is open-source and maintained on GitHub allowing developers to understand .NET and fully leverage the functionality available. .NET has a large and supportive ecosystem and there are millions of developers using .NET many of whom share and showcase their work. .NET performs faster than any other popular framework and you can build for web, mobile, desktop, cloud and not only write, run, and build for platforms such as Windows, macOS and Linux but you do so on those platforms with the developer tools available such as Visual Studio and Visual Studio Code which you can download from visualstudio.com or check out the link in the show notes.

NuGet

.NET developers can expand the functionality available in .NET with their own packages and make them available on NuGet that can give other developers access to new features such as for Spotify using Spotify for Developers with Spotify.NetStandard. If you want to find out more about Spotify for Developers and Spotify.NetStandard then you can listen to Episode Four of the RoguePlanetoid Podcast. NuGet is the most secure package system trusted by millions of developers and is the package manager for .NET. There are over three hundred thousand packages available which in total have been downloaded over three hundred billion times! In the unlikely event you don't find what you need then you can always create your own package and share it with the community on NuGet! You can install packages easily from within Visual Studio or with the NuGet client tools, to find out more, see what packages are available or to add your own then visit nuget.org or check out the link in the show notes.

What's New in .NET 8?

.NET for the past few versions has had a new release each November, with odd numbered versions being supported for eighteen months known as a Standard Term Support or STS release and even numbered releases being supported for three years known as a Long-Term Support or LTS release. .NET 8 will be an LTS release and it adds some great new features such as with the handling of JSON when either it is output from an application and serialised or input into an application and de-serialised, this includes customising the behaviour of values that are not in the JSON along with being able to use values that are either readonly or even private and there is support for more types such as Half, Int128 with compatibility with Memory and ReadOnlyMemory values. .NET 8 also includes additional validation attributes that are useful in cloud-native services such as configuration and examples include checking the length of a value along with if it is in a list of allowed or denied values. .NET 8 also allows you to generate strongly-typed configuration classes from appsettings.json and source generators can now serialise types with any required and init properties and improved formatting of any source-generated code. .NET 8 now allows developers to take advantage of keyed dependency injection where you can register services with names allowing you to scope how you register and consume services. .NET 8 just like many of the recent releases improves performance generally compared to previous versions improving the experience for all developers. It is possible to use .NET 8 as of October 2023 with the release candidate that is available, with the final release coming in November 2023. You will be able to get the next version of .NET in November 2024, but .NET 9 will only be supported until mid-2026 as an STS release but the following version .NET 10 available November 2025 will be the next LTS release after .NET 8. .NET 8 will be released in November 2023 during .NET Conf which is the largest .NET event hosted online between the 14th and 16th of November and you can find out more about .NET Conf 2023 by visiting dotnetconf.net or check out the link in the show notes.

C#

.NET uses C# which is the modern innovative open-source cross-platform programming language for building apps and is one of the top five programming languages on GitHub. From Hello World to beyond it is easy to get started with C# and then keep progressing to create the apps you need and there is plenty of support out there and it is easy to read so you can understand what is going on and if there any problems what is going wrong. C# has type-safety allowing developers to be certain about the properties of a value such as allowing you to know if something is a bool, that can only be true or false and a string can only be some text along with anything else. Asynchronous support in C# with async and await allows developers to write code that doesn't block anything or code that can run in the background. C# also has a key feature with LINQ or Language Integrated Query that allows developers to query objects along with being able to transform data from various sources to manipulate or get data needed quickly and easily. C# is a constantly evolving language with the latest versions of .NET also getting a new version of C# with each release and with the release of .NET 8 will also see the introduction of C# 12. New features coming in C# 12 include primary constructors which allows for simpler declaration of values scoped to the class such as instances for dependency injection which could also take advantage of the keyed instances supported in .NET 8. C# 12 also will support collection expressions to create common collection values making it easier to initialise lists or arrays and you can also alias any type not just named types so could create semantic aliases for array types, tuple types and more. C# gets new features with each recent and upcoming release of .NET with community contributions to the language specification including whether to include or exclude proposed features along with experimental features with some released to test an idea and see if it is viable. If you want to find out more about C# visit csharp.net or check out the link in the show notes.

Blazor

Blazor allows developers to build beautiful web apps using the power of .NET and C# without writing any JavaScript, although if needed you can call into existing JavaScript libraries and APIs. Blazor can run in any browser using WebAssembly or server-side using ASP.NET Core and you can create user experiences quickly using the flexible and reusable component model that is simple, composable, declarative, and efficient. Components can be used not only on the web both client-side in the browser or server-side but can also be used to create native-hybrid apps for mobile on iOS and Android or Desktop for Window and macOS. .NET 8 introduces some new features to Blazor including the ability to use sections to allow content to be output from child components and a new render mode where pages can be delivered from the server then from the browser once downloaded to the client in the background. .NET 8 in Blazor also adds new rendering modes including static server rendering for static HTML, streaming rendering which allows content to be output from long running tasks as it becomes available and the ability to directly render components as HTML outside of a web app. If you want to hear more about Blazor then you can check out Episode Six of the RoguePlanetoid Podcast or to get started with Blazor you can check out my workshops on Blazor, Blazorfy about using Spotify with Blazor or Blazor Emoji Bingo at tutorialr.com/workshops or to find out more about Blazor you can visit blazor.net or check out the links in the show notes.

ASP.NET

ASP.NET is the cross-platform and open-source platform for building web apps and services with .NET and C#, you can create full stack web apps using HTML, CSS, and JavaScript along with developing REST APIs for many different types of clients from browsers to mobile devices. ASP.NET can enable bi-directional real-time communication between client and server plus create deployable microservices. With ASP.NET you can deploy to any major cloud platform such as Azure or AWS or your own servers either on Windows or Linux. .NET 8 introduces new features to ASP.NET such as explicit binding to form properties with a FromForm attribute, middleware to support anti-forgery with Minimal APIs and features to make it easier for developers to use the ASP.NET Core Identity for authentication when creating JavaScript Single Page Apps or Blazor apps. If you want to find out more about ASP.NET then visit asp.net or you can check out the link in the show notes.

.NET MAUI

.NET MAUI allows developers to build native, cross-platform apps for desktop and mobile using the latest technologies for building native apps on Windows, macOS, iOS and Android. .NET MAUI allows developers to use a single C# codebase and project for all target device types and platforms that have the look-and-feel of those platforms. You can also take advantage of Blazor components in .NET MAUI with Blazor Hybrid apps. .NET 8 improves .NET MAUI by improving performance and application stability for controls on iOS, along with general enhancements to UI controls, creating a more consistent user experience in Windows, macOS, iOS and Android plus performance optimisations to improve memory usage for smoother app performance and responsiveness. To find out more about .NET MAUI you can visit dot.net/maui or check out the link in show notes.

Windows App SDK

.NET 8 and C# 12 features will also be able to use on other platforms that use .NET such as Windows App SDK which is a set of developer tools and components used to build native applications on Windows for Windows 11 or Windows 10 version 1809 and later. Windows App SDK is the next evolution of the Windows application development platform with unified APIs that can be used by any desktop app using WinUI. WinUI is the native user interface framework for Windows Desktop apps to provide consistent, intuitive, and accessible experiences using the latest user interface patterns. Windows App SDK is updated on a regular basis that are separate to releases of .NET with the latest version as of this episode being 1.4 which includes updates to Widget Providers to support features used by first-party Widgets in Windows 11 and a new ItemsView control which supports switching to any custom layout while preserving the selected item. If you want to hear more about the Windows App SDK then you can check out Episode Two of the RoguePlanetoid Podcast or to learn more about Windows App SDK you can check out my tutorials at tutorialr.com/tutorials/winappsdk or to find out more about Windows App SDK visit aka.ms/winappsdk or you can check out those links in the show notes.

Overview

.NET powers many kinds of experiences such as on the web with Blazor and ASP.NET or cross-platform with .NET MAUI or for Windows with Windows App SDK. With each year comes a new release of .NET with improvements, new functionality and features for developers that can be leveraged by updated versions of the languages supported such as C#. .NET is often overlooked by many smaller companies, but it powers the most powerful experiences behind the scenes from Microsoft's Bing search engine to services connecting the latest games on Xbox. Beyond Microsoft there are thousands of companies all over the world using .NET to deliver experiences and so much more. It has been amazing to see .NET grow from the original Windows-only .NET Framework which was closed-source and proprietary to the open-source community driven cross-platform .NET it is today. .NET will continue to grow and improve year on year as each new release is created and curated to include more capabilities, and moving from one version to the next need not be a major undertaking if already on any previous recent versions of .NET. If on older version of .NET such as .NET Framework the leap may be larger, but it is worth taking to bring applications from the dawn of the millennium to the dawn of the next quarter of the century and continue to evolve apps and integrate new functionality and features using .NET.

Outro

Thanks for listening to the RoguePlanetoid Podcast where each episode you will find insights about Microsoft or related platforms and technology, along with so much more wherever you listen to your podcasts or at rogueplanetoid.com/podcasts for the RoguePlanetoid Podcast whether you are a beginner or an experienced professional or just interested in technology. Keep Current, Keep Coding!

RoguePlanetoid Podcast is a production of cluarantonn.com

Hosted, Written, Produced and Edited by Peter Bull

Music based on Like a Tiger by Jo Wandrini

Production Company Name by Granny Robertson