SlideShare uma empresa Scribd logo
Renato Groffe
Junho/2015
 Mais de 15 anos de experiência na área de Tecnologia
 Pós-graduação em Engenharia de Software – ênfase em
SOA
 Cursando MBA em Business Intelligence (FIAP)
 Graduação em Sistemas de Informação
 Técnico em Processamento de Dados
 MTAC (Microsoft Technical Audience Contributor), MCP,
Microsoft Specialist, MCTS, OCA, ITIL, COBIT
 Página no Facebook
https://www.facebook.com/RenatoGroffeSW
 Perfil no Facebook
https://www.facebook.com/renatogroff
 LinkedIn
http://br.linkedin.com/in/renatogroffe
 Visual Studio 2015 Release Candidate
 ASP.NET 5
 Visual Studio 2015 e as novidades da plataforma .NET
 ASP.NET 5: uma visão geral
 Um novo mecanismo nativo para injeção de dependências
 Itens de configuração no ASP.NET 5
 Gerenciamento de pacotes client-side com npm, Grunt e
Bower
 Reusabilidade com View Components
 Simplificando a codificação de Views com Tag Helpers
 Melhoramentos na IDE (debug de expressões lambda, IntelliTest,
NuGet reformulado, dentre outras funcionalidades) → Release
Candidate (versão mais atual - Junho/2015)
 C# 6.0 → nova versão da linguagem, com melhorias visando
simplificar o desenvolvimento de soluções
 Novo compilador (Roslyn)
 Boa parte da plataforma .NET é agora open source, estando
hospedada no GitHub
 ASP.NET 5 → plataforma Web totalmente reformulada
 Possibilidade de desenvolvimento de soluções multiplataforma
 Novos tipos de projetos
 Mudanças na forma como os projetos encontram-se
estruturados no Visual Studio
 Arquitetura mais enxuta e modular → a biblioteca
System.Web.dll não será mais utilizada
 MVC 6 → modelo de programação Web unificado, combinando
MVC e Web API em um único framework
 Compilação dinâmica
◦ Mudanças podem ser realizadas a partir do Visual Studio, com a
aplicação em execução
◦ Não há necessidade de recompilar o projeto para as modificações
surtirem efeito
 Possibilidade de hospedagem no IIS ou, até mesmo, de
implementação de um projeto que cuide disto
 A geração de projetos sob a forma de dlls deu lugar a módulos
que seguem os padrões de pacotes do utilitário NuGet
 Mecanismo nativo para injeção de dependências
 Modificações na forma como itens de configuração são
manipulados
 Gerenciamento de pacotes client-side com npm, Grunt e Bower
 View Components
 Tag Helpers
 2 runtimes possíveis para a execução de aplicações →
.NET Core e .NET Framework
 .NET Core
◦ Versão mais enxuta (apenas recursos realmente necessários)
◦ Suporte a ambientes Windows, Linux e Mac OS X
◦ Deploy de soluções com os packages que formam este runtime →
mudanças no .NET Framework de um servidor não afetarão
aplicações que empregam esta alternativa
 .NET Framework
◦ Versão mais completa que a anterior, com acesso total às APIs do
.NET Framework
 Visual Studio Code → editor de código que representa
uma alternativa para o desenvolvimento em Linux e Mac
 3 novos tipos de projetos:
◦ ASP.NET Web Application
◦ Class Library (Package)
◦ Console Application (Package)
 Todos estes templates são baseados na utilização de recursos
do ASP.NET 5
 Os compiláveis seguem a estrutura de um package do NuGet
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 Templates disponíveis:
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
 A indicação de quais componentes serão utilizados
acontece nos métodos ConfigureServices e Configure da
classe Startup (um equivalente do antigo Global.asax)
 A biblioteca System.Web.dll não está mais disponível para
projetos ASP.NET 5
 A especificação apenas de recursos realmente necessários
contribui para uma melhor performance da aplicação
 Exemplo
 Classe Controller (namespace Microsoft.AspNet.Mvc) → mesma
base para a implementação de soluções MVC e Web API
 Exemplo de implementação de um serviço Web API
 Injeção de Dependências – Benefícios
◦ Favorece um menor acoplamento entre as partes de um sistema
◦ Priorização do uso de interfaces
◦ Flexibilidade diante da necessidade de mudanças
 Versões anteriores do ASP.NET dependiam do uso de
algum container para a injeção de dependências
◦ Unity, Ninject, Autofac e Spring.NET eram algumas das alternativas
 O ASP.NET 5 conta agora com um novo mecanismo
nativo, de forma a simplificar o uso de técnicas de injeção
de dependências
 Exemplo - Interfaces
 Exemplo - Implementações
 Exemplo – Definindo os mapeamentos no método ConfigureServices
 Configurando as dependências em um Controller (construtor + atributo FromServices)
 Configurando as dependências em uma View (cláusula @inject)
 O arquivo Web.config e a classe ConfigurationManager
(namespace System.Configuration) não estão mais disponíveis
 Uma implementação da interface IConfiguration (namespace
Microsoft.Framework.ConfigurationModel) deverá ser utilizada
para acesso às configurações
◦ O acesso a esta referência será feito via injeção de dependência
 Por default, as configurações de um projeto são declaradas no
arquivo config.json
◦ Outros arquivos no formato JSON podem ser adicionados
◦ Também é possível o uso de arquivos .ini ou variáveis de sistema
 Exemplo – Configurando o uso de IConfiguration no método ConfigureServices
 Exemplo – arquivo config.json com alguns itens de configuração
 Exemplo - Utilizando IConfiguration em um Controller
 Exemplo - Utilizando IConfiguration em uma View
 Bower → gerenciador empregado na instalação e
restauração de pacotes client-side (arquivos CSS e de
scripts)
 Grunt → automação de tarefas envolvendo manipulação
de pacotes client-side, por meio de arquivos de
instruções com uma sintaxe baseada em JavaScript
 npm (Node Package Manager) → ambiente a partir do qual
outras ferramentas como Bower e Grunt serão executadas
 Tarefas do processo de build envolvendo scripts
◦ Bundling → combinação de arquivos em uma simples unidade, de forma
a minimizar a quantidade de requisições HTTP enviadas ao servidor
◦ Minification → eliminação em tempo de execução de itens
desnecessários (espaços, comentários) em arquivos CSS e de scripts
◦ Determinar qual versão de um pacote client-server será utilizada
◦ Possibilidade de uso de ferramentas para verificação automática de
código JavaScript (como JSHint e JSLint)
◦ Uso de pré-processadores como LESS e SASS → viabilizam a utilização
de variáveis, funções e mixins (agrupamentos de propriedades) em
folhas de estilo
 Arquivo bower.json → dependências de pacotes client-side controladas por meio da
ferramenta Bower (exemplo de inclusão da biblioteca Open Weather)
 Plugin Open Weather ainda não instalado
 Acessando o Task Runner Explorer
 Executando as tarefas para a ferramenta Bower
 Resultado da execução das tarefas no Task Runner Explorer
 Plugin Open Weather já instalado
 Não é mais possível o uso de Partial Views no ASP.NET 5
 Disponibilizado agora um novo recurso conhecido como View
Component
◦ Favorece o reuso
◦ Dispensa a codificação de um novo Controller, com uma Action
relacionada ao processamento de um item
◦ Possibilita a inserção de conteúdo em pontos específicos das páginas de
uma aplicação
 Estrutura de um ViewComponent (classe na pasta Components +
View Default.cshtml em ViewsSharedComponents)
 Exemplo – Classe que implementa um View Component (derivada
do tipo básico ViewComponent)
 Exemplo – View Default.cshtml (parte das funcionalidades)
 Exemplo – Consumindo o View Component ClimaCidade
 Exemplo – View Component assíncrono
 Exemplo – Arquivo Default.cshtml (View Component assíncrono)
 Exemplo – Consumindo o View Component assíncrono
 Alternativa ao uso de HTML Helpers convencionais,
visando simplificar a codificação de Views
 Faz uso de uma sintaxe similar àquela empregada em
código HTML padrão
 Exemplo – Ativando o uso de Tag Helpers (NuGet)
 Exemplo – Selecionando o package necessário
 Exemplo – Package Microsoft.AspNet.Mvc.TagHelpers instalado
 Exemplo – Modificando a View _ViewStart.cshtml para possibilitar o
uso de Tag Helpers (cláusula @addtaghelper)
 Exemplo – Utilizando uma Tag Helper em uma View
Dúvidas, sugestões???
 ASP.NET 5 Documentation
http://docs.asp.net/en/latest/
 Gerenciando bibliotecas de scripts no Visual Studio 2015
http://www.devmedia.com.br/gerenciando-bibliotecas-de-scripts-no-visual-studio-
2015/31869
 O novo mecanismo de Cache do ASP.NET 5
http://netcoders.com.br/blog/asp-net-5-cache/
 O novo mecanismo de Injeção de Dependências do ASP.NET 5
http://netcoders.com.br/blog/asp-net-5-injecao-dependencias/
 Visual Studio 2015: Implementando uma aplicação ASP.NET MVC 6
http://www.devmedia.com.br/visual-studio-2015-implementando-uma-aplicacao-asp-net-
mvc-6/32265
 Visual Studio 2015: Implementando uma aplicação Web API
http://social.technet.microsoft.com/wiki/pt-br/contents/articles/30528.visual-studio-2015-
implementando-uma-aplicacao-web-api.aspx
 Visual Studio Code: criando um projeto MVC 6
http://social.technet.microsoft.com/wiki/pt-br/contents/articles/30967.visual-studio-code-
criando-um-projeto-mvc-6.aspx
Obrigado!!!

Mais conteúdo relacionado

PPTX
ASP.NET 5, MVC 6 e além
Fabrício Lopes Sanchez
 
PPTX
O Futuro do ASP.NET
Eduardo Pires
 
PDF
Infrastructure Testing
Glauco Vinicius Argentino de Oliveira
 
PPTX
Novidades do ASP.NET 5.X
Eduardo Pires
 
PPTX
Futuro do ASP.NET vNext - MVP ShowCast
Eduardo Pires
 
PPSX
Comunicação em Tempo Real com ASP.Net SignalR
Eduardo Pires
 
PDF
ASP.NET vNext – MVC6
Mailson Queiroz
 
PPTX
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Fabrício Lopes Sanchez
 
ASP.NET 5, MVC 6 e além
Fabrício Lopes Sanchez
 
O Futuro do ASP.NET
Eduardo Pires
 
Novidades do ASP.NET 5.X
Eduardo Pires
 
Futuro do ASP.NET vNext - MVP ShowCast
Eduardo Pires
 
Comunicação em Tempo Real com ASP.Net SignalR
Eduardo Pires
 
ASP.NET vNext – MVC6
Mailson Queiroz
 
Construindo aplicações leves e performáticas com ASP.NET Core 1.0
Fabrício Lopes Sanchez
 

Mais procurados (20)

PPTX
Performance do ASP.NET Core, um comparativo com Node.js
Waldyr Felix
 
PPTX
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Renato Groff
 
PPTX
Middlewares ASP.NET
Bruno Belarmino
 
PPTX
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Eduardo Pires
 
PPTX
Criar um sistema com asp net
Anderson Wernek
 
PPTX
Docker para devs .NET
Fabrício Lopes Sanchez
 
PPTX
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Rodrigo Kono
 
PPTX
ASP .NET Core MVC
Vinicius Mussak
 
PDF
Sistema S2DG e Tecnologias Web
Elenilson Vieira
 
PPTX
ASP.NET Web Forms X ASP.NET MVC
guest489a65e
 
PPTX
Escalabilidade com docker - ASP.NET Conference 2016
Rodolfo Fadino Junior
 
PPTX
Asp.net core
Tanato Cartaxo
 
PPTX
Angular 2, TypeScript e Além
Andre Baltieri
 
PPTX
Bibliotecas de interface rica no jsf 2
Pablo Nóbrega
 
PDF
Asp.Net Core - Meetup BH
André Paulovich
 
PPTX
.NET Core Internals. O que é o .NET Platform Standard?
Victor Cavalcante
 
PDF
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Elvis Rocha
 
PDF
.NET 6: O que há de novo e o que está por vir?
akamud
 
PDF
Começando com meteor
Flávio Junior
 
PDF
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
WordCamp Floripa
 
Performance do ASP.NET Core, um comparativo com Node.js
Waldyr Felix
 
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Renato Groff
 
Middlewares ASP.NET
Bruno Belarmino
 
Campus Party 2014 - Desenvolvimento Web com ASP.NET
Eduardo Pires
 
Criar um sistema com asp net
Anderson Wernek
 
Docker para devs .NET
Fabrício Lopes Sanchez
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Rodrigo Kono
 
ASP .NET Core MVC
Vinicius Mussak
 
Sistema S2DG e Tecnologias Web
Elenilson Vieira
 
ASP.NET Web Forms X ASP.NET MVC
guest489a65e
 
Escalabilidade com docker - ASP.NET Conference 2016
Rodolfo Fadino Junior
 
Asp.net core
Tanato Cartaxo
 
Angular 2, TypeScript e Além
Andre Baltieri
 
Bibliotecas de interface rica no jsf 2
Pablo Nóbrega
 
Asp.Net Core - Meetup BH
André Paulovich
 
.NET Core Internals. O que é o .NET Platform Standard?
Victor Cavalcante
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
Elvis Rocha
 
.NET 6: O que há de novo e o que está por vir?
akamud
 
Começando com meteor
Flávio Junior
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
WordCamp Floripa
 
Anúncio

Semelhante a ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (20)

PPTX
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
Renato Groff
 
PPTX
O novo ASP.NET - Stone Tech Saturday - Março/2017
Renato Groff
 
PPTX
Workshop ASP.NET MVC 5
Andre A. Verissimo da Silva
 
PPTX
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
Renato Groff
 
PPTX
TDC SP 2015 - Criando aplicações ASP.NET no Mac
Andre Baltieri
 
PPTX
.NET 2015, ASP.NET 5, C# 6 e tudo mais
akamud
 
PPTX
ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017
Renato Groff
 
PPTX
ASP.NET Core 2.0 - Reply - Outubro/2017
Renato Groff
 
PPTX
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
Renato Groff
 
PPTX
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
Renato Groff
 
PPTX
ASP.NET Core 2.0 - Pointer - Janeiro-2018
Renato Groff
 
PPTX
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Renato Groff
 
PPTX
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
Renato Groff
 
PPTX
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...
Renato Groff
 
PPTX
ASP.NET Core 2.0 - NESS - Outubro/2017
Renato Groff
 
PPTX
ASP.NET Core - iMasters - Março/2016
Renato Groff
 
PPTX
.NET Core 3.0 e ASP.NET Core 3.0: principais novidades - FCamara - Agosto-2019
Renato Groff
 
PDF
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
Rogério Moraes de Carvalho
 
PPTX
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Renato Groff
 
PPTX
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
Renato Groff
 
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)
Renato Groff
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
Renato Groff
 
Workshop ASP.NET MVC 5
Andre A. Verissimo da Silva
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
Renato Groff
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
Andre Baltieri
 
.NET 2015, ASP.NET 5, C# 6 e tudo mais
akamud
 
ASP.NET Core 2.0 - .NET São Paulo - Outubro-2017
Renato Groff
 
ASP.NET Core 2.0 - Reply - Outubro/2017
Renato Groff
 
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
Renato Groff
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
Renato Groff
 
ASP.NET Core 2.0 - Pointer - Janeiro-2018
Renato Groff
 
Novidades do ASP.NET Core 2.0 - ASP.NET Core Campinas - Agosto/2017
Renato Groff
 
7 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - .NET SP - ...
Renato Groff
 
.NET Core 3.0 e ASP.NET Core 3.0: novidades e dicas úteis - Qual o X da Quest...
Renato Groff
 
ASP.NET Core 2.0 - NESS - Outubro/2017
Renato Groff
 
ASP.NET Core - iMasters - Março/2016
Renato Groff
 
.NET Core 3.0 e ASP.NET Core 3.0: principais novidades - FCamara - Agosto-2019
Renato Groff
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
Rogério Moraes de Carvalho
 
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Renato Groff
 
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
Renato Groff
 
Anúncio

Mais de Renato Groff (20)

PPTX
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Renato Groff
 
PPTX
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Renato Groff
 
PPTX
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Renato Groff
 
PPTX
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Renato Groff
 
PPTX
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
Renato Groff
 
PPTX
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
Renato Groff
 
PPTX
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Renato Groff
 
PPTX
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Renato Groff
 
PPTX
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Renato Groff
 
PPTX
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Renato Groff
 
PPTX
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
Renato Groff
 
PPTX
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Renato Groff
 
PPTX
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Renato Groff
 
PPTX
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Renato Groff
 
PPTX
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
Renato Groff
 
PPTX
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Renato Groff
 
PPTX
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Renato Groff
 
PPTX
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Renato Groff
 
PPTX
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Renato Groff
 
PPTX
.NET 5, C# 9.0 e outras novidades | TDC São Paulo Online 2020
Renato Groff
 
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Renato Groff
 
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Renato Groff
 
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Renato Groff
 
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Renato Groff
 
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
Renato Groff
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
Renato Groff
 
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Renato Groff
 
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Renato Groff
 
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Renato Groff
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Renato Groff
 
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
Renato Groff
 
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Renato Groff
 
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Renato Groff
 
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Renato Groff
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
Renato Groff
 
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Renato Groff
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Renato Groff
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Renato Groff
 
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Renato Groff
 
.NET 5, C# 9.0 e outras novidades | TDC São Paulo Online 2020
Renato Groff
 

ASP.NET 5 - Novidades do Desenvolvimento Web em .NET

  • 2.  Mais de 15 anos de experiência na área de Tecnologia  Pós-graduação em Engenharia de Software – ênfase em SOA  Cursando MBA em Business Intelligence (FIAP)  Graduação em Sistemas de Informação  Técnico em Processamento de Dados  MTAC (Microsoft Technical Audience Contributor), MCP, Microsoft Specialist, MCTS, OCA, ITIL, COBIT
  • 3.  Página no Facebook https://www.facebook.com/RenatoGroffeSW  Perfil no Facebook https://www.facebook.com/renatogroff  LinkedIn http://br.linkedin.com/in/renatogroffe
  • 4.  Visual Studio 2015 Release Candidate  ASP.NET 5
  • 5.  Visual Studio 2015 e as novidades da plataforma .NET  ASP.NET 5: uma visão geral  Um novo mecanismo nativo para injeção de dependências  Itens de configuração no ASP.NET 5  Gerenciamento de pacotes client-side com npm, Grunt e Bower  Reusabilidade com View Components  Simplificando a codificação de Views com Tag Helpers
  • 6.  Melhoramentos na IDE (debug de expressões lambda, IntelliTest, NuGet reformulado, dentre outras funcionalidades) → Release Candidate (versão mais atual - Junho/2015)  C# 6.0 → nova versão da linguagem, com melhorias visando simplificar o desenvolvimento de soluções  Novo compilador (Roslyn)  Boa parte da plataforma .NET é agora open source, estando hospedada no GitHub  ASP.NET 5 → plataforma Web totalmente reformulada
  • 7.  Possibilidade de desenvolvimento de soluções multiplataforma  Novos tipos de projetos  Mudanças na forma como os projetos encontram-se estruturados no Visual Studio  Arquitetura mais enxuta e modular → a biblioteca System.Web.dll não será mais utilizada  MVC 6 → modelo de programação Web unificado, combinando MVC e Web API em um único framework
  • 8.  Compilação dinâmica ◦ Mudanças podem ser realizadas a partir do Visual Studio, com a aplicação em execução ◦ Não há necessidade de recompilar o projeto para as modificações surtirem efeito  Possibilidade de hospedagem no IIS ou, até mesmo, de implementação de um projeto que cuide disto  A geração de projetos sob a forma de dlls deu lugar a módulos que seguem os padrões de pacotes do utilitário NuGet
  • 9.  Mecanismo nativo para injeção de dependências  Modificações na forma como itens de configuração são manipulados  Gerenciamento de pacotes client-side com npm, Grunt e Bower  View Components  Tag Helpers
  • 10.  2 runtimes possíveis para a execução de aplicações → .NET Core e .NET Framework  .NET Core ◦ Versão mais enxuta (apenas recursos realmente necessários) ◦ Suporte a ambientes Windows, Linux e Mac OS X ◦ Deploy de soluções com os packages que formam este runtime → mudanças no .NET Framework de um servidor não afetarão aplicações que empregam esta alternativa  .NET Framework ◦ Versão mais completa que a anterior, com acesso total às APIs do .NET Framework
  • 11.  Visual Studio Code → editor de código que representa uma alternativa para o desenvolvimento em Linux e Mac
  • 12.  3 novos tipos de projetos: ◦ ASP.NET Web Application ◦ Class Library (Package) ◦ Console Application (Package)  Todos estes templates são baseados na utilização de recursos do ASP.NET 5  Os compiláveis seguem a estrutura de um package do NuGet
  • 16.  A indicação de quais componentes serão utilizados acontece nos métodos ConfigureServices e Configure da classe Startup (um equivalente do antigo Global.asax)  A biblioteca System.Web.dll não está mais disponível para projetos ASP.NET 5  A especificação apenas de recursos realmente necessários contribui para uma melhor performance da aplicação
  • 18.  Classe Controller (namespace Microsoft.AspNet.Mvc) → mesma base para a implementação de soluções MVC e Web API  Exemplo de implementação de um serviço Web API
  • 19.  Injeção de Dependências – Benefícios ◦ Favorece um menor acoplamento entre as partes de um sistema ◦ Priorização do uso de interfaces ◦ Flexibilidade diante da necessidade de mudanças
  • 20.  Versões anteriores do ASP.NET dependiam do uso de algum container para a injeção de dependências ◦ Unity, Ninject, Autofac e Spring.NET eram algumas das alternativas  O ASP.NET 5 conta agora com um novo mecanismo nativo, de forma a simplificar o uso de técnicas de injeção de dependências
  • 21.  Exemplo - Interfaces
  • 22.  Exemplo - Implementações
  • 23.  Exemplo – Definindo os mapeamentos no método ConfigureServices
  • 24.  Configurando as dependências em um Controller (construtor + atributo FromServices)
  • 25.  Configurando as dependências em uma View (cláusula @inject)
  • 26.  O arquivo Web.config e a classe ConfigurationManager (namespace System.Configuration) não estão mais disponíveis  Uma implementação da interface IConfiguration (namespace Microsoft.Framework.ConfigurationModel) deverá ser utilizada para acesso às configurações ◦ O acesso a esta referência será feito via injeção de dependência  Por default, as configurações de um projeto são declaradas no arquivo config.json ◦ Outros arquivos no formato JSON podem ser adicionados ◦ Também é possível o uso de arquivos .ini ou variáveis de sistema
  • 27.  Exemplo – Configurando o uso de IConfiguration no método ConfigureServices
  • 28.  Exemplo – arquivo config.json com alguns itens de configuração
  • 29.  Exemplo - Utilizando IConfiguration em um Controller
  • 30.  Exemplo - Utilizando IConfiguration em uma View
  • 31.  Bower → gerenciador empregado na instalação e restauração de pacotes client-side (arquivos CSS e de scripts)  Grunt → automação de tarefas envolvendo manipulação de pacotes client-side, por meio de arquivos de instruções com uma sintaxe baseada em JavaScript  npm (Node Package Manager) → ambiente a partir do qual outras ferramentas como Bower e Grunt serão executadas
  • 32.  Tarefas do processo de build envolvendo scripts ◦ Bundling → combinação de arquivos em uma simples unidade, de forma a minimizar a quantidade de requisições HTTP enviadas ao servidor ◦ Minification → eliminação em tempo de execução de itens desnecessários (espaços, comentários) em arquivos CSS e de scripts ◦ Determinar qual versão de um pacote client-server será utilizada ◦ Possibilidade de uso de ferramentas para verificação automática de código JavaScript (como JSHint e JSLint) ◦ Uso de pré-processadores como LESS e SASS → viabilizam a utilização de variáveis, funções e mixins (agrupamentos de propriedades) em folhas de estilo
  • 33.  Arquivo bower.json → dependências de pacotes client-side controladas por meio da ferramenta Bower (exemplo de inclusão da biblioteca Open Weather)
  • 34.  Plugin Open Weather ainda não instalado
  • 35.  Acessando o Task Runner Explorer
  • 36.  Executando as tarefas para a ferramenta Bower
  • 37.  Resultado da execução das tarefas no Task Runner Explorer
  • 38.  Plugin Open Weather já instalado
  • 39.  Não é mais possível o uso de Partial Views no ASP.NET 5  Disponibilizado agora um novo recurso conhecido como View Component ◦ Favorece o reuso ◦ Dispensa a codificação de um novo Controller, com uma Action relacionada ao processamento de um item ◦ Possibilita a inserção de conteúdo em pontos específicos das páginas de uma aplicação
  • 40.  Estrutura de um ViewComponent (classe na pasta Components + View Default.cshtml em ViewsSharedComponents)
  • 41.  Exemplo – Classe que implementa um View Component (derivada do tipo básico ViewComponent)
  • 42.  Exemplo – View Default.cshtml (parte das funcionalidades)
  • 43.  Exemplo – Consumindo o View Component ClimaCidade
  • 44.  Exemplo – View Component assíncrono
  • 45.  Exemplo – Arquivo Default.cshtml (View Component assíncrono)
  • 46.  Exemplo – Consumindo o View Component assíncrono
  • 47.  Alternativa ao uso de HTML Helpers convencionais, visando simplificar a codificação de Views  Faz uso de uma sintaxe similar àquela empregada em código HTML padrão
  • 48.  Exemplo – Ativando o uso de Tag Helpers (NuGet)
  • 49.  Exemplo – Selecionando o package necessário
  • 50.  Exemplo – Package Microsoft.AspNet.Mvc.TagHelpers instalado
  • 51.  Exemplo – Modificando a View _ViewStart.cshtml para possibilitar o uso de Tag Helpers (cláusula @addtaghelper)
  • 52.  Exemplo – Utilizando uma Tag Helper em uma View
  • 54.  ASP.NET 5 Documentation http://docs.asp.net/en/latest/  Gerenciando bibliotecas de scripts no Visual Studio 2015 http://www.devmedia.com.br/gerenciando-bibliotecas-de-scripts-no-visual-studio- 2015/31869  O novo mecanismo de Cache do ASP.NET 5 http://netcoders.com.br/blog/asp-net-5-cache/  O novo mecanismo de Injeção de Dependências do ASP.NET 5 http://netcoders.com.br/blog/asp-net-5-injecao-dependencias/  Visual Studio 2015: Implementando uma aplicação ASP.NET MVC 6 http://www.devmedia.com.br/visual-studio-2015-implementando-uma-aplicacao-asp-net- mvc-6/32265  Visual Studio 2015: Implementando uma aplicação Web API http://social.technet.microsoft.com/wiki/pt-br/contents/articles/30528.visual-studio-2015- implementando-uma-aplicacao-web-api.aspx  Visual Studio Code: criando um projeto MVC 6 http://social.technet.microsoft.com/wiki/pt-br/contents/articles/30967.visual-studio-code- criando-um-projeto-mvc-6.aspx