SlideShare a Scribd company logo
Modern .NET Ecosystem
Andrei Marukovich
LunarFrog.com
twitter: @amarukovich
Agenda
• .NET Standard
• VS 2017 and .NET Core tooling
• Usage in practice
.NET ecosystem
.NET Framework .NET Core Xamarin
WPF
ASP.NET
WinForms UWP
ASP.NET Core
iOS
macOS
Android
Code sharing and library types
• Source file links
• Shared projects
• Portable class libraries (PCLs)
• .NET Standard
Shared projects
• Better version of the source file links
UWP project Xamarin project
File1.cs
File2.cs
SharedLib
File1.cs
File2.cs
SharedLib
File1.cs
File2.cs
SharedLibUI
App layer
UI
App layer
Portable class libraries
• Sharing code in binary form, without recompiling
UWP project Xamarin project
File1.cs
File2.cs
PortableLib
UI
App layer
UI
App layer
How it works?
• PCLs are based on profiles
• Profile defines an API surface supported by the library
• Profile is identified by combination of supported platforms
• http://embed.plnkr.co/03ck2dCtnJogBKHJ9EjY
• C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETPortable
UWP
Profile API surface
Xamarin
Android
.NET
Framework
.NET Standard
.NET Standard
• An evolution of PCLs, recommended approach for new libraries*
• Defines a set of APIs to be implemented by .NET platforms
(specification)
• Is versioned (API level)
• Version defines API surface, not supported frameworks
• The higher the version, the more APIs you have
• The lower the version, the more .NET platforms implement it
• Library developers may choose target .NET Standard version
.NET platform support
http://github.com/dotnet/standard
.NET Standard 2.0
Big picture
.NET Standard
• Current state
• Tooling is in preview
• Currently PCLs support a wider range of platforms
• At the moment, PCL adoption (# of libraries) is higher than .NET Standard
• Future
• PCL replacement
• Standard 2.0 will have significantly larger API surface
• Standard 2.0 will be interoperable with .NET Framework
Visual Studio 2017 demo
Recap
• .NET Standard is the future
• project.json is obsolete
• .csproj, msbuild and NuGet play nicely together
Additional information
• Additions to the csproj format for .NET Core
• https://docs.microsoft.com/en-us/dotnet/articles/core/tools/csproj
• NuGet pack and restore as MSBuild targets
• https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets
• How to use new features of MSBuild 15 with .NET Framework
projects
• http://lunarfrog.com/blog/how-to-use-msbuild15-net-framework
Thank you!
Andrei Marukovich
contact@lunarfrog.com
twitter: @amarukovich

More Related Content

What's hot (20)

PPTX
ASP.NET Core 101
Tuyến Vũ Đức
 
PPT
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
Steve Reiner
 
PPTX
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
Karel Zikmund
 
PPTX
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
PPTX
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
PDF
Dot Net Core
Amir Barylko
 
PPTX
Сергей Калинец "Стероиды для Дотнетчика"
Fwdays
 
PPTX
The future of .NET lightning talk
Ed Charbeneau
 
PPTX
Difference between .net core and .net framework
Ansi Bytecode
 
PPTX
Entity Framework Core 1.0
Senthil Kumar
 
PDF
PharoDAYS 2015: On Relational Databases by Guille Polito
Pharo
 
PDF
Managing Changes to the Database Across the Project Life Cycle (presented by ...
eZ Systems
 
PPTX
Stencil JS for Framework Free Web Components | Steven Zelek
IlyaDmitriev11
 
PDF
Alternatives to layer-based image distribution: using CERN filesystem for images
George Lestaris
 
PDF
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
PPTX
Visual Studio productivity - MSCommunity 7, Sarajevo
Miroslav Popovic
 
PPTX
PHP V/s ASP .net
Krishna Puranik
 
PPTX
Run your Dockerized ASP.NET application on Windows and Linux!
Alex Thissen
 
PPTX
SyPy IronPython
Nick Hodge
 
PPTX
.NET MeetUp Brno - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
ASP.NET Core 101
Tuyến Vũ Đức
 
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
Steve Reiner
 
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
Karel Zikmund
 
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 
Dot Net Core
Amir Barylko
 
Сергей Калинец "Стероиды для Дотнетчика"
Fwdays
 
The future of .NET lightning talk
Ed Charbeneau
 
Difference between .net core and .net framework
Ansi Bytecode
 
Entity Framework Core 1.0
Senthil Kumar
 
PharoDAYS 2015: On Relational Databases by Guille Polito
Pharo
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
eZ Systems
 
Stencil JS for Framework Free Web Components | Steven Zelek
IlyaDmitriev11
 
Alternatives to layer-based image distribution: using CERN filesystem for images
George Lestaris
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
Visual Studio productivity - MSCommunity 7, Sarajevo
Miroslav Popovic
 
PHP V/s ASP .net
Krishna Puranik
 
Run your Dockerized ASP.NET application on Windows and Linux!
Alex Thissen
 
SyPy IronPython
Nick Hodge
 
.NET MeetUp Brno - Challenges of Managing CoreFX repo -- Karel Zikmund
Karel Zikmund
 

Similar to Modern .NET Ecosystem (20)

PDF
.NET Core Blimey! (Shropshire Devs Mar 2016)
citizenmatt
 
PDF
.NET Core Blimey! Windows Platform User Group, Manchester
citizenmatt
 
PDF
.NET Core Blimey! (dotnetsheff Jan 2016)
citizenmatt
 
PDF
.NET (r)evolution
William S. Rodriguez
 
PPTX
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
Karel Zikmund
 
PPTX
.Net Standard 2.0
Swaminathan Vetri
 
PDF
The beauty in building .NET libraries - Embracing .NET Standard
James Croft
 
PDF
Raffaele Rialdi
CodeFest
 
PDF
.Net Core Blimey! (16/07/2015)
citizenmatt
 
PPTX
Introduction to .NET Core
Marco Parenzan
 
PDF
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
citizenmatt
 
PDF
.net Core Blimey - Smart Devs UG
citizenmatt
 
PDF
Introduction to dot net
QIANG XU
 
PPTX
The ultimate cheat sheet on .net core, .net framework, and .net standard
Concetto Labs
 
PPTX
Next .NET and C#
Bertrand Le Roy
 
PPTX
Overview of the new .NET Core and .NET Platform Standard
Alex Thissen
 
PPTX
O futuro do .NET : O que eu preciso saber
Danilo Bordini
 
PDF
Dot NET Core Interview Questions PDF By ScholarHat
Scholarhat
 
PDF
.NET Core, ASP.NET Core Course, Session 1
Amin Mesbahi
 
PPTX
.Net: Introduction, trends and future
Bishnu Rawal
 
.NET Core Blimey! (Shropshire Devs Mar 2016)
citizenmatt
 
.NET Core Blimey! Windows Platform User Group, Manchester
citizenmatt
 
.NET Core Blimey! (dotnetsheff Jan 2016)
citizenmatt
 
.NET (r)evolution
William S. Rodriguez
 
.NET MeetUp Amsterdam 2017 - .NET Standard -- Karel Zikmund
Karel Zikmund
 
.Net Standard 2.0
Swaminathan Vetri
 
The beauty in building .NET libraries - Embracing .NET Standard
James Croft
 
Raffaele Rialdi
CodeFest
 
.Net Core Blimey! (16/07/2015)
citizenmatt
 
Introduction to .NET Core
Marco Parenzan
 
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
citizenmatt
 
.net Core Blimey - Smart Devs UG
citizenmatt
 
Introduction to dot net
QIANG XU
 
The ultimate cheat sheet on .net core, .net framework, and .net standard
Concetto Labs
 
Next .NET and C#
Bertrand Le Roy
 
Overview of the new .NET Core and .NET Platform Standard
Alex Thissen
 
O futuro do .NET : O que eu preciso saber
Danilo Bordini
 
Dot NET Core Interview Questions PDF By ScholarHat
Scholarhat
 
.NET Core, ASP.NET Core Course, Session 1
Amin Mesbahi
 
.Net: Introduction, trends and future
Bishnu Rawal
 
Ad

More from Andrei Marukovich (7)

PPTX
Using NuGet libraries in your application
Andrei Marukovich
 
PPTX
Open Source Libraries for.NET developers
Andrei Marukovich
 
PPTX
Reactive Extensions for .NET
Andrei Marukovich
 
PPTX
Deceptive simplicity of async and await
Andrei Marukovich
 
PPTX
All about data persistence in Windows 8
Andrei Marukovich
 
PPTX
ATDD in practice
Andrei Marukovich
 
PPTX
A Developer's View of Windows 8
Andrei Marukovich
 
Using NuGet libraries in your application
Andrei Marukovich
 
Open Source Libraries for.NET developers
Andrei Marukovich
 
Reactive Extensions for .NET
Andrei Marukovich
 
Deceptive simplicity of async and await
Andrei Marukovich
 
All about data persistence in Windows 8
Andrei Marukovich
 
ATDD in practice
Andrei Marukovich
 
A Developer's View of Windows 8
Andrei Marukovich
 
Ad

Recently uploaded (20)

PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 

Modern .NET Ecosystem

  • 1. Modern .NET Ecosystem Andrei Marukovich LunarFrog.com twitter: @amarukovich
  • 2. Agenda • .NET Standard • VS 2017 and .NET Core tooling • Usage in practice
  • 3. .NET ecosystem .NET Framework .NET Core Xamarin WPF ASP.NET WinForms UWP ASP.NET Core iOS macOS Android
  • 4. Code sharing and library types • Source file links • Shared projects • Portable class libraries (PCLs) • .NET Standard
  • 5. Shared projects • Better version of the source file links UWP project Xamarin project File1.cs File2.cs SharedLib File1.cs File2.cs SharedLib File1.cs File2.cs SharedLibUI App layer UI App layer
  • 6. Portable class libraries • Sharing code in binary form, without recompiling UWP project Xamarin project File1.cs File2.cs PortableLib UI App layer UI App layer
  • 7. How it works? • PCLs are based on profiles • Profile defines an API surface supported by the library • Profile is identified by combination of supported platforms • http://embed.plnkr.co/03ck2dCtnJogBKHJ9EjY • C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETPortable
  • 10. .NET Standard • An evolution of PCLs, recommended approach for new libraries* • Defines a set of APIs to be implemented by .NET platforms (specification) • Is versioned (API level) • Version defines API surface, not supported frameworks • The higher the version, the more APIs you have • The lower the version, the more .NET platforms implement it • Library developers may choose target .NET Standard version
  • 14. .NET Standard • Current state • Tooling is in preview • Currently PCLs support a wider range of platforms • At the moment, PCL adoption (# of libraries) is higher than .NET Standard • Future • PCL replacement • Standard 2.0 will have significantly larger API surface • Standard 2.0 will be interoperable with .NET Framework
  • 16. Recap • .NET Standard is the future • project.json is obsolete • .csproj, msbuild and NuGet play nicely together
  • 17. Additional information • Additions to the csproj format for .NET Core • https://docs.microsoft.com/en-us/dotnet/articles/core/tools/csproj • NuGet pack and restore as MSBuild targets • https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets • How to use new features of MSBuild 15 with .NET Framework projects • http://lunarfrog.com/blog/how-to-use-msbuild15-net-framework

Editor's Notes

  • #6: Disadvantages Source-level sharing, no assembly Compiler directives Usability
  • #9: Disadvantages PCL’s require upfront decision on the supported platforms Lowest common denominator for the selected platforms Cannot use compiler directives Long term maintainability