Here is quick snapshot of .NET Ecosystem Architecture diagram, as of today.
As you can see from the above diagram, the .NET ecosystem has three major high-level components - .NET Framework, .NET Core, and Xamarin.
Xamarin is not a debate at all. When you want to build mobile (iOS, Android, and Windows Mobile) apps using C#, Xamarin is your only choice.
The .NET Framework supports Windows and Web applications. Today, you can use Windows Forms, WPF, and UWP to build Windows applications in .NET Framework. ASP.NET MVC is used to build Web applications in .NET Framework.
.NET Core is the new open-source and cross-platform framework to build applications for all operating systems including Windows, Mac, and Linux.
.NET Core supports UWP and ASP.NET Core only.
Let' understand difference between .Net Framework and .Net Core.
Well before that few lines ..
More to add...
Ref: Link
Hope this helps..
Arun Manglick
As you can see from the above diagram, the .NET ecosystem has three major high-level components - .NET Framework, .NET Core, and Xamarin.
Xamarin is not a debate at all. When you want to build mobile (iOS, Android, and Windows Mobile) apps using C#, Xamarin is your only choice.
The .NET Framework supports Windows and Web applications. Today, you can use Windows Forms, WPF, and UWP to build Windows applications in .NET Framework. ASP.NET MVC is used to build Web applications in .NET Framework.
.NET Core is the new open-source and cross-platform framework to build applications for all operating systems including Windows, Mac, and Linux.
.NET Core supports UWP and ASP.NET Core only.
- UWP is used to build Windows 10 targets Windows and mobile applications.
- ASP.NET Core is used to build browser based web applications.
Let' understand difference between .Net Framework and .Net Core.
Well before that few lines ..
- .NET Core is the updated and redesigned version of .NET Framework.
- The .Net developers can upgrade to .NET Core to build a variety of applications by targeting multiple devices and platforms. And take advantage of the new features and enhancements included in .NET Core to build, test, and deploy the applications efficiently and rapidly.
Feature
|
.NET Framework
|
.NET Core
|
Open Source
|
.NET Framework was releases as a Licensed and proprietary software framework.
|
.NET Core as an Open
Source software framework.
Hence, both
enterprise and individual developers can build apps with .NET Core
without paying any licensing fees.
|
Cross-Platform:
|
.NET Framework enabled developers to build applications
for a single platform — Windows
|
.NET Core is cross-platform, and supports three distinct
operating systems — Windows, OS X, and Linux.
Also allows porting their existing applications from one
platform to another.
|
Installation
|
he .NET Framework needs to be installed as a single
package and runtime environment for Windows.
|
NET Core is Cross-Platform,
and needs to be packaged and installed independent of the underlying
operating system. The developers are required to compile Nuget packages
included in .NET Core
|
Compatibility
|
Read from right side.
|
.NET Core does not
support all the features and functionalities provided by the latest version
of .NET Framework. But it can be used as a subset of the .NET Framework.
Well, .NET Core is still compatible with
.NET Framework through the .NET Standard Library. Hence, the
developers can still run the applications developed with .NET Framework after
upgrading to .NET Core.
|
Relevant Collection
of Libraries
|
Both .NET Framework and .NET Core allows developers to
take advantage of robust class libraries.
|
NET Core uses a redesigned CLR called CoreCLR, and features a
modular collection of libraries called CoreFX.
Hence, the developers have option to pick and use only the libraries required by
each application, and enhance the application’s performance by removing
unnecessary libraries.
|
Application Models
|
.NET Framework and .NET Core differs from each other in
the category of application models. The application model of .NET Framework
includes
|
Application model of .NET Core includes
Microsoft just announced .NET Core v 3.0, which is a much-improved version of
.NET Core. If you want to learn and build for the future, .NET Core is the way.
.NET 3.0 now supports Windows Forms and WPF
.NET Core 3.0 also supports cross development between UWP,
WPF, and Windows Forms.
This
provides developers flexibility to bring modern interfaces of UWP into Windows
Forms and WPF.
|
Standard Library
|
As a formal specification of .NET APIs, the .NET Standard
Library meets the requirements of varying run-times and maintains uniformity
in the .NET ecosystem.
Each version of .NET Framework uses a specific version of
.NET Standard Library. For instance,
|
.NET Core implements .NET Standard Library 1.6
|
ASP.NET
|
While using web applications with .NET Framework, the
developers have option to use a robust web application framework like
ASP.NET.
|
.NET Core comes with a redesigned version of ASP.NET.
I.e. Developers can now use ASP.NET Core to build both web and cloud applications.
In addition to being open source, ASP.NET Core is also
available on three distinct platforms — Windows, OS X, and Linux
|
Web Application Deployment
Options
|
While using .NET Framework, developers have to deploy web
applications only on Internet Information Server.
|
But the web applications developed with ASP.NET Core can
be hosted in a number of ways. The developers can deploy the ASP.NET Core applications:
|
Cloud Ready
Configuration
|
.NET Framework, is not
designed with features to simplify development and deployment of cloud-based
application.
|
.NET Core is designed with features to simplify
development and deployment of cloud-based application.
The developers can use ASP.NET to build a variety of
cloud-based applications rapidly. Also, they can publish the applications directly
to the cloud by availing the cloud-ready configuration included in ASP.NET
Core.
|
Mobile App
Development
|
.NET Framework does not
include any robust framework or tools to simplify mobile app development.
|
.NET Core compatible with Xamarin through the .NET Standard Library.
Hence, developers can take advantage of Xamarin to write Cross-Platform Mobile Apps in C# with
a shared code base and same set of APIs.
They can further use the tools provided by Xamarin to
customize the mobile app for individual mobile platforms like iOS, Android
and Windows Phone.
|
Microservices
|
.NET Framework have features to build Microservices but
not as robust as .NET Core.
|
NET Core makes it easier for developers to build
microservice oriented systems rapidly.
As such systems include a number of Independent and Dynamic
Microservices, the developers have to focus on individual microservices.
.NET Core enables programmers to develop Custom Microservices by using varying
programming languages, technologies and frameworks. Also, the developers can
build a robust system by combining multiple microservices seamlessly.
Also Micro services built in .NET Core, work well with other micro services developed with .NET Framework, Java, Ruby, or others. |
Performance and
Scalability
|
.NET Framework have features to enhance the performance
and scalability of applications but not as robust as .NET Core.
|
.NET Core is more
effective than .NET Framework to enhance the performance and scalability
of applications.
It enables developers to enhance the performance of
applications drastically without
deploying additional hardware
or infrastructure.
Also, it allows developers to build, test and deploy
applications directly in the cloud. Hence, the developers can switch to .NET
Core to enhance the performance and scalability of their applications without
putting extra time and effort.
|
Containerization & Docker
|
Nothing here..
|
Containers are the VMs of today. .NET Core’s
modularity, light weight, and flexibility makes it easier to deploy .NET Core
apps in containers.
Containers can be deployed on any platform, Cloud, Linux, and Windows. .NET Core works well with both Docker and Azure Kubernetes Service. |
Dependency Injection
|
Nothing here...
|
.NET core supporting built-in DEPENDENCY INJECTION
|
When to Choose
|
If you’re a .NET developer who needs to build and release
something fast and you don't have time to learn .NET Core, then the .NET
Framework is your choice.
If you’re maintaining and upgrading existing .NET apps, .NET
Framework is your choice. Porting an existing .NET app to a .NET Core app
requires some work.
|
Though .NET Core does have a learning curve,
well with given above advantages, If you’re building a new application and have
a choice between .NET Core and .NET Framework, .NET Core is the way to go
|
More to add...
Ref: Link
Hope this helps..
Arun Manglick