 It's time to get jazzed about the future of the .NET ecosystem. That's right, we're going to talk about .NET 5. It's hard to believe the .NET only came out in 2002. There are so many versions of the framework rapidly changing the places that a developer could create and support with C-Sharp. The entire ecosystem just turned 18, and it has been confusing at times when it comes to versioning. I fell in love with how powerful the .NET platform was, but I admit I felt a little torn about changing from a minor upgrade to the next iteration of the framework. How much actual value would I get from doing that upgrade? I am so pleased that .NET 5 Preview 2 is here today, and we can start playing with it. It gives us a hands-on look at why all C-Sharp developers should be a little excited about what's to come. There's one special thing in particular that I think we should all pay attention to. Unity. Now, I'm not talking about the Unity that's the gaming engine and not Unity, the inversion of controls or dependency injection. I'm talking about the Unity of all things .NET. Can you see how naming things is kind of difficult? Understanding what someone is talking about when they say .NET is a matter of context. Since the initial release of .NET Core in 2016, there has been a clarification required almost every time I say that I'm a .NET developer or I'm a C-Sharp developer. They ask which one? Where? On the desktop? In a browser? Back in an API somewhere? Which one are you? Many of the projects I've worked on in the past had a pretty reliable integration with .NET 4.5, for example. So, upending everything that I was doing to work with a completely different set of APIs with .NET Core was a little bit of a daunting task when it came to how much I was integrated. And to add to the value of whether or not I should change, the new versions of framework were still being released side by side with .NET Core all the way up until earlier in 2019. And then C-Sharp8 came out. We got noble reference types and a lot more, like default implementations. Along with a new version of the language that we all know and love came a caveat. C-Sharp8 was only officially supported alongside of .NET standard 2.1, which of course, the .NET framework would never support. There are some suggestions out there about how to kind of jerry-rig it. It will never completely work. And there's probably a lot of problems that will come along with trying to retrofit it to the rest of the .NET framework. C-Sharp8 support officially came out with the release of .NET Core 3. But of course, I wanted to play around with C-Sharp8. Lots of great things coming. Moving to the .NET Core environment suddenly required deeper conversations with my team about taking advantage of the benefits of C-Sharp8. In the meantime, new versions of .NET framework were still being shipped. And in fact, .NET 4.8 was released in 2019. Having a conversation with a client about why they should spend the money to move everything to a new runtime when their existing runtime was still shipping, the latest versions of it was a bit challenging to say the least. Wouldn't it be nice to have one .NET to rule them all? Luckily, Microsoft agreed. Here is the umbrella of .NET 5 to the rescue. As the first part of this unification scheme, Microsoft's Xamarin Mobile Development will switch from using MonoBCL over to what all the other components are using, which is known as the .NET Core BCL. And with that move, Xamarin Development will officially be just folded into .NET 5. That means, for the first time, one BCL-based framework will handle all of the app models, such as ASP.NET Core, Entity Framework Core, Blazor, WinForms, WPF, Xamarin, and ML.NET, or MachineLearning.NET. Wait, WPF and WinForms made it in to the latest version of .NET? Yes, it's true. .NET 5 is happy to see them included in this runtime. Getting started working with the preview version of .NET 5 is what we here at Okta have been actively playing with and encourage all C-Sharp developers to try the same. According to the roadmap, .NET Core has been rebranded and folded into .NET 5 going forward. So there's one major version number incremented every year. Because .NET Framework was already on version 4x, it didn't really make sense to name it .NET Core 4. There would be a lot more confusion, especially since there's the unification of just one platform. So jumping to 5 would unify the name of that ecosystem going forward. So does that mean that this is the end of life for the existing .NET Framework? Well, no, not exactly. According to Scott Hunter, the traditional platform will still be supported at least for a while. The official support policy for .NET is stated directly on Microsoft's website alongside of the .NET Core previous version support in case you are curious about a particular version sunsetting. This does mean that the current .NET 4.8 will not evolve, but some security patches will be available for it in the future. Great, so how do we prepare our existing apps for the future of .NET? Remember, right now .NET 5 is still in preview. Until general release, the best way to get prepared is to migrate your existing .NET Framework apps to .NET Core 3.1, particularly if you want solid general availability for things like Blazor and of course, T-Sharp 8. Now, breaking changes are possible with any major release, but the majority of the APIs should remain the same in place from .NET Core 3.x. Make sure you move your class libraries to .NET standard 2.1, if possible, to help future-proof your transition. When it comes to Xamarin, the compiler will move from the monobcl base class library to the .NET Core BCL. More on mobile app migrations in a future video. So what does this all mean? The .NET 5 ecosystem to me is still based on previous versions of .NET Core, which at first was very light and didn't have all of the libraries that I needed, but has since really caught up to the times. It's also the next logical iteration with a dash of WinForms and WPF included. Faster algorithms and a bit of rebranding. That's something I can get behind. What do you think about the future of this platform? Leave a comment below and share what project you're working on, which version of .NET it is, and what you're looking forward to, or at least wondering about when it comes to .NET 5. Don't forget to like and subscribe. We've got lots of videos coming to you from Okta. Long live .NET.