cebraspe 2016: .net core e asp.net core

26
.NET Core e ASP .NET Core Rogério Moraes de Carvalho Consultor e instrutor de TI rogeriom.wordpress.com | @ rogeriomc

Upload: rogerio-moraes-de-carvalho

Post on 22-Jan-2018

318 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Cebraspe 2016: .NET Core e ASP.NET Core

.NET Core e ASP.NET Core

Rogério Moraes de CarvalhoConsultor e instrutor de TI

rogeriom.wordpress.com | @rogeriomc

Page 2: Cebraspe 2016: .NET Core e ASP.NET Core

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

ASP.NET Core

O que é o ASP .NET Core?

Desempenho do ASP.NET Core

ASP.NET Core x ASP.NET 4.6.2

Hospedagem de apps ASP.NET Core

Frameworks ASP.NET Core

ASP.NET Core MVC

.NET Core, ASP.NET Core e Visual Studio

Recursos para estudo

Documentação, vídeos, OSS e outros

Page 3: Cebraspe 2016: .NET Core e ASP.NET Core

Visão geral da plataforma .NET

Page 4: Cebraspe 2016: .NET Core e ASP.NET Core

Um novo .NET multiplataforma

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: Cebraspe 2016: .NET Core e ASP.NET Core

Evolução da plataforma .NET

.NET Core 1.0.0.NET Framework 4.6.2

Comum

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

SIMD

Componentes do ambiente de execução

Bibliotecas .NET Core 1.0.0

Bibliotecas .NET Framework 4.6.2

Pacotes NuGetCompiladores

Inovações nas linguagens

Plataforma de compiladores .NET (“Roslyn”)

Page 6: Cebraspe 2016: .NET Core e ASP.NET Core

Evolução 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

Mo

delo

s d

e

ap

licaçõ

es

Bib

lio

tecas

base

s

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

Page 7: Cebraspe 2016: .NET Core e ASP.NET Core

Mudança nos nomes de frameworks

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

Os frameworks estão sendo reescritos do zero

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

Page 8: Cebraspe 2016: .NET Core e ASP.NET Core

Visual Studio e outros editores

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.

Page 9: Cebraspe 2016: .NET Core e ASP.NET Core

.NET Core

Page 10: Cebraspe 2016: .NET Core e ASP.NET Core

O que é o .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 11: Cebraspe 2016: .NET Core e ASP.NET Core

.NET Core CLI

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: dotnetSintaxe: 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)

Page 12: Cebraspe 2016: .NET Core e ASP.NET Core

.NET Platform Standard

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

Page 13: Cebraspe 2016: .NET Core e ASP.NET Core

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

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 14: Cebraspe 2016: .NET Core e ASP.NET Core

Demonstração

Mac OS X El Capitan (10.11.6) Ubuntu 16.04

Atom 1.9.9

Visual Studio Code 1.4.0

Windows 10 Pro

Sublime Text

Page 15: Cebraspe 2016: .NET Core e ASP.NET Core

ASP.NET Core

Page 16: Cebraspe 2016: .NET Core e ASP.NET Core

O que é o ASP .NET Core?

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 17: Cebraspe 2016: .NET Core e ASP.NET Core

Desempenho do ASP.NET Core

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 18: Cebraspe 2016: .NET Core e ASP.NET Core

ASP.NET Core x ASP.NET 4.6.2

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.0Bibliotecas modulares e multiplataforma

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

C# 6 C# 6

Page 19: Cebraspe 2016: .NET Core e 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

Hospedagem de apps ASP.NET Core

Page 20: Cebraspe 2016: .NET Core e ASP.NET Core

Frameworks ASP.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)

Page 21: Cebraspe 2016: .NET Core e ASP.NET Core

ASP.NET Core MVC

Remoção de duplicações de tipos similares

ASP.NET Core

Suporta o .NET Core

WebListener em Windows

Kestrel multiplataforma

Tag Helpers

Page 22: Cebraspe 2016: .NET Core e ASP.NET Core

ASP.NET Core MVC

Recurso Executa no .NET 4.6.2 Executa no .NET Core 1.0.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

Page 23: Cebraspe 2016: .NET Core e ASP.NET Core

.NET Core, ASP.NET Core e Visual Studio

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 (provavelmente)

Ferramentas de desenvolvimentoPreview 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

Page 24: Cebraspe 2016: .NET Core e ASP.NET Core

Demonstração

Ubuntu 16.04

Firefox

Windows 10 Pro

Edge

Mac OS X El Capitan (10.11.6)

Safari

Page 25: Cebraspe 2016: .NET Core e ASP.NET Core

Recursos para estudo

Page 26: Cebraspe 2016: .NET Core e ASP.NET Core

Documentação, vídeos, OSS e outros

Instalação do .NET Core

dot.net

.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

Documentação e tutoriais de ASP.NET Core

docs.asp.net

ASP.NET Community Standup

live.asp.net

Código fonte do ASP.NET Core

github.com/aspnet

Seção de ASP.NET Core no site de ASP.NET

www.asp.net/core

ASP.NET Core Deep Dive into MVC

channel9.msdn.com/Events/Build/2016/B812

Deploying ASP.NET Core Applications

channel9.msdn.com/Events/Build/2016/B811