ASP MVC HTML Helpers - хорошо или плохо? - PullRequest
28 голосов
/ 08 апреля 2009

Я понимаю причину наличия помощников HTML в ASP.NET MVC и расширения ее для предоставления своих собственных, но мне интересно, является ли использование HTML-помощников хорошей идеей.

Я подумал, что одним из преимуществ ASP.NET MVC является контроль над HTML. Если вы начнете скрывать это в вспомогательных функциях, которые генерируют HTML, не начнете ли вы терять видимость? Я думаю, что это не такая проблема, когда вы генерируете простые элементы управления, такие как кнопки, но я видел использование html-помощников для создания сеток и более сложного вывода HTML.

Теперь я также понимаю, что причина этого в том, чтобы держать вещи СУХОЙ, избегая дублирования. Но разве нет опасности иметь что-то похожее на код позади? Кроме того, что если вы работаете в сотрудничестве с дизайнерами? Обычно дизайнер создает разметку и применяет стиль. Если вы начнете внедрять свой взгляд с помощью помощников, которые генерируют разметку, не затруднит ли это такое сотрудничество?

Ответы [ 4 ]

16 голосов
/ 08 апреля 2009

«Контроль над HTML» - это то, что говорит Microsoft по маркетингу и как они выбирают бренд платформы. Суть ASP.net MVC заключается в том, что он более прост и лучше подходит для веб-приложений, чем целая модель веб-форм, управляемая событиями с учетом состояния событий, и то, что почти все за пределами пространства Microsoft перенесли в прошлые годы. Однако Microsoft не может этого сказать, потому что они вкладывают огромные средства в веб-формы, и это является ключевой частью их корпоративной истории.

При этом, если в ваших помощниках есть бизнес-логика, вы используете их неправильно. Это в основном код для только логики представления, который дублируется на нескольких страницах, и цель состоит в том, чтобы теги скриптлета в разметке были как можно более простыми.

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

9 голосов
/ 28 октября 2009

Отличный комментарий, Мэтт. До сих пор остается вопрос о том, являются ли в «чистой» реализации MVC помощники HTML хорошей идеей. Я думаю, что это волшебное слово, «чистый». Всякий раз, когда я зацикливаюсь на том, чтобы думать о «правильном» способе ведения дел, я действительно пытаюсь понять, соответствует ли тот или иной подход подходу пуриста. Итак, будет ли пурист использовать HTML-помощники?

Мне около 8/10 пуристов, и я бы ими не пользовался. Я видел, как этот аргумент выходит за рамки технологий и поднимал проблему с MVC в PHP и фреймворком Zend. Мне кажется, что это неправильно, и это лучшая мера, которую можно придумать.

3 голосов
/ 02 июня 2011

Нет ничего плохого в помощниках. Они используются, чтобы сохранить ваши взгляды чистыми и декларативными. Есть поговорка, которая звучит примерно так: «если в вашем представлении есть выражение« если », значит, вы делаете это неправильно». Они используются во многих известных средах MVC, таких как Ruby On Rails и Cake PHP. Проверьте этот пост . «Пурист» или нет, помощники - это хорошо, и их не следует путать с плохой практикой или неплотными абстракциями.

1 голос
/ 08 июня 2017

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

Вы можете немедленно переместить ваш HTML, javascript и CSS в приложение на другой платформе. Вам не нужно конвертировать все уродливые HTMLHiders ... извините, HTMLHelpers ... в реальный HTML.

Хотя я очень уважаю платформу .NET, которая сокращает время моей разработки и облегчает мою работу, я твердо считаю, что представления должны быть не частными.

В любом случае, вы можете получить почти все преимущества от фреймворка в модели и контроллере. Внедрение зависимостей в платформу на уровне представления не стоит компромисса, ИМО.

...