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

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

Embed Size (px)

Citation preview

Page 1: NET Core Internals. O que é o .NET Platform Standard?

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

Page 2: NET Core Internals. O que é o .NET Platform Standard?

INTELIGÊNCIA E INOVAÇÃO EM

DESENVOLVIMENTO DE SOFTWARE

www.lambda3.com.br

Page 3: NET Core Internals. O que é o .NET Platform Standard?

Victor CavalcanteDesenvolvedor

@[email protected]

INTELIGÊNCIA E INOVAÇÃO EM

DESENVOLVIMENTO DE SOFTWARE

www.lambda3.com.br

Page 4: NET Core Internals. O que é o .NET Platform Standard?

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

Page 5: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 6: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 7: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 8: NET Core Internals. O que é o .NET Platform Standard?

• 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

Page 9: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 10: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 11: NET Core Internals. O que é o .NET Platform Standard?

• 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

Page 12: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 13: NET Core Internals. O que é o .NET Platform Standard?

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

Page 14: NET Core Internals. O que é o .NET Platform Standard?

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

Page 15: NET Core Internals. O que é o .NET Platform Standard?

Sim!

.NET Platform Standard é o substituo da PCL?

Page 16: NET Core Internals. O que é o .NET Platform Standard?

Um pouco de história: 2010 - #ifdef

Page 17: NET Core Internals. O que é o .NET Platform Standard?

Um pouco de história: 2011 - PCL

Page 18: NET Core Internals. O que é o .NET Platform Standard?

Contract assemblies

Page 19: NET Core Internals. O que é o .NET Platform Standard?

Contract assemblies

Page 20: NET Core Internals. O que é o .NET Platform Standard?

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

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

Problemas?

Page 21: NET Core Internals. O que é o .NET Platform Standard?

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

Solução: novo mindset

De “quais plataformas suporto”

para “quais minhas dependências”

Page 22: NET Core Internals. O que é o .NET Platform Standard?

.NET Platform Standard to platforms

Page 23: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 24: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 25: NET Core Internals. O que é o .NET Platform Standard?

.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

Page 26: NET Core Internals. O que é o .NET Platform Standard?

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

Page 27: NET Core Internals. O que é o .NET Platform Standard?

.NET Core CLI extensibility model

2 formas diferentes• Por nuget

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

• Por system path

Page 28: NET Core Internals. O que é o .NET Platform Standard?

• Divididos em 3 partes• Driver

• dotnet• Verbo

• O comando• Parametros

.NET Core CLI extensibility model

Page 29: NET Core Internals. O que é o .NET Platform Standard?

.NET Core roadmap

Page 30: NET Core Internals. O que é o .NET Platform Standard?

.NET Core roadmap

Page 31: NET Core Internals. O que é o .NET Platform Standard?

.NET OS roadmap

Page 32: NET Core Internals. O que é o .NET Platform Standard?

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.

Page 33: NET Core Internals. O que é o .NET Platform Standard?

• 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

Page 34: NET Core Internals. O que é o .NET Platform Standard?

Obrigado! Dúvidas?

Avenida Angélica, 2318, Cj. 11 | Consolação - São Paulo - SP11 2386.1886 | [email protected]

www.lambda3.com.br

Victor Cavalcante @vcavalcante