asp.net 5 - novidades do desenvolvimento web em .net (agosto/2015)

50
ASP.NET 5 – Novidades do Desenvolvimento Web em .NET Renato Groffe Agosto/2015

Upload: renato-groff

Post on 17-Aug-2015

369 views

Category:

Software


2 download

TRANSCRIPT

Page 1: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Renato GroffeAgosto/2015

Page 2: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/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

MBA em Business Intelligence

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

Page 3: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

Contatos Página no Facebook

https://www.facebook.com/RenatoGroffeSW

Perfil no Facebookhttps://www.facebook.com/renatogroff

LinkedInhttp://br.linkedin.com/in/renatogroffe

Page 4: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

Recursos Utilizados Microsoft Visual Studio Community 2015

ASP.NET 5 (Beta 5)

Page 5: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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, Gulp e Bower

Reusabilidade com View Components

Simplificando a codificação de Views com Tag Helpers

O novo mecanismo de cache do ASP.NET 5

Agenda

Page 6: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

Visual Studio 2015 e as novidades da plataforma .NET

Melhoramentos na IDE (debug de expressões lambda, IntelliTest, NuGet reformulado, dentre outras funcionalidades)

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

Page 7: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 Roadmap

Page 8: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 9: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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 uso de um processo 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

Page 10: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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, Gulp e Bower

View Components

Tag Helpers

Um novo mecanismo de cache

Page 11: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 12: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Desenvolvimento Multiplataforma

Visual Studio Code → editor de código que representa uma alternativa para o desenvolvimento em Linux e Mac

Page 13: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 14: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Novos Tipos de Projetos

Page 15: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Novos Tipos de Projetos

Templates disponíveis:

Page 16: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Estrutura Básica de um Projeto

Page 17: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Arquitetura Modular

A indicação de quais componentes serão utilizados acontece nos métodos ConfigureServices e Configure da classe Startup

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

Page 18: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Arquitetura Modular Exemplo

Page 19: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 20: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 21: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 22: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Injeção de Dependências

Exemplo - Interfaces

Page 23: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Injeção de Dependências

Exemplo - Implementações

Page 24: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Injeção de Dependências

Exemplo – Definindo os mapeamentos no método ConfigureServices

Page 25: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Injeção de Dependências

Configurando as dependências em um Controller (construtor + atributo FromServices)

Page 26: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Injeção de Dependências

Configurando as dependências em uma View (cláusula @inject)

Page 27: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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.Configuration) 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

Page 28: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Itens de configuração Exemplo – Configurando o uso de IConfiguration no método ConfigureServices

Page 29: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Itens de configuração Exemplo – arquivo config.json com alguns itens de configuração

Page 30: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Itens de configuração

Exemplo - Utilizando IConfiguration em um Controller

Page 31: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Itens de configuração

Exemplo - Utilizando IConfiguration em uma View

Page 32: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Gulp e Bower

Bower → gerenciador empregado na instalação e restauração de pacotes client-side (arquivos CSS e de scripts)

Gulp → 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 Gulp serão executadas

Page 33: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Gulp 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

Page 34: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Gulp 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)

Page 35: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Gerenciamento de pacotes client-side com npm, Gulp e Bower

Plugin Open Weather incluído no projeto

Page 36: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 37: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Reusabilidade com View Components

Estrutura de um ViewComponent (classe na pasta Components + View Default.cshtml em \Views\Shared\Components)

Page 38: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Reusabilidade com View Components

Exemplo – Classe que implementa um View Component (derivada do tipo básico ViewComponent)

Page 39: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Reusabilidade com View Components

Exemplo – View Default.cshtml (parte das funcionalidades)

Page 40: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Reusabilidade com View Components

Exemplo – Consumindo o View Component ClimaCidade

Page 41: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

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

Page 42: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Tag Helpers

Exemplo – Utilizando uma Tag Helper em uma View

Page 43: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Cache

3 possibilidades

◦ Uso de instância da interface IMemoryCache (namespace Microsoft.Framework.Caching.Memory)

◦ A tag cache em Views MVC 6

◦ O atributo ResponseCache

Page 44: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Cache

Interface IMemoryCache – configurando a utilização

Page 45: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Cache

Interface IMemoryCache – manipulando cache

Page 46: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Cache

A tag cache em Views MVC 6

Page 47: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

ASP.NET 5 – Cache

O atributo ResponseCache vinculado a uma Action

Page 48: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

Dúvidas, sugestões???

Page 50: ASP.NET 5 - Novidades do Desenvolvimento Web em .NET (Agosto/2015)

Obrigado!!!