Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
36 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
4.10 MB
Просмотров:
74
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Использование XSLT для разработки сайтов (на ASP.NET)
Андрей Майоров, BYTE-force
xor@byte-force.com
twitter.com/xorets
№2 слайд
Содержание слайда: Что нужно от языка шаблонов?
Задача – показывать данные
В виде HTML
И не только в HTML
Шаблон легко делается из HTML
Общие фрагменты выносятся в отдельные файлы
Работает быстро
Кроссплатформенный и стандартный
№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
Именно данные, находящиеся на конвейере обработки, управляют всем процессом.
№7 слайд
Содержание слайда: Модульность
Программа на XSLT состоит из независимых шаблонов, отвечающих на разные входные данные.
№8 слайд
Содержание слайда: Наследование
Директива import позволяет устанавливать отношения, сходные с наследованием.
№9 слайд
№10 слайд
Содержание слайда: xsl:import
Используйте для наследования
<xsl:apply-imports> - вызов базового шаблона
<xsl:apply-templates select=“.” mode=“…” />
- template method, вызов в базовом шаблоне.
<xsl:call-template name=“…”/>
- вызывает шаблон, заданный последним.
№11 слайд
Содержание слайда: xsl:include
Используйте для подключения компонентов
Просто вставка одного файла внутрь другого
№12 слайд
Содержание слайда: xsl:apply-templates
Основной инструмент!
Отдает узлы в обработку – позволяет делать волшебные преобразования.
Использовать вместо: xsl:copy-of, xsl:for-each, xsl:choose.
№13 слайд
Содержание слайда: Работа с переменными
Можно только проинициализировать, менять значение нельзя.
Цикл с увеличением счетчика – только через рекурсивный вызов.
№14 слайд
Содержание слайда: Домашняя работа
XPath.
Функции XSLT и XPath.
EXSLT.
Поддержка в разных платформах.
№15 слайд
Содержание слайда: MVC в веб-разработке
Model-View-Controller.
Отделяет разработку UI от разработки бизнес-логики.
Члены команды работают параллельно:
Верстальщик делает интерфейс.
Серверный программист – контроллеры.
№16 слайд
Содержание слайда: В каком формате передавать данные между controller и view?
№17 слайд
Содержание слайда: Передавать типизированный объект – неудобно
Типизированный объект – это код, его еще надо написать.
Наполнить объект данными – опять нужен код.
№18 слайд
Содержание слайда: Храним промежуточные данные в XML
Данные удобно прототипировать вручную. В простом текстовом редакторе.
Не нужно ждать готовности контроллера. Данные для тестов уже есть в XML-документе.
Этими данными можно тестировать и сам контроллер.
№19 слайд
Содержание слайда: Сделали прототип и пошли работать…
<poem>
<title>Руслан и Людмила</title>
<rating>5</rating>
<description>...</description>
</poem>
№20 слайд
Содержание слайда: XML в веб-приложениях
В веб часть данных уже в HTML. Например, текст новостной статьи.
Взяв XHTML, можем объединить все данные в один XML-документ:
Сильно структурированные — поля объектов.
Слабо структурированные — данные от пользователя.
№21 слайд
Содержание слайда: Объединение слабо и сильно типизированных данных
<poem id=“156”>
<title>Руслан и Людмила</title>
<rating>5</rating>
<description>
«Руслан и Людмила» — первая законченная поэма Александра Пушкина.
</description>
</poem>
№22 слайд
Содержание слайда: Критика XML в качестве модели
Бизнес-логике неудобно работать с XML.
Надо работать с типизированной моделью.
Вручную преобразовывать объект в XML – мартышкин труд.
XmlSerializer имеет свои ограничения.
№23 слайд
Содержание слайда: Возьмите ObjectXPathNavigator
Позволяет работать с графом объектов, как будто это XML-документ.
«Ленивый»
Совместим с XmlSerializer.
Расширяем.
№24 слайд
Содержание слайда: XsltView для ASP.NET MVC
Нужен
№25 слайд
Содержание слайда: Чем плох MvcContrib.XsltViewEngine?
Использованием специального объекта XsltViewData – нельзя сменить view, не меняя контроллер.
Не умеет преобразовывать модель в XML.
№26 слайд
№27 слайд
Содержание слайда: Формы в XSLT
№28 слайд
Содержание слайда: Сложности с формами
Формы задаются в двух местах:
В XSLT задаем HTML-форму
В модели – поля данных, со статусами валидации, сообщениями и др.
Возникает соблазн сделать «язык форм» на базе XML-модели.
Это сложное и громоздкое решение
В принципе, те же проблемы у ASP.NET MVC
№29 слайд
Содержание слайда: ASP.NET Web Forms:
Страшные
Очень громоздкая обработка запроса
Выдают избыточный, страшноватый маркап
Понятные
Разработка веб-форм в VS очень проста и интуитивно понятна
Хочется минимизировать страх, оставив только пользу
№30 слайд
Содержание слайда: Решение
Совмещаем оба подхода.
От веб-формы берем только поля ввода.
Весь дизайн прикладываем при помощи XSLT.
№31 слайд
Содержание слайда: Решение подробнее
Веб-форма производит xHTML.
xHTML=XML. Контроллер вставляет форму в модель.
View копирует код формы наружу, в нужное место страницы.
Browser. Post back.
Контроллер передает пост-бэки в ASPX-файл.
goto 1.
№32 слайд
Содержание слайда: Решение в картинках
№33 слайд
Содержание слайда: Технические сложности
HttpServerUtility.Execute не дает доступа к полям формы.
Берем код Execute рефлектором.
Некоторые нужные части HttpContext и HttpResponse закрыты. Используем reflection:
HttpContext.SetCurrentHandler
HttpContext.RestoreCurrentHandler
HttpContext.SwitchWriter
№34 слайд
Содержание слайда: Итоги
XSLT – мощный язык шаблонов
XML удобен в качестве модели в MVC
ObjectXPathNavigator позволяет типизированные модели
Примиряет с веб-формами
№35 слайд
Содержание слайда: Сюда пишется заголовок слайда, также до 3 строк, не больше!
Это – контентная область слайда.
Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
№36 слайд
Содержание слайда: Спасибо за внимание!
Андрей Майоров, BYTE-force
xor@byte-force.com
twitter.com/xorets
blogs.byte-force.com/xor