tdc2016sp - por dentro do .net core
TRANSCRIPT
![Page 1: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/1.jpg)
Globalcode – Open4education
Por dentro do .NET Core
Giovanni [email protected]
@giovannibassi
Trilha .NET
![Page 2: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/2.jpg)
![Page 3: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/3.jpg)
![Page 4: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/4.jpg)
Globalcode – Open4education
UNIVERSAL WINDOWS PLATFORMDesenvolvimento unificado em todos
os dispositivos Windows
XAMARINQualquer dispositivo
.NET COREMulti-plataforma, alto desempenho
ASP.NET COREFramework otimizado para a nuvem
EXPERIÊNCIAS EM
DISPOSITIVOS
MODERNOS
EXPERIÊNCIAS EM
NUVENS MODERNAS
Framework multi-propósito, abrangente,
para desktop e aplicações web
.NET FRAMEWORK
Momento interessantíssimo para ser um desenvolvedor .NET
![Page 5: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/5.jpg)
Globalcode – Open4education
.NET FRAMEWORK
Plataforma para aplicações .NET no
Windows
.NET CORE
Framework multi-plataforma e open
source otimizado para apps modernas e
workflow de desenvolvimento
XAMARIN
Ambiente de execução multi-plataforma, open source, e baseado em Mono para iOS, OS X, e
Android
Distribuído com o Windows
Distribuído com a app
Distribuído com a app
.NET ontem e hoje
![Page 6: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/6.jpg)
Globalcode – Open4education
.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
INFRAESTRUCTURA COMUM
OS X
.NET hoje – modelos de apps e bibliotecas
![Page 7: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/7.jpg)
Globalcode – Open4education
.NET Core
Multi-plataforma
Unificada
![Page 8: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/8.jpg)
Globalcode – Open4education
.NET Core
Rápida
Leve
![Page 9: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/9.jpg)
Globalcode – Open4education
.NET Core
Moderna
Open Source
![Page 10: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/10.jpg)
Globalcode – Open4education
Plataformas de execução
![Page 11: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/11.jpg)
Globalcode – Open4education
Executável .NET até ante-ontem
Executável contém todo o ILWindows alterado para entender um executável .NET em 2002Executável auto contido, inicia o CLR, que compila JIT a IL e executa
Exemplo: ConsoleApp.exe
![Page 12: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/12.jpg)
Globalcode – Open4education
Outros executáveis e .NET Core
Java: java -jar whatever.jarNode: node app.jsRuby: ruby app.rbC++: app.NET: appMono: mono ConsoleApp.exe.NET Core:
dotnet c:\app\ConsoleApp.exedotnet c:\app\ConsoleApp.dlldotnet c:\app\
![Page 13: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/13.jpg)
Globalcode – Open4education
.NET CLI
Nova plataforma de execução do .NETMulti platformaResponsável por fazer o bootstrap da aplicação (runtime, etc)Também possui as ferramentas necessárias ao desenvolvimentoAinda em preview
![Page 14: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/14.jpg)
Globalcode – Open4education
DemoExecutando uma aplicação .NET Core
![Page 15: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/15.jpg)
Globalcode – Open4education
.NET FRAMEWORK .NET CORE XAMARIN
APP
MOD
ELS
BASE
LIBR
ARIE
S
Compilers Languages Runtime components
INFRAESTRUTURA COMUM
PCL reference assemblies
Implementaçãode
referência
Meu código
Implementation 3Implementation
2Implementation 1
.NET ontem – reutilizando código
![Page 16: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/16.jpg)
Globalcode – Open4education
• Precisa implementar uma vez para cada plataforma• Precisa se alinhar com as releases da plataforma (por
exemplo, Windows para o .NET Framework)
• APIs principais não estão presentes em todas as plataformas
• Implementação diferente por plataforma• Apenas um pequeno MDC para rodar• Precisa conhecer diversas BCLs diferentes
.NET ontem - desafios
Desenvolvedores
Plataformas
![Page 17: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/17.jpg)
Globalcode – Open4education
.NET hoje
.NET FRAMEWORK .NET CORE XAMARIN
.NET STANDARD LIBRARYUma biblioteca única
ASP.NET
Windows FormsWPF UWP
ASP.NET Core*
iOSAndroid
Compilers Languages Runtime components
INFRAESTRUTURA COMUM
OS X
![Page 18: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/18.jpg)
Globalcode – Open4education
.NET hoje – reutilizando código
.NET FRAMEWORK .NET CORE XAMARIN
Compilers Languages Runtime components
INFRAESTRUTURA COMUM
My codeFull implementations
Reference implementations
![Page 19: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/19.jpg)
Globalcode – Open4education
• .NET Standard pode crescer sem dependência de atualização de cada plataforma
• Inovação rápida nas bibliotecas, Infraestrutura comum, e ferramental
• Mesmas APIs em todas as plataformas• Foco em uma biblioteca, em vez de diversas plataformas• Sem MDC, grande superfície de APIs disponível
.NET standard libraries - vantagens
Desenvolvedores
Plataformas
![Page 20: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/20.jpg)
Globalcode – Open4education
Versões do .NET StandardPlatform Name Alias
.NET Standard netstandard 1.0 1.1 1.2 1.3 1.4 1.5 1.6
.NET Core netcoreapp → → → → → → 1.0
.NET Framework net → 4.5 4.5.1 4.6 4.6.1 4.6.2 4.6.3
Mono/Xamarin Platforms → → → → → → *
Universal Windows Platform uap → → → → 10.0
Windows win → 8.0 8.1
Windows Phone wpa → → 8.1
Windows Phone Silverlight wp 8.0
https://docs.microsoft.com/en-us/dotnet/articles/standard/library
![Page 21: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/21.jpg)
Globalcode – Open4education
Inovação futura do .NET
.NET FRAMEWORK .NET CORE XAMARIN
.NET STANDARD LIBRARYUma biblioteca única
ASP.NET
Windows FormsWPF UWP
ASP.NET Core*
iOSAndroid
Compilers Languages Runtime components
INFRAESTRUTURA COMUM
OS XInov
ação
no
Mod
elo
de
App
Inov
ação
no
.NET
FERRAMENTAL
Visual Studio
Visual StudioCode
![Page 22: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/22.jpg)
Globalcode – Open4education
Nuget, PCLs, TFMs
![Page 23: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/23.jpg)
Globalcode – Open4education
História: 2010: #ifdefs
![Page 24: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/24.jpg)
Globalcode – Open4education
História: 2011: PCLs
![Page 25: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/25.jpg)
Globalcode – Open4education
Contract Assemblies
System.String
System.dll System.String
System.Runtime.dll
System.String
mscorlib.dll
Fonte.cs
Silverlight
.NET 4.5.1
![Page 26: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/26.jpg)
Globalcode – Open4education
Contract Assemblies
Profile1
Profile2Profile3
Profile259 = portable-net45+netcore45+wpa81+wp8TFM
![Page 27: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/27.jpg)
Globalcode – Open4education
O problema do .NET que não existe mais
Impossível manter todos os TFMs suportadosNovas plataformas não ativam automaticamenteExplosão combinatóriaDiferença entre contratos e plataformas problemáticos
![Page 28: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/28.jpg)
Globalcode – Open4education
.NET Standard
Suporte no Nuget v3Não utiliza plataformas para definir dependênciasContratos e TFMs definem dependências
TFM especial <3: “netstandard”“Verifique minhas dependências, rodarei nas plataformas que elas suportam”De “quais plataformas suporto” para “quais minhas dependências”Package.config (xml) => Project.json (vai mudar)
![Page 29: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/29.jpg)
Globalcode – Open4education
DemoInspecionando uma biblioteca baseada no .NET Standard
![Page 30: TDC2016SP - Por dentro do .Net Core](https://reader036.vdocuments.mx/reader036/viewer/2022062310/58f12ec91a28ab96648b45d1/html5/thumbnails/30.jpg)
Globalcode – Open4education
Conclusões
.NET Core + .NET CLI é uma nova opçãoTem potencial de continuar crescendoBase do novo ASP.NETCiclo rápido de desenvolvimentoMais leve, melhor desempenhoOportunidades novasFunciona com Docker e XPlat
http://dot.net