TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team at .NET
1. Novidades do .NET Core 1.1 multiplataforma
e o que esperar da versão 2.0
Rogério Moraes de Carvalho
VITA Informática
rogeriomc.wordpress.com | @rogeriomc
Florianópolis | 05 Mai 2017
2. Agenda
Novidades do .NET Core 1.1 multiplataforma e o que esperar da versão 2.0
A plataforma .NET e o .NET Core
Um novo .NET multiplataforma
Evolução do .NET Core
.NET Framework 4.7
.NET Core e o .NET Framework
.NET Core em detalhes
O que é o .NET Core?
.NET Core CLI
.NET Platform Standard
.NET Core: da codificação à execução
Ferramentas de desenvolvimento
Do .NET Core 1.0 ao .NET Core 2.0
Evolução do .NET Core
Evolução das correções no .NET Core 2.0
.NET Core em múltiplas plataformas
Demonstração
Recursos para estudo
Documentação e código-fonte
4. Um novo .NET multiplataforma
A plataforma .NET e o .NET Core
Inovação MultiplataformaOpen Source
.NET Core xPlat “Roslyn”
ASP .NET Core
EF Core
Inovações nas linguagens
“RyuJit”
SIMDIoT
.NET Core
ASP.NET Core
5. Evolução da plataforma .NET
A plataforma .NET e o .NET Core
.NET Core 1.1.x.NET Framework 4.7
Comum
Nova geração do JIT (“RyuJIT”)
SIMD
Componentes do
ambiente de execução
Bibliotecas .NET Core 1.1.x
Bibliotecas .NET Framework 4.7
Pacotes NuGetCompiladores
Inovações nas linguagens
Plataforma de compiladores .NET (“Roslyn”)
RTMRTM RTM
OSS
RTM
RTM
OSS
RTM
OSS
RTM
RTM
OSS
RTM
RTM
RTM
OSS
OSS
6. .NET Framework 4.7
A plataforma .NET e o .NET Core
No dia 5 de abril de 2017 foi liberado com o Windows 10 Creators Update
No dia 2 de maio de 2017 foi liberado para outras versões do Windows
Cliente
Windows 10 Creators Update (RS2), Windows 10 Anniversary Update (RS1), Windows 8.1, Windows 7 SP1
Servidor
Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 SP1
Principais melhorias
Suporte a altas resoluções (DPI) em aplicações Windows Forms no Windows 10
Suporte a toque em aplicações WPF no Windows 10
Suporte avançado a criptografia
Melhoria de desempenho e estabilidade
7. .NET Core e o .NET Framework
A plataforma .NET e o .NET Core
Em sua maioria, o .NET Core é um subconjunto do .NET Framework
O “Core” é devido ao .NET Core ter o núcleo de características do .NET Framework
Ambos têm GC, o JIT e diversos tipos: tipos simples, coleções, IO, suporte XML etc.
O .NET Core foi criado para:
ter o código aberto (open source);
ser multiplataforma;
ser usado em ambientes com restrições de recursos
ASP.NET Core
Nova versão multiplataforma do ASP.NET projetada para a nuvem
Executa no .NET Core (Windows, Linux, macOS) ou no .NET Framework (Windows)
9. O que é o .NET Core?
Introdução ao .NET Core
Implementação do .NET
Modular e pequena
Multiplataforma
Windows, Linux e macOS
Isolamento em nível de aplicação
Construído de forma aberta
Open Source Software (OSS)
Suporta vários modelos de apps
Opção para os próximos 10 anos
Desenvolvimento de software .NET
Modelo de aplicações
ASP.NET Core
Qualquer outro
modelo de aplicações
Base Class Library (BCL)
unificada
Camada de adaptação do ambiente de execução
.NET Native Outro ambiente
de execução
Modelo de aplicações
Universal Windows Apps
CoreCLR
10. .NET Core CLI
Introdução ao .NET Core
O que é o .NET Core CLI?
Um novo conjunto de ferramentas CLI
Simples, extensíveis e independentes
Para construir e gerenciar projetos .NET
Objetivos
Agnóstico
Linguagem, destino e ambiente de execução
Extensibilidade simples
Multiplataforma
Substitui o .NET Execution Environment
Substitui as ferramentas do DNX
dnx, dnvm, dnu
Ferramentas do .NET Core CLI
Agregador de ferramentas: dotnet
Sintaxe: dotnet {comando} --arg
Convenção: dotnet-{comando} --arg
Algumas ferramentas disponíveis
dotnet new --lang --type
Cria arquivos de um novo tipo de projeto
dotnet restore [argumentos]
Restaura pacotes NuGet dependentes
dotnet run [argumentos]
Compila e executa sua app em um passo
dotnet build [argumentos]
Compila sua app ou biblioteca
11. .NET Platform Standard
Introdução ao .NET Core
O que é o .NET Platform Standard?
Um modelo de portabilidade binária
Mais sólido para futuras plataformas .NET
Plano de versionamento mais simples
Evolução da Portable Class Library (PCL)
Define a interseção de APIs por plataformas
Utiliza nomes para identificar as plataformas
Target Framework Moniker (TFM)
Exemplo de TFM: portable-net45+win8
Novo modelo de identificação
Exemplo de TFM: netstandard1.3
Plataforma destino Versões
.NET Platform Standard 1.0 1.1 1.2 1.3 1.4
.NET Framework
4.6.x
4.6
4.5.2
4.5.1
4.5
Universal Windows Platform 10.0
Windows
8.1
8.0
Windows Phone
8.1
8.0
12. .NET Core: da codificação à execução
Introdução ao .NET Core
Ferramentas
.NET Native
Código
(App.cs)
Referências (Módulos, NuGet)
App.exe (stub)
App.dll
Compilador
JIT (RyuJIT)
App.dll
Mais as DLLs referenciadas
13. Ferramentas de desenvolvimento
Introdução ao .NET Core
Ferramentas da Microsoft
Visual Studio 2017 (15.1)
IDE: web, nuvem, Windows, Android e iOS
Edições disponíveis
Visual Studio Community 2017
Visual Studio Professional 2017
Visual Studio Enterprise 2017
Visual Studio Code 1.12.x
Editor de código (leve e multiplataforma)
Visual Studio for Mac (Preview)
IDE: web, nuvem, Android, iOS e macOS
Outras ferramentas
Baseados no framework Electron
Atom do GitHub
atom.io
Visual Studio Code
www.visualstudio.com
Brackets da Adobe
brackets.io
Diversas outras opções
Sublime Text
Emacs
Vim etc.
15. Evolução do .NET Core
Do .NET Core 1.0 ao .NET Core 2.0
.NET Core Release Candidate 1 (RC1)
Estabilidade e desempenho
18
Nov
2015
.NET Core Release Candidate 2 (RC2)
Adoção do .NET Core CLI e do .NET Platform Standard
16
Mai
2016
.NET Core 1.0
Primeira versão final do ASP.NET Core
27
Jun
2016
.NET Core 1.1
Adicionar suporte a mais distribuições de Linux e melhorar o desempenho
16
Nov
2016
.NET Core 2.0
Compatível com o .NET Standard 2.0 (+5000 novas APIs)
Melhorias no suporte das ferramentas, de desempenho, de integração com Azure etc.
3o tri
2017
18. Demonstração
.NET Core em múltiplas plataformas
Ubuntu Desktop 17.04
Visual Studio Code 1.12
macOS Sierra 10.12.4
Atom 1.16
Windows 10 Creators Update (RS2 | version 1703)
Visual Studio Enterprise 2017 (15.1)
20. Documentação e código-fonte
Recursos para estudo
Instalação do .NET Core
dot.net
.NET Foundation
www.dotnetfoundation.org
.NET Core (GitHub: Repositório principal)
github.com/dotnet/core
.NET Blog
blogs.msdn.microsoft.com/dotnet
.NET Core CLI tools
github.com/dotnet/cli
.NET Web Development and Tools Blog
blogs.msdn.microsoft.com/webdev
.NET Core Libraries (CoreFX)
github.com/dotnet/corefx
.NET Core Common Language Runtime
(CoreCLR)
github.com/dotnet/coreclr
.NET Documentation
docs.microsoft.com/dotnet
github.com/dotnet/docs
.NET Standard
github.com/dotnet/standard
ASP.NET Core
github.com/aspnet/home
Announcing the .NET Framework 4.7https://blogs.msdn.microsoft.com/dotnet/2017/04/05/announcing-the-net-framework-4-7/
.NET Framework 4.7 List of Changeshttps://github.com/Microsoft/dotnet/blob/master/releases/net47/dotnet47-changes.md
.NET Core Homehttps://github.com/dotnet/core
Compare Visual Studio 2017 Offeringshttps://www.visualstudio.com/vs/compare/