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

Testes com Moq e Entity Framework (EF6)

Recentemente estava implementando um projeto utilizando TDD, onde as principais regras de negócios se baseavam em consultas e filtros aplicados ao banco de dados, por exemplo: “retorna todos os descontos ativos (select * from descontos where status=1 and datafim>getdate()”.

Pensando em uma abordagem para garantir a implementação destas diversas regras, acabei optando por utilizar o Entity Framework (EF6) para o acesso aos dados e o Moq como framework de mock.

Moq

O Moq é um framework para mock extremamente poderoso, que ajuda a simular o comportamento e ações de objetos de uma maneira controlada. Com ele é possível simular o retorno de um método de um objeto, e ainda realizar diversos testes como quantidade de get ou set em uma determinada propriedade, ou até mesmo verificar quantas vezes determinado método do objeto foi chamado.

Continue reading

Chat real-time com ASP.NET SignalR

Existem diversas dificuldades ao se desenvolver uma aplicação web real-time, entre as principais estão a latência de rede entre o seu usuário e seus servidores, o volume de conexões com o servidor, a maneira que o servidor trata as requisições que ficam esperando uma atualização, e a maneira que a interface client de sua aplicação atualiza as novas informações.

A fim de amenizar, e até resolver algumas destas dificuldades, várias técnicas (long pooling, pooling, etc) e tecnologias (WebSocket, Node.js e SignalR) foram desenvolvidas. Continue reading

ASP.NET OutputCache usando Memcached

O OutputCache é sem dúvida um do recursos mais essenciais do ASP.NET, ele está disponível desde a primeira versão do ASP.NET. Usar o OutputCache ajuda a melhorar em muito a performance de nossos projetos, evitando vários processamentos desnecessários, armazenando em memória o resultado final de uma página ou um controller, evitando assim que as mesmas informações sejam reprocessadas. Continue reading

Elementos renderizado por controles Asp.Net (Label & Literal)

Em diversas situações temos que adequar os elementos da pagina que estamos desenvolvendo ao layout que foi especificado, so que em alguns controles asp.net não fica claro como deve ser feita a aplicação do estilo para obter o efeito necessário. Ou então não sabemos ao certo que controle utilizar em cada situação

Para isso é essencial sabermos o qua cada controle renderiza na tela. Continue reading

ASP.NET 4.0, Microsoft Chart Controls

Quando o assunto era gráfico, freqüentemente precisávamos adotar algum componente de terceiros, o que acabava gerando maiores custos e falta de padronização em nossos projetos.

Entretanto com o Reporting Services 2008 tivemos melhoras significativas em termos de gráficos e possibilidades na plataforma Microsoft, ainda na versão 3.5 do .NET foi lançado um pacote com estes recusos de gráficos, disponibilizando-os para o ASP.NET e Win Form. Continue reading