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
© 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
© 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO
Visão geral da plataforma .NET
© 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
© 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”)
© 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
© 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
© 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.
© 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO
.NET Core
© 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
© 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)
© 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
© 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
© 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
© 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO
Entity Framework Core
© 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
© 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
© 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO
ASP.NET Core
© 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
© 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
© 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
© 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
© 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)
© 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
© 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 
© 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
© 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
© 2016, Rogério Moraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO
Futuro e recursos para estudo
© 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
© 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

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

  • 1.
    Um novo .NETmultiplataforma: ASP.NET Core, .NET Core e Entity Framework Core Rogério Moraes de Carvalho Consultor e desenvolvedor de sistemas rogeriom.wordpress.com | @rogeriomc
  • 2.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Visão geral da plataforma .NET
  • 4.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO .NET Core
  • 10.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Entity Framework Core
  • 16.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO ASP.NET Core
  • 19.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes de Carvalho (rogeriomc.wordpress.com | @rogeriomc) JoinCommunity 2016 | Goiânia/GO Futuro e recursos para estudo
  • 29.
    © 2016, RogérioMoraes 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.
    © 2016, RogérioMoraes 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