Вопрос

Мне интересно узнать о возможности создания библиотеки классов .NET, обеспечивающей полную абстракцию HTML (и, возможно, также стилей CSS).

Для каждого типа элемента HTML будет свой класс .NET и даже абстрактные классы (например,абстрактный базовый класс List, который расширяется OrderedList и UnorderedList).

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

Я могу представить себе множество способов, которыми такая библиотека может быть полезна:

  • Встраивайте в платформу информацию о проблемах кросс-браузерного рендеринга или даже поддержку нескольких устройств/размеров экрана.Тогда можно будет создать веб-страницу один раз и сразу же заставить ее работать со всеми основными браузерами.

  • Создайте HTML-редактор с очень хорошим IntelliSense и т. д., используя отражение.Редактор также может иметь режим WYSIWIG, который позволяет динамически переупорядочивать элементы без создания искаженной разметки.

  • Проведите очень мощный аудит SEO-оптимизации веб-сайта, соответствия требованиям, доступности и т. д.

  • Выполняйте очень детальное интеллектуальное кэширование вплоть до уровня элементов.

Придумывалось ли или предпринималось ли уже что-нибудь подобное?

(Примечание:Я понимаю, что в ASP.NET есть что-то подобное в пространстве имен «HtmlControls», но оно не представляет весь диапазон HTML-элементов, а входящие в него элементы моделируются недостаточно точно.Кроме того, элементы HTML в веб-формах ASP.NET обрабатываются как текстовые файлы и анализируются во время выполнения, а не компилируются как строго типизированные классы.)

(Еще одно примечание:Я думаю Веб-инструментарий Google имеет некоторое сходство с этой идеей, хотя она написана на Java и ориентирована больше на Ajax/Javascript/DOM, а не на основанные на стандартах XHTML, CSS и Javascript)

Это было полезно?

Решение

Полагаю, вы знаете, что ASP.NET уже (частично) работает...В ASP.NET есть классы для некоторый HTML-классы, но они не полностью реализованы.Итак, хотя общий ответ — да, об этом думали, но это не полная мысль.

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

Пока вы работаете с xhtml, вы сможете использовать его XML-схема для создания классов, на которых вы могли бы основываться.Затем вы можете использовать (де)сериализацию XML для создания объектов из вашего документа xhtml.

Вы рассмотрели АСП.НЕТ?Ваше описание (по большей части) звучит точно так же, как ASP.NET.Конечно, он не ответит на все ваши вопросы, но ответит на большинство из них.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top