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!

Наверное, я мало изучал различные технологии, и не знаю, что такой способ описания объектной модели приложения используется давно, но ведь как, чёрт возьми, правильно.

Дата: 06.01.2008
»
Категории: CMS | xhtml/xml | Технологии
Google     

]]> Максим Покровский ]]>

Действительно удобно

»

]]> Danaki ]]>

Adobe тоже двигается в этом направлении и уже давно существует Flex – тоже MXML с интерфейсом внутри интегрирован ActionScript. Код компилится в байткод и тоже мало занимает, свою VM они отдали под GPL, http://en.wikipedia.org/wiki/Tamarin_(JIT) скоро, я надеюсь проинтегрируют в FireFox тогда JS будет еще быстрее бегать.

»

]]> Игорь ]]>

Вот только про Flex, хотел написать, а тут, оказывается, всё уже сделали до нас :)

»

]]> Никита ]]>

Работа MS Expression во многом напоминает Flex. И это не удивительно. В духе MS.

»

Напишите комментарий