ASP.NET MVC 6 – JSON Helper

O ASP.NET MVC 6 é que ele traz diversos recursos e implementações que já eram necessárias para nossos projetos, e que muitas vezes resolvíamos com uma implementação customizada de alguma parte do projeto ou helper. Apesar dele resolver varias coisas que fazíamos com nossas implementações, acredito que o ASP.NET MVC ter este paradigma de um framework plugável é sensacional, e muito importante. A ideia deste post é mostrar um helper para serializar JSON na View.

JSON Helper

Algumas vezes em nossos projetos temos que passar informações para o javascript ou para alguma api através do html que a View está gerando, como por exemplo passar os dados de checkout de uma transação para uma api de tracking. Nestas ocasiões geralmente escrevíamos o objeto item por item ou transformávamos ele em JSON ele antes de retornar para a view.

Continue reading

ASP.NET MVC 6 – Image Tag Helper

A forma que está sendo desenvolvida a nova versão do ASP.NET 5 está garantindo uma grande interação e feedback com os desenvolvedores, consequentemente uma significativa melhora em várias assuntos, desde o desenvolvimento independente de plataforma, até questões de design(de projeto) e melhorias de performance.

Falando em performance, segundo alguns estudos o front-end ainda é o responsável por 80% do tempo de carregamento de uma página, uma técnica bastante utilizada para melhorar esta performance é utilizar headers de expiração em arquivos (css, js, img’s e htmls) para que o navegador dos nossos clientes mantenham uma versão daquele recurso no cache (client), evitando assim que seja necessário realizar um outro download ou request para aquele arquivo. Porém ao utilizar esta técnica (cache client side) exige que implementemos maneiras de versionar nossos arquivos, para evitar aquela famosa frase (dá um control+f5).

Recentemente foi lançada uma versão beta do ASP.NET 5 Beta 5 e com ela uma novo Tag Helper que achei muito interessante, o Image Tag Helper, com ele é possível chamar uma imagem e automaticamente o ASP.NET MVC se encarregada de colocar um parâmetro de versionamento no src do html gerado pela tag . Continue reading

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 – Razor com suporte ao Async e Flush

O Razor é uma view engine extremamente poderosa, com uma sintax simples e limpa de utilizar. Entre as novidades do ASP.NET 5 estão varias melhorias desta view engine (lembrando que o Razor é uma view engine independente do ASP.NET MVC, sendo utilizada para varias outras coisas).

Entre os principais recursos novos estão o suporte ao Async e o Flush parcial da resposta do html para o usuário, a idéia deste post é mostrar um pouco como estão estas duas novas features.

Async e Razor

Uma grande mudança foi a implementação do suporte ao desenvolvimento assíncrono também no Razor, com isto, podemos utilizar métodos ou até a nossa Model com Async, isto pode parecer um pouco estranho para alguns padrões de projetos MVC, mas vale lembrar que além do MVC o Razor é utilizado em varias outras coisas como geração de html para emails, entre outros usos.

Com isto podemos por exemplo, que nossa ViewModel utilize Tasks em propriedades e somente no momento de utilizar estes dados na View utilizamos o Await.

Continue reading