Estive pesquisando no SO e no Google uma análise dos vários mecanismos de exibição disponíveis para o ASP.NET MVC, mas não encontrei muito mais do que simples descrições de alto nível do que é um mecanismo de exibição.
Não estou necessariamente procurando por "melhor" ou "mais rápido", mas por algumas comparações no mundo real de vantagens / desvantagens dos principais players (por exemplo, o WebFormViewEngine padrão, o MvcContrib View Engines etc.) para várias situações. Eu acho que isso seria realmente útil para determinar se a troca do mecanismo padrão seria vantajosa para um determinado projeto ou grupo de desenvolvimento.
Alguém já encontrou essa comparação?
asp.net-mvc
spark-view-engine
viewengine
razor
mckamey
fonte
fonte
Respostas:
Mecanismos de exibição do ASP.NET MVC (Wiki da comunidade)
Como uma lista abrangente parece não existir, vamos começar uma aqui no SO. Isso pode ser de grande valia para a comunidade do ASP.NET MVC se as pessoas adicionarem sua experiência (especialmente quem contribuiu para uma delas). Qualquer coisa que implementar
IViewEngine
(por exemploVirtualPathProviderViewEngine
) é um jogo justo aqui. Apenas coloque em ordem alfabética os novos View Engines (deixando WebFormViewEngine e Razor no topo) e tente ser objetivo nas comparações.System.Web.Mvc.WebFormViewEngine
Objetivos do projeto:
Prós:
Contras:
Exemplo:
System.Web.Razor
Objetivos do projeto:
Prós:
Contras:
Nenhuma API documentada, http://msdn.microsoft.com/en-us/library/system.web.razor.aspxExemplo de golpe # 1 (observe o posicionamento de "string [] ..."):
Bellevue
Objetivos do projeto:
Brail
Objetivos do projeto:
Prós:
Contras:
Exemplo:
Hasic
Prós:
Contras:
Exemplo:
NDjango
Objetivos do projeto:
Prós:
WebFormViewEngine
NHaml
Objetivos do projeto:
Prós:
Contras:
Exemplo:
NVelocityViewEngine (MvcContrib)
Objetivos do projeto:
Prós:
Contras:
Exemplo:
SharpTiles
Objetivos do projeto:
Prós:
Contras:
Exemplo:
Mecanismo de exibição Spark
Objetivos do projeto:
Prós:
Contras:
Exemplo:
MVC do mecanismo de exibição StringTemplate
Objetivos do projeto:
Prós:
Contras:
Wing Beats
Prós:
Contras:
XsltViewEngine (MvcContrib)
Objetivos do projeto:
Prós:
Contras:
fonte
Minha escolha atual é Razor. É muito limpo e fácil de ler e mantém as páginas de visualização muito fáceis de manter. Há também um suporte inteligente que é realmente ótimo. Além disso, quando usado com assistentes da Web, também é realmente poderoso.
Para fornecer uma amostra simples:
E aí está. Isso é muito limpo e fácil de ler. É um exemplo simples, mas mesmo em páginas e formulários complexos ainda é muito fácil de ler e entender.
Quanto aos contras? Bem, até agora (eu sou novo nisso) ao usar alguns dos auxiliares para formulários, há uma falta de suporte para adicionar uma referência de classe CSS, o que é um pouco chato.
Obrigado Nathj07
fonte
Sei que isso realmente não responde à sua pergunta, mas diferentes mecanismos de exibição têm finalidades diferentes. O mecanismo de exibição Spark , por exemplo, tem como objetivo livrar suas visualizações da "tag soup", tentando tornar tudo fluente e legível.
Sua melhor aposta seria apenas olhar para algumas implementações. Se parecer atraente para a intenção da sua solução, experimente. Você pode misturar e combinar os mecanismos de exibição no MVC, portanto, isso não deve ser um problema se você decidir não usar um mecanismo específico.
fonte
Verifique este SharpDOM . Este é um dsl interno do AC # 4.0 para gerar html e também o mecanismo de exibição asp.net mvc.
fonte
Eu gosto de ndjango . É muito fácil de usar e muito flexível. Você pode estender facilmente a funcionalidade de visualização com tags e filtros personalizados. Eu acho que "muito ligado ao F #" é mais uma vantagem do que uma desvantagem.
fonte
Acho que essa lista também deve incluir exemplos de cada mecanismo de exibição, para que os usuários possam ter uma ideia de cada um sem precisar visitar todos os sites.
As imagens dizem mais que mil palavras e exemplos de marcação são como capturas de tela para os mecanismos de exibição :) Então, aqui está uma do meu Spark View Engine favorito
fonte