ASP.NET MVC 6 – Inject (injetando um serviço em uma View)

Uma feature bem interessante do ASP.NET MVC 6 é que ele traz um container padrão para injeção de dependência(é possível alterar o container e configurar), entrarei em maiores detalhes sobre com funciona esta injeção de dependência em um próximo post. Neste post eu queria mostrar a possibilidade de injetar um serviço (uma classe) em uma View, e utilizar todos os recursos dela e do razor, incluindo async e await, para isto só precisaremos criar uma classe, registrar ela no injetor de dependência e utilizar um statement novo no razor, o “inject”  \o/

Continue reading

ASP.NET MVC 6 – TagHelpers

O Razor trouxe uma sintax muito mais simples para se utilizar no desenvolvimento web, com ele deixamos de utilizar os “<% %>” que eram necessários na view engine .aspx (Web Forms). Porém ainda era necessário converter e mudar o html puro para utilizar alguns helpers como:

@Html.LabelFor(model => model.Nome, new { @class = "control-label col-md-2" })
e
@Html.EditorFor(model => model.Nome)

para renderizar coisas simples como:

<label class="control-label col-md-2" for="Nome">Nome</label>
e
<input class="text-box single-line" id="Nome" name="Nome" type="text" value="">

Continue reading

ASP.NET MVC 6 – View Components

Um conceito novo que o ASP.NET MVC 6 traz é o View Components, cuja ideia principal é ser algo parecido com uma partial view, porém com muito mais recursos como testabilidade, isolamento de conceitos. Basicamente é possível fazer uma comparação como um mini controller, que é responsável pela renderização de um bloco só da pagina. Exemplos de uso: dados do usuário, menus customizados, informações de últimos produtos, promoções, algo que possua uma lógica e implementação um pouco mais complexa que uma Partial View.

A estrutura básica de um View Component é composta de uma classe (geralmente que herde de ViewComponent) e um arquivo Razor.

Classe

Uma classe de View Component pode ser criada e configurada das seguintes maneiras:

  • Herdando de ViewComponent
  • Decorando a classe com o atributo [ViewComponent], ou herdando de uma classe que tenha este atributo
  • Criando uma classe com o padrão de nome que termine com ViewComponent. Ex: UltimasNoticiasViewComponent

Continue reading

ASP.NET MVC Display Modes (construindo sites otimizados para mobile)

Com o crescimento de vendas e uso de smartphones, surge a necessidade (já antiga) de otimizar nossas aplicações e web sites para garantir a melhor experiência e entrega de nossos conteúdos, existem varias abordagens no desenvolvimento de web sites para esse objetivo, desde o carregamento de recursos sobre demanda, a modificação visual através de CSS e media queries, e outras diversas técnicas, como por exemplo a entrega de um site totalmente diferente em um subdomínio (m.exemplo.com.br).

Design Responsivo, Conteúdo Dinâmico ou Mobile Url?

O Google possui um material com recomendações para desenvolver um site que seja otimizado para ser acessado por diversos dispositivos móveis (https://developers.google.com/webmasters/smartphone-sites/details).

Nele existem três principais modelos: Continue reading

Dica: ASP.NET MVC Display Mode e SEO (Google)

ASP.NET MVC Display Mode

A partir da versão do ASP.NET MVC 4 existe um excelente recurso chamado Display Mode que consiste na aplicação selecionar a view adequada dependendo da versão do navegador ou dispositivo que está sendo utilizado.

No exemplo abaixo, em uma requisição feita em um dispositivo mobile, a view que a aplicação selecionará será a Index.Mobile.cshtml, já nas demais requisições, a view que será utilizada na requisição será a Index.cshtml. Continue reading