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