Globalcode – Open4education
Por dentro do .NET Core
Giovanni Bassi
giovanni@lambda3.com.br
@giovannibassi
Trilha .NET
Globalcode – Open4education
Momento interessantíssimo para ser um
desenvolvedor .NET
Globalcode – Open4education
.NET FRAMEWORK .NET COREXAMARIN
.NET ontem e hoje
Globalcode – Open4education
.NET FRAMEWORK .NET CORE XAMARIN
APP
MODELS
BASE
LIBRARIES
.NET hoje – modelos de apps e bibliotecas
Globalcode – Open4education
.NET Core
Multi-plataforma
Unificada
Globalcode – Open4education
.NET Core
Rápida
Leve
Globalcode – Open4education
.NET Core
Moderna
Open Source
Globalcode – Open4education
Plataformas de
execução
Globalcode – Open4education
Executável .NET até ante-ontem
Executável contém todo o IL
Windows alterado para entender um executável
.NET em 2002
Executável auto contido, inicia o CLR, que compila
JIT a IL e executa
Exemplo: ConsoleApp.exe
Globalcode – Open4education
Outros executáveis e .NET Core
Java: java -jar whatever.jar
Node: node app.js
Ruby: ruby app.rb
C++: app
.NET: app
Mono: mono ConsoleApp.exe
.NET Core:
dotnet c:appConsoleApp.exe
dotnet c:appConsoleApp.dll
dotnet c:app
Globalcode – Open4education
.NET CLI
Nova plataforma de execução do .NET
Multi platforma
Responsável por fazer o bootstrap da aplicação
(runtime, etc)
Também possui as ferramentas necessárias ao
desenvolvimento
Ainda em preview
Globalcode – Open4education
Demo
Executando uma aplicação .NET Core
Globalcode – Open4education
.NET FRAMEWORK .NET CORE XAMARIN
APP
MODELS
BASE
LIBRARIES
.NET ontem – reutilizando código
Globalcode – Open4education
.NET ontem - desafios
Globalcode – Open4education
.NET hoje
.NET FRAMEWORK .NET CORE XAMARIN
*
Globalcode – Open4education
.NET hoje – reutilizando código
.NET FRAMEWORK .NET CORE XAMARIN
Globalcode – Open4education
.NET standard libraries - vantagens
Globalcode – Open4education
Versões do .NET Standard
Platform 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
Globalcode – Open4education
Inovação futura do .NET
.NET FRAMEWORK .NET CORE XAMARIN
*
FERRAMENTAL
Globalcode – Open4education
Nuget, PCLs, TFMs
Globalcode – Open4education
História: 2010: #ifdefs
Globalcode – Open4education
História: 2011: PCLs
Globalcode – Open4education
Contract Assemblies
System.String
System.dll
System.String
System.Runtime.dll
System.String
mscorlib.dll
Fonte.cs
Silverlight
.NET 4.5.1
Globalcode – Open4education
Contract Assemblies
Profile1
Profile2
Profile3
Profile259 = portable-net45+netcore45+wpa81+wp8
TFM
Globalcode – Open4education
O problema do .NET que não existe mais
Impossível manter todos os TFMs suportados
Novas plataformas não ativam automaticamente
Explosão combinatória
Diferença entre contratos e plataformas
problemáticos
Globalcode – Open4education
.NET Standard
Suporte no Nuget v3
Não utiliza plataformas para definir dependências
Contratos 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)
Globalcode – Open4education
Demo
Inspecionando uma biblioteca baseada
no .NET Standard
Globalcode – Open4education
Conclusões
.NET Core + .NET CLI é uma nova opção
Tem potencial de continuar crescendo
Base do novo ASP.NET
Ciclo rápido de desenvolvimento
Mais leve, melhor desempenho
Oportunidades novas
Funciona com Docker e XPlat
http://dot.net
Globalcode – Open4education
Obrigado!
Giovanni Bassi
giovanni@lambda3.com.br
@giovannibassi

TDC2016SP - Por dentro do .Net Core

Notas do Editor

  • #15 Mostrar comandos, e “fm” Executar uma app console Executar uma app web Compilar uma app e mostrar os .cmd gerados
  • #27 Library authors need to update their NuGet packages to specify compatible targets Using pre-computed contracts for PCLs is not scalable
  • #30 Mostrar comandos, e “fm” Executar uma app console Executar uma app web Compilar uma app e mostrar os .cmd gerados