Comparing ASP.NET Core and ASP.NET 4.6 frameworks for building modern web apps
1.
2. ASP.NET Core vs. ASP.NET 4.6
.NET Framework .NET Core
Full .NET Framework for any scenario and
library support on Windows
Modular libraries & runtime optimized for
server and cloud workloads
4. .NET Core is a general purpose development
platform maintained by Microsoft and the .NET
community on GitHub.
It is cross-platform, supporting Windows, macOS
and Linux, and can be used in device, cloud, and
embedded/IoT scenarios.
On .Net Core
5. Flexible deployment: Can be included in your app or installed side-by-side user- or machine-wide.
Cross-platform: Runs on Windows, macOS and Linux; can be ported to other OSes.
Command-line tools: All product scenarios can be exercised at the command-line.
Open source: The .NET Core platform is open source, using MIT and Apache 2 licenses. Documentation is
licensed under CC-BY. .NET Core is a .NET Foundation project.
Supported by Microsoft: .NET Core is supported by Microsoft, per .NET Core Support
Compatible: .NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard
Library.
On .Net Core
7. Solves the code sharing problem for .NET developers
A set of APIs that all .NET platforms have to implement
.NET Standard 2.0 will be implemented by .NET Framework,
.NET Core, and Xamarin.
.NET Standard will replace Portable Class Libraries (PCLs) as
the tooling story for building multi-platform .NET libraries.
On .Net Standard
8.
9.
10. Platform
Name
Alias
.NET
Standard
netstandard 1.0 1.1 1.2 1.3 1.4 1.5 1.6 2.0
.NET Core netcoreapp → → → → → → 1.0 vNext
.NET
Framework
net → 4.5 4.5.1 4.6 4.6.1 4.6.2 vNext 4.6.1
Mono/Xam
arin
Platforms
→ → → → → → → vNext
Universal
Windows
Platform
uap → → → → 10.0 → → vNext
Windows win → 8.0 8.1
Windows
Phone
wpa → → 8.1
Windows
Phone
Silverlight
wp 8.0
11.
12. New dual-train strategy for .NET Core releases:
“Long Term Support (LTS)” and “Current Release”.
.NET Core 1.1 RTM, the first “Current” release
New OS Support in 1.1:
Linux Mint 18
OpenSUSE 42.1
macOS 10.12 (also added to .NET Core 1.0)
Windows Server 2016 (also added to .NET Core 1.0)
But: Tooling for both 1.0 and 1.1 is still preview
There are two distributions of .NET Core: a Runtime, and an SDK that includes the
Runtime and some Tools.
On .Net Core releases
13. News flash: There are 1380 new APIs in .NET Core 1.1.
News flash: ASP.NET Core 1.1 with Kestrel was ranked as the
fastest mainstream fullstack web framework in
the TechEmpower plaintext benchmark.
News flash: Google Cloud is joining the .NET Foundation
Technical Steering Group. Welcome, Google!
14. ASP.NET Core vs. ASP.NET 4.6
.NET Framework .NET Core
Full .NET Framework for any scenario and
library support on Windows
Modular libraries & runtime optimized for
server and cloud workloads
15. A new lightweight open-source and cross-
platformframework for building cloud-
based Web applications using .NET
ASP.NET Core
16. ASP.NET Core Design
Choose your Editors
and Tools
Open Source
with Contributions Cross-PlatformOSS
Seamless transition
from on-premises to cloud
Faster Development CycleTotally Modular
Fast
17. Hosting
Kestrel
Middleware
Routing, authentication, static files, diagnostics, error handling, session, CORS, localization, and YOUR OWN
Dependency Injection
Ships entirely as Nuget
Cross Platform Support
Configuration
Logging
Application Frameworks – MVC, Identity, SignalR
ASP.NET Core Features
18. Built on ASP.NET Core
One set of concepts – remove duplication
Web UI and Web APIs
Supports .NET Core
Runs on IIS or self-hosted
Deep integration with DI
ASP.NET Core MVC
20. .NET Core become .csproj/MSBuild based
• Customers wanted their projects to be able to work with existing .NET code they already had
• Interop with existing .NET projects (Project to project references)
• Taking the best features of project.json and moving them into .csproj/MSBuild.
• .NET Core tools are now based on the same technology as other .NET projects. (Proven scalability)
.NET Core csproj support is now available as an alpha release.
Preview 3-based SDK, using CSProj: 1.1.0-sdk-msbuild
Preview 2-based SDK, using project.json: 1.1.0-sdk-projectjson
.NET Core is integrated into Visual Studio 2017 RC and Visual Studio for Mac. It can be added to Visual
Studio Code by the C# extension. The new Tools release can be used with both the .NET Core 1.0 and .NET
Core 1.1 runtimes.
Watch out! Changes ahead!
21. What is not changing
One project file – Your project file contains dependency and target framework
information, all in one file. No source files are listed by default.
Targets and dependencies — .NET Core target frameworks and metapackage
dependencies remain the same and are declared in a similar way in the new csproj
format.
.NET Core CLI Tools – The dotnet tool continues to expose the same commands, such
as dotnet build and dotnet run.
.NET Core Templates – You can continue to rely on dotnet new for templates (for
example, dotnet new -t library).
Supports multiple .NET Core version — The new tools can be used to target .NET Core
1.0 and 1.1. The tools themselves run on .NET Core 1.0 by default.
22. ASP.NET
Build for Windows
Use Web Forms, SignalR, MVC, or Web
Pages
One version per machine
Develop with Visual Studio using C#,
VB or F#
Mature platform
High performance
Which one is right for me?
ASP.NET Core
Build for Windows, Mac, or Linux
Use MVC, or Web API
Multiple versions per machine
Develop with Visual Studio or Visual Studio
Code using C#
New platform
Ultra performance
23. The ASP.NET Core and Entity Framework, C# and VB docs were
moved to docs.microsoft.com as part of the last release:
https://docs.microsoft.com/aspnet
Check out the .NET Web Development and Tools Blog:
https://blogs.msdn.microsoft.com/webdev/
Docker Images: https://hub.docker.com/r/microsoft/dotnet/
Read more