asp.net 5 - novidades do desenvolvimento web em .net
TRANSCRIPT
ASP.NET 5 – Novidades do Desenvolvimento Web em .NET
Renato GroffeJunho/2015
Apresentação – Renato Groffe
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
Contatos Página no Facebook
https://www.facebook.com/RenatoGroffeSW
Perfil no Facebookhttps://www.facebook.com/renatogroff
LinkedInhttp://br.linkedin.com/in/renatogroffe
Recursos Utilizados 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
Agenda
Visual Studio 2015 e as novidades da plataforma .NET
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
ASP.NET 5: uma visão geral
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
ASP.NET 5: uma visão geral
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
ASP.NET 5: uma visão geral
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
ASP.NET 5 – Desenvolvimento Multiplataforma
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
ASP.NET 5 – Desenvolvimento Multiplataforma
Visual Studio Code → editor de código que representa uma alternativa para o desenvolvimento em Linux e Mac
ASP.NET 5 – Novos Tipos de Projetos
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 – Novos Tipos de Projetos
ASP.NET 5 – Novos Tipos de Projetos
Templates disponíveis:
ASP.NET 5 – Estrutura Básica de um Projeto
ASP.NET 5 – Arquitetura Modular
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
ASP.NET 5 – Arquitetura Modular Exemplo
ASP.NET 5 – Modelo de Programação Web Unificado
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
ASP.NET 5 – Injeção de Dependências
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
ASP.NET 5 – Injeção de Dependências
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
ASP.NET 5 – Injeção de Dependências
Exemplo - Interfaces
ASP.NET 5 – Injeção de Dependências
Exemplo - Implementações
ASP.NET 5 – Injeção de Dependências
Exemplo – Definindo os mapeamentos no método ConfigureServices
ASP.NET 5 – Injeção de Dependências
Configurando as dependências em um Controller (construtor + atributo FromServices)
ASP.NET 5 – Injeção de Dependências
Configurando as dependências em uma View (cláusula @inject)
ASP.NET 5 – Itens de configuração
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
ASP.NET 5 – Itens de configuração Exemplo – Configurando o uso de IConfiguration no método ConfigureServices
ASP.NET 5 – Itens de configuração Exemplo – arquivo config.json com alguns itens de configuração
ASP.NET 5 – Itens de configuração
Exemplo - Utilizando IConfiguration em um Controller
ASP.NET 5 – Itens de configuração
Exemplo - Utilizando IConfiguration em uma View
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower
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
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower
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
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower Arquivo bower.json → dependências de pacotes client-side controladas por meio da
ferramenta Bower (exemplo de inclusão da biblioteca Open Weather)
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower
Plugin Open Weather ainda não instalado
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower
Acessando o Task Runner Explorer
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower
Executando as tarefas para a ferramenta Bower
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower
Resultado da execução das tarefas no Task Runner Explorer
ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Grunt e Bower
Plugin Open Weather já instalado
ASP.NET 5 – Reusabilidade com View Components
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
ASP.NET 5 – Reusabilidade com View Components
Estrutura de um ViewComponent (classe na pasta Components + View Default.cshtml em \Views\Shared\Components)
ASP.NET 5 – Reusabilidade com View Components
Exemplo – Classe que implementa um View Component (derivada do tipo básico ViewComponent)
ASP.NET 5 – Reusabilidade com View Components
Exemplo – View Default.cshtml (parte das funcionalidades)
ASP.NET 5 – Reusabilidade com View Components
Exemplo – Consumindo o View Component ClimaCidade
ASP.NET 5 – Reusabilidade com View Components
Exemplo – View Component assíncrono
ASP.NET 5 – Reusabilidade com View Components
Exemplo – Arquivo Default.cshtml (View Component assíncrono)
ASP.NET 5 – Reusabilidade com View Components
Exemplo – Consumindo o View Component assíncrono
ASP.NET 5 – Tag Helpers
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
ASP.NET 5 – Tag Helpers
Exemplo – Ativando o uso de Tag Helpers (NuGet)
ASP.NET 5 – Tag Helpers
Exemplo – Selecionando o package necessário
ASP.NET 5 – Tag Helpers
Exemplo – Package Microsoft.AspNet.Mvc.TagHelpers instalado
ASP.NET 5 – Tag Helpers
Exemplo – Modificando a View _ViewStart.cshtml para possibilitar o uso de Tag Helpers (cláusula @addtaghelper)
ASP.NET 5 – Tag Helpers
Exemplo – Utilizando uma Tag Helper em uma View
Dúvidas, sugestões???
Referências ASP.NET 5 Documentation
http://docs.asp.net/en/latest/
Gerenciando bibliotecas de scripts no Visual Studio 2015http://www.devmedia.com.br/gerenciando-bibliotecas-de-scripts-no-visual-studio-2015/31869
O novo mecanismo de Cache do ASP.NET 5http://netcoders.com.br/blog/asp-net-5-cache/
O novo mecanismo de Injeção de Dependências do ASP.NET 5http://netcoders.com.br/blog/asp-net-5-injecao-dependencias/
Visual Studio 2015: Implementando uma aplicação ASP.NET MVC 6http://www.devmedia.com.br/visual-studio-2015-implementando-uma-aplicacao-asp-net-mvc-6/32265
Visual Studio 2015: Implementando uma aplicação Web APIhttp://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 6http://social.technet.microsoft.com/wiki/pt-br/contents/articles/30967.visual-studio-code-criando-um-projeto-mvc-6.aspx
Obrigado!!!