Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core

4,077 views

Published on

Hoje, dia 21 de maio de 2016, eu apresentei a palestra: Um novo .NET multiplataforma:
ASP.NET Core, .NET Core e Entity Framework Core. As informações foram atualizadas com informações dos recém-lançados: ASP.NET Core RC2, .NET Core RC2 e Entity Framework Core RC2. A tão esperada versão Release Candidate 2 (RC2) foi liberada há apenas 5 dias: no dia 16 de maio de 2016. A versão final (RTM) está planejada para ser liberada até o final de junho de 2016.

Os anúncios do ASP.NET Core RC2, .NET Core RC2, Entity Framework Core RC2 e .NET Core SDK Preview 1 podem ser lidos em dois posts no blog do time de engenheiros .NET da Microsoft, em inglês: Announcing .NET Core RC2 and .NET Core SDK Preview 1 e Announcing Entity Framework Core RC2.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core

  1. 1. Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core Rogério Moraes de Carvalho Consultor e desenvolvedor de sistemas rogeriom.wordpress.com | @rogeriomc
  2. 2. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Agenda Visão geral da plataforma .NET Um novo .NET multiplataforma Evolução da plataforma .NET Mudança nos nomes de frameworks Visual Studio e outros editores .NET Core O que é o .NET Core? .NET Core CLI .NET Platform Standard .NET Core: da codificação à execução Entity Framework Core O que é o Entity Framework Core? Novidades do Entity Framework Core ASP.NET Core O que é o ASP .NET Core? Desempenho do ASP.NET Core ASP.NET Core em detalhes Futuro e recursos para estudo Previsão de lançamento da versão 1.0 Documentação, vídeos, OSS e outros
  3. 3. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Visão geral da plataforma .NET
  4. 4. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Um novo .NET multiplataforma Visã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 Core ASP.NET Core
  5. 5. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Evolução da plataforma .NET Visão geral da plataforma .NET .NET Core.NET Framework 4.6.1 Comum Nova geração do JIT (“RyuJIT”) SIMD Componentes do ambiente de execução Bibliotecas .NET Core Bibliotecas .NET Framework 4.6.1 Pacotes NuGetCompiladores Inovações nas linguagens Plataforma de compiladores .NET (“Roslyn”)
  6. 6. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Evolução da plataforma .NET Visão geral da plataforma .NET .NET Framework Framework para aplicações .NET em Windows Distribuído com o Windows .NET Core Distribuído com a aplicação Framework multiplataforma e open source otimizado para fluxos de desenvolvimento e aplicações modernas Xamarin Distribuído com a aplicação Ambiente multiplataforma e open source baseado no framework Mono para iOS, OS X e Android Modelosde aplicações Bibliotecas bases Componentes do ambiente de execuçãoCompiladores Linguagens C# F# VB Infraestrutura comum WPF Windows Forms WCF ASP.NET UWP Console ASP.NET Core iOS OS X Android Base Class Library Core Library Mono Class Library
  7. 7. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Mudança nos nomes de frameworks Visã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 é agora ASP.NET Core 1.0 ASP.NET MVC 6 é agora ASP.NET Core MVC 1.0 .NET Core 5 é agora .NET Core 1.0 Entity Framework 7 é agora Entity Framework Core 1.0 (EF Core 1.0) As novas nomenclaturas ainda estão sendo gradativamente adotadas
  8. 8. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Visual Studio e outros editores Visão geral da plataforma .NET Visual Studio Visual Studio Community 2015 IDE somente para Windows Grátis para apps não coorporativas Visual Studio Code Editor 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 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.
  9. 9. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO .NET Core
  10. 10. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO 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
  11. 11. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO .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 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 A transição do DNX para o .NET Core CLI foi liberada no RC2 (16/05/2016)
  12. 12. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO .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 O TFM netstandard foi liberado no .NET Core RC2
  13. 13. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO .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
  14. 14. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Demonstração .NET Core Mac OS X El Capitan (10.11.5) Ubuntu 14.04.4 (breve 16.04) Atom 1.7.3 Visual Studio Code 1.1.1 Windows 10 Pro Sublime Text 3
  15. 15. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Entity Framework Core
  16. 16. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO O que é o Entity Framework Core? Entity Framework Core Entity Framework (EF) Tecnologia de acesso a dados recomendada pela Microsoft para novas apps .NET Entity Framework Core (EF Core) Experiência de desenvolvimento similar ao EF 6.x Modelo Code First (entidades POCO - Plain Old CLR Objects) LINQ para entidades DbContext, DbSet etc Suporte a fontes de dados relacionais e não relacionais Muito mais leve que o Entity Framework 6.x Suporte em nuvem, em dispositivos (UWP) e em cenários .NET tradicionais
  17. 17. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Novidades do Entity Framework Core Entity Framework Core Modelagem Chaves alternativas Propriedades de estado sombreado Restrições de unicidade e índices Geração de valores chaves (sequence) Salvamento de mudanças Envio de instruções em lote Consultas Avaliação LINQ do lado do cliente Provedores de acesso a dados In Memory Modelos de aplicação ASP.NET Core Universal Windows Platform Plataformas Mac OS X / Linux Universal Windows Platform Engenharia reversa Banco de dados para entidades POCO
  18. 18. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core
  19. 19. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO 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ções OSS Transição simples de on-premises para a nuvem Ciclos rápidos de desenvolvimento Totalmente modular Rápido
  20. 20. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Desempenho do ASP.NET Core ASP.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
  21. 21. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core em detalhes ASP.NET Core Visual Basic 14 Visual Basic 14 (em breve) .NET Framework 4.6 .NET Framework completo para qualquer cenário Suporte das bibliotecas somente em Windows .NET Core 1.0 Bibliotecas modulares e multiplataforma Ambiente de execução otimizado para servidores e para a nuvem C# 6 C# 6
  22. 22. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core em detalhes ASP.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, Web API, Identity, Web Pages e SignalR
  23. 23. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core em detalhes ASP.NET Core ASP.NET Core frameworks (modelos de aplicações) 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)
  24. 24. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core em detalhes ASP.NET Core ASP.NET Core MVC Um conjunto de conceitos unificado Remoção de duplicações de tipos similares Engloba aplicações Web com interface gráfica (MVC) e serviços Web (Web API) Construído sobre o ASP.NET Core Suporta o .NET Core Hospedagem no Internet Information Services (IIS) Hospedagem própria: WebListener em Windows e Kestrel multiplataforma Integração intensa com injeção de dependência Tag Helpers
  25. 25. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core em detalhes ASP.NET Core ASP.NET Core MVC (MVC + Web API) Recurso Executa no .NET 4.6 Executa no .NET Core 1.0 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 
  26. 26. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core em detalhes ASP.NET Core Visual Studio ASP.NET Core Ambiente de execução e bibliotecas base CLR Bibliotecas Compiladores CLI etc. Modelo de aplicações web modernas ASP.NET Core MVC ASP.NET Core Web API ASP.NET Core Web Pages SignalR Core (provavelmente) Ferramentas de desenvolvimento Preview 1 com ASP.NET Core RC2 e .NET Core RC2 Preview 2 com ASP.NET Core RTM e .NET Core RTM Visual Studio “15” RTM (Visual Studio 2016 ou 2017) .NET Core
  27. 27. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Demonstração ASP.NET Core Ubuntu 14.04.4 Firefox Windows 10 Pro Edge Mac OS X El Capitan (10.11.4) Safari
  28. 28. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Futuro e recursos para estudo
  29. 29. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Previsão de lançamento da versão 1.0 Futuro e recursos para estudo ASP.NET 5 Beta 7 Multiplataforma (Linux e Mac OS X) 2 Set 2015 ASP.NET 5 Beta 8 Finalização dos recursos para a v1.0 15 Out 2015 ASP.NET 5 RC1 Estabilidade e desempenho Nov 2015 ASP.NET Core 1.0 RC2 Adoção do .NET Core CLI e do .NET Platform Standard 16 Mai 2016 ASP.NET Core 1.0 (RTM) Final Jun 2016 .NET Core 1.0 (RTM) Alinhado com as previsões do ASP.NET Core 1.0 (RTM) Final Jun 2016 Nov 2015 .NET Core 5 RC1 Suporte para ASP.NET Core, Console apps e Windows 10 UWP Entity Framework 7 Beta 7 2 Set 2015 Entity Framework 7 Beta 815 Out 2015 Entity Framework 7 RC1Nov 2015 Entity Framework Core 1.0 RC2 16 Mai 2016 Entity Framework Core 1.0 (RTM) Alinhado com as previsões do ASP.NET Core 1.0 (RTM) Final Jun 2016 .NET Core 1.0 RC2 Adoção do .NET Core CLI e do .NET Platform Standard 16 Mai 2016
  30. 30. © 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Documentação, vídeos, OSS e outros Futuro e recursos para estudo .NET Foundation www.dotnetfoundation.org .NET Core (GitHub: Pages | Repositórios) dotnet.github.io | github.com/dotnet .NET Blog blogs.msdn.microsoft.com/dotnet .NET Core CLI tools (GitHub: Repositório) github.com/dotnet/cli .NET Web Development and Tools Blog blogs.msdn.microsoft.com/webdev Entity Framework Core 1.0 Documentation docs.efproject.net ASP.NET Core 1.0 Documentation docs.asp.net ASP.NET Community Standup live.asp.net ASP.NET Monsters channel9.msdn.com/Series/aspnetmonsters ASP.NET Core (GitHub: Repositórios) github.com/aspnet

×