412 000 произведений, 108 200 авторов.

Электронная библиотека книг » Иво Салмре » Программирование мобильных устройств на платформе .NET Compact Framework » Текст книги (страница 1)
Программирование мобильных устройств на платформе .NET Compact Framework
  • Текст добавлен: 18 июля 2025, 02:31

Текст книги "Программирование мобильных устройств на платформе .NET Compact Framework"


Автор книги: Иво Салмре



сообщить о нарушении

Текущая страница: 1 (всего у книги 69 страниц)

Эту книгу я посвящаю своим учителям, как формальным, так и неформальным, но в первую очередь – родителям, Эйр (Aire) и Уильяму Салмре (William Salmre). Если мне и удалось взглянуть на кое-что по-новому и изложить свои мысли с пользой для дела, так это только благодаря доброте и терпению тех, кто не пожалел времени на то, чтобы провести меня вверх по склону горы и указать правильное направление. Спасибо вам всем.



Благодарности издательства

Издательский дом "Вильямс" благодарит Ерофеева Сергея и Кущенко Сергея за большой вклад в подготовку издания книги.


Об авторе

Иво Салмре (Ivo Salmre) более десяти лет работал в компании Microsoft, занимаясь в основном проектированием и выпуском инструментальных средств разработки программного обеспечения для настольных компьютеров и серверов, но впоследствии сосредоточившись на мобильных устройствах. Иво был ведущим программистом проекта .NET Compact Framework. Он получил степень бакалавра в области электротехники в университете штата Коннектикут, и его доклады можно часто услышать на отраслевых конференциях. Прожив десять лет в Сиэтле и немногим более года в Лондоне, в настоящее время Иво работает в Европейском Инновационном Центре компании Microsoft (Microsoft European Innovation Center – EMIC) в городе Аахене, Германия, где занимается исследованиями в области разработки программных моделей для современных мобильных устройств. Иво – уроженец города Норфолка, штат Коннектикут.

Предисловие

Мобильные устройства на наших глазах претерпевают революционные изменения

Мобильные вычислительные устройства лишь совсем недавно вышли за рамки техники сугубо связного назначения и превратились в гибкие расширяемые компьютерные платформы, завоевывающие массовый рынок. На протяжении ближайшего десятилетия мы станем свидетелями взрывного развития коммуникационных и вычислительных устройств, способных предоставить еще более богатый спектр информационных и прочих услуг, облегчающих людям условия труда и повседневной жизни. Влияние истинно мобильных вычислительных устройств, всегда находящихся под рукой, на характер нашей производственной деятельности, а также образ жизни, общения и взаимодействия с окружающим миром переоценить довольно-таки трудно. Ключевая роль в происходящих преобразованиях мобильных устройств принадлежит их интеллектуальному программному обеспечению.

Эта книга учит тому, как создавать великолепные приложения для мобильных устройств. С этой целью изложение важных концептуальных сведений сопровождается конкретными практическими примерами. Примеры разработаны на языках программирования С# и Visual Basic .NET для выполнения в среде Microsoft .NET Compact Network, хотя лежащие в их основе идеи в равной степени применимы ко всем мобильным компьютерным программным технологиям и платформам. Наибольшую пользу эта книга принесет тем, кто использует в своей работе Visual Basic и С#, поскольку они получат возможность расширить свои познания в этой области. В общем, книга адресована всем, кто заинтересован в создании высококачественного программного обеспечения для мобильных устройств, вне зависимости от того, приверженцами какой технологии программирования они являются.

Если бы мне позволили помечтать о рецензии, то хотелось бы, чтобы она была примерно такой:

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

Когда эта книга появится перед читателями, они смогут сами оценить, насколько мне удалось приблизиться к реализации этой дерзкой мечты.

Приступая к написанию книги, я поставил перед собой задачу "написать техническую книгу, не похожую на все остальные". При обсуждении идеи проекта с издателями и другими заинтересованными сторонами мне всегда задавали один и тот же вопрос: "Чего, по вашему мнению, в наши дни не хватает большинству технических книг, и что нового сможет предложить ваша книга?"

Чего в наши дни не хватает большинству технических книг?

В наши дни выходит в свет очень много технической литературы, посвященной разработке программного обеспечения. На полках книжных магазинов и в Web в изобилии представлены описания всевозможных программ и масса справочного материала. Мы живем в мире, в котором на нас обрушиваются мощные информационные потоки, но, несмотря на это или, возможно, именно по этой причине, приблизиться к реальным знаниям очень трудно. Тому, кто к этому стремится, приходится переворачивать тонны породы, чтобы докопаться до скрытых где-то в их недрах драгоценных алмазов сути. Будучи, как и порода, чрезвычайно полезными сами по себе, сырые факты – это все же далеко не те драгоценные камни, которые мы хотим отыскать. Чего не хватает – и это особенно касается имеющейся литературы по разработке программного обеспечения для мобильных устройств – так это доступной книги прикладного характера, в которой принципы и методы эффективного проектирования мобильных программ излагались бы с использованием конкретных примеров, иллюстрирующих теорию. Автор надеется передать читателям книги те драгоценные крупицы знаний, которые обогатят их и подтолкнут к открытию замечательных возможностей, таящихся в программном обеспечении для мобильных устройств. В этой книге изложение основного материала сопровождается практическими примерами, которые должны вдохновить читателей на проведение собственных экспериментов и наблюдений в процессе изучения ключевых элементов, лежащих в основе создания мобильных приложений.

Что нового в этой книге?

Настоящая книга посвящена теме разработки программного обеспечения для мобильных устройств и написана с намерением не привязываться к какой-то одной определенной технологии. Хотя в многочисленных примерах, предлагаемых в книге, используется платформа .NET Compact Framework, общие принципы, которые мы будем обсуждать, справедливы для всех технологий, относящихся к интересующей нас области. Несмотря на стремительную поступь технологий, надежные методы прикладного программирования и искусство проектирования развиваются медленно, проходя болезненный путь обучения на пробах и ошибках. Излагаемые в этой книге принципы проектирования и разработки программ не должны потерять своей актуальности даже в условиях дальнейшего технологического прогресса.

Цель данной книги состоит не в том, чтобы предоставить читателю множество деталей, излишних в контексте более высокого порядка, а в том, чтобы помочь ему выработать правильную оценку философии и методов проектирования мобильного программного обеспечения. Необходимую фактическую информацию и численные данные вам предоставят подробные примеры, но основная задача книги – развить в читателе понимание глубинных принципов, позволяющих разрабатывать замечательные приложения для мобильных устройств. Появление нового фактического материала, требующего изучения, никогда не прекратится, а новые технологии всегда будут эволюционировать, чтобы, в конечном счете, уступить место более совершенным, но в данной книге внимание сосредоточено на объяснении всех тех уникальных и наиболее интересных элементов технологий разработки, знание которых необходимо для создания успешных мобильных приложений.

На кого рассчитана эта книга?

■ Те, кто в настоящее время занят разработкой программного обеспечения для мобильных устройств. Интересующая нас область разработки программного обеспечения стремительно развивается и из своего рода искусства черной магии, которым владели лишь посвященные, постепенно становится сферой деятельности, доступной для самого широкого круга разработчиков. В этой книге предпринимается попытка обрисовать многообещающие и, как я могу надеяться, новые перспективы разработки мобильного программного обеспечения, что будет полезно как тем, кто впервые столкнулся с тематикой мобильных устройств, так и тем, кто уже набил руку на разработке подобных программ.

Разработчики программного обеспечения на языках Java, С# и VB.NET для настольных компьютеров и серверов, которые подумывают о переходе, или уже перешли, к разработке программного обеспечения для мобильных устройств. Те разработчики программного обеспечения для настольных компьютеров и серверов, кто уже использует упомянутые языки программирования, смогут сразу же приступить к работе с приведенными в книге примерами программ. Кроме того, книга поможет им глубже понять различия между разработкой программного обеспечения для классических настольных компьютеров и серверов с одной стороны и мобильных устройств с другой. Надеюсь, что для разработчиков этой категории чтение книги послужит своего рода приятным ознакомительным туром и убедит их в том, что разработка мобильного программного обеспечения – это стрела, которая каждый разработчик обязательно должен иметь в своем колчане. Эта книга поможет им получить знания и навыки, без которых невозможно создать хорошее мобильное приложение.

Разработчики программного обеспечения на С++, которые подумывают о переходе к языкам управляемой среды выполнения, например С#. Существует довольно большая вероятность того, что те, кто сегодня использует для разработки программ С и С++, в ближайшем будущем для выполнения некоторой части своей программистской работы будут использовать языки с управляемым кодом, примером которых может служить язык С#. Достигаемый при этом выигрыш в производительности и надежности программ просто ошеломляет. Многие примеры в этой книге написаны на С#, так что разобраться в текстах программ разработчикам на С/С++ не составит особого труда.

Разработчики программного обеспечения на Visual Basic, которые хотели бы начать работать с VB.NET или С#. В этой книге примеры приводятся как на С#, так и на Visual Basic .NET, что облегчает изучение основ упомянутых языков и использование библиотек времени выполнения .NET Framework. Поскольку платформа .NET Compact Framework представляет собой некое функционально развитое подмножество инструментальных средств платформы .NET Framework, ориентированной на настольные компьютеры и серверы, написание программ для мобильных устройств превратится для разработчиков этой категории в приятный способ изучения новых программных моделей.

Все, кто заинтересован в оттачивании своего технического мастерства в области программирования. Данная книга в основном направлена на то, чтобы оказать помощь читателю в выработке устойчивых технических навыков. Те, кто желает отточить свое мастерство в области разработки программного обеспечения для серверов, настольных компьютеров и других устройств, смогут по-новому и с пользой для себя посмотреть на задачи программирования с точки зрения разработчиков программ для мобильных устройств.

Архитекторы программного обеспечения, которые ищут возможности расширения существующих решений за счет поддержки мобильных устройств. Компьютеризация мобильных устройств предлагает новую интересную среду для расширения существующих решений, ориентированных на серверы и настольные компьютеры. Для этого необходимо хорошо понимать, на что способны мобильные устройства, а чего от них не следует ожидать. Чтение данной книги поможет архитекторам программного обеспечения понять, какую роль мобильные устройства смогут играть в их решениях.

Благодарности

Эта книга не только посвящена всему, что связано с мобильными устройствами, но и сама является продуктом компьютеризации мобильных устройств. Мне пришлось потратить много времени на поездки в разные регионы с рюкзаком и карманами, до отказа набитыми всевозможными мобильными устройствами, составлявшими мне компанию в дороге. Книга была написана на протяжении года, проведенного в поездках, которыми были охвачены, по крайней мере, шесть стран на территории двух континентов, что не обошлось без невероятного количества кофе, выпитого в вечерние часы. Кстати, хочу заметить, что кофе в Европе по своему вкусу, как правило, значительно превосходит сорта, доступные в Северной Америке, так что проблемой "кофейного отставания" американцам следовало бы заняться более основательно.

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

■ Сотрудники издательств Addison-Wesley и Pearson, которые вдохновляли меня и поддерживали мои намерения. Особую благодарность хочу выразить Карен Гетман (Karen Gettman), с которой я обсуждал первоначальное предложение о написании "технической книги, не похожей на все остальные", Элизабет Здунич (Elizabeth Zdunich), терпеливо работавшей со мной на протяжении всего процесса написания книги, а также Лори Лайенс (Lori Lyons) и Кейт Клайн (Keith Cline) за их титанический труд по редактированию книги.

■ Замечательные люди, которые просмотрели первоначальный черновой вариант книги. Если задача рецензента состоит в том, чтобы избавить будущего читателя книги от любых ошибок, неточностей и некорректности в авторских суждениях, то эти люди великолепно справились со своей работой. Мне очень повезло с получением от этих замечательных людей как вдохновляющих, так и "любовно укоризненных" отзывов. Если наши усилия увенчались успехом, то значительная доля возможных похвал по праву должна принадлежать рецензентам. В частности, хочу поблагодарить Крэйга Нибла (Craig Neable), Билла Дрэйпера (Bill Draiper), Джона Скита (Jon Skeet), Майкла Мэйтланда (Michael Maitland), Дуга Холланда (Doug Holland) и Алекса Фейнмана (Alex Feinman) за предоставление подробных отзывов на рукопись, сопровождаемых несметным количеством полезных советов и исправлений.

■ Мое руководство в компании Microsoft, поддержку которого я ощущал на протяжении всего времени. Это просто замечательно, когда тебе предоставляют полную свободу действий и дают возможность заняться собственным проектом, за что я им очень благодарен.

От издательства

Вы, читатель этой книги, и есть главный ее критик и комментатор. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замечания, которые вам хотелось бы высказать в наш адрес.

Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или электронное письмо, либо просто посетить наш Web-сервер и оставить свои замечания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более интересными для вас.

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

Наши координаты:

E-mail: info@williamspublishing.com

WWW: http://www.williamspublishing.com

Информация для писем из:

России: 115419, Москва, а/я 783

Украины: 03150, Киев, а/я 152

ГЛАВА 1
Введение

"Скажите, пожалуйста, как мне выйти отсюда?"

"Все зависит от того, куда тебе надо выйти ", – ответил Кот.

Льюис Кэрролл, Алиса в стране чудес
(Encarta 2004, Quotations) 

Добро пожаловать в мир разработки мобильного программного обеспечения

С каждым днем программное обеспечение играет в жизни людей все более заметную роль, давая нам возможность получать информацию, принимать решения "в режиме реального времени" и вообще вести более продуктивную и интересную жизнь. Вначале, когда количество доступных компьютеров было весьма невелико, каждый из них использовался в режиме коллективного доступа. Сегодня триумфальное шествие закона Мура подарило нам более демократичный и распределенный вид вычислительной техники – настольные и переносные (лэптопы, ноутбуки) "персональные компьютеры". В настоящее время мы являемся свидетелями еще более глубокого эволюционного процесса. Персональные компьютеры и централизованные серверы ни куда не делись, но их постепенно начинают окружать мириады мобильных устройств, обеспечивающих дальнейшую децентрализацию вычислительных мощностей. Это расширяет сферу применения программных приложений на доселе неведомые области. Те самые люди, которые просматривают Web-страницы, обмениваются сообщениями электронной почты, проводят время за электронными играми, совершают электронные покупки или каким-то иным образом интерактивно взаимодействуют с миром сетевой информации при помощи настольных компьютеров, все чаще предпочитают захватывать с собой "в дорогу" ту или иную отдельную частичку этих возможностей. Несколько лет тому назад компания Microsoft, в которой я работаю уже длительное время, сформулировала свои рыночные цели таким образом: "Компьютер на каждом столе и в каждом доме!" Сейчас становится очевидным, что эта формулировка должна быть дополнена словами о "программном обеспечении, которое может выполняться в любое время, в любом месте и на любом устройстве". Тем самым мы вплотную подходим к вопросу о мобильных устройствах.

Что такое, собственно говоря, мобильные устройства и в чем состоит специфика разработки программного обеспечения для них?

Что такое мобильные устройства? С вычислительной точки зрения мобильные устройства представляют собой некое компромиссное решение. Мы жертвуем невероятной вычислительной мощью, огромной емкостью памяти и графическими возможностями современных настольных компьютеров в пользу мобильных устройств в основном ради небольших размеров самих устройств, возможности использовать устройства сразу же, как только в этом возникает необходимость, а также их способности работать в течение длительного времени без перезарядки батарей. Этот компромисс вовсе не так уж плох, как могло бы показаться на первый взгляд. Принимая во внимание непрерывный экспоненциальный рост мощности процессоров и снижение цен, мы находимся на том этапе, когда, например, мое самое заурядное устройство Pocket PC (процессор XScale с тактовой частотой 400 МГц, ОЗУ объемом 64 Мбайт) по своим возможностям во многих отношениях оказывается мощнее настольных компьютеров, работавших под управлением Windows 95 всего лишь несколько лет тому назад. Но наряду с этим мобильные устройства являются также качественно другими. Простой перенос операционной системы и приложений с настольного компьютера на мобильное устройство не даст тех результатов, которые могли бы удовлетворить конечного пользователя. Каждому, кто пользуется современным мобильным телефоном или устройством PDA (Personal Digital Assistant – персональный электронный помощник, "карманный компьютер"), хорошо известно, что хотя устройство, которым он владеет, и является самым настоящим компьютером с богатым набором разнообразных возможностей, все же оно значительно отличается от настольного или переносного компьютера. В случае мобильных устройств приоритеты проектирования и пользовательские ожидания иные, нежели в случае традиционных настольных компьютеров.

В наши дни мобильные устройства предлагают разработчикам и конечным пользователям такие уникальные возможности для получения информации, обогащения знаниями и развлечения, которые еще несколько лет тому назад трудно было даже себе представить. Каждый, кто в течение более или менее длительного времени пользовался современными смартфонами или устройствами с возможностями Wi-Fi, мог сам убедиться в том, какие фантастические вещи сейчас становятся доступными. Ничто не отражает смысл выражения "информация на кончиках пальцев" так буквально, как вычислительное устройство, которое можно в любой момент достать из кармана и сразу же начать работать с интересующей вас информацией.

Установившиеся принципы разработки программного обеспечения остаются в силе и по отношению к мобильным устройствам. Выбрасывать имеющиеся у вас книги, посвященные методам успешного программирования или обеспечению безопасности, нет никакой необходимости. В действительности, при разработке программ для мобильных устройств следование принципам создания программного обеспечения, проверенным на практике, приобретает еще большую актуальность. Предлагаемая настольными компьютерами среда разработки приложений настолько богата различными возможностями и терпима к произволу пользователей, что разработчики могут решать многие из возникающих перед ними проблем "силовыми методами", не заботясь о применении рекомендованных методик программирования. Недостаточно серьезное отношение некоторых программистов к необходимости строго соблюдать базовые принципы проектирования и создания программ можно отчасти объяснить тем обилием ресурсов, которые находятся в их распоряжении.

Как правило, такой подход к делу приводит к ухудшению условий работы пользователя из-за снижения быстродействия приложения, которого можно было бы избежать, или непродуманности пользовательского интерфейса; тем не менее, в силу большого запаса процессорной мощности, ресурсов экрана и возможностей ввода данных, свойственных настольным компьютерам, пользователям удается преодолевать указанные ограничения. В случае мобильных устройств наблюдается иная ситуация. Недоработанный пользовательский интерфейс очень скоро начинает раздражать пользователей, которые рассчитывают на возможности быстрого и интуитивно понятного доступа к информации, но не имеют в своем распоряжении никаких средств, позволяющих компенсировать просчеты, допущенные на стадии проектирования. Точно так же расточительное или непродуманное использование памяти в программе очень быстро приводит к замедлению работы приложений вплоть до того, что они становятся совершенно бесполезными. Поэтому требования, предъявляемые к проектированию программного обеспечения для мобильных устройств, оказываются гораздо более жесткими, чем в случае настольных компьютеров.

Данная книга является руководством по разработке программного обеспечения, предназначенного для использования на мобильных устройствах, поскольку при создании мобильных приложений приобретение навыков использования систематического подхода к проектированию и созданию программ становится особенно актуальным. Эта тема пока еще плохо освещена в литературе, а недостаток руководств, написанных доступным языком, и описаний соответствующих методик вызывает чувство неудовлетворенности как у разработчиков, пытающихся перенести свои профессиональные интересы в область мобильных устройств, так и у конечных пользователей, которые реально испытывают на себе отрицательные последствия любых просчетов, допущенных проектировщиками программного обеспечения. Несмотря на то что при написании примеров, приведенных в данной книге, использовалась платформа NET Compact Framework, лежащие в их основе идеи имеют общий характер и представляют интерес для всех разработчиков приложений, какую бы из мобильных сред они для себя ни выбрали. Независимо от того, используются ли собственные коды C/C++, платформы .NET Compact Framework или Java/J2ME, либо любая другая технология, ориентированная на мобильные устройства, хорошее знание устоявшихся методов разработки мобильных приложений играет весьма существенную роль. Читатель научится ясно понимать и со знанием дела анализировать проблемы, с которыми приходится сталкиваться при разработке мобильных приложений, что позволит ему при любых обстоятельствах доводить процесс разработки до успешного завершения. Хочу надеяться, что эта попытка облегчить читателям вхождение в данную область и поделиться с ними знаниями, приобретенными моими коллегами и мною в нелегких условиях, когда нам приходилось пробираться по узким лабиринтам, а на всем пути нас подстерегали многочисленные невидимые ловушки, окажется удачной. Эта книга задумана как руководство, в котором вы найдете необходимые практические рекомендации относительно того, как пройти все этапы разработки мобильного программного обеспечения, чтобы ваши усилия увенчались успехом, и вы смогли извлечь из мобильных вычислительных устройств все то, на что они способны.


    Ваша оценка произведения:

Популярные книги за неделю