Критика архитектуры:SQL Server FOR XML в XSLT для расширенного интерфейса HTML
-
22-08-2019 - |
Вопрос
Могу ли я получить конструктивный отзыв о следующей архитектуре?
Краткое описание упрощенной архитектуры:
Возвращайте XML с вашего SQL-сервера (используя FOR XML) и передайте его прямо в преобразование XSL, чтобы создать веб-сайт с богатым HTML-кодом.
Каковы плюсы и минусы такой системы по сравнению с обычной трехуровневой архитектурой ASP.NET?
Решение
Мы сделали что-то вроде этого.И это работает для очень простых страниц.Но как только вы захотите включить какой-нибудь клиентский JavaScript и тому подобное, вы обречены.
Сгенерированный вывод скрыт в таблицах стилей XSLT, и его очень сложно читать, поддерживать и исправлять ошибки.
Тестирование можно проводить, но с гораздо большими усилиями, чем раньше.
Шаблон MVC и подобные ему гораздо лучше подходят для такого сценария.
Другие советы
Два минуса.
Манипулирование данными с помощью C# или VB.net становится сложнее, поскольку у вас нет классов со свойствами (код intellisense), а есть XML-документы.
Существуют встроенные элементы управления asp.net для проверки ввода данных (как на стороне клиента, так и на стороне сервера).Вы не сможете использовать их, если для создания HTML-страницы используете XSLT.
Я сделал нечто подобное в проекте.Я считаю эту архитектуру очень чистой и масштабируемой, но я бы советовал вам использовать ее только в том случае, если у вас есть большой опыт работы с XSLT.
У нас есть несколько шаблонов XSLT и общий класс C#, который выполняет преобразование с использованием параметров XSLT.Мы получаем очень хорошую производительность, но новым разработчикам может быть сложно поддерживать приложение.
Один плюс:
- Вы можете создавать XSLT-шаблоны, которые создают HTML для браузера или XAML для WPF/Silverlight.