Использование XSLT для разработки сайтов (на ASP.NET) Андрей Майоров, BYTE-force xor@byte-force.com twitter.com/xorets.

Презентация:



Advertisements
Похожие презентации
XSLT-ТРАНСФОРМАЦИЯ XML- ТЕХНОЛОГИИ Лекция 4. Трансформация XML- данных Категории трансформации Структурные трансформации – трансформация одного словаря.
Advertisements

Платформа разработки ASP.NET Гайдар Магдануров t: e: m: +7.
Где хранить данные в web- приложении page –JSP страница request – HTTP запрос session – сессия пользователя application – веб-приложение Static Java class.
XSL eXtensible Stylesheet Language среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря.
XML eXtensible Markup Language 1.Пространства имён (Namespaces) 2.Язык навигации внутри XML-документа (XPath)
Страница 1 Действие Страница 2 ЗапросДействие Страница 3 Работа с Web-приложением с точки зрения пользователя.
XML eXtensible Markup Language 1.Язык навигации внутри XML-документа (XPath) 2.Пространства имён (Namespaces) 3.Язык трансформаций (XSLT)
Saint Petersburg, 2012 Java Lecture #12 JSP. JSP 2 Java Server Pages (JSP) – технология разработки веб страниц, поддерживающих динамический контент. Позволяет.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
Выполнили: Фаттахов Ленар, Горюнов Семен.. Задача Мы довели нашу программу до полноценного функционирования. Заказчик захотел заняться рассылкой рекламы.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET MVC Framework– новая платформа Web-приложений ASP.NET MVC Framework.
Лекция 1 MVC (Model-View-Controller) - это конструкционный шаблон, который описывает способ построения структуры приложения, сферы ответственности и взаимодействие.
Организация распределенных прикладных систем. Попытаемся ответить на вопросы Как устроены распределенные прикладные системы? Каковы наиболее важные их.
С использованием Visual Basic for Application. Выберем предмет, тему, сформулируем вопросы и зададим по 4 варианта ответов (можно и больше), из них выберем.
Современные технологии эффективной разработки веб-приложений с использованием PHP 12-13мая 2005, Киев Дмитрий Шейко ведущий программист Red Graphic Systems.
WEB- ТЕХНОЛОГИИ Лекция 4. Задача преобразования XML- данных 1 Задача преобразования Для передачи данных между разными приложениями необходимо преобразовать.
Эрмитаж. Новая концепция интерфейса платформы «1С-Битрикс 9.5»
Пользовательский интерфейс для нескольких проектов Александр Веселов.
Презентация по: информатике Ученицы 8 а класса МКОУ «Линевская СШ» ЛЕМАЕВОЙ ЭЛЬВИРЫ Преподаватель: СУШКОВ АЛЕКСАНДР ИВАНОВИЧ.
Транксрипт:

Использование XSLT для разработки сайтов (на ASP.NET) Андрей Майоров, BYTE-force twitter.com/xorets

Что нужно от языка шаблонов? Задача – показывать данные –В виде HTML –И не только в HTML Шаблон легко делается из HTML Общие фрагменты выносятся в отдельные файлы Работает быстро Кроссплатформенный и стандартный Все это XSLT

Сюда пишется заголовок слайда, также до 3 строк, не больше! Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet. Уже готовый. С блэкджеком и...

Команды XSLT stylesheet transform import include output template param variable copy apply-imports apply-templates call-template with-param value-of copy-of choose when otherwise if for-each sort decimal-format number element attribute attribute-set text comment processing- instruction fallback key message namespace-alias strip-space preserve-space Всего 35 штук

XSLT ~ функциональный язык Декларативный язык: не 100% функциональный, но точно не императивный. Нельзя писать как в императивном – получится плохо. Правильный подход позволяет добиться невозможных в императивном языке вещей.

Data driven Именно данные, находящиеся на конвейере обработки, управляют всем процессом. Основные преимущества XSLT XSLT templates

Модульность Программа на XSLT состоит из независимых шаблонов, отвечающих на разные входные данные. Основные преимущества XSLT plan.xslt 5 шаблонов underpants.xslt 3 шаблона sox.xslt 2 шаблона xsl:include

Наследование Директива import позволяет устанавливать отношения, сходные с наследованием. Основные преимущества XSLT extension.xslt base.xslt xsl:import

Demo

xsl:import Используйте для наследования - вызов базового шаблона - template method, вызов в базовом шаблоне. - вызывает шаблон, заданный последним. Закрепление материала

xsl:include Используйте для подключения компонентов Просто вставка одного файла внутрь другого Закрепление материала

xsl:apply-templates Основной инструмент! Отдает узлы в обработку – позволяет делать волшебные преобразования. Использовать вместо: xsl:copy-of, xsl:for-each, xsl:choose. XSLT templates xsl:apply-templates Закрепление материала

Работа с переменными Можно только проинициализировать, менять значение нельзя. Цикл с увеличением счетчика – только через рекурсивный вызов. Закрепление материала

Домашняя работа XPath. Функции XSLT и XPath. EXSLT. Поддержка в разных платформах.

MVC в веб-разработке Model-View-Controller. Отделяет разработку UI от разработки бизнес-логики. Члены команды работают параллельно: –Верстальщик делает интерфейс. –Серверный программист – контроллеры.

В каком формате передавать данные между controller и view?

Передавать типизированный объект – неудобно 1.Типизированный объект – это код, его еще надо написать. 2.Наполнить объект данными – опять нужен код. Кто его напишет, когда еще нет бизнес-логики?

Храним промежуточные данные в XML Данные удобно прототипировать вручную. В простом текстовом редакторе. Не нужно ждать готовности контроллера. Данные для тестов уже есть в XML-документе. Этими данными можно тестировать и сам контроллер.

Сделали прототип и пошли работать… Руслан и Людмила 5... ВерстальщикПрограммист

XML в веб-приложениях В веб часть данных уже в HTML. Например, текст новостной статьи. Взяв XHTML, можем объединить все данные в один XML- документ: –Сильно структурированные поля объектов. –Слабо структурированные данные от пользователя.

Объединение слабо и сильно типизированных данных Руслан и Людмила 5 «Руслан и Людмила» первая законченная поэма Александра Пушкина. Александра Пушкина

Критика XML в качестве модели Бизнес-логике неудобно работать с XML. Надо работать с типизированной моделью. Вручную преобразовывать объект в XML – мартышкин труд. XmlSerializer имеет свои ограничения.

Возьмите ObjectXPathNavigator Позволяет работать с графом объектов, как будто это XML- документ. «Ленивый» Совместим с XmlSerializer. Расширяем.

XsltView для ASP.NET MVC Нужен

Чем плох MvcContrib.XsltViewEngine? Использованием специального объекта XsltViewData – нельзя сменить view, не меняя контроллер. Не умеет преобразовывать модель в XML.

Формы в XSLT

Сложности с формами Формы задаются в двух местах: –В XSLT задаем HTML-форму –В модели – поля данных, со статусами валидации, сообщениями и др. Возникает соблазн сделать «язык форм» на базе XML-модели. –Это сложное и громоздкое решение В принципе, те же проблемы у ASP.NET MVC

ASP.NET Web Forms: Страшные –Очень громоздкая обработка запроса –Выдают избыточный, страшноватый маркап Понятные –Разработка веб-форм в VS очень проста и интуитивно понятна Хочется минимизировать страх, оставив только пользу

Решение Совмещаем оба подхода. От веб-формы берем только поля ввода. Весь дизайн прикладываем при помощи XSLT.

Решение подробнее 1.Веб-форма производит xHTML. 2.xHTML=XML. Контроллер вставляет форму в модель. 3.View копирует код формы наружу, в нужное место страницы. 4.Browser. Post back. 5.Контроллер передает пост-бэки в ASPX-файл. 6.goto 1.

Решение в картинках Форма (xHTML ) ControllerASPX form ModelView Browser Request Данные (xml)

Технические сложности HttpServerUtility.Execute не дает доступа к полям формы. Берем код Execute рефлектором. Некоторые нужные части HttpContext и HttpResponse закрыты. Используем reflection: –HttpContext.SetCurrentHandler –HttpContext.RestoreCurrentHandler –HttpContext.SwitchWriter

Итоги 1.XSLT – мощный язык шаблонов 2.XML удобен в качестве модели в MVC 3.ObjectXPathNavigator позволяет типизированные модели 4.Примиряет с веб-формами

Сюда пишется заголовок слайда, также до 3 строк, не больше! Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet. General Hooker

Спасибо за внимание! Андрей Майоров, BYTE-force twitter.com/xorets blogs.byte-force.com/xor