Продукты Visual Studio и линейка Expression - это достойные приложения как для дизайнеров, так и для разработчиков. Именно о них рассказал в интервью Виктор Шатохин, эксперт по вопросам разработки ПО ООО "Майкрософт Украина".
- С какой целью появился Silverlight?
- Я начну с предыстории. С выходом платформы .NET компания Microsoft стала думать, как расширить определённую область и упростить создание тех или иных приложений. И одним из направлений стало построение клиентских приложений. Ведь с приложениями работают пользователи и нам стоит сделать работу максимально приятной. Мы понимали, что создание пользовательских интерфейсов - это некая головная боль для разработчиков, так как они больше оперируют некими строчками кода, функциями, но обычная кнопка для него так и остается кнопкой. Пользователь видит это всё иначе, как бы сверху. Компания Microsoft решила поработать над потребностями пользователей и в 2005 году анонсировала технологию, которая должна была разделить труд разработчика и дизайнера. Задача программ в том, чтобы дизайнер, используя какой-то инструмент, создавал пользовательский интерфейс, а к разработчику этот проект приходил бы в каком-нибудь унифицированном формате, поэтому был разработан специальный формат, основанный на xml - XAML (eXtensible Application Markup Language). Так появилась возможность описать пользовательский интерфейс. Таким образом, мы смогли выпустить инструмент не только для разработчиков, коим был Visual Studio, а для дизайнеров появилась линейка Expression. Для построения пользовательских интерфейсов используется инструмент Expression Web. И буквально за несколько месяцев было создано огромное количество интерфейсов с помощью XAML, которые использовали технологию Windows Presentation Foundation. Когда мы посмотрели, что созданные приложения для банкоматов, аэропортов и организаций стали очень быстро появляться, нами было решено, что стоит расширить XAML и WPF, чтобы создать среду разработки приложений для Интернета. В итоге вы увидели Silverlight.
- Какие знания должны быть у человека, чтобы начать работать с программой Silverlight?
- Например, если посмотреть на приложение Silverlight Towers, то здесь дизайнеру пришлось работать около одного рабочего дня в Expression Blend. Также существует механизм для создания рабочего прототипа без написания кода. Он может нарисовать круг и задать ему функцию "кнопка". И сегодня в Expression Blend можно экспортировать дизайн или свои наработки из программ Adobe. Поэтому если дизайнер профессиональный, то он сделает всё за день, и ещё один день будет потрачен на написание бизнес-логики.
- А эксперименты проводились?
- Конечно, мой сын в них участвовал. Мне хотелось узнать, насколько сложен порог входа в Expression Blend. Для этого на сайте silverlight.net, где показывают скринкасты, своему 13-летнему сыну я дал задание разобраться, и он буквально через пять минут мог делать самые простые вещи. А немного позже, буквально под Новый год, создал приложение, где нарисовал ёлку, снег и мигающие шарики всего за один час. При этом ребёнок никогда не видел Silverlight или Blend.
- Что будет в Silverlight 3?
- Он улучшит функциональность Silverlight 2 в работе с графикой. Нужно прекрасно понимать, что стоит упростить различные переходы, сделать так, чтобы при наведении на кнопку она менялась. Ещё это работа с пикселами, чтобы была возможность сделать размытые элементы или градиенты. В Silverlight 3 можно будет поддерживать 3D-трансформации, хоть не полностью, но это будет приближённо. Также в Silverlight 3 можно будет работать с медиа. Раньше были нарекания, что Silverlight поддерживал только Microsoft форматы. И акцент будет сделан ещё на создание бизнес-приложений. Например, это сервисы для аэропортов и больниц, которые я демонстрировал на конференции Байнет 2.3 в первый день. Что будет дальше, не могу сказать, так как Microsoft после выпуска новой версии анализирует весь фидбек (обратная связь) и только потом решает, что будет делать дальше.
- Больше всего нареканий в сторону Silverlight из-за чего?
- Пока он не поддерживает звук и видео на клиентской стороне, не поддерживает веб-камер, но в будущем это планируется реализовать.
- Будет ли Silverlight поддерживать Opera?
- Сказать, что полностью не поддерживает, я не могу. Просто работать с компаниями, где продукт находится в открытом коде, очень тяжело. Сегодня компания Microsoft работает с крупнейшими игроками на рынке браузеров. С той целью, чтобы была возможность встраивать плагин Silverlight в браузеры. Сейчас официально поддерживается Internet Explorer, Safari, FireFox, Opera (но только определённых версий). Но есть в мире много умелых ручек, которые уже всё написали для того, чтобы Silverlight работал во всех версиях Opera. Также неофициально поддерживается Google Chrome. Не стоит забывать, что, кроме настольных клиентов, есть и мобильные. Сегодня это актуально и есть запросы со стороны пользователей, которые хотят, чтобы там работали приложения Silverlight. И поэтому на MIX09 в Лас-Вегасе было объявлено, что в ближайшем будущем планируется совместимость и с мобильными платформами. В частности, уже заключено стратегическое партнёрство с компанией Novell.
- Насколько сложные приложения можно разрабатывать в Silverlight и как это отображается на скорости их загрузки?
- Даже настольному приложению нужна максимально правильная разработка, ведь никто не отменял кривые руки. Поэтому скорость приложения больше всего зависит от самого разработчика. Сам Silverlight поддерживает догрузку и отложенную загрузку. Все файловые элементы в Silverlight представлены в архиве, где размещены файлы дизайна и бизнес-логики. Если разбить проект на несколько таких архивов, например, у меня есть главная страница, где есть несколько вкладок, но только при нажатии на вкладки они будут загружаться дополнительно. Так же будут происходить механизмы кэширования браузера. Ещё есть некоторые техники по оптимизации, например, можно использовать нестандартные шрифты, которые урезаются до размеров того, что нужно для данного приложения. Поэтому сейчас не стоит тащить весь шрифт, его можно конвертировать в кривые.
- Насколько полный ресурс сделает Silverlight в версии "Out of browser"?
- Если мы работаем с какими-то приложениями достаточно часто, то можем сделать на рабочем столе иконку, чтобы работать с ними уже не в браузере, а в стандартном окне. При этом будут загружены все ресурсы для работы с данным приложением. Если же какой-то файл не загружен, то придётся подключаться к Интернету. Если наше приложение работает с внешними источниками данных, то они не кэшируются, нам придётся работать во время подключения. Сейчас компания Microsoft разрабатывает один продукт, который базируется на ADO.NET Data Services под кодовым названием Astoria. Дальше он будет называться Astoria Offline. Эта технология позволит работать с приложениями Silverlight оффлайн, а когда мы будем в сети, мы сможем подгрузить нужные данные, а потом они будут синхронизированы с основным источником. Но Astoria Offline - это не часть Silverlight, это отдельный продукт.
- А если говорить о возможностях линейки Expression?
- Что интересно, большинство продуктов, входящих в линейку Expression, написаны на Windows Presentation Foundation, а сам Expression Blend также на нём написан. Это как компиляторы. Сегодня это вторая версия совокупности продуктов, которая полностью называется Expression Studio. Expression Blend - это инструментарий для создания пользовательских интерфейсов. Expression Design даёт возможность работать с растровой и векторной графикой. Вашу работу можно экспортировать в XAML, чтобы можно было работать в Visual Studio или Expression Blend. Есть ещё Expression Web, который помогает разрабатывать различные веб-приложения. Он пришёл на смену продукту FrontPage. Причём этот продукт работает с различным родом приложений. Есть ещё Expression Media, который позволяет управлять медиа-ресурсами. Вы можете делать каталоги, поддерживать версионность. Эта программа - не для создания, а для управления всем тем, что вы создали. И Expression Encoder, который позволяет кодировать видео в приложениях Silverlight.
(Продолжение следует)
Денис МИСЮЛЯ
Горячие темы