Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
■ Мобильные устройства будущего будут способны получать больше информации о своем окружении. Наличие в устройстве информации о времени и дате в наши дни воспринимается компьютерными программистами как само собой разумеющаяся вещь. Знание местоположения, окружения и контекста пользователя устройства — вот какими способностями будут обладать устройства ближайшего будущего. Такими способностями устройства будут наделяться постепенно и по частям, поскольку многие аспекты этого еще должны быть изучены, а задача достаточно сложна. Возможности определения устройством всей этой информации зависят не от какого-то одного, а от множества мелких факторов, которые, будучи раскрытыми перед разработчиками приложений в понятной для них форме, позволят мобильным устройствам намного превзойти свои нынешние возможности.
■ На мобильных устройствах будет устанавливаться много мелких и средних специализированных приложений. Настольные компьютеры полностью отдаются под власть крупных, всеобъемлющих приложений, которые окружают своих пользователей данными, приглашая исследовать их использовать в работе. Мобильные приложения оказываются наиболее эффективными тогда, когда дают пользователям возможность сфокусировать свое внимание на решении определенной задачи, предоставляя им сразу же только те данные и услуги, в которых они непосредственно нуждаются, и требуя для этого лишь минимальной навигации в пределах пользовательского интерфейса. Многофункциональные мобильные устройства лучше всего приспособлены для работы не с одним крупным приложением, а с множеством мелких или средних, каждое из которых позволяет сосредоточиться на решении ограниченного набора отдельных задач. Трудности использования данной модели связаны с тем, что поддерживать единообразие пользовательского интерфейса во всех таких приложениях весьма непросто. Пользователи, особенно пользователи завтрашнего дня, ничего не будут знать о концепции использования множества приложений на устройстве; они будут воспринимать устройство лишь как нечто, предлагающее совокупность богатых возможностей, пользоваться которыми должно быть удобно. Вы достигнете успеха лишь тогда, когда пользователь не будет замечать никаких следов "сшивки" отдельных кусков программного обеспечения, а будет видеть лишь единый, цельный, отшлифованный продукт.
■ Мы находимся в начале пути. Мобильные устройства только совсем недавно уменьшились в размерах, подешевели, приобрели множество функций и получили возможность подключаться к компьютерным сетям, чтобы их можно было использовать в качестве платформы для программных приложений. По этой причине большинство современных программных технологий для мобильных устройств фокусировались на переносе подходящим образом переработанных версий технологий, используемых на настольных компьютерах и серверах, на мобильные платформы. Этот первый шаг был необходим, но его следует рассматривать лишь как начало. Именно теперь, когда технологии с настольных компьютеров и серверов перенесены на устройства, и начинается самая интересная работа. Она будет заключаться в разработке новых средств и программных моделей, которые развиваются на мобильных устройствах. Эти новшества приживутся на мобильных устройствах и в соответствующем виде перейдут на лэптопы, настольные компьютеры и серверы. Такие идеи, как возможность получения устройством информации об окружении, коммуникационных возможностях и привычках того, кто пользуется устройством, являются вполне естественными направлениями для начала внедрения на мобильных устройствах таких инноваций, которые впоследствии пробьют себе дорогу и на более крупные и менее мобильные платформы. Нас ожидает волнующий этап.
Мобильные устройства предлагают ни с чем не сравнимые возможности доставки информации и услуг непосредственно пользователям с применением способов, которые действительно описывается словами "в любое время и в любой момент". Трудно переоценить потенциал усовершенствований в отношении увеличения производительности человеческого труда, повышения комфортности условий работы пользователя, повышения качества услуг, оказываемых пожилым людям и лицам с ограниченными физическими возможностями и, что самое главное, расширения возможностей общения людей между собой. Программное обеспечение дает разработчикам возможность полностью проявить свой творческий потенциал, а наличие отработанных технических подходов позволяет превращать идеи в полезные инновации. Надеюсь, что эта книга помогла вам хоть немного разобраться в ситуации в этой области и вооружила вас всем необходимым для того, чтобы вы смогли в полной мере воспользоваться всем тем, что может вам предложить разработка программного обеспечения для мобильных устройств.
ПРИЛОЖЕНИЕ А
Дополнительные ресурсы по .NET Compact Framework
Сетевые ресурсы
Пространство Web огромно, и вы найдете в нем множество заслуживающих внимания ресурсов, посвященных разработке высококачественных мобильных приложений. Но наряду с ними существуют огромные объемы разрозненной информации, которую приходится тщательно просеивать. Ниже перечислены сайты, которые послужат вам неплохими отправными точками для начала соответствующего поиска. К сожалению, в силу динамической природы Web некоторые URL со временем могут изменяться. Там, где это возможно, я указываю авторов и названия статей; если какой-то URL уже прекратил свое существование, у вас будет достаточно информации, чтобы отыскать соответствующий ресурс.
Обмен программами
■ www.GotDotNet.com — сайт, развернутый компанией Microsoft для обмена кодом в рамках сообщества программистов. Это мой излюбленный сайт по обмену кодом, поскольку здесь можно увидеть, какой код чаще всего загружают другие люди. Посетив GotDotNet, начните поиск с раздела "User Samples" и образцов программ, относящихся к рубрике ".NET Compact Framework", и щелкните на заголовке "Downloads". На экран будет выведен список размещенных на сайте примеров программ, отсортированный в соответствии с их популярностью.
■ www.OpenNETCF.org — сайт, развернутый независимыми профессионалами и любителями для обмена кодом, новостями, статьями и обсуждения вопросов, касающихся .NET Compact Framework. На сайте вы найдете лицензию на использование исходных кодов, поддерживающую коммерческое использование исходных кодов, приведенных на сайте, с которой также стоит ознакомиться. Кроме того, на этом сайте публикуются материалы довольно серьезных коллективных проектов, находящихся в стадии разработки.
Сетевые телеконференции
Для .NET Compact Framework существует много активных форумов, действующих по принципу "спрашивайте — ответим". Доступ к ним можно получить либо с помощью программы для работы с группами новостей, либо через Web-сайт http://msdn.microsoft.com/newsgroups/.
Можно указать еще несколько форумов, посвященных данной тематике:
■ microsoft.public.dotnet.framework.compactframework
■ microsoft.public.pocketpc.developer
■ microsoft.public.pocketpc.developer.networking
■ microsoft.public.smartphone.developer
Как и в случае любого форума или обсуждения, вопросы и ответы, которые вы встретите там, могут быть как интересными, так и не представляющими никакого интереса. Форумы — великолепное место для поиска подсказок и идей, которые помогут вам преодолеть проблемы, тормозящие дальнейшую работу, но там вы найдете исключительно информацию, которая предоставляется "без обещания компенсации возможного ущерба и без гарантий достоверности".
Общие вопросы разработки мобильных приложений
Самые последние замечательные новости о .NET Compact Framework и других технологиях разработки мобильного программного обеспечения, используемых компанией Microsoft, появляются на следующих Web-сайтах:
http://msdn.microsoft.com/mobility/
http://msdn.microsoft.com/mobility/prodtechinfo/devtools/netcf/faq/default.aspx
Для разработки приложений Microsoft Smartphone с использованием Visual Studio Net 2003 вам потребуется установить пакет SDK для Windows Mobile 2003-based Smartphones, доступный для загрузки по следующему адресу:
http://msdn.microsoft.com/mobility/windowsmobile/downloads/
Для просмотра постоянно обновляемого документа Wiki, содержащего ответы на наиболее часто задаваемые вопросы, посетите следующий сайт:
http://wiki.opennetcf.org/ow.asp?CompactFrameworkFAQ
Особенности взаимодействия с собственным кодом
Вызов собственного кода (native code) из VB.NET или C# не представляет особых сложностей, но вам следует знать о некоторых частных правилах и устоявшихся приемах. Лучше всего изучать это на примерах.
■ Основы работы с собственными кодами в среде .NET Compact Framework
An Introduction to P/Invoke and Marshalling on the Microsoft .NET Compact Framework
Авторы: Jon Box, Dan Fox; Quilogy
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/netcfintrointerp.asp