2008-09-03 3 views
8

Я знаю, что вы можете использовать несколько различных представлений двигателей с ASP.NET MVC:Какой механизм просмотра вы используете с ASP.NET MVC?

  • ASPX, очевидно
  • NVelocity
  • Brail
  • NHaml
  • и др ...

По умолчанию механизм просмотра ASPX, кажется, имеет для меня наибольший смысл, исходя из фона ASP.NET WebForms.

Но я хотел получить представление о плюсах и минусах каждого и посмотреть, что используют большинство людей.

Что делает StackOverflow?

ответ

2

Большинство людей на планете просто используют ASPX, потому что это то, что они знают. Еще одна отличная выгода - это скомпилированный характер ... поэтому вы не только получаете безопасность по типу и intellisense, но и получаете выгоду от перфоманса.

Недостаток, который я вижу, заключается в том, что он настолько подробный. Я конвертировал приложение в NVelocity и был поражен тем, насколько он чист. Проблема в том, что было много вещей, которые не работали с NVelocity (например, ваши собственные пользовательские помощники), а также отсутствовала документация.

Я добавил функцию в MvcContrib, где вы можете зарегистрировать свои собственные типы HtmlExtension, но это скорее бандайда, пока не появится лучшее решение.

4

NHaml - мой любимый за его терпение. Люди любят это или ненавидят его, учитывая, что он сильно отличается от традиционной системы шаблонов «HTML с вставленным кодом», такой как ASPX или NVelocity.

Edit:

@Ben,

Есть другие вид двигателей, которые компилировать вниз (NHaml это один), так что те поддерживают пользовательские HTML помощников. Я бы не удивился, увидев, что в настоящее время интерпретируемые движки зрения все в конечном итоге заканчиваются моделью компиляции.

11

Я использую Spark. Он имеет хороший поток между HTML и кодом. Скотт Хансельман также сделал post на нем со своими еженедельными сообщениями об обзоре исходного кода. Я действительно много копаю. Одна из основных особенностей - pre-compilation.

4

«Что использует StackOverflow?»

Веб-формы.

Я спросил Джеффа Этвуда о его решении на его почтовом ящике Tag Soup. Он не ответил - я думаю, он был занят поиском недостающего закрывающего тега ;-)

1

Я использовал NVelocity в прошлом. По большей части он делает код действительно чистым и простым в использовании; однако он обычно заканчивается просто несколькими переменными ViewData, которые были заполнены файлами XSLT перед началом работы. Поэтому я предполагаю, что мой View Engine будет и XSLT (который является любовью/ненавистью - методы расширения делают его действительно полезным) и NVelocity.

0

Я использовал NVelocity с MonoRail в течение некоторого времени, но недавно переключился на Spark для Asp.Net MVC и MonoRail. Синтаксис кажется мне очень естественным, но я предполагаю, что этого можно ожидать. ;)

Смежные вопросы