упны только в полной .NET Framework. В этой книге обязательно будут рассмотрены наиболее значительные новинки. А сейчас можно лишь упомянуть основные моменты.
Пакет .NET Compact Framework 2.0 в Visual Studio 2005 стал поддерживать новые элементы управления, позволяющие создавать очень сложные приложения без написания громоздкого кода. В частности, появилась поддержка элементов управления
MonthCalendar
и DateTimePicker
, позволяющих создавать интерфейс календаря. Также появился новый элемент для уведомлений Notification
. Кроме него разработчики получили доступ к элементам DocumentList
и HardwareButton
. Более подробно они будут рассматриваться в главе, посвященной элементам управления. Новое свойство ScreenOrientation
позволяет без использования неуправляемого кода вращать экран устройства. Кроме того, стало значительно проще создавать собственные элементы управления, как это делается в полной версии .NET Framework.Элементы пользовательского интерфейса в .NET Compact Framework 2.0 теперь поддерживают присоединение (docking). При перемещении элемента управления к определенной стороне контейнера он всегда заполняет эту сторону контейнера.
Некоторые элементы управления стали поддерживать свойство
AutoScaleMode
. Свойство AutoScaleMode
показывает, как нужно перерисовывать элемент при изменении разрешения экрана. Также формы стали поддерживать свойство AutoScroll
.Помимо этого класс
Control
теперь поддерживает методы SuspendLayout
и ResumeLayout
. Также в .NET Compact Framework появилась полноценная поддержка буфера обмена.Класс
Graphics
тоже получил новые возможности, и теперь при помощи свойств DpiX
и DpiY
разработчик может узнать размеры экрана. Помимо этого сейчас можно отображать текст под различными углами при помощи класса LogFont
. Также разработчик может создавать перья заданных цвета и размера.Значительно улучшена работа с растровыми изображениями. Программисты получили новые возможности для создания изображений и сохранения их в файле или потоке. В приложениях стало проще манипулировать изображениями при помощи комбинации методов
LockBits
и UnlockBits
в сочетании с новым классом BitmapData
. Приложения, использующие при работе с изображениями неуправляемый код, теперь могут получать дескриптор объекта Bitmap
через метод GetHbitmap
.Новые возможности позволяют разрабатывать приложения с использованием управляемого кода для Windows Mobile 5.0 при помощи классов из пространства имен
Microsoft.Windows.DirectX
. Поддержка DirectX позволяет писать игры с использованием управляемого кода, обеспечивая более быструю разработку приложений, чем при использовании неуправляемого DirectX.Так как на рынке все чаще стали появляться устройства со встроенной клавиатурой, то в библиотеку .NET Compact Framework 2.0 была введена поддержка клавиатуры.
Также следует отметить, что элементы управления теперь распознают события
KeyUp
, KeyDown
и KeyPress
. Объект Form
теперь имеет свойство KeyPreview
.Тестировать программы тоже стало намного проще, так как эмулятор в .NET Compact Framework 2.0 подвергся значительной переработке. Перечень функциональных возможностей эмуляторов Pocket PC и смартфонов был расширен, что облегчает создание, проверку и развертывание приложений. Особое внимание было уделено поддержке сетевого взаимодействия. Кроме того, было улучшено быстродействие эмулятора. Появилась поддержка программы ActiveSync, можно работать с общими папками и использовать четыре COM-порта. Также эмулятор стал поддерживать работу с портретным и альбомным режимами отображения. Кроме того, эмулятор теперь эмулирует работу ARM-процессора.
Технология Smart Device CAB Project упростила развертывание мобильных приложений. Эта технология позволяет использовать в визуальном редакторе перемещение файлов, создавать папки и записи в реестре. Теперь создавать CAB-проект для установочного пакета так же просто, как при создании проекта Windows Installer для настольных компьютеров.
Новый компилятор теперь создает еще лучший и более быстрый код. Если в предыдущей версии использовались два JIT-компилятора, то теперь .NET CF 2.0 применяет единый компилятор для всех поддерживаемых процессоров.
В области безопасности добавлена поддержка идентификации NTLM и Kerberos. Также улучшена работа с технологией XML, и в распоряжение программистов поступил новый класс
XmlSerialization
.Намного удобнее стало разрабатывать дизайн форм в среде разработки Visual Studio .NET 2005. Процесс создания программы стал еще более наглядным. Программист может создавать собственные элементы управления так же, как и для обычных приложений.
Что нового в Visual Studio .NET 2005
Если у вас уже был опыт программирования под Visual Studio .NET 2003, то вы заметите, что на панели инструментов появились новые элементы управления. Они будут рассматриваться в главе, посвященной элементам управления. При разработке дизайна приложения будет заметно, как Windows Forms Designer помогает выравнивать элементы и предлагает выбрать минимальное расстояние между элементами. Автоматически проявляющиеся линии выравнивания помогают создавать аккуратные интерфейсы за очень короткий срок. Также появилась возможность разработки приложений, которые могут переключаться между портретным и альбомным режимами экрана.
Глава 2Первое приложение для .NET Compact Framework
Первые шаги
Практика — это самый лучший способ научиться программировать для мобильных устройств под .NET Compact Framework. Чтобы поверить в свои силы, нужно создать простейшее приложение. На его примере можно будет изучить различия между .NET Compact Framework и обычной .NET Framework.
Прежде всего нужно запустить среду разработки Microsoft Visual Studio 2005 и создать новый проект. Первые различия в процессе разработки можно увидеть уже на этой стадии. Если для создания обычных приложений надо было выбрать раздел
Windows
, то на этот раз необходимо выбрать раздел Smart Device.
В этом разделе содержатся подразделы, которые отвечают за создание приложений для КПК, смартфонов и устройств под управлением операционной системы Windows СЕ. Итак, нужно указать язык программирования Visual С#
, перейти в раздел Smart Device
и выбрать подраздел Pocket PC 2003
(рис. 2.1).Рис. 2.1. Выбор типа платформы
ПРИМЕЧАНИЕСписок подразделов на рисунке может отличаться от списка подразделов на вашем компьютере. Например, пункты Windows Mobile 5.0 Pocket PC и Windows Mobile 5.0 Smartphone появились после установки соответствующих пакетов SDK.
В выбранном подразделе присутствуют несколько шаблонов для реализации различных задач. Как правило, используется шаблон
Device Application
. Нужно отметить, что существует еще один похожий шаблон с названием Device Application
(1.0). Эти два шаблона различаются применяемой версией .NET Compact Framework. По умолчанию в Visual Studio 2005 используется .NET Compact Framework версии 2.0. Если выделить первый шаблон, то в строке состояния можно увидеть сообщение A project for creating a .NET Compact Framework 2.0 forms application for Pocket PC 2003 and later
. В примерах будет использоваться, как правило, версия 2.0, так как она имеет ряд преимуществ.После того как будет выбран шаблон для приложения, требуется изменить имя проекта. По умолчанию используется название
DeviceApplication1
, но наше первое приложение получит имя FirstPocketPCApp_CS
. После нажатия кнопки OK
откроется окно среды разработки с необычным видом формы. Если при программировании программ для настольных компьютеров отображается только форма, то в данном случае на экране будут показаны не только форма, но и внешний вид целевого устройства. При желании разработчик может даже изменить внешний вид карманного компьютера, создав специальные файлы. Если вы предпочитаете работать с классическим видом формы, то можно отключить отображение устройства, оставив на экране только форму. Для этого нужно щелкнуть правой кнопкой мыши на форме и в появившемся контекстном меню выбрать пункт Show Skin
. Повторный выбор этого пункта вернет на экран стандартный вид формы.Обычно в качестве первого примера создается стандартная программа, которая выводит приветствие на экран. На форме надо расположить кнопку
Button
и элемент Label
для отображения надписи. Также потребуется написать код для обработчика события Click
созданной кнопки. Этот код приведен в листинге 2.1.
Листинг 2.1private void butSayHello_Click(object sender, EventArgs e) {
lblHello.Text = "Здравствуй, мир!";
}
Теперь можно запустить проект при помощи команды
Start Debugging
или клавиши быстрого вызова