Создание бизнес-приложений Silverlight с использованием .NET RIA сервисов
Silverlight и Windows Presentation Foundation
Основы Windows Presentation Foundation
Windows Presentation Foundation (WPF) - это система нового поколения для построения Windows и веб приложений. Основа WPF - это независимый от разрешения экрана и основанный на векторной графике механизм прорисовки, который был построен для использования всех преимуществ современного графического оборудования. WPF расширяет эту основу исчерпывающим набором средств разработки приложений, включающих Язык XAML (Extensible Application Markup Language), элементы управления, привязку данных, структуру, графику двухмерный и трехмерный, анимацию, стили, шаблоны, документы, мультимедиа, текст и типографию. WPF включен в Microsoft .NET Framework, так что можно строить приложения, включающие другие элементы библиотеки классов .NET Framework. Для отображения элементов управления используется DirectX. Для описания язык XAML (eXtensible Application Markup Language). Это XML-подобный, декларативный язык, который описывает весь "контент" отображаемый подсистемой WPF. XAML включает основные четыре категории элементов: панели, элементы управления, элементы связанные с документом и графические фигуры.
WPF существует в качестве подмножества типов .NET Framework, которые занимают большую часть в пространстве имен System.Windows. WPF предлагает дополнительные программные усовершенствования для разработки клиентских приложений Windows. Одним очевидным усовершенствованием является возможность разрабатывать приложения с помощью разметки и кода программной части. Разметка Язык XAML (Extensible Application Markup Language) обычно используется для реализации внешнего вида приложения при реализации его поведения с помощью управляемых языков программирования (кода программной части). При разделении внешнего вида и поведения разработка более эффективна, так как разработчики, реализующие внешний вид приложения, могут это делать одновременно с разработчиками, реализующими поведение приложения.Множество средств проектирования можно использовать для реализации и совместного использования разметки XAML, чтобы удовлетворить требованиям участников разработки приложения; Microsoft Expression Blend предназначен для конструкторов, в то время как Visual Studio 2005 ориентирован на разработчиков.
XAML упрощает создание пользовательских интерфейсов для модели программирования .NET Framework. Можно создать элементы управления в декларативной разметке XAML, а затем отделить определение элемента управления от логики времени выполнения, используя файлы с выделенным кодом, присоединенные к разметке с помощью определений разделяемых классов. Возможность перемежать код и разметку в XAML важна, поскольку XML сам по себе является декларативным и реально не предлагает модель для управления размещением. Основанный на XML декларативный язык интуитивно понятен для создания интерфейсов в диапазоне от прототипа до производства, особенно для людей с опытом веб-разработки и работы с веб-технологиями. В отличие от большинства других языков разметки, XAML непосредственно представляет создание экземпляров управляемых объектов. Этот общий принцип проектирования ведет к упрощению кода и доступа отладки для объектов, создаваемых в XAML.
Использование WPF существенно повышает производительность команды при разработке ПО за счет:
- Декларативного программирования (XAML)
- Дизайнер прозрачно интегрируется в процесс разработки приложения
- Инструмент дизайнера: Microsoft Expression
- Инструмент разработчика: Visual Studio
Создание браузерного приложения XAML
В следующем примере с помощью XAML реализуется внешний вид окна, содержащего одну кнопку, нажатие которой выводит сообщение. Проект Visual Studio 2008 создается по шаблону WPF Browser Application. Содержимое файла Page1.xaml, Page1.xaml.cs (code behind) и результат выполнения приведены ниже.
<Page x:Class="WpfBrowserApplication1.Page1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Page1" Height="100" Width="200"> <Grid> <Button Name="button" Click="button_Click"> Click Me! </Button> </Grid> </Page> private void button_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Привет, Windows Presentation Foundation!"); }
Для приложений, размещенных в веб-обозревателе, также называемых XBAP (XAML browser applications - приложения обозревателя XAML), можно создавать страницы ( Page ) и функции страниц ( PageFunction<(Of <(T>)>) ); переходить между этими страницами можно с помощью гиперссылок (классы Hyperlink ).
Развертывание браузерного приложения XAML
При построении XBAP Visual Studio формирует следующие три файла:
- Исполняемый файл. Он содержит скомпилированный код и имеет расширение .exe.
- Манифест приложения. Содержит метаданные, связанные с приложением, и имеет расширение .manifest.
- Манифест развертки. В этом файле содержатся сведения о том, что ClickOnce используется для развертывания приложения и имеет расширение .xbap.
Файлы *.xbap, *.exe и манифест помещаются на веб-сервере. На веб-странице создается гиперссылка, чтобы перейти в манифест развертывания. Когда пользователь щелкает ссылку и переходит к .xbap файлу, ClickOnce автоматически обрабатывает механизм загрузки и запуска приложения.
Совпадения между WPF и Silverlight
Silverlight считается подмножеством WPF.
Silverlight и WPF имеют много одинаковых элементов управления. Тех, которых нет в дистрибутиве Silverlight, можно найти в Silverlight SDK или Silverlight Toolkit. Правда реализация этих элементов в большинстве случаев неодинакова. Microsoft стремится к максимальной похожести между элементами управления. Совпадения увеличиваются от версии к версии.
И Silverlight, и WPF имеют механизм анимации с помощью линейной интерполяции. В WPF это можно сделать, используя триггеры, в Silverlight, используя VisualStateManager.
И Silverlight, и WPF поддерживают создание специальных и пользовательских элементов управления (user control и custom control).
Обе технологии позволяют проигрывать видео и аудио. Но WPF, при проигрывании, использует класс MediaElement медиапроигрывателя Windows Media Player клиента. Класс MediaPlayer в Silverlight не существует и поэтому используется класс MediaElement из Silverlight framework. Проигрыватель Silverlight полностью отделен от Windows Media Player клиента. Это приводит к тому, что не все кодеки поддерживаются.
Обе технологии используют язык XAML для описания пользовательского интерфейса. Обе платформы поддерживают файл code-behind с программным .NET кодом, чтобы манипулировать элементами, указанными в XAML файле. Большая часть языка обоих платформ совпадают.
Внешний вид приложений может быть очень похожим (см. рис. 4.15 и рис. 4.16).