Pacotes de cassete vs pacotes MVC4
-
29-10-2019 - |
Pergunta
Atualmente, estou trabalhando em um protótipo de solução ASP.NET MVC 3 que será usada como base para várias reescritas de projetos (a partir de formulários da web).
Um dos objetivos que tenho é implementar algum gerenciamento de script no aplicativo, ao contrário de nenhum que temos atualmente.
MVC 3 tem uma falha IMHO: se você precisar de um script específico especificado em uma visualização parcial ou visualização de modelo - você pode acabar perdendo o controle sobre onde o bloco de script está localizado no HTML renderizado ou tendo que especifique cada arquivo javascript dependente na visualização principal.
Estou pensando seriamente em usar http://getcassette.net/ como uma estrutura para resolver o problema descrito. No entanto, o último lançamento do MVC4 beta me fez duvidar de mim novamente: os pacotes MVC são muito semelhantes aos pacotes de cassetes e estou confuso novamente:
-
Devo implementar o cassete agora e depois migrar para pacotes MVC4?
-
Devo eu mesmo implementar algum gerenciador de script simplificado (sth. como classe auxiliar Scripts na visualização MVC4) e, em seguida, migrar para MVC4
-
Ou devo integrar o cassete ao projeto e esperar que seja mais à prova de futuro do que a implementação do MVC (eu realmente não gosto dessa opção agora apenas por causa do grande número de dependências que o cassete vem com).
Não tenho experiência com o Cassette em si e acho muito difícil fazer a comparação sozinho e gostaria de receber qualquer resposta ou sugestão.
EDITAR: Acabei de descobrir que existe outra opção: instalar o pacote nuget beta para agrupamento MVC: https:// nuget. org / packages / Microsoft.Web.Optimization
CONCLUSÃO: Quanto mais eu observo a implementação do pacote MVC4, maior a diferença que noto: os pacotes MVC4 não abordam o problema MVC3 descrito acima - eles apenas fazem o pacote e a minimização. Além disso, o cassete não é apenas capaz de renderizar tags de script em um local específico, mas também de ordená-los na ordem correta, o que não é trivial. Portanto, no momento, não estou satisfeito com nenhuma das soluções e tentarei encontrar minha própria implementação minimalista, esperando que a situação melhore no futuro.
Mas se você não tem medo de adicionar dependências 5+ e um monte de mudanças web.config em seu projeto - vá para o cassete. Espero que seja atualizado em algum ponto para utilizar o agrupamento MVC interno para reduzir a duplicação de funcionalidade e, com sorte, se tornará mais modular.
ATUALIZAÇÃO: A partir da versão 2.0 do Cassette, não é mais necessário incluir o script de café e outros recursos do Cassette se você precisar apenas de pacotes e resolução de dependência de js. Portanto, neste ponto, o Cassette é um claro vencedor para mim.
Solução
As informações sobre o agrupamento ASP.NET MVC estão aqui: http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx .
ASP.NET está adicionando um recurso que torna mais fácil "agrupar" ou “Combine” vários arquivos CSS e JavaScript em menos solicitações HTTP. Isso faz com que o navegador solicite muito menos arquivos e, por sua vez, reduz o tempo que leva para buscá-los.
O próximo lançamento do ASP.NET também está adicionando um novo recurso que o torna fácil de reduzir ou “diminuir” o tamanho do download do conteúdo também.
Parece que é essencialmente a mesma coisa que Cassete.Todas as outras coisas sendo iguais, use a solução que é nativa da ASP.NET MVC.
Outras dicas
Acabei usando o Cassette no meu último projeto e está funcionando muito bem.Na verdade, não há muita configuração nele se você usar o NuGet, então eu acho que não seria muito difícil usar o Cassette agora e depois mudar mais tarde, se você quiser.
Outra coisa a considerar é que o Cassette faz menos compilação.Não tenho certeza se o pacote MVC4 faz isso ou não, já que não tive tempo de ler sobre isso.
Cassete ainda é uma alternativa interessante, pois tem suporte nativo para less e coffescript.Ele também tem suporte para modelos HTML, se você estiver interessado em frameworks mvc do lado do cliente (backbone, knockout etc)
Apenas como uma atualização para isso, o suporte LESS e CoffeeScript foi adicionado ao pacote de atualização 2 para Visual Studio 2012, então está começando a parecer cada vez mais que seria melhor adicionar quais transformações você precisa para a implementação nativa deo Pacote / Minificação apoiado em MVC4 do que ir com Cassete a longo prazo.