Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 14 лет назад пользователемxorets
1 Использование XSLT для разработки сайтов (на ASP.NET) Андрей Майоров, BYTE-force twitter.com/xorets
2 Что нужно от языка шаблонов? Задача – показывать данные –В виде HTML –И не только в HTML Шаблон легко делается из HTML Общие фрагменты выносятся в отдельные файлы Работает быстро Кроссплатформенный и стандартный Все это XSLT
3 Сюда пишется заголовок слайда, также до 3 строк, не больше! Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet. Уже готовый. С блэкджеком и...
4 Команды 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 штук
5 XSLT ~ функциональный язык Декларативный язык: не 100% функциональный, но точно не императивный. Нельзя писать как в императивном – получится плохо. Правильный подход позволяет добиться невозможных в императивном языке вещей.
6 Data driven Именно данные, находящиеся на конвейере обработки, управляют всем процессом. Основные преимущества XSLT XSLT templates
7 Модульность Программа на XSLT состоит из независимых шаблонов, отвечающих на разные входные данные. Основные преимущества XSLT plan.xslt 5 шаблонов underpants.xslt 3 шаблона sox.xslt 2 шаблона xsl:include
8 Наследование Директива import позволяет устанавливать отношения, сходные с наследованием. Основные преимущества XSLT extension.xslt base.xslt xsl:import
9 Demo
10 xsl:import Используйте для наследования - вызов базового шаблона - template method, вызов в базовом шаблоне. - вызывает шаблон, заданный последним. Закрепление материала
11 xsl:include Используйте для подключения компонентов Просто вставка одного файла внутрь другого Закрепление материала
12 xsl:apply-templates Основной инструмент! Отдает узлы в обработку – позволяет делать волшебные преобразования. Использовать вместо: xsl:copy-of, xsl:for-each, xsl:choose. XSLT templates xsl:apply-templates Закрепление материала
13 Работа с переменными Можно только проинициализировать, менять значение нельзя. Цикл с увеличением счетчика – только через рекурсивный вызов. Закрепление материала
14 Домашняя работа XPath. Функции XSLT и XPath. EXSLT. Поддержка в разных платформах.
15 MVC в веб-разработке Model-View-Controller. Отделяет разработку UI от разработки бизнес-логики. Члены команды работают параллельно: –Верстальщик делает интерфейс. –Серверный программист – контроллеры.
16 В каком формате передавать данные между controller и view?
17 Передавать типизированный объект – неудобно 1.Типизированный объект – это код, его еще надо написать. 2.Наполнить объект данными – опять нужен код. Кто его напишет, когда еще нет бизнес-логики?
18 Храним промежуточные данные в XML Данные удобно прототипировать вручную. В простом текстовом редакторе. Не нужно ждать готовности контроллера. Данные для тестов уже есть в XML-документе. Этими данными можно тестировать и сам контроллер.
19 Сделали прототип и пошли работать… Руслан и Людмила 5... ВерстальщикПрограммист
20 XML в веб-приложениях В веб часть данных уже в HTML. Например, текст новостной статьи. Взяв XHTML, можем объединить все данные в один XML- документ: –Сильно структурированные поля объектов. –Слабо структурированные данные от пользователя.
21 Объединение слабо и сильно типизированных данных Руслан и Людмила 5 «Руслан и Людмила» первая законченная поэма Александра Пушкина. Александра Пушкина
22 Критика XML в качестве модели Бизнес-логике неудобно работать с XML. Надо работать с типизированной моделью. Вручную преобразовывать объект в XML – мартышкин труд. XmlSerializer имеет свои ограничения.
23 Возьмите ObjectXPathNavigator Позволяет работать с графом объектов, как будто это XML- документ. «Ленивый» Совместим с XmlSerializer. Расширяем.
24 XsltView для ASP.NET MVC Нужен
25 Чем плох MvcContrib.XsltViewEngine? Использованием специального объекта XsltViewData – нельзя сменить view, не меняя контроллер. Не умеет преобразовывать модель в XML.
27 Формы в XSLT
28 Сложности с формами Формы задаются в двух местах: –В XSLT задаем HTML-форму –В модели – поля данных, со статусами валидации, сообщениями и др. Возникает соблазн сделать «язык форм» на базе XML-модели. –Это сложное и громоздкое решение В принципе, те же проблемы у ASP.NET MVC
29 ASP.NET Web Forms: Страшные –Очень громоздкая обработка запроса –Выдают избыточный, страшноватый маркап Понятные –Разработка веб-форм в VS очень проста и интуитивно понятна Хочется минимизировать страх, оставив только пользу
30 Решение Совмещаем оба подхода. От веб-формы берем только поля ввода. Весь дизайн прикладываем при помощи XSLT.
31 Решение подробнее 1.Веб-форма производит xHTML. 2.xHTML=XML. Контроллер вставляет форму в модель. 3.View копирует код формы наружу, в нужное место страницы. 4.Browser. Post back. 5.Контроллер передает пост-бэки в ASPX-файл. 6.goto 1.
32 Решение в картинках Форма (xHTML ) ControllerASPX form ModelView Browser Request Данные (xml)
33 Технические сложности HttpServerUtility.Execute не дает доступа к полям формы. Берем код Execute рефлектором. Некоторые нужные части HttpContext и HttpResponse закрыты. Используем reflection: –HttpContext.SetCurrentHandler –HttpContext.RestoreCurrentHandler –HttpContext.SwitchWriter
34 Итоги 1.XSLT – мощный язык шаблонов 2.XML удобен в качестве модели в MVC 3.ObjectXPathNavigator позволяет типизированные модели 4.Примиряет с веб-формами
35 Сюда пишется заголовок слайда, также до 3 строк, не больше! Это – контентная область слайда. Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet. General Hooker
36 Спасибо за внимание! Андрей Майоров, BYTE-force twitter.com/xorets blogs.byte-force.com/xor
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.