Сайт для программистов

воскресенье, 12 сентября 2010 г.

Изучайте XAML, WPF и Silverlight

В наше время происходит какой-то бум в языках программирования. Кажется, совсем недавно в ходу были C++, Visual Basic, Delphi, Java. Сейчас лидерами становятся совсем другие языки и технологии. И программистам очень трудно угнаться за этой гонкой.
Я сам в свое время очень долго не мог соскочить с Visual Basic 5.0 на Visual Basic 6.0, хотя, казалось, это всего лишь обновление номера версии. Но, я настолько привык к привычному окружению, что просто боялся все поломать. Спустя некоторое время уже сам удивлялся другим коллегам, которые не собирались переходить на VB 6.0, объясняя тем, что VB5.0 гораздо быстрее и занимает меньше места. А изменения не настолько существенны, чтобы обновляться.
Еще большим шоком стало появление .NET Framework со своей новой идеологией и полным отсутствием совместимости со старыми программами. Первые версии фреймворка благополучно пролетели мимо меня. Но Microsoft упорно гнула свою линию и убеждала переходить на новые языки. И я купил на Озоне Visual Basic.NET 2003. Но большу часть времени я все равно программировал на старом добром VB6.0.
В какой-то момент времени я вдруг понял, что пока не поздно, лучше начать изучение .NET Framework на C#. Сейчас я понимаю, что тогда я сделал правильный выбор. И, хотя, Microsoft пытается параллельно поддерживать все языки, большинство материлов в сети базируется именно на C#.
Но, успокаиваться было рано. Неожиданно на горизонте появилась новая технология XAML. Но, к тому времени я очень интенсивно изучал программирование для мобильной платформы Windows Mobile. Поэтому слова XAML, Silverlight, WPF были для меня пустым звуком, так как они не поддерживались мобильными телефонами. К сожалению, это был мой стратегический просчет. Технология XAML окрепла и стала завоевывать сердца разработчиков. Я пытался оттянуть тот момент, когда придется изучать XAML, жизнь внесла свои коррективы.
Когда Microsoft в очередной раз поменяла правила игры и объявила, что следующая платформа Windows Phone 7 будет базироваться на Silverlight, я понял, что мне придется снова переучиваться.
И чем больше я погружаюсь в этот неведомый мир, тем больше он мне нравится. Знаю, что многие программисты находятся в похожем состоянии и еще не приняли решения о переходе на новые технологии. На мой взгляд, на сегодняшний день в сети или в магазинах нет хороших материалов для начинающих, которые бы с самых азов объяснили возможности XAML. Как правило, все учебные материалы уже предполагают базовое знакомство с языком C# и имеют высокий порог вхождения.
Но, на самом деле, язык XAML очень прост и элегантен. Сейчас я попытаюсь очень популярно объяснить, как пишется код на XAML, чтобы даже самые отъявленные новички поняли суть материала.
Если у вас есть опыт работы с HTML, то вам будут понятны основные понятия. По-существу, XAML - это язык разметки, как и HTML. (Обязательно найдется зануда, который скажет, что это язык разметки XML). Код состоит из тегов: начальный, конечный, или укороченный вариант самозакрывающего тега.
Предположим, нам для работы нужна кнопка. Достаточно написать следующее

<Button Foreground="LightSeaGreen" FontSize="24pt" Width="200" Height="50">
Привет, XAML
</Button>

Как видите, все очень просто. Есть тег Button с параметрами цвета, шрифта, размеров. Также обстоят дела и с другими элементами. Нужно только запомнить, что существует самый главный единственный корневой тег (в HTML таким тегом можно считать <html>), внутри которого находятся дочерние элементы. Таким образом выстраивается целое дерево родительских и дочерних элементов.
Обратите внимание, что код XAML можно написать даже в Блокноте и запустить из Проводника. Более подробно я описал этот материал в статье Что такое XAML.
Рекомендую первое время писать код вручную, хотя в Visual Studio 2010 появился свой GUI-редактор, позволяющий визуально размещать элементы, как это делалось в Windows Forms.
Когда вы наберетесь небольшого опыта, вы заметите, что некоторые вещи делать гораздо проще в WPF и Silverlight, которые тесно завязаны на XAML (но это не одно и то же).
Даже, если вам еще не приходилось работать с WPF, все равно прочитайте другую мою статью Закругляем углы и отбрасываем тень. Код настолько простой и понятный, что вы удивитесь, как легко создать различные эффекты отбрасывающей тени или закругления уголков. Причем, возможности XAML гораздо выше. Наверняка, вы слышали, что Silverlight считают конкурентом Flash. Так вот, XAML обладает широким арсеналом анимационных эффектов и других рюшечек.
Просматривая свои старые проекты, написанные традиционным способом на WinForms, я все чаше испытываю соблазн переписать их на WPF. И, хотя я не волшебник, а только учусь, но XAML теперь стоит у меня на первом месте в плане изучения.
Присоединяйтесь!

6 комментариев:

GLeBaTi комментирует...

Вы пробовали Adobe Flex?

AK комментирует...

нет. я работаю только с Visual Studio.

mrbrooks комментирует...

такое ощущение, что XAML есть язык декларативного программирования, нежели устоявшегося императивного. технология интересная. думаете по результатам писать книгу?

AK комментирует...

Так оно и есть. Не случайно Микрософт выпустила пакет для дизайнеров Blend, где можно рисовать интерфейс программы. Идет разделение труда - и во многом это выглядит оправданным. Чем то напоминает ситуацию с HTML и CSS.

GLeBaTi комментирует...

Сам изучал WPF, SL.
Потом узнал про flex. Главные его преимущества:
Он не сильно отличается от sl (если знаешь sl, то на флекс не сложно перейти)

< s:Button label="Кнопка" click="button1_click" x="10" y="10" />

Он на много больше распространен чем SL. Есть почти у всех этот flash player.

Делал сайт на siverlight. %70 приходилось качать плагин с сайта МС. У %50 не скачивалось с сайта МС, т.к. вирусы не позволяли заходить на http://microsoft.XX и на другие сайты( такие как антивирусы и др.).

AK комментирует...

У меня нет причин переходить на Flex. Да, возможно это хорошая технология. Но я равнодушен к Flash. Впрочем, и SL также не особо меня привлекает, если не брать расчет Silverlight для Windows Phone 7