Мобільне програмування: Visual Basic. NET приходить на мобільні пристрої (исходники









Описується, як розробляти Windows-програми для інтелектуальних пристроїв, що підтримують. NET Compact Framework, за допомогою SDE (Smart Device Extensions) for Visual Studio. NET. Розглядається весь цикл розробки, налагодження й розгортання програми, а також показуються відмінності між. NET Framework і. NET Compact Framework.

Smart Device Extensions (SDE) for Microsoft Visual Studio. NET дозволяє застосувати весь ваш досвід. NET-програмування при розробці Windows-додатків для "інтелектуальних" пристроїв, що підтримують Microsoft. NET Compact Framework. За допомогою SDE можна створювати додатки для платформ Pocket PC і Microsoft Windows CE. NET, використовуючи знайомі мови – Microsoft Visual Basic. NET (або Microsoft Visual C #) і ті ж інструментальні засоби і бібліотеки класів, що і при розробці. NET-додатків для настільних комп'ютерів і серверів. Так як інтелектуальні пристрої не підтримують всі можливості, надаються їх повнорозмірними "родичами", найскладніше – з'ясувати, які складові частини Microsoft. NET Framework зазнали зміни через приведення цієї інфраструктури у відповідність з обмеженими можливостями мобільних пристроїв. На щастя, середа Visual Studio повністю підтримує мобільні пристрої і, зокрема, дозволяє налагоджувати на настільному комп'ютері програми, розраховані на ці пристрою.

Створювати SDE-додатки в Visual Basic. NET настільки просто, що у вас може виникнути спокуса відразу ж приступити до створення SDE-проекту, помістити елементи управління на форму і написати який-небудь код. Найближчим часом ми так і вчинимо. Але, крім того, я розгляну весь цикл розробки, налагодження та розгортання і покажу, де проявляється особлива природа SDE-програмування і стають помітними відмінності від розробки для настільних додатків. А тим, кого цікавить технічна сторона, я розповім, що відбувається "за лаштунками".

Додаток "Hello World"

Почнемо з традиційного програми "Hello World" – не дивлячись на очевидну тривіальність, його цілком достатньо для демонстрації всього процесу розробки, який стосовно інтелектуальним пристроїв складається з наступних етапів.


  1. Створення додатки в Visual Studio. NET на настільному комп'ютері.
  2. Розгортання додатки на пристрої.
  3. Налагодження додатки в Visual Studio. NET.

Будемо вважати, що ви встановили Visual Studio. NET і SDE (Smart Device Extensions) і що у вас є підключений пристрій або (за відсутності справжнього пристрою) емулятор Pocket PC.


  1. Створення нового SDE-проекту в Visual Basic. NET.

    1. Відкрийте діалогове вікно "New Project" і виберіть шаблон "Smart Device Application" з групи "Visual Basic Projects" (рис. 1).

      Рис. 1. Діалогове вікно New Project, шаблон Smart Device Application


    2. При необхідності змініть місцезнаходження проекту в полі Location. Можливо, вам буде зручніше створити для розробки SDE-додатків окремий підкаталог, що знаходиться поза використовуваного за замовчуванням дерева каталогів вихідного коду.
    3. У полі Name введіть назву програми (наприклад, "HelloWorld"). У каталозі, зазначеному в полі Location, буде створено новий каталог з вихідним кодом вашої програми.
    4. Клацніть OK.

  2. Це призведе до запуску Smart Device Application Wizard (мал. 2). Вам потрібно вибрати платформу, на яку ведеться розробка, – Windows CE або Pocket PC (де Pocket PC є специфічним типом устрою Windows CE). Від цього вибору залежить, який шаблон проекту будуть використовуватися для побудови спочатку порожнього додатки. Так, у формі шаблону "Windows Application" для Pocket PC присутній елемент управління MainMenu, якого немає в шаблоні для платформи Windows CE.

    Рис. 2. Smart Device Application Wizard


    1. Виберіть платформу (якщо будете використовувати емулятор, вкажіть Pocket PC).
    2. Виберіть тип проекту. Для нашого першого застосування, яке просто буде показувати форму на пристрої, виберіть "Windows Application".
    3. Клацніть OK, після чого майстер створить проект (це може зайняти якийсь час).

    Ви повинні побачити додаток на Visual Basic. NET, що виглядає, як показано на рис. 3. Розташування вікон у вас швидше за все буде трохи іншим, так як Visual Studio запам'ятовує позиції вікон, задані при роботі з іншими проектами.

    Рис. 3. SDE-проект, відкритий в Visual Basic. NET

Приділіть пару секунд вивчення вікон Visual Studio. Зверніть увагу: ви бачите майже те ж, що і при розробці настільних додатків на Visual Basic. NET. Перше, що впадає в око, – відсутність в першої версії SDE деяких компонентів, які відображаються на вкладці Device Controls вікна Toolbox, наприклад діалогових вікон (Color, Files, Font, Print) і "просунутих" елементів призначеного для користувача інтерфейсу (Calendar, ImageList, DataGrid). Крім того, з'явилася панель інструментів Device Extensions. І якщо ви виберете що-небудь на формі (розмір якої заданий у відповідності з характеристиками цільового інтелектуального пристрою), то побачите, що у вікні Properties показується менше властивостей.

Тепер виконаємо залишилися дії зі створення невеликий тестової програми.


  1. Помістіть на форму кнопку (елемент управління Button). Зверніть увагу на плоский вигляд кнопки – такий стиль зазвичай використовується на портативних пристроях.
  2. Двічі клацніть кнопку (або якось інакше відкрийте вікно коду) і в обробнику події Click кнопки введіть наступний код:

    MsgBox(“Hello World”)

  3. Натисніть <F9>, щоб встановити в цьому рядку точку переривання.
  4. Натисніть <F11>, щоб почати покрокове виконання програми. При цьому додаток компілюється (інформація про хід компіляції показується у вікні Output), а потім відкривається діалогове вікно Deploy.
  5. Виберіть цільовий пристрій (ми будемо використовувати Pocket PC Emulator) і клацніть Deploy, щоб приступити до розгортання. Як і при компіляції, інформація про хід розгортання показується у вікні Output, а в рядку стану Visual Studio. NET виводиться поточна інформація.
    Примітка Якщо у вашій конфігурації SDE є які-небудь помилки, вони виявляться саме на цьому етапі. Якщо ви прочитали і виконали інструкції з установки, то, як правило, проблема може виникнути тільки одна: не вдається з'єднатися з пристроєм. Зауважте, що в даній версії SDE навіть при використанні емулятора потрібно, щоб у комп'ютера був мережеву адресу. Якщо проблеми з установкою з'єднання вирішити не вдалося, будь ласка, прочитайте відповідну документацію.

Visual Studio. NET зв'яжеться з пристроєм і встановить вашу програму. Перш за все на пристрій встановиться. NET Compact Framework, якщо цієї інфраструктури ще не було на пристрої. Потім ваш додаток буде скопійовано до каталогу Windows (за замовчуванням). І, нарешті, додаток запуститься.

Отже, програма виконується на інтелектуальному пристрої (або емуляторі), і в той же час ви налагоджує її в Visual Studio. NET на настільному комп'ютері. Ви можете досліджувати додаток на свій розсуд або виконати наступні демонстраційні операції:


  1. Оскільки виконується покрокова налагодження, ви знаходитесь зараз на першому рядку програми: Application.Run (New Form1 ())
  2. Зверніть увагу: вам повністю доступна звичне середовище розробки Visual Studio. NET, зокрема такі вікна, як Locals, Immediate (Command), Call Stack і т. д.
  3. Продовжуйте виконання програми в покроковому режимі. Тепер ви потрапите в конструктор (New), а потім у підпрограму InitializeComponent. Після виконання оператора Application.Run в методі Main пристрій знову отримає фокус (при використанні емулятора), і на екрані з'явиться форма.
  4. Клацніть кнопку на формі. Ви знову повернетеся в Visual Studio. NET, так як ми встановили точку переривання в обробнику події Click кнопки.
  5. Продовжуйте покрокове виконання програми, поки на інтелектуальному пристрої не відкриється діалогове вікно (рис. 4).

    Рис. 16. GetPowerStatusEx і Power на пристрої з частково вбраними батареями

    Важливо зауважити, що не обов'язково будуть використовуватися всі поля структури. Наприклад, iPAQ не передає для зовнішньої батареї, що підключається по кабелю, BatteryBackupFlag і біт Charging, так що і в нашому прикладі, і у вбудованому модулі Power показується не вся можлива інформація.


    Міграція та портування

    Як розробнику на Visual Basic, вам, можливо, буде потрібно переносити код існуючих додатків на нові платформи, що підтримують. NET Compact Framework. Може, ви будете портувати настільне застосування, використовує повну інфраструктуру, а може, і програми, написані із застосуванням старих інструментальних засобів Microsoft для портативних пристроїв на зразок Embedded Visual Basic 3.0.

    Перенесення додатків, розроблених з використанням повної версії. NET Framework, на SDE не особливо складний, але може вимагати багато часу. Якщо в одному примірнику Visual Studio. NET відкрити настільну версію, а в іншому – створити SDE-проект, виявиться, що можна просто скопіювати багато елементів управління з настільної версії і вставити їх на SDE-форму. При цьому багато властивості зберігаються. Звичайно, з елементами управління, не підтримуваними. NET Compact Framework, так вчинити не вийде. Тому, якщо виконання вашої програми залежить від коду обробників подій цих елементів управління, цю частину додатки доведеться переробити. Також доведеться витратити якийсь час на "стиснення" елементів управління, щоб вони вміщалися на невеликому дисплеї портативного пристрою.

    З іншого боку, код процедур переноситься простіше. Швидше за все виявиться, що можна скопіювати більшу частину оголошень і обробників подій, що знаходяться у визначенні форми. Якщо каки-то об'єктів і їх членів в. NET Compact Framework немає, можна згенерувати за ним список записів TODO в Task List, а перед компіляцією програми – відреагувати на ці записи.

    Перенесення програми, розробленого на Embedded Visual Basic 3.0, зажадає куди більшої роботи. Зокрема, стара версія Visual Basic більше нагадувала VBScript, ніж добре нам знайома настільна версія Visual Basic. У ній підтримувався лише тип даних Variant, не підтримувалися UDT (User Defined Types) і не було більшості елементів управління, що застосовуються в настільній версії Visual Basic. До того ж, додатки, що розробляються за допомогою інструментів старого покоління, створювалися з застосуванням компонентів, об'єктів доступу до даних і елементів управління, що спираються на COM. В. NET Compact Framework всього цього немає. У кінцевому підсумку може виявитися, що доведеться розробляти додаток наново.


    Висновок

    Мета цього документа – дати вам, як розробнику на Visual Basic, уявлення про те, що являє собою програма для інтелектуального пристрою, в якій використовується SDE for Visual Studio. NET. Я розповів про відмінності між. NET Framework і. NET Compact Framework. Крім того, я показав весь цикл розробки, налагодження й розгортання програми. Навіть якщо у вас немає інтелектуального пристрою, розробку можна вести за допомогою повнофункціонального програмного емулятора.

    У той же час я описав далеко не всі аспекти SDE-розробки. Є й інші області, які можуть зацікавити розробників на Visual Basic, що вже використовують SDE, щоб швидко створювати додатки для інтелектуальних пристроїв. Зокрема, у розробника може виникнути бажання поекспериментувати з написанням власних елементів керування. Якщо вам потрібна потужна функціональність для роботи з базами даних, можна встановити Microsoft SQL Server Windows CE Edition.

    Примітка Екранні знімки для цього документа отримані за допомогою програмного емулятора і Remote Display Control. Якщо ви хочете зробити екранні знімки свого пристрою, наприклад для написання документації, то можете завантажити Remote Display Control з Web-сайту Microsoft, присвяченого мобільних пристроїв.

    Додаткову інформацію з Visual Studio. NET і. NET Compact Framework див. на Web-сайті Device Development, присвяченому розробці для пристроїв із застосуванням Visual Studio. NET.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*