>> Hi, my name is Olia Gavrysh.
I'm program manager on.NET Team at Microsoft.
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 usually we're web applications and back-end services.
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 on.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 that 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 app should run against and you can go even further.
You can package.NET Core with your application and be
completely independent on the environment
you're 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 this 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 APIs 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..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.
It has the ability to have different versions
of.NET Core deployed side-by-side on the same machine.
You can create self-contained applications and become closely
independent on the environment you're running on and so on.
Now, what does.NET Framework has that.NET Core doesn't?
It has some older APIs that will not be moved to Core.
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.
For existing applications that are
targeting.NET Framework but are in active development,
you can make your call;
either you move them to.NET Core or leave them on the Framework.
You can evaluate benefits and porting
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.