В самом начале мы посмотрели на ASP.NET и поняли, что это — самое худшее из того что есть в .NET. Такое впечатление, что проектировали его те же люди, что и старый VisualBasic. Все конечно работает, но они поднялись на слишком высокий уровень абстракции, который не позволяет необходимой в реальной жизни гибкости.
Простой пример — в разработке одного коммерческого приложения на чистом ASP.NET потребовалось делать редизайн 3 раза. Отсутвуие шаблонов как таковых и объединение дизайна и фукционала в ASPX привело к увеличению работы в разы.
В результате мы пошли по другому пути. Мы разработали собственные библиотеки классов для:
1. Отображения объектов на XML
2. Рендернига объектов встроенных в ASPX страницы с помощью XSLT
3. Форм как объектов отображаемых на XML (заполнение параметров из запросов, поддержка визардов, и т.д)
3. Отображения объектов на таблицы в базе (MS SQL)
Все дополнительные свойства описываются в коде .NET аттрибутами.
В XSLT тоже сделан набор готовых шаблонов для форм, контролов, и т.д.
Затраты на создание всего этого довольно велики (около 4 человеко-месяцев), но мы это сделали в бюджете одного проекта и теперь успешно реюзаем в большинстве новых проектов.