sábado, 11 de abril de 2015

Reutilização na Microsoft através de pacotes

Reutilização na Microsoft através de Pacotes

O desenvolvimento web evolui num ritmo que a própria Microsoft cria várias formas de liberar novidades e evoluções do ASP.NET sem depender exclusivamente de novas Frameworks, ou mesmo exclusivamente de seus pacotes. Para citar dois exemplos de como a Microsoft tem repensado isso:
1.    O Nuget, que é um gerenciador para a produção e utilização de pacotes. Com ele é possível buscar, instalar e atualizar pacotes facilmente
2.    O vNext vem para criar uma dependência mínima da Framework (O MVC 6 não terá dependência do System.Web [1]) não t, tanto para otimizar requisições ao site, quanto para permitir buscar evoluções de pacotes, por exemplo via nuget, num ritmo mais rápido do que são liberadas as Frameworks
Se havia uma grande diferença para o desenvolvimento Java e .Net, uma vez que ambas têm em comum serem ótimas opções e com muitos conceitos parecidos, era que a Microsoft muitas vezes direcionava suas escolhes. Precisava de acesso a dados? ADO.Net. Precisa de um ORM? Pense no EntityFramework (Claro que o NHibernate já tinha e tem seu espaço).
A mudança da Microsoft de pensar em pacotes reutilizáveis, vai começar a fazer seus desenvolvedores a pensarem nas diversas opções existentes. Uma consulta no Nuget em 1/4/2014 é possível encontrar 34.496 pacotes únicos (Verdadeiramente um grande menu de opções)

Com tantas opções, qual devo escolher? 

Várias são as perguntas ao se pensar em criar um novo projeto Web.
1.    Lado Server
a.    Qual a framework Web?
b.    Qual a framework para mapeamento objeto-relacional (Object Relational Mapper – ORM)?
c.    Como será disponibilizado os serviços HTTP? Será Restful?
d.    Será usada algum framework de injeção?
e.    Qual o facilitador para logs?
f.    Qual o facilitador para mapeamento de objetos?
2.    Lado Cliente
a.    Qual a Framework HTML/CSS?
b.    Qual o manipulador de DOM?
c.    Qual biblioteca e utilitário para interface do usuário?
Várias são as perguntas e as opções. Pensando que a opção escolhida para Framework Web seja o ASP.NET, há duas principais opções para o ORM: EntityFramework e o NHibernate.
Mesmo querendo avaliar somente duas opções há vários pontos a serem analisados. Há diversos artigos sobre o tema ao se pesquisar no Google e outro complicador: mesmo uma análise completa, como a do Darius Kucinskas[2] em janeiro de 2014, está sujeita a ficar desatualizada pela rápida evolução dos projetos.
Outra forma útil é analisar a popularidade através do Google Trends. Não quer dizer que a escolha mais popular é a melhor, mas é mais um dos pontos a avaliar, até mesmo uma possível tendência. Veja abaixo um comparativo do Google Trends sobre Entity Framework x NHibernate em 01/04/2014: