OffTopic: Считаете ли вы HTML + CSS + Webserver MVC?

это всего лишь мои удивления, и я подумал, что поделюсь ими ...

Проще говоря, MVC - это шаблон для отделения содержимого (модели) от представления (представления) и наличия механизма (контроллера), определяющего, как собирать и то, и другое.

Если вы уже видите, к чему я клоню, мне очень интересно услышать ваше мнение по этому поводу. Конечно, MVC применяется к серверной механике и прочему, но подумайте здесь со мной на секунду нестандартно.

«Посетители» Интернета, как люди, так и роботы / Google, скорее всего, увидят HTML и то, что с ним связано. Написание структурированного и содержательного HTML вместе с отделением его от презентации с помощью CSS с годами стало более важным, и будущие технологии, такие как HTML5, только вносят свой вклад в это разделение, предлагая более ориентированный на контент набор элементов и механизмы для работы с чистое визуальное представление.

Учитывая все это, мне было интересно, будет ли правильно в некотором смысле сказать, что парадигма MVC применима и к интерфейсу, где:

  • Модель будет HTML, как и в чистом httpwise содержимом, которое стало
  • Представление - это CSS; это заставляет ваш контент быть представлен определенным образом
  • Контроллер, являющийся веб-сервером и всем, что находится под ним, собирает и разделяет модель и представление и принимает все решения.

Имеет смысл? Нет?

Спасибо,

Мартин

Обновление: VonC указал мне на статью, которая определенно изменила мои мысли о контроллере. Браузер также занимает большую часть контроллера, поскольку он обрабатывает большую часть взаимодействия с пользователем и то, как модель и представление работают вместе.

Просто добавлены перспективы на стороне клиента и на стороне сервера. Пожалуйста, просмотрите его: вы можете решить, является ли это все еще "действительным" ответом на ваш вопрос;)

VonC 06.11.2008 11:30

Это действительно должна быть вики сообщества. Это больше дискуссия, чем вопрос.

tvanfosson 06.11.2008 12:01
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
2
257
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Согласен, хотя про контроллер можно поспорить.

Джефф показывает, что указать в своем посте с ZenGarden

С:

  • Модель = HTML
  • View = CSS
  • Контроллер = Браузер (который больше «интерфейс», чем веб-сервер)

Собственно, это верная перспектива сторона клиента.

От сторона сервера (сервер более сложный, чем простой сервер html-страницы) MVC был бы другим.

С Например, ASP.Net;

  • Модель = вся логика вашего приложения, которая не содержится в представлении или контроллере. Модель должна содержать всю бизнес-логику вашего приложения и логику доступа к базе данных. Например, если вы используете LINQ to SQL для доступа к своей базе данных, вы должны создать свои классы LINQ to SQL (ваш файл dbml) в папке Models.
  • Просмотр = HTML-разметка и контент, отправляемый в браузер, а также скрипты
  • Контроллер = отвечает за управление способом взаимодействия пользователя с приложением MVC. Контроллер определяет, какой ответ отправить обратно пользователю, когда пользователь делает запрос браузера. Контроллер - это просто класс (например, класс Visual Basic или C#).

Это сервис-идеальная перспектива MVC

Спасибо за статью VonC. Это правда, что браузер является основной частью контроллера, поскольку он обрабатывает большую часть взаимодействия и ввода. Спасибо что подметил это.

Martin Kool 06.11.2008 11:24

CSS - это определенно не представление. Скорее визуализация браузером (который объединяет ввод HTML / DOM и CSS в 2-мерный макет) - это представление. HTML / DOM - это модель. Контроллер наполовину встроен в пользовательский интерфейс браузера, но может быть расширен с помощью javascript.

Верно, что CSS считается уровень представления, когда речь идет о разделении контента / представления, однако это другая (ортогональная) модель.

В MVC CSS является частью модели вместе с HTML / DOM, потому что это базовые данные, которые могут отображаться в разных представлениях. Например, макет печати - это отдельный вид, основанный на одной и той же модели.

Нет, вроде ...

Ваш HTML также находится на уровне представления (представление), хотя ваш CSS должен содержать особенности представления, такие как шрифты, цвета и т. д.

Ваша модель должна содержать ваши данные + бизнес-логику, и я действительно не надеюсь, что вы захотите хранить их в HTML - это для реальных языков программирования, хранимых процедур и СУБД. И они должны быть на стороне сервера.

Но, следуя вашему образу мышления, я бы посоветовал:

  • Модель: Серверные программы + СУБД
  • Просмотр: HTML + CSS
  • Контроллер: Веб-сервер

Я понимаю что ты имеешь ввиду. Но с точки зрения посетителя (пользователей и Google), не могли бы вы предположить, что html в чистом виде может рассматриваться как Модель сам по себе (оставляя бизнес-правила и тому подобное за рамками)?

Martin Kool 06.11.2008 11:47

Я понимаю вашу точку зрения, но я бы описал HTML-CSS-Server / Browser больше как Document-Viewer, а не MVC. Если все содержимое статично, то это выражение модели, правда, но модель встроена в разметку. Несмотря на то, что я могу переопределить его с помощью CSS, на самом деле CSS - это просто фильтр для базовой презентации, описанной в HTML. HTML описывает представление данных, а также сами данные. То есть, я могу отключить CSS, но все еще могу просматривать данные. В MVC это невозможно.

Также существует тесная связь между вашим HTML и CSS - оба должны хорошо понимать друг друга. Это нарушает ключевую парадигму MVC, в которой компоненты слабо связаны. В частности, представление не накладывает никаких ограничений на модель (кроме ограничения на возможность просмотра данных). HTML-дизайнеры вынуждены работать в домене CSS или изменять CSS, чтобы сделать его применимым к домену HTML.

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

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

Статический HTML-контент, на мой взгляд, не является MVC, и в этом нет необходимости.

[EDIT] Я не утверждаю, что вы не можете использовать MVC в дизайне браузера или что MVC неприменим для отображения статического контента в браузере. Я действительно смотрю на это с точки зрения поставщика контента, а не программиста браузера. MVC может быть совершенно логичным выбором для дизайна браузера.

Обычно MVC можно найти во всем, если присмотреться.

Другие вопросы по теме