Что такое ASP.Net MVC View Engine? - PullRequest
14 голосов
/ 12 мая 2009

На SO довольно много вопросов относительно View Engines в ASP.Net MVC и об использовании «пользовательских» вместо «по умолчанию». Для меня, как для хобби-программиста, термин «View Engine» является новым, и я не смог понять, что это значит. Итак, мои вопросы:

  1. Что такое движок View?

  2. Что делает движок View и какую роль в паттерне MVC он играет? (Тесно связано с 1 ...)

  3. Каковы основные характеристики / свойства View Engine по умолчанию, которые программисты хотят изменить / избежать, переключившись на другой View Engine?

  4. Каковы основные преимущества других распространенных View View, которые нужны разработчикам, когда они выбирают использование, отличное от стандартного? (Я видел название «Spark View Engine» несколько раз, и держу пари, что есть и другие).

  5. Когда (в каких сценариях) я хотел бы разработать свой собственный View Engine?

Там, я думаю, это все, что я хочу спросить (пока). Дайте мне посмотреть Двигатели 101! =) * * Тысяча двадцать-семь

Ответы [ 2 ]

6 голосов
/ 12 мая 2009

«Механизм представления» обрабатывает рендеринг представления в html, xml или любой другой тип контента, который он создан для создания. В «MVC» это будет аспект View (V).

Различные механизмы просмотра имеют разные синтаксисы и т. Д. Для управления рендерингом. Решение использовать другой механизм просмотра, скорее всего, зависит от проекта / программиста. В некоторых случаях они могут видеть фактическое или предполагаемое ограничение механизма представления по умолчанию; в других случаях это может быть просто другая цель дизайна или цель.

Что касается Spark, то они должны быть гораздо более краткими, чем движок представления по умолчанию, и как можно больше оставаться в HTML-подобном синтаксисе, а не помещаться в блоки скриптов ASP.NET.

Как конечный пользователь, единственный раз, когда вы захотите создать свой собственный движок представления, вероятно, никогда. ;) Это не задача, которую нужно воспринимать легкомысленно, и вы, вероятно, в конечном итоге будете повторно реализовывать функциональность, которая уже существует в существующем механизме представлений.

Редактировать

OK. Так являются ли файлы View.aspx частью двигатель представления, или двигатель представления набор классов, которые помогут выбрать какой View.aspx (или другой тип ответ) что должно быть оказано? Как это работает?

Шаблон MVC сообщает вам, что ваша модель, вид и контроллер будут отдельными "вещами". В ASP.NET MVC механизм представления по умолчанию использует существующую платформу ASP.NET, которая включает в себя главные страницы, файлы ASPX и т. Д. Spark делает нечто подобное, но это другой механизм, поэтому он не работает точно так же. Таким образом, в общем смысле файлы представления не зависят от движка, но конкретные файлы, их расположение на диске и их содержимое зависит от движка.

1 голос
/ 12 мая 2009

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

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

См. Мобильные веб-сайты с ASP.NET MVC и файл определения мобильного браузера для действительно хорошего примера реализации этого.

Обновление:

Скотт только что опубликовал обновленную реализацию ViewEngine , которая имеет важные улучшения по сравнению с первоначальной реализацией, указанной выше.

...