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

PPTX
C# code sharing across the platforms
PPTX
.NET Standard - Introduction
PPTX
Microsoft ASP.NET 5 - The new kid on the block
PPTX
Desarrollo multiplataforma con el framework .net
PPTX
ASP.NET Core 1.0 Overview
PPTX
Entity Framework 7: What's New?
PPTX
A Whirldwind Tour of ASP.NET 5
PPTX
.NET - The Current Spectrum
C# code sharing across the platforms
.NET Standard - Introduction
Microsoft ASP.NET 5 - The new kid on the block
Desarrollo multiplataforma con el framework .net
ASP.NET Core 1.0 Overview
Entity Framework 7: What's New?
A Whirldwind Tour of ASP.NET 5
.NET - The Current Spectrum

What's hot (20)

PPTX
ASP.NET Core 101
PPT
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
PPTX
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
PPTX
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
PPTX
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
PDF
Dot Net Core
PPTX
ХДргДĐč ĐšĐ°Đ»ĐžĐœĐ”Ń† "ĐĄŃ‚Đ”Ń€ĐŸĐžĐŽŃ‹ ĐŽĐ»Ń Đ”ĐŸŃ‚ĐœĐ”Ń‚Ń‡ĐžĐșа"
 
PPTX
The future of .NET lightning talk
PPTX
Difference between .net core and .net framework
PPTX
Entity Framework Core 1.0
PDF
PharoDAYS 2015: On Relational Databases by Guille Polito
 
PDF
Managing Changes to the Database Across the Project Life Cycle (presented by ...
PPTX
Stencil JS for Framework Free Web Components | Steven Zelek
PDF
Alternatives to layer-based image distribution: using CERN filesystem for images
PDF
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
PPTX
Visual Studio productivity - MSCommunity 7, Sarajevo
PPTX
PHP V/s ASP .net
PPTX
Run your Dockerized ASP.NET application on Windows and Linux!
PPTX
SyPy IronPython
PPTX
.NET MeetUp Brno - Challenges of Managing CoreFX repo -- Karel Zikmund
ASP.NET Core 101
TypeScript for Alfresco and CMIS - Alfresco DevCon 2012 San Jose
.NET MeetUp Prague 2017 - .NET Standard -- Karel Zikmund
.NET MeetUp Prague 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
.NET Fringe 2017 - Challenges of Managing CoreFX repo -- Karel Zikmund
Dot Net Core
ХДргДĐč ĐšĐ°Đ»ĐžĐœĐ”Ń† "ĐĄŃ‚Đ”Ń€ĐŸĐžĐŽŃ‹ ĐŽĐ»Ń Đ”ĐŸŃ‚ĐœĐ”Ń‚Ń‡ĐžĐșа"
 
The future of .NET lightning talk
Difference between .net core and .net framework
Entity Framework Core 1.0
PharoDAYS 2015: On Relational Databases by Guille Polito
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
Stencil JS for Framework Free Web Components | Steven Zelek
Alternatives to layer-based image distribution: using CERN filesystem for images
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Visual Studio productivity - MSCommunity 7, Sarajevo
PHP V/s ASP .net
Run your Dockerized ASP.NET application on Windows and Linux!
SyPy IronPython
.NET MeetUp Brno - Challenges of Managing CoreFX repo -- Karel Zikmund
Ad

Similar to Modern .NET Ecosystem (20)

PPTX
.Net Standard 2.0
PPTX
.Net Core Fall update
PPTX
ASP.NET Core: The best of the new bits
PDF
Raffaele Rialdi
PPTX
C#: Past, Present and Future
PDF
Introduction to dot net
PPTX
Mini .net conf 2020
PPTX
Whats new in .net for 2019
PPTX
SOLID Programming with Portable Class Libraries
PDF
Pottnet MeetUp Essen - ASP.Net Core
PDF
Pottnet Meetup Essen - ASP.Net Core
PDF
Asp.Net Core MVC , Razor page , Entity Framework Core
PPTX
Presentation1.pptx
PPTX
ASP.NET Core - Phillosophies, Processes and Tooling
PPTX
Porting Projects to .NET 5
PDF
ASP.NET vs ASP.NET Core
PDF
.NET Core Blimey! (dotnetsheff Jan 2016)
PPT
Native App Development for iOS, Android, and Windows with Visual Studio
PPTX
Unboxing ASP.NET Core
PPT
Best DotNet Training in Delhi
.Net Standard 2.0
.Net Core Fall update
ASP.NET Core: The best of the new bits
Raffaele Rialdi
C#: Past, Present and Future
Introduction to dot net
Mini .net conf 2020
Whats new in .net for 2019
SOLID Programming with Portable Class Libraries
Pottnet MeetUp Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Asp.Net Core MVC , Razor page , Entity Framework Core
Presentation1.pptx
ASP.NET Core - Phillosophies, Processes and Tooling
Porting Projects to .NET 5
ASP.NET vs ASP.NET Core
.NET Core Blimey! (dotnetsheff Jan 2016)
Native App Development for iOS, Android, and Windows with Visual Studio
Unboxing ASP.NET Core
Best DotNet Training in Delhi
Ad

More from Andrei Marukovich (7)

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

Recently uploaded (20)

PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
ai tools demonstartion for schools and inter college
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
medical staffing services at VALiNTRY
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
top salesforce developer skills in 2025.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Odoo POS Development Services by CandidRoot Solutions
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Online Work Permit System for Fast Permit Processing
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
2025 Textile ERP Trends: SAP, Odoo & Oracle
PTS Company Brochure 2025 (1).pdf.......
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
ai tools demonstartion for schools and inter college
ISO 45001 Occupational Health and Safety Management System
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
medical staffing services at VALiNTRY
Odoo Companies in India – Driving Business Transformation.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
top salesforce developer skills in 2025.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Wondershare Filmora 15 Crack With Activation Key [2025
Odoo POS Development Services by CandidRoot Solutions

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