Silverlight и XML (XAML), как объектная модель приложения
В прошлом году был на презентационной лекции Microsoft. Тема презентации была связана с новыми продуктами и технологиями этой компании, а точнее с Software + Service и Silverlight. На первое я опоздал, поэтому ничего сказать не могу. А второе было весьма интересно.
Зацепило
О Silverlight 1.0 говорить нечего. Тот же Flash, только элементы в приложении описаны с помощью XAML, что позволяет индексировать содержимое, и не имеет своего скрипта, а использует JavaScript. Зная, как IE обрабатывает JS можем предположить, на сколько может быть популярной эта версия.
Логично, что MS не стали оптимизировать обработку JS в своём браузере, а пошли другим путём. А точнее…
Silverlight 1.1
Эта версия может иметь программную составляющую написанную на любом .NET или web-языке (С#, Visual Basic, PHP, Ruby и др.). Т.е. получив доступ к элементам в приложении через описание XAML, можно забыть про JavaScript и писать на своём любимом языке. Потом это каким-то образом экспортируется в свой формат исполняемый маленьким фреймворком установленным на компьютере пользователя вместе с Silverlight-плагином для браузера. Я не буду вдаваться в подробности, о том как это всё работает, меня это не интересует.
Лектор озвучил плюсы:
- Очень маленький размер файла плагина
- Быстрая обработка видео
- Быстрая обработка скрипта
Я не буду искать опровержений или подтверждений данным высказываниям. Скажу лишь, что для создания аналоговых часов, лектор скопировал около 200 строчек C# кода, и ещё около 100 XAML кода. Многовато что-то…
XML based structure
Так, всё-таки что же меня зацепило? А сам принцип. С принципом описания структуры элементов в XML языке и управления им через скрипт я столкнулся в TYPO3 в плагине TemplaVoila!. Плагин позволяет взять HTML шаблон, отметить на нём «горячие» тэги, дать им соответствующие уникальные имена для того, чтобы можно было ими управлять (помещать контент, настраивать внешний вид) в TypoScript.
К примеру:
- Отметим на сайте какой-то тэг, например <div id=”sidebar”>…</div>.
- Дадим ему уникальное имя: lib.sidebar (lib —глобальный объект содержащий внутренние объекты на странице).
- В XML структуре запишется (причём самому ничего не надо писать):
Just place some content in sidebar [ ### Sidebar goes here ### ] TypoScriptObject div:inner lib.sidebar - А в TypoScript можем описать, какого типа это будет объект и что же он должен содержать:
lib.sidebar = TEXT
lib.sidebar .value = Hello, world!
Наверное, я мало изучал различные технологии, и не знаю, что такой способ описания объектной модели приложения используется давно, но ведь как, чёрт возьми, правильно.





]]>Максим Покровский]]>Действительно удобно
»]]>Danaki]]>Adobe тоже двигается в этом направлении и уже давно существует Flex – тоже MXML с интерфейсом внутри интегрирован ActionScript. Код компилится в байткод и тоже мало занимает, свою VM они отдали под GPL, http://en.wikipedia.org/wiki/Tamarin_(JIT) скоро, я надеюсь проинтегрируют в FireFox тогда JS будет еще быстрее бегать.
»]]>Игорь]]>Вот только про Flex, хотел написать, а тут, оказывается, всё уже сделали до нас
»]]>Никита]]>Работа MS Expression во многом напоминает Flex. И это не удивительно. В духе MS.
»