Критика архитектуры: SQL Server FOR XML в XSLT для расширенного интерфейса HTML

Могу ли я получить конструктивный отзыв о следующей архитектуре?

Краткое описание упрощенной архитектуры:

Возвратите XML с вашего SQL Server (используя FOR XML) и передайте его прямо в XSL-преобразование для создания полноценного HTML-сайта.

Каковы преимущества и недостатки такой системы по сравнению с обычной 3-уровневой архитектурой ASP.NET?

4 ответа

Решение

Мы сделали что-то вроде этого. И это работает для очень простых страниц. Но как только вы захотите включить какой-нибудь клиентский JavaScript и тому подобное, вы обречены.

Сгенерированный вывод скрыт в таблицах стилей XSLT, и его очень трудно читать, поддерживать и исправлять ошибки.

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

Шаблон MVC и подобные ему гораздо лучше подходят для такого сценария.

Два минуса

  1. Манипулирование данными с C# или VB.net становится сложнее, потому что у вас есть не классы со свойствами (код intellisense), а xml-документы.

  2. Есть встроенные элементы управления asp.net для проверки ввода данных (как на стороне клиента, так и на стороне сервера). Вы не можете использовать их, если используете XSLT для создания своей HTML-страницы.

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

У нас есть несколько шаблонов XSLT и общий класс C#, который выполняет преобразование с использованием параметров XSLT. Мы получаем очень хорошую производительность, но для новых разработчиков приложение может быть сложно поддерживать.

Один профи:

  1. Вы можете создавать XSLT-шаблоны, которые генерируют HTML для браузера или XAML для WPF/Silverlight.
Другие вопросы по тегам