NET Core Internals. O que é o .NET Platform Standard?

Preview:

Citation preview

.Net Core InternalsO que é o .NET Platform Standard?

INTELIGÊNCIA E INOVAÇÃO EM

DESENVOLVIMENTO DE SOFTWARE

www.lambda3.com.br

Victor CavalcanteDesenvolvedor

@vcavalcantevictor@cavalcante.net

INTELIGÊNCIA E INOVAÇÃO EM

DESENVOLVIMENTO DE SOFTWARE

www.lambda3.com.br

O .Net mudou e ficou melhorUNIVERSAL WINDOWS PLATFORM

Desenvolvimento unificado para dispositivos com windows

XAMARINExtenda o alcance para todos os

dispositivos com .NET.NET CORE

Cross-platform, high performance .NET

ASP.NET CORECloud optimized framework

para micro services

MODERN DEVICE

EXPERIENCES

MODERN CLOUD

EXPERIENCES

.NET FRAMEWORK

.NET CORE

Cross-platform e open source otimizada para

necessidade de aplicações modernas e

fluxos de desenvolvimento

XAMARIN

Cross-platform e open source baseada no Mono runtime para iOS, OS X, e

dispositivosAndroid

.NET hoje já está maior .NET FRAMEWORK

Platforma para aplicações .NET

no Windows

Distribuído com o Windows

Distribuído com o aplicativo

Distribuído com o aplicativo

.NET FRAMEWORK .NET CORE XAMARIN

APP

MOD

ELS

BASE

LIBR

ARIE

S

Base Class Library Core Library Mono Class Library

ASP.NET

Windows FormsWPF UWP

ASP.NET Core*

iOSAndroid

Compilers Languages Runtime components

COMMON INFRASTRUCTURE

OS X

.NET “modelo antigo”—app models e bibliotecas

.NET FRAMEWORK .NET CORE XAMARIN

APP

MOD

ELS

BASE

LIBR

ARIE

S

Compilers Languages Runtime components

COMMON INFRASTRUCTURE

PCL reference assemblies

Reference implementati

on

Meu código

Implementation 3Implementation

2Implementation 1

.NET “modelo antigo”—reutilização de código

• APIs chaves não estão presentes em todas as plataformas• Implementações diferentes em cada plataforma• É necessário limitar ao minimo denominador comum

Desenvolvedores

.NET modelo antigo—desafios

.NET modelo novo .NET FRAMEWORK .NET CORE XAMARIN

.NET STANDARD LIBRARYOne library to rule them all

Uma biblioteca para a todos governar

ASP.NET

Windows FormsWPF UWP

ASP.NET Core*

iOSAndroid

Compilers Languages Runtime components

COMMON INFRASTRUCTURE

OS X

.NET modelo novo—reutilização de código

.NET FRAMEWORK .NET CORE XAMARIN

Compilers Languages Runtime components

COMMON INFRASTRUCTURE

Meu códigoFull implementations

Reference implementations

• Mesma API dispnível em todas as plataformas• Dominar uma biblioteca não uma plataforma• Big surface area—no small common denominator

.NET standard libraries— vantagens

Desenvolvedores

.NET Futuras inovações .NET FRAMEWORK .NET CORE XAMARIN

.NET STANDARD LIBRARYOne library to rule them all

ASP.NET

Windows FormsWPF UWP

ASP.NET Core*

iOSAndroid

Compilers Languages Runtime components

COMMON INFRASTRUCTURE

OS XApp

Mod

el

Inno

vatio

n.N

ET In

nova

tion

TOOLS

Visual Studio

Visual StudioCode

Developed in the open

Fully open development processOpen SourceOpen to community contributionsOpen process: roadmap, design docs, standups…+ Great community momentum175 repositories24,061 forks4,297 contributors

http://dotnet.github.io

Para ter uma garantia da portabilidade dos binários

para as futuras plataformas capazes de rodar .NET,

é necessário um versionamento mais fácil

de entender.

.NET Platform Standard

Sim!

.NET Platform Standard é o substituo da PCL?

Um pouco de história: 2010 - #ifdef

Um pouco de história: 2011 - PCL

Contract assemblies

Contract assemblies

• Impossível manter todos os TFMs suportados ao longo do tempo

• Novas plataformas não ativam automaticamente• Explosão combinatória

Problemas?

“Verifique minhas dependências, rodarei nas plataformas que elas suportam”

Solução: novo mindset

De “quais plataformas suporto”

para “quais minhas dependências”

.NET Platform Standard to platforms

.NET Platform Standard to platforms

Targets .NET Platform Standard version 1.1

• .NET Core (netcoreapp) • .NET Framework 4.5 or later• Universal Windows Platform 10 (UWP) • Windows 8.0• Windwos Phone (wpa)• Mono/Xamarin platforms• Mono

.NET Platform Standard to platforms

Targets .NET Platform Standard version 1.3

• .NET Framework 4.6 or later, • .NET Core (netcoreapp) • Universal Windows Platform 10 (UWP) • Mono/Xamarin platforms

.NET Platform Standard to platforms

Targets .NET Platform Standard version 1.3

• .NET Framework 4.6.1 or later, • .NET Core (netcoreapp) • Universal Windows Platform 10 (UWP) • Mono/Xamarin platforms

NuGet identifierPlatform NuGet identifier.NET Framework 2.0 - 4.6 net20 - net46.NET Core netcoreapp

.NET Micro Framework netmf

Windows 8 win8, netcore45Windows 8.1 win8, netcore451

Windows Phone Silverlight (8, 8.1) wp8, wp81

Windows Phone 8.1 wpa8.1

Universal Windows Platform 10 uap10, netcore50

Silverlight 4, 5 sl4, sl5

Platform Nuget IdentifierMonoTouch MonoTouch

MonoMac monomac

Xamarin iOS xamarinios

Xamarin PlayStation 3 xamarinpsthree

Xamarin PlayStation 4 xamarinpsfour

Xamarin PlayStation Vita xamarinpsvita

Xamarin Watch OS xamarinwatchos

Xamarin TV OS xamarintvos

Xamarin Xbox 360 xamarinxboxthreesixty

Xamarin Xbox One xamarinxboxone

.NET Core CLI extensibility model

2 formas diferentes• Por nuget

• new• restore• run• build• test• publish• pack

• Por system path

• Divididos em 3 partes• Driver

• dotnet• Verbo

• O comando• Parametros

.NET Core CLI extensibility model

.NET Core roadmap

.NET Core roadmap

.NET OS roadmap

Metas do .NET Core

• Estar disponível em diversos sistemas operacionais e arquiteturas de processadores.

• Ter um desempenho competitivo sendo altamente confiável.• Setup muito fácil para desenvolvimento.• Produtividade na criação de aplicativos com suporte da

documentação, amostras e componentes.

• Reflete a mudança cultural da Microsoft• O Ecossistema ainda está imaturo• A comunidade também está imatura• Ainda faltam pacotes importantes

• Como em qualquer projeto open source

• Persistência ainda é um desafio• O futuro é muito promissor• A portabilidade é fundamental para o futuro da plataforma

Impressões

Obrigado! Dúvidas?

Avenida Angélica, 2318, Cj. 11 | Consolação - São Paulo - SP11 2386.1886 | contato@lambda3.com.br

www.lambda3.com.br

Victor Cavalcante @vcavalcante

Recommended