Что такое ASP.Net MVC View Engine?
В ASP.NET MVC есть много вопросов относительно SO Механизмы просмотра и об использовании "настраиваемых" вместо "по умолчанию". Для меня, как программиста по хобби, термин "View Engine" является новым, и я не мог понять, что это значит. Итак, мои вопросы:
-
Что такое механизм просмотра?
-
Что делает механизм просмотра, и какую роль в шаблоне MVC он играет? (Близко связано с 1...)
-
Каковы основные характеристики/свойства View Engine, которые программисты хотят изменить/избежать, переключившись на другой View Engine?
-
Каковы основные преимущества обычных других View Engine, которые разработчики после того, когда они предпочитают использовать другой, чем стандарт? (Я видел имя "Spark View Engine" кучу раз, и я уверен, что есть и другие).
-
Когда (в каких сценариях) я хочу разработать свой собственный механизм просмотра?
Там, я думаю, это все, что я хочу спросить (на данный момент). Дайте мне View Engine 101! =)
Ответы
Ответ 1
"Механизм просмотра" обрабатывает рендеринг представления html, xml или любого другого типа контента, который он создает для испускания. Внутри "MVC" это будет аспект представления (V).
Различные режимы просмотра имеют разные синтаксисы и т.д. для управления рендерингом. Решение использовать другой механизм просмотра, скорее всего, очень специфично для проекта/программиста. В некоторых случаях они могут видеть фактическое или предполагаемое ограничение механизма просмотра по умолчанию; в других случаях это может быть просто другая цель дизайна или фокус.
Что касается Spark, их фокус должен быть намного более кратким, чем механизм просмотра по умолчанию, и как можно больше оставаться в синтаксисе HTML-типа, а не бросать в блоки ASP.NET script.
Как конечный пользователь, единственный раз, когда вы захотите создать свой собственный механизм просмотра, вероятно, никогда.;) Это не задача, которую нужно воспринимать легкомысленно, и вы, вероятно, в конечном итоге переустановите функциональность, которая уже существует в существующем механизме просмотра.
Edit
OK. Так что файлы View.aspx являются частью View Engine или View Engine набор классов, которые помогают выбирать который View.aspx(или другой тип ответ), который должен быть предоставлен? Как это работает?
Шаблон MVC сообщает, что ваша модель, просмотр и контроллер будут отдельными "вещами". В ASP.NET MVC механизм представления по умолчанию использует существующую структуру ASP.NET, которая включает в себя мастер-страницы, файлы ASPX и т.д. Spark делает что-то подобное, но это другой движок, поэтому он не работает точно так же. Таким образом, в общем смысле файлы представлений не зависят от конкретного компьютера, но конкретные файлы, их макет на диске и их содержимое зависят от вида.
Ответ 2
В дополнение к желанию полностью заменить механизм просмотра (например, Spark), вы также можете создать свой собственный механизм просмотра, чтобы внести небольшое изменение в поведение механизма представления по умолчанию. Вы можете сделать это, создав новый механизм представления, который наследует от механизма по умолчанию и отменяет некоторое поведение.
Одним из распространенных примеров является то, что механизм просмотра выглядит на жестком диске для файлов .aspx. Например, вам может потребоваться создать механизм просмотра, который автоматически переключает файл view.aspx на основе того, находится ли пользователь на мобильном устройстве.
См Мобильные веб-сайты с ASP.NET MVC и Mobile Browser Definition File для действительно хороший пример реализации этого.Р >
Update:
Скотт просто опубликовал обновленный ViewEngine реализации, что имеет важные улучшения по сравнению с первоначальной реализации связаны выше.