TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

24
O novo ASP .NET Core 1.0 multiplataforma Rogério Moraes de Carvalho VITA Informática rogeriomc.wordpress.com | @ rogeriomc Porto Alegre | 08 Out 2016

Transcript of TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Page 1: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

O novo ASP.NET Core 1.0 multiplataforma

Rogério Moraes de CarvalhoVITA Informática

rogeriomc.wordpress.com | @rogeriomc

Porto Alegre | 08 Out 2016

Page 2: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

AgendaO novo ASP.NET Core 1.0 multiplataforma

Visão geral da plataforma .NETUm novo .NET multiplataforma

Evolução da plataforma .NET

Mudança nos nomes de frameworks

Visual Studio e outros editores

.NET CoreO que é o .NET Core?

.NET Core CLI

.NET Platform Standard

.NET Core: da codificação à execução

ASP.NET CoreO que é o ASP .NET Core?

Desempenho do ASP.NET Core

ASP.NET Core 1.0.1 x ASP.NET 4.6.2

Características do ASP.NET Core

Evolução dos frameworks ASP.NET

ASP.NET Core MVC

.NET Core, ASP.NET Core e Visual Studio

Recursos para estudoDocumentação, vídeos, OSS e outros

Page 3: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Visão geral da plataforma .NET

Page 4: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Um novo .NET multiplataformaVisão geral da plataforma .NET

Inovação MultiplataformaOpen Source

.NET Core xPlat “Roslyn”

ASP .NET Core

EF Core

Inovações nas linguagens

“RyuJit”

SIMDIoT

.NET CoreASP.NET Core

Page 5: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Evolução da plataforma .NETVisão geral da plataforma .NET

.NET Core 1.0.1.NET Framework 4.6.2

Comum

Nova geração do JIT (“RyuJIT”)

SIMD

Componentes do ambiente de execução

Bibliotecas .NET Core 1.0.1

Bibliotecas .NET Framework 4.6.2

Pacotes NuGetCompiladores

Inovações nas linguagens

Plataforma de compiladores .NET (“Roslyn”)

RTMRTM RTM OSS RTM

RTM OSS

RTM

OSS

RTM

RTM

OSS

RTM

RTM

RTMOSS

Page 6: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Mudança nos nomes de frameworksVisão geral da plataforma .NET

Post no blog do Scott Hanselman (19 Jan 2016)

ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0

Motivo da mudança de nomenclatura dos frameworks

Os frameworks estão sendo reescritos do zero

Reintrodução dos novos frameworks com novos nomes

ASP .NET 5 passou a ser ASP.NET Core 1.0

ASP.NET MVC 6 passou a ser ASP.NET Core MVC 1.0

.NET Core 5 passou a ser .NET Core 1.0

Entity Framework 7 passou a ser Entity Framework Core 1.0 (EF Core 1.0)

Page 7: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Visual Studio e outros editoresVisão geral da plataforma .NET

Visual Studio

Visual Studio Community 2015IDE somente para Windows

Grátis para apps não coorporativas

Visual Studio CodeEditor de código multiplataforma

Windows, Mac OS X e Linux

Edição, compilação e depuração

www.visualstudio.com

Outros editores

Baseados no framework ElectronAtom do GitHubatom.io

Visual Studio Codewww.visualstudio.com

Brackets da Adobebrackets.io

Diversas outras opçõesSublime Text, Emacs, Vim etc.

Page 8: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

.NET Core

Page 9: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

O que é o .NET Core?.NET Core

Implementação do .NET

Modular e pequena

Multiplataforma

Windows, Linux e Mac OS X

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

Page 10: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

.NET Core CLI

.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

ObjetivosAgnóstico

Linguagem, destino e ambiente de execução

Extensibilidade simples

Multiplataforma

Substitui o .NET Execution EnvironmentSubstitui as ferramentas do DNX

dnx, dnvm, dnu

Ferramentas do .NET Core CLIAgregador de ferramentas: dotnet

Sintaxe: dotnet {comando} --arg

Convenção: dotnet-{comando} --arg

Algumas ferramentas disponíveisdotnet 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

Page 11: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

.NET Platform Standard

.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

Page 12: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

.NET Core: da codificação à execução

.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

Page 13: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

ASP.NET Core

Page 14: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

O que é o ASP .NET Core?ASP.NET Core

Um novo framework ASP.NET de código aberto e multiplataforma

Para construir aplicações Web modernas, prontas para a nuvem, em .NET

Multiplataforma

Escolha seus editores

e ferramentas

Open Source com

contribuiçõesOSS

Transição simples de

on-premises para a nuvem

Ciclos rápidos de

desenvolvimentoTotalmente modular

Rápido

Page 15: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Desempenho do ASP.NET CoreASP.NET Core

ASP.NET Core: 2300% mais requisições por segundo que o ASP.NET 4.6

Foram 1,15 milhões de requisições por segundo (rps)

www.ageofascent.com/asp-net-core-exeeds-1-15-million-requests-12-6-gbps

Page 16: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

ASP.NET Core 1.0.1 x ASP.NET 4.6.2ASP.NET Core

Visual Basic 14 Visual Basic 14 (em breve)

.NET Framework 4.6.2

.NET Framework completo para qualquer cenário

Suporte das bibliotecas somente em Windows

.NET Core 1.0.1Bibliotecas modulares e multiplataforma

Ambiente de execução otimizado para servidores e para a nuvem

C# 6 C# 602 Ago

20169 Fev

20159 Fev

2015

02 Ago

2016

02 Ago

2016

20 Jul

2015

20 Jul

2015

13 Set

2016

13 Set

2016

13 Set

2016

Page 17: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Características do ASP.NET CoreASP.NET Core

Hospedagem

Kestrel (servidor web multiplataforma), WebListener e IIS/IISExpress no Windows

Middleware

Roteamento, autenticação, arquivos estáticos, diagnósticos, manipulação de

erros, sessão, CORS, localização, personalizados etc.

Injeção de dependência

Configuração e logging

Frameworks de aplicação

MVC, Identity e SignalR Futuro

Page 18: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Evolução dos frameworks ASP.NETASP.NET Core

ASP.NET Web Pages 3.2.3, ASP.NET MVC 5.2.3 e ASP.NET Web API 2.2ASP.NET Core MVC (MVC + Web API + Web Pages) LegadoPresente

Page 19: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

ASP.NET Core MVCASP.NET Core

Um conjunto de conceitos unificadoRemoção de duplicações de tipos similares

Engloba aplicações Web com interface gráfica com o usuário e serviços Web

Construído sobre o ASP.NET Core

Suporta o .NET Core

Hospedagem no Internet Information Services (IIS)

Hospedagem própriaWebListener em Windows

Kestrel multiplataforma

Integração forte com injeção de dependência

Tag Helpers Novo

Novo

Novo

Novo

Page 20: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

ASP.NET Core MVCASP.NET Core

ASP.NET Core MVC (MVC + Web API + Web Pages)

Recurso Executa no .NET 4.6.2 Executa no .NET Core 1.0.1

Pronto para a nuvem

Projeto modular

Injeção de dependência

Depuração e rastreamento consistente

Desenvolvimento rápido (sem necessidade de compilação)

Open Source

Lado a lado completo (framework distribuído dentro da aplicação)

Inicialização rápida, baixo uso de memória, alta taxa de transferência

Page 21: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

.NET Core, ASP.NET Core e Visual StudioASP.NET Core

Visual

Studio

ASP.NET Core

Ambiente de execução e bibliotecas baseCLR

Bibliotecas

Compiladores

CLI etc.

Modelo de aplicações web modernasASP.NET Core MVC

ASP.NET Core Web API

ASP.NET Core Web Pages

SignalR Core

Ferramentas de desenvolvimentoVS 2015 Tooling Preview 1 para ASP.NET Core RC2 e .NET Core RC2

VS 2015 Tooling Preview 2 para ASP.NET Core 1.0.0 e .NET Core 1.0.0

VS 2015 Tooling Preview 2 para ASP.NET Core 1.0.1 e .NET Core 1.0.1

Visual Studio “15” RTM (Visual Studio 2016 ou 2017)

16 Mai 2016

27 Jun 2016

Nov 2016

Futuro

Futuro

.NET Core

13 Set 2016

Page 22: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

DemonstraçãoASP.NET Core

Ubuntu 16.04.1

Firefox

Windows 10 Pro

Edge

macOS Sierra (10.12)

Safari

Page 23: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Recursos para estudo

Page 24: TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma

Documentação, vídeos, OSS e outrosRecursos para estudo

.NET CoreInstalação do .NET Core

dot.net

.NET Foundationwww.dotnetfoundation.org

.NET Core (GitHub: Pages | Repositórios)dotnet.github.io | github.com/dotnet

.NET Blogblogs.msdn.microsoft.com/dotnet

.NET Core CLI tools (GitHub: Repositório)github.com/dotnet/cli

.NET Web Development and Tools Blogblogs.msdn.microsoft.com/webdev

ASP.NET CoreDocumentação e tutoriais de ASP.NET Core

docs.asp.net

ASP.NET Community Standuplive.asp.net

Código fonte do ASP.NET Coregithub.com/aspnet

Seção de ASP.NET Core no site de ASP.NETwww.asp.net/core

ASP.NET Core Deep Dive into MVCchannel9.msdn.com/Events/Build/2016/B812

Deploying ASP.NET Core Applicationschannel9.msdn.com/Events/Build/2016/B811