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

  • View
    203

  • Download
    7

Embed Size (px)

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

  • O novo ASP.NET Core 1.0 multiplataforma

    Rogrio Moraes de CarvalhoVITA Informtica

    rogeriomc.wordpress.com | @rogeriomc

    Porto Alegre | 08 Out 2016

    https://rogeriomc.wordpress.com/https://twitter.com/rogeriom

  • AgendaO novo ASP.NET Core 1.0 multiplataforma

    Viso geral da plataforma .NETUm novo .NET multiplataforma

    Evoluo da plataforma .NET

    Mudana nos nomes de frameworks

    Visual Studio e outros editores

    .NET CoreO que o .NET Core?

    .NET Core CLI

    .NET Platform Standard

    .NET Core: da codificao execuo

    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

    Caractersticas do ASP.NET Core

    Evoluo dos frameworks ASP.NET

    ASP.NET Core MVC

    .NET Core, ASP.NET Core e Visual Studio

    Recursos para estudoDocumentao, vdeos, OSS e outros

  • Viso geral da plataforma .NET

  • Um novo .NET multiplataformaViso geral da plataforma .NET

    Inovao MultiplataformaOpen Source

    .NET Core xPlat Roslyn

    ASP .NET Core

    EF Core

    Inovaes nas linguagens

    RyuJit

    SIMDIoT

    .NET CoreASP.NET Core

  • Evoluo da plataforma .NETViso geral da plataforma .NET

    .NET Core 1.0.1.NET Framework 4.6.2

    Comum

    Nova gerao do JIT (RyuJIT)

    SIMD

    Componentes do ambiente de execuo

    Bibliotecas .NET Core 1.0.1

    Bibliotecas .NET Framework 4.6.2

    Pacotes NuGetCompiladores

    Inovaes nas linguagens

    Plataforma de compiladores .NET (Roslyn)

    RTMRTM RTM OSS RTM

    RTM OSS

    RTM

    OSS

    RTM

    RTM

    OSS

    RTM

    RTM

    RTMOSS

  • Mudana nos nomes de frameworksViso 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 mudana de nomenclatura dos frameworks

    Os frameworks esto sendo reescritos do zero

    Reintroduo 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)

    http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx

  • Visual Studio e outros editoresViso geral da plataforma .NET

    Visual Studio

    Visual Studio Community 2015IDE somente para Windows

    Grtis para apps no coorporativas

    Visual Studio CodeEditor de cdigo multiplataforma

    Windows, Mac OS X e Linux

    Edio, compilao e depurao

    www.visualstudio.com

    Outros editores

    Baseados no framework ElectronAtom do GitHubatom.io

    Visual Studio Codewww.visualstudio.com

    Brackets da Adobebrackets.io

    Diversas outras opesSublime Text, Emacs, Vim etc.

    http://www.visualstudio.com/https://atom.io/https://www.visualstudio.com/http://brackets.io/

  • .NET Core

  • O que o .NET Core?.NET Core

    Implementao do .NET

    Modular e pequena

    Multiplataforma

    Windows, Linux e Mac OS X

    Isolamento em nvel de aplicao

    Construdo de forma aberta

    Open Source Software (OSS)

    Suporta vrios modelos de apps

    Opo para os prximos 10 anos

    Desenvolvimento de software .NET

    Modelo de aplicaes

    ASP.NET Core

    Qualquer outro

    modelo de aplicaes

    Base Class Library (BCL)unificada

    Camada de adaptao do ambiente de execuo

    .NET Native Outro ambiente

    de execuo

    Modelo de aplicaes

    Universal Windows Apps

    CoreCLR

  • .NET Core CLI

    .NET Core

    O que o .NET Core CLI?Um novo conjunto de ferramentas CLI

    Simples, extensveis e independentes

    Para construir e gerenciar projetos .NET

    ObjetivosAgnstico

    Linguagem, destino e ambiente de execuo

    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

    Conveno: dotnet-{comando} --arg

    Algumas ferramentas disponveisdotnet 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

  • .NET Platform Standard

    .NET Core

    O que o .NET Platform Standard?

    Um modelo de portabilidade binria

    Mais slido para futuras plataformas .NET

    Plano de versionamento mais simples

    Evoluo da Portable Class Library (PCL)

    Define a interseo de APIs por plataformas

    Utiliza nomes para identificar as plataformas

    Target Framework Moniker (TFM)

    Exemplo de TFM: portable-net45+win8

    Novo modelo de identificao

    Exemplo de TFM: netstandard1.3

    Plataforma destino Verses

    .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

  • .NET Core: da codificao execuo

    .NET Core

    Ferramentas .NET Native

    Cdigo(App.cs)

    Referncias (Mdulos, NuGet)

    App.exe (stub)

    App.dll

    Compilador JIT (RyuJIT)

    App.dll

    Mais as DLLs referenciadas

  • ASP.NET Core

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

    Um novo framework ASP.NET de cdigo aberto e multiplataforma

    Para construir aplicaes Web modernas, prontas para a nuvem, em .NET

    Multiplataforma

    Escolha seus editores

    e ferramentas

    Open Source com

    contribuiesOSS

    Transio simples de

    on-premises para a nuvem

    Ciclos rpidos de

    desenvolvimentoTotalmente modular

    Rpido

  • Desempenho do ASP.NET CoreASP.NET Core

    ASP.NET Core: 2300% mais requisies por segundo que o ASP.NET 4.6

    Foram 1,15 milhes de requisies por segundo (rps)

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

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

  • 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 cenrio

    Suporte das bibliotecas somente em Windows

    .NET Core 1.0.1Bibliotecas modulares e multiplataforma

    Ambiente de execuo otimizado para servidores e para a nuvem

    C# 6 C# 602 Ago2016

    9 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

  • Caractersticas do ASP.NET CoreASP.NET Core

    Hospedagem

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

    Middleware

    Roteamento, autenticao, arquivos estticos, diagnsticos, manipulao de

    erros, sesso, CORS, localizao, personalizados etc.

    Injeo de dependncia

    Configurao e logging

    Frameworks de aplicao

    MVC, Identity e SignalR Futuro

  • Evoluo 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

  • ASP.NET Core MVCASP.NET Core

    Um conjunto de conceitos unificadoRemoo de duplicaes de tipos similares

    Engloba aplicaes Web com interface grfica com o usurio e servios Web

    Construdo sobre o ASP.NET Core

    Suporta o .NET Core

    Hospedagem no Internet Information Services (IIS)

    Hospedagem prpriaWebListener em Windows

    Kestrel multiplataforma

    Integrao forte com injeo de dependncia

    Tag Helpers Novo

    Novo

    Novo

    Novo

  • 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

    Injeo de dependncia

    Depurao e rastreamento consistente

    Desenvolvimento rpido (sem necessidade de compilao)

    Open Source

    Lado a lado completo (framework distribudo dentro da aplicao)

    Inicializao rpida, baixo uso de memria, alta taxa de transferncia

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

    Visual

    Studio

    ASP.NET Core

    Ambiente de execuo e bibliotecas baseCLR

    Bibliotecas

    Compiladores

    CLI etc.

    Modelo de aplicaes 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

  • DemonstraoASP.NET Core

    Ubuntu 16.04.1

    Firefox

    Windows 10 Pro

    Edge

    macOS Sierra (10.12)

    Safari

  • Recursos para estudo

  • Documentao, vdeos, OSS e outrosRecursos para estudo

    .NET CoreInstalao do .NET Core

    dot.net

    .NET Foundationwww.dotnetfoundation.org

    .NET Core (GitHub: Pages | Repositrios)dotnet.github.io | github.com/dotnet

    .NET Blogblogs.msdn.microsoft.com/dotnet

    .NET Core CLI tools (GitHub: Repositrio)github.com/dotnet/cli

    .NET Web