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

Категория: Образование
Нажмите для полного просмотра!
Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №1Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №2Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №3Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №4Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №5Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №6Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №7Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №8Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №9Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №10Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №11Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №12Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №13Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №14Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №15Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №16Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №17Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №18Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №19Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №20Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №21Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №22Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №23Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №24Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №25Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №26Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №27Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №28Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №29Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №30Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №31Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №32Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №33Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №34Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №35Использование XSLT для разработки сайтов (на ASP.NET)  Андрей Майоров, BYTE-force  xor@byte-force.com   twitter.com/xorets, слайд №36

Содержание

Вы можете ознакомиться и скачать Использование XSLT для разработки сайтов (на ASP.NET) Андрей Майоров, BYTE-force xor@byte-force.com twitter.com/xorets. Презентация содержит 36 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





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

Слайд 2





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

Слайд 3





Сюда пишется заголовок слайда, также до 3 строк, не больше!
Это – контентная область слайда.
Желательно создавать новые слайды, дублируя (copy/paste) этот слайд в качестве образца, чтобы сохранить общую стилистику презентации. Также рекомендуется для набора текста использовать шрифт Trebuchet.
Описание слайда:
Сюда пишется заголовок слайда, также до 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 штук
Описание слайда:
Команды 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% функциональный, но точно не императивный.
Нельзя писать как в императивном – получится плохо.
Правильный подход позволяет добиться невозможных в императивном языке вещей.
Описание слайда:
XSLT ~ функциональный язык Декларативный язык: не 100% функциональный, но точно не императивный. Нельзя писать как в императивном – получится плохо. Правильный подход позволяет добиться невозможных в императивном языке вещей.

Слайд 6





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

Слайд 7





Модульность
Программа на XSLT состоит из независимых шаблонов, отвечающих на разные входные данные.
Описание слайда:
Модульность Программа на XSLT состоит из независимых шаблонов, отвечающих на разные входные данные.

Слайд 8





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

Слайд 9





Demo
Описание слайда:
Demo

Слайд 10





xsl:import
Используйте для наследования 
<xsl:apply-imports> - вызов базового шаблона
<xsl:apply-templates select=“.” mode=“…” />
	- template method, вызов в базовом шаблоне.
<xsl:call-template name=“…”/>
	- вызывает шаблон, заданный последним.
Описание слайда:
xsl:import Используйте для наследования <xsl:apply-imports> - вызов базового шаблона <xsl:apply-templates select=“.” mode=“…” /> - template method, вызов в базовом шаблоне. <xsl:call-template name=“…”/> - вызывает шаблон, заданный последним.

Слайд 11





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

Слайд 12





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

Слайд 13





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

Слайд 14





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

Слайд 15





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

Слайд 16





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

Слайд 17





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

Слайд 18





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

Слайд 19





Сделали прототип и пошли работать…
<poem>
    <title>Руслан и Людмила</title>
    <rating>5</rating>
    <description>...</description>
</poem>
Описание слайда:
Сделали прототип и пошли работать… <poem> <title>Руслан и Людмила</title> <rating>5</rating> <description>...</description> </poem>

Слайд 20





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

Слайд 21





Объединение слабо и сильно типизированных данных
<poem id=“156”>
    <title>Руслан и Людмила</title>
    <rating>5</rating>
    <description>
«Руслан и Людмила» — первая законченная поэма Александра Пушкина.
    </description>
</poem>
Описание слайда:
Объединение слабо и сильно типизированных данных <poem id=“156”> <title>Руслан и Людмила</title> <rating>5</rating> <description> «Руслан и Людмила» — первая законченная поэма Александра Пушкина. </description> </poem>

Слайд 22





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

Слайд 23





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

Слайд 24





XsltView для ASP.NET MVC
Нужен
Описание слайда:
XsltView для ASP.NET MVC Нужен

Слайд 25





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

Слайд 26


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

Слайд 27





Формы в XSLT
Описание слайда:
Формы в XSLT

Слайд 28





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

Слайд 29





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

Слайд 30





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

Слайд 31





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

Слайд 32





Решение в картинках
Описание слайда:
Решение в картинках

Слайд 33





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

Слайд 34





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

Слайд 35





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

Слайд 36





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



Похожие презентации
Mypresentation.ru
Загрузить презентацию