Специфика разработки для Windows Mobile Василий Филиппов Microsoft MVP Mobile Devices Spb Software House
О платформе Windows Mobile Основана на Windows CE Основана на Windows CE Многозадачная, многопоточная Многозадачная, многопоточная API похож WinAPI API похож WinAPI Процессор - ARM Процессор - ARM WM = Pocket PC + Smatphone + … WM = Pocket PC + Smatphone + …
Отличия платформы Windows Mobile от Windows Другой shell, один экземпляр Другой shell, один экземпляр Маленький экран, на Smartphone не touchscreen Маленький экран, на Smartphone не touchscreen Единая база данных PIM Единая база данных PIM Специфические решения (SIP, Today, …) Специфические решения (SIP, Today, …)
Что общего для разработчика Visual C++, debugger, … Visual C++, debugger, … Очень похожий WinAPI Очень похожий WinAPI MFC/ATL (Pocket PC) MFC/ATL (Pocket PC) C#,.NET (усеченный,.NET CF) C#,.NET (усеченный,.NET CF) COM COM
Отличия для разработчика Другие задачи Другие задачи Немного другие идеи в UI Немного другие идеи в UI Удаленная отладка, Emulator Удаленная отладка, Emulator Новый API (SIP, Today, …) Новый API (SIP, Today, …) Unicode Unicode
Демонстрация Сумматор для Windows и Pocket PC Сумматор для Windows и Pocket PC
Какие средства разработки использовать eVB – не используйте eVB – не используйте eVC – Pocket PC eVC – Pocket PC eVC – Pocket PC eVC – Pocket PC NET CF (C#) – для enterprise.NET CF (C#) – для enterprise Java – в экзотических случаях Java – в экзотических случаях VisualCE, HandBase, … VisualCE, HandBase, …
Один код для всех мобильных платформ У каждой платформы своя специфика У каждой платформы своя специфика Top20 Pocket PC программ все используют PPC специфику Top20 Pocket PC программ все используют PPC специфику Разные UI: разные размеры экрана, touchscreen или нет, … Разные UI: разные размеры экрана, touchscreen или нет, … Одна и таже задача на разных платформах решается по разному Одна и таже задача на разных платформах решается по разному
Один код для всех мобильных платформ
Java на Pocket PC Write once run everywhere – не работает Write once run everywhere – не работает Плохие и несовместимые JVM Плохие и несовместимые JVM Не mainstream = плохая поддержка Не mainstream = плохая поддержка Отсутствие хороших библиотек Отсутствие хороших библиотек
Разработка для нескольких платформ Shared C++ business code Shared C++ business code Для игр есть платформеннонезависимые библиотеки (GapiDraw) Для игр есть платформеннонезависимые библиотеки (GapiDraw)
С чего начать Скачать eVC++ Скачать eVC++ Посмотреть samples Посмотреть samples Прочитать статьи на MSDN Прочитать статьи на MSDN
Где искать помощи Newsgroups: public.microsoft.pocketpc.developer Newsgroups: public.microsoft.pocketpc.developer MSDN MSDN Pocket PC Developer Network Pocket PC Developer Network Книги Книги
Будущее разработки для Windows Mobile Visual Studio Visual Studio Возрастающая роль.NET Возрастающая роль.NET C++ остается основным для consumer приложений C++ остается основным для consumer приложений
Вопросы и ответы