Intro to .NET (Core)
2017-12-20 21:51
ROY <xuqiang@gridsum.com>
Agenda
• .NET
• .NET Standard
• .NET Framework
• .NET Core
• Xamarin/Mono
• Deep into .NET Core
• Packages
• Metapackages
• .NET Core SDK
• .NET Core CLI
• Target frameworks
• .NET Standard
• .NET Core Application
• .NET Framework
• Introduction to ASP.NET Core
.NET
• .NET is a free, cross-platform, open source developer platform for
building many different types of applications.
• With .NET, you can use multiple languages, editors, and libraries to build
for web, mobile, desktop, gaming, and IoT.
• .NET Framework/.NET Core/Mono (Xamarin)
• C#/VB.NET/F#
• Assembly/DLL/MSIL
• Common Language Runtime (CLR)
• GC/JIT
• CoreCLR
• Base Class Library (BCL)
• CoreFX
• Framework Class Library (FCL)
• ASP.NET/Windows Forms/WPF
• ASP.NET Core
.NET Standard specification
• The .NET Standard is a formal specification of .NET APIs that are
intended to be available on all .NET implementations. The
motivation behind the .NET Standard is establishing greater
uniformity in the .NET ecosystem.
• The .NET Standard enables the following key scenarios:
• Defines uniform set of BCL APIs for all .NET implementations to implement,
independent of workload.
• Enables developers to produce portable libraries that are usable across
.NET implementations, using this same set of APIs.
• Reduces or even eliminates conditional compilation of shared source due
to .NET APIs, only for OS APIs.
.NET Standard .NET implementation support
.NET Framework
• An implementation of .NET that runs only on Windows.
• Includes the Common Language Runtime (CLR), the Base Class
Library, and application framework libraries such as ASP.NET,
Windows Forms, and WPF.
.NET Core
• A cross-platform, high-performance, open source implementation of .NET.
• Includes the Core Common Language Runtime (CoreCLR), the Core AOT Runtime (CoreRT, in development), the Core Base
Class Library (CoreFX), and the Core SDK.
• .NET Core can be thought of as a cross-platform version of the .NET Framework, at the layer of the .NET Framework Base Class
Libraries (BCL). It implements the .NET Standard specification. .NET Core provides a subset of the APIs that are available in the
.NET Framework or Mono/Xamarin.
• 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 operating systems.
• Command-line tools: All product scenarios can be exercised at the command-line.
• Compatible: .NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard.
• 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
Xamarin/Mono
• Mono is a .NET implementation that is mainly used when a small
runtime is required.
• It is the runtime that powers Xamarin applications on Android, Mac,
iOS, tvOS and watchOS and is focused primarily on apps that
require a small footprint.
• Historically, Mono implemented the larger API of the .NET
Framework and emulated some of the most popular capabilities on
Unix.
Deep into .NET Core
• .NET Core is a platform made of NuGet packages. Some product experiences
benefit from fine-grained definition of packages while others from coarse-
grained. To accommodate this duality, the product is distributed as a fine-
grained set of packages and then described in coarser chunks with a package
type informally called a "metapackage".
• Each of the .NET Core packages support being run on multiple .NET
implementations, represented as frameworks. Some of those frameworks are
traditional frameworks, like net461, representing the .NET Framework. Another
set is new frameworks that can be thought of as "package-based frameworks",
like netcoreapp2.0, which establish a new model for defining frameworks.
These package-based frameworks are entirely formed and defined as
packages, forming a strong relationship between packages and frameworks.
Packages
• .NET Core is split into a set of packages, which provide primitives, higher-
level data types, app composition types and common utilities. Each of
these packages represent a single assembly of the same name.
• There are advantages to defining packages in a fine-grained manner:
• Fine-grained packages can ship on their own schedule with relatively limited
testing of other packages.
• Fine-grained packages can provide differing OS and CPU support.
• Fine-grained packages can have dependencies specific to only one library.
• Apps are smaller because unreferenced packages don't become part of the app
distribution.
Metapackages
• Metapackages are a NuGet package convention for describing a set of
packages that are meaningful together. They represent this set of packages by
making them dependencies. They can optionally establish a framework for this
set of packages by specifying a framework (Package-based Frameworks).
• NETStandard.Library - Describes the libraries that are part of the ".NET
Standard". Applies to all .NET implementations (for example, .NET Framework,
.NET Core and Mono) that support .NET Standard. Establishes the 'netstandard'
framework.
• Microsoft.NETCore.App - Describes the libraries that are part of the .NET
Core distribution. Establishes the .NETCoreApp framework.
.NET Core SDK
• .NET Core Software Development Kit (SDK) is a set of libraries and
tools that allow developers to create .NET Core applications and
libraries.
• It contains the following components:
• The .NET Core Command Line Tools that are used to build applications
• .NET Core (libraries and runtime) that allow applications to both be built
and run
• The dotnet driver for running the CLI commands as well as running
applications
.NET Core CLI
• The .NET Core command-line interface (CLI) is a new cross-platform
toolchain for developing .NET applications.
• The CLI is a foundation upon which higher-level tools, such as Integrated
Development Environments (IDEs), editors, and build orchestrators, can
rest.
• Basic commands
• restore/build/publish/run/test/pack/clean/help
• Project modification commands
• add package/add reference/remove package/remove reference/list reference
Target frameworks
• The collection of APIs that a .NET app or library relies on.
• An app or library can target a version of .NET Standard (for
example, .NET Standard 2.0), which is specification for a
standardized set of APIs across all .NET implementations.
• An app or library can also target a version of a specific .NET
implementation, in which case it gets access to implementation-
specific APIs. For example, an app that targets Xamarin.iOS gets
access to Xamarin-provided iOS API wrappers.
.NET Standard framework
• The .NET Standard (TFM: netstandard) framework represents the APIs
defined by and built on top of the .NET Standard. Libraries that are
intended to run on multiple runtimes should target this framework.
• They will be supported on any .NET Standard compliant runtime, such as
.NET Core, .NET Framework and Mono/Xamarin. Each of these runtimes
supports a set of .NET Standard versions, depending on which APIs they
implement.
• The netstandard framework implicitly references the NETStandard.Library
metapackage.
.NET Core Application framework
• The .NET Core Application (TFM: netcoreapp) framework represents
the packages and associated APIs that come with the .NET Core
distribution and the console application model that it provides.
• .NET Core apps must use this framework, due to targeting the
console application model, as should libraries that intended to run
only on .NET Core. Using this framework restricts apps and libraries
to running only on .NET Core.
.NET Framework
• The .NET Framework (TFM: net) represents the available APIs
defined by the assemblies that a .NET implementation installs on
Windows platform, which includes application framework APIs (for
example, ASP.NET, WinForms and WPF).
Introduction to ASP.NET Core
• ASP.NET Core is a cross-platform, high-
performance, open-source framework for
building modern, cloud-based, Internet-
connected applications.
• Startup / DI / Middleware / Routing /
Hosting
• Model Binding / Controllers / Views / Filters
• Kestrel (libuv) / IIS (ANCM) / Nginx
// An ASP.NET Core application is a console app that creates a web server in its Main method:
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
namespace aspnetcoreapp
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
}
demo
1. console app
2. web
3. webapi
4.mvc
Q & A

More Related Content

PDF
.Net Core Blimey! (16/07/2015)
PDF
.net Core Blimey - Smart Devs UG
PDF
.NET Core Blimey! (dotnetsheff Jan 2016)
PPT
Best DotNet Training in Delhi
PPTX
.NET Framework 4.0 – Changes & Benefits
PPTX
Presentation1.pptx
PDF
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
PPTX
What's New in .Net 4.5
.Net Core Blimey! (16/07/2015)
.net Core Blimey - Smart Devs UG
.NET Core Blimey! (dotnetsheff Jan 2016)
Best DotNet Training in Delhi
.NET Framework 4.0 – Changes & Benefits
Presentation1.pptx
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
What's New in .Net 4.5

What's hot (19)

PPT
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
PPTX
Introduction to Murasaki
PDF
Net framework
PPTX
.Net framework
PDF
IncludeOS for ics 2018
PDF
Dotnet interview qa
PPTX
Docker
PDF
Docker basics
PPTX
What is new in .NET 4.5
PDF
Docker based-pipelines
PDF
Managing Open Source software in the Docker era
PDF
Why Drupal is Rockstar?
PDF
.Net
PPT
A begineers guide of JAVA - Getting Started
PPTX
Start your adventure with docker
PDF
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
PDF
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
PPTX
Docker & Daily DevOps
PDF
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Introduction to Murasaki
Net framework
.Net framework
IncludeOS for ics 2018
Dotnet interview qa
Docker
Docker basics
What is new in .NET 4.5
Docker based-pipelines
Managing Open Source software in the Docker era
Why Drupal is Rockstar?
.Net
A begineers guide of JAVA - Getting Started
Start your adventure with docker
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Docker & Daily DevOps
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Ad

Similar to Introduction to dot net (20)

PDF
Raffaele Rialdi
PDF
.NET Core, ASP.NET Core Course, Session 1
PDF
.NET Core Blimey! (Shropshire Devs Mar 2016)
PDF
.NET Core Blimey! Windows Platform User Group, Manchester
PDF
Learn .NET Core - Introduction
PDF
Dot NET Core Interview Questions PDF By ScholarHat
PDF
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
PPTX
Advantage of .Net Appplication - You can write app
PPTX
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
PPTX
The ultimate cheat sheet on .net core, .net framework, and .net standard
PPTX
Overview of the new .NET Core and .NET Platform Standard
PPTX
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
PPTX
Dive into .Net Core framework
PDF
.NET (r)evolution
PPTX
.Net Core - not your daddy's dotnet
PDF
.NET Everywhere and for Everyone
PPTX
Whats new in .net for 2019
PPTX
Difference between .net core and .net framework
PDF
Future of .NET - .NET on Non Windows Platforms
PDF
Whats new in .NET for 2019
Raffaele Rialdi
.NET Core, ASP.NET Core Course, Session 1
.NET Core Blimey! (Shropshire Devs Mar 2016)
.NET Core Blimey! Windows Platform User Group, Manchester
Learn .NET Core - Introduction
Dot NET Core Interview Questions PDF By ScholarHat
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
Advantage of .Net Appplication - You can write app
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
The ultimate cheat sheet on .net core, .net framework, and .net standard
Overview of the new .NET Core and .NET Platform Standard
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
Dive into .Net Core framework
.NET (r)evolution
.Net Core - not your daddy's dotnet
.NET Everywhere and for Everyone
Whats new in .net for 2019
Difference between .net core and .net framework
Future of .NET - .NET on Non Windows Platforms
Whats new in .NET for 2019
Ad

Recently uploaded (20)

PPTX
Presentation - Summer Internship at Samatrix.io_template_2.pptx
PPTX
Independent Consultants’ Biggest Challenges in ERP Projects – and How Apagen ...
PPTX
HackYourBrain__UtrechtJUG__11092025.pptx
PPTX
WJQSJXNAZJVCVSAXJHBZKSJXKJKXJSBHJBJEHHJB
PDF
IT Consulting Services to Secure Future Growth
PPTX
AI Tools Revolutionizing Software Development Workflows
PPTX
ROI from Efficient Content & Campaign Management in the Digital Media Industry
PPTX
Streamlining Project Management in the AV Industry with D-Tools for Zoho CRM ...
PPTX
Human Computer Interaction lecture Chapter 2.pptx
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
PPTX
UNIT II: Software design, software .pptx
PDF
infoteam HELLAS company profile 2025 presentation
PPTX
Beige and Black Minimalist Project Deck Presentation (1).pptx
PPTX
Comprehensive Guide to Digital Image Processing Concepts and Applications
PDF
Multiverse AI Review 2025_ The Ultimate All-in-One AI Platform.pdf
PDF
Top 10 Project Management Software for Small Teams in 2025.pdf
PPTX
Chapter 1 - Transaction Processing and Mgt.pptx
PPTX
Swiggy API Scraping A Comprehensive Guide on Data Sets and Applications.pptx
PDF
What Makes a Great Data Visualization Consulting Service.pdf
PDF
Building an Inclusive Web Accessibility Made Simple with Accessibility Analyzer
Presentation - Summer Internship at Samatrix.io_template_2.pptx
Independent Consultants’ Biggest Challenges in ERP Projects – and How Apagen ...
HackYourBrain__UtrechtJUG__11092025.pptx
WJQSJXNAZJVCVSAXJHBZKSJXKJKXJSBHJBJEHHJB
IT Consulting Services to Secure Future Growth
AI Tools Revolutionizing Software Development Workflows
ROI from Efficient Content & Campaign Management in the Digital Media Industry
Streamlining Project Management in the AV Industry with D-Tools for Zoho CRM ...
Human Computer Interaction lecture Chapter 2.pptx
Understanding the Need for Systemic Change in Open Source Through Intersectio...
UNIT II: Software design, software .pptx
infoteam HELLAS company profile 2025 presentation
Beige and Black Minimalist Project Deck Presentation (1).pptx
Comprehensive Guide to Digital Image Processing Concepts and Applications
Multiverse AI Review 2025_ The Ultimate All-in-One AI Platform.pdf
Top 10 Project Management Software for Small Teams in 2025.pdf
Chapter 1 - Transaction Processing and Mgt.pptx
Swiggy API Scraping A Comprehensive Guide on Data Sets and Applications.pptx
What Makes a Great Data Visualization Consulting Service.pdf
Building an Inclusive Web Accessibility Made Simple with Accessibility Analyzer

Introduction to dot net

  • 1. Intro to .NET (Core) 2017-12-20 21:51 ROY <[email protected]>
  • 2. Agenda • .NET • .NET Standard • .NET Framework • .NET Core • Xamarin/Mono • Deep into .NET Core • Packages • Metapackages • .NET Core SDK • .NET Core CLI • Target frameworks • .NET Standard • .NET Core Application • .NET Framework • Introduction to ASP.NET Core
  • 3. .NET • .NET is a free, cross-platform, open source developer platform for building many different types of applications. • With .NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop, gaming, and IoT. • .NET Framework/.NET Core/Mono (Xamarin) • C#/VB.NET/F# • Assembly/DLL/MSIL • Common Language Runtime (CLR) • GC/JIT • CoreCLR • Base Class Library (BCL) • CoreFX • Framework Class Library (FCL) • ASP.NET/Windows Forms/WPF • ASP.NET Core
  • 4. .NET Standard specification • The .NET Standard is a formal specification of .NET APIs that are intended to be available on all .NET implementations. The motivation behind the .NET Standard is establishing greater uniformity in the .NET ecosystem. • The .NET Standard enables the following key scenarios: • Defines uniform set of BCL APIs for all .NET implementations to implement, independent of workload. • Enables developers to produce portable libraries that are usable across .NET implementations, using this same set of APIs. • Reduces or even eliminates conditional compilation of shared source due to .NET APIs, only for OS APIs.
  • 5. .NET Standard .NET implementation support
  • 6. .NET Framework • An implementation of .NET that runs only on Windows. • Includes the Common Language Runtime (CLR), the Base Class Library, and application framework libraries such as ASP.NET, Windows Forms, and WPF.
  • 7. .NET Core • A cross-platform, high-performance, open source implementation of .NET. • Includes the Core Common Language Runtime (CoreCLR), the Core AOT Runtime (CoreRT, in development), the Core Base Class Library (CoreFX), and the Core SDK. • .NET Core can be thought of as a cross-platform version of the .NET Framework, at the layer of the .NET Framework Base Class Libraries (BCL). It implements the .NET Standard specification. .NET Core provides a subset of the APIs that are available in the .NET Framework or Mono/Xamarin. • 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 operating systems. • Command-line tools: All product scenarios can be exercised at the command-line. • Compatible: .NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard. • 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
  • 8. Xamarin/Mono • Mono is a .NET implementation that is mainly used when a small runtime is required. • It is the runtime that powers Xamarin applications on Android, Mac, iOS, tvOS and watchOS and is focused primarily on apps that require a small footprint. • Historically, Mono implemented the larger API of the .NET Framework and emulated some of the most popular capabilities on Unix.
  • 9. Deep into .NET Core • .NET Core is a platform made of NuGet packages. Some product experiences benefit from fine-grained definition of packages while others from coarse- grained. To accommodate this duality, the product is distributed as a fine- grained set of packages and then described in coarser chunks with a package type informally called a "metapackage". • Each of the .NET Core packages support being run on multiple .NET implementations, represented as frameworks. Some of those frameworks are traditional frameworks, like net461, representing the .NET Framework. Another set is new frameworks that can be thought of as "package-based frameworks", like netcoreapp2.0, which establish a new model for defining frameworks. These package-based frameworks are entirely formed and defined as packages, forming a strong relationship between packages and frameworks.
  • 10. Packages • .NET Core is split into a set of packages, which provide primitives, higher- level data types, app composition types and common utilities. Each of these packages represent a single assembly of the same name. • There are advantages to defining packages in a fine-grained manner: • Fine-grained packages can ship on their own schedule with relatively limited testing of other packages. • Fine-grained packages can provide differing OS and CPU support. • Fine-grained packages can have dependencies specific to only one library. • Apps are smaller because unreferenced packages don't become part of the app distribution.
  • 11. Metapackages • Metapackages are a NuGet package convention for describing a set of packages that are meaningful together. They represent this set of packages by making them dependencies. They can optionally establish a framework for this set of packages by specifying a framework (Package-based Frameworks). • NETStandard.Library - Describes the libraries that are part of the ".NET Standard". Applies to all .NET implementations (for example, .NET Framework, .NET Core and Mono) that support .NET Standard. Establishes the 'netstandard' framework. • Microsoft.NETCore.App - Describes the libraries that are part of the .NET Core distribution. Establishes the .NETCoreApp framework.
  • 12. .NET Core SDK • .NET Core Software Development Kit (SDK) is a set of libraries and tools that allow developers to create .NET Core applications and libraries. • It contains the following components: • The .NET Core Command Line Tools that are used to build applications • .NET Core (libraries and runtime) that allow applications to both be built and run • The dotnet driver for running the CLI commands as well as running applications
  • 13. .NET Core CLI • The .NET Core command-line interface (CLI) is a new cross-platform toolchain for developing .NET applications. • The CLI is a foundation upon which higher-level tools, such as Integrated Development Environments (IDEs), editors, and build orchestrators, can rest. • Basic commands • restore/build/publish/run/test/pack/clean/help • Project modification commands • add package/add reference/remove package/remove reference/list reference
  • 14. Target frameworks • The collection of APIs that a .NET app or library relies on. • An app or library can target a version of .NET Standard (for example, .NET Standard 2.0), which is specification for a standardized set of APIs across all .NET implementations. • An app or library can also target a version of a specific .NET implementation, in which case it gets access to implementation- specific APIs. For example, an app that targets Xamarin.iOS gets access to Xamarin-provided iOS API wrappers.
  • 15. .NET Standard framework • The .NET Standard (TFM: netstandard) framework represents the APIs defined by and built on top of the .NET Standard. Libraries that are intended to run on multiple runtimes should target this framework. • They will be supported on any .NET Standard compliant runtime, such as .NET Core, .NET Framework and Mono/Xamarin. Each of these runtimes supports a set of .NET Standard versions, depending on which APIs they implement. • The netstandard framework implicitly references the NETStandard.Library metapackage.
  • 16. .NET Core Application framework • The .NET Core Application (TFM: netcoreapp) framework represents the packages and associated APIs that come with the .NET Core distribution and the console application model that it provides. • .NET Core apps must use this framework, due to targeting the console application model, as should libraries that intended to run only on .NET Core. Using this framework restricts apps and libraries to running only on .NET Core.
  • 17. .NET Framework • The .NET Framework (TFM: net) represents the available APIs defined by the assemblies that a .NET implementation installs on Windows platform, which includes application framework APIs (for example, ASP.NET, WinForms and WPF).
  • 18. Introduction to ASP.NET Core • ASP.NET Core is a cross-platform, high- performance, open-source framework for building modern, cloud-based, Internet- connected applications. • Startup / DI / Middleware / Routing / Hosting • Model Binding / Controllers / Views / Filters • Kestrel (libuv) / IIS (ANCM) / Nginx // An ASP.NET Core application is a console app that creates a web server in its Main method: using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; namespace aspnetcoreapp { public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); } }
  • 19. demo 1. console app 2. web 3. webapi 4.mvc
  • 20. Q & A