From the course: Introducing Desktop and .NET Core

.NET Core and .NET Framework: What to choose? - .NET Tutorial

From the course: Introducing Desktop and .NET Core

.NET Core and .NET Framework: What to choose?

- Hi, my name is Olia Gavrysh. I'm Program Manager on .NET team at Microsoft, and in this video, you will learn about .NET Core, how it compares to .NET Framework, and which one to choose for your desktop applications. The .NET Framework is a large and mature development platform for building Windows desktop applications. .NET Core, on the other hand, is an open-source .NET platform that allows you to build cross-platform applications so your apps can run on windows, Linux, and Mac OS. This (indistinct) web applications and backend services, and with the latest version of .NET Core, you can develop desktop applications as well. The first version of .NET Framework was released in 2002 and, over the years, it grew a large set of APIs. .NET core was created in 2016. We were able to learn from the .NET Framework experience and redesign the architecture of the platform to address some limitations of the past. This resulted in better performance for .NET Core and allowed us to add a few features that are not available in .NET Framework. Let's briefly talk about those core specific features. For .NET Framework, you can have only one version of the Framework installed on the same machine, which is used by all applications. This way, if you want to upgrade to the latest version of the Framework, all applications that are running on that machine will take a dependency on the upgrade. You've upgraded the .NET Framework on that machine and all the apps are now using that upgrade. This behavior might result in regressions. For developers, it usually means that the Framework upgrade was a company-wide decision performed by the IT department, which sometimes delays the upgrades. With .NET Core, you can have many different versions of the .NET Core deployed on the same machine. For each application, you can specify which version of .NET Core your apps should run against, and you can go even further. You can package .NET Core with your application and be completely independent on the environment your app is running on. For example, you can run your self-contained application on a Mac OS machine that have never seen a .NET Core installation before. This gives you freedom to upgrade the latest version of the .NET platform at your own pace and benefit without any delays from the latest and greatest APIs. Besides these features, .NET Core has other improvements. You can read about them on our docs. Link is provided below. Now, let's talk about what is included in .NET Framework and in .NET Core. Initially, .NET Core was started as a small subset of the most used API's from .NET Framework. In Version Two and Three, .NET Core received even more APIs to cover domains as web, cloud, desktop, IoT and AI. There are still some areas that will only live in .NET Framework on Windows and won't be moved to .NET Core, due to either architectural challenges, or because we believe that these APIs are outdated, Windows-specific or have newer substitutions in .NET Core. In the future, all new feature APIs will go only to .NET core. Now, .NET Framework will be supported and will receive all appropriate and security updates, so it's completely safe to leave your applications on .NET Framework. But, if you want to use the newest language features and runtime improvements, you should move to .NET Core. That leads us to the answer to the ultimate question: Which one, Core or Framework, should I pick for my applications? Let's quickly summarize what we've just talked about. So what does .NET Core has that .NET Framework doesn't? It will receive new features, APIs and runtime improvements. It has better performance, and it has ability to have different versions of .NET Core deployed side-by-side on the same machine. You can create self-contained applications and be completely independent on the environment you're running on and so on. Now, what does that net Framework has that .NET core doesn't? It has some older APIs that will not be moved to Core. And how do you choose? For your new applications, choose .NET Core. For your applications that are only in maintenance mode and all the development is completed, you don't want to touch that code, it's completely safe to leave them on the .NET Framework. And for existing applications that are target in .NET Framework but are in active development, you can make your call; either move them to .NET Core or leave them on the Framework. You can evaluate benefits and port-in costs and make the decision that is best for your application. We have a separate video on how to evaluate the cost of migration and how to port your desktop application to .NET Core. Thank you very much for watching and happy coding.

Contents