Jun.29

Windows Mobile 5 Development Startup – Part II – Deploying

In dit artikeltje wil ik het hebben over het maken van een setup voor een Pocket PC applicatie. Ik ga gebruik maken van de solution die ik in het vorige blog artikel heb gemaakt WM5Test.sln. Op een pocket PC worden installaties in de meeste gevallen verpakt in een bestand met de .cab extensie. In VS 2005 kunnen we zo’n soort bestand gemakkelijk maken.

Open de solution in VS 2005 zoals gemaakt volgens het vorige blog artikel.

  • Kies in het in het File Menu > Add > New Project
  • Ga in de tree naar Other Project Types > Setup and Deployment.
  • Kies de template “Smart Device CAB Project”.
  • Geef het project de naam “WM5TestCAB”.
  • wm5_2_pic1.jpg

    In VS 2005 wordt nu default het File System Dialog getoond. We moeten nu zorgen dat in het CAB bestand in iedergeval de assemblies van onze in het vorige artikel gebouwde applicatie worden opgenomen.

  • Klik met de rechtermuisknop op de “Applicatie Folder” node.
  • Kies Add > Project Output.
  • Kies Primary Output.
  • wm5_2_pic2.jpg

  • Compileer het setup project.
  • Er staat nu een CAB-bestand in de bin directory van het WM5TestCAB-project.

    Als eerste gaan we de emulator resetten zodat we zeker weten dat we met een kale Pocket PC werken.

  • Open het menu Tools > Device Emulator Manager.
  • Klik met de rechtermuisknop op de emulator die wordt gebruikt en kies “Clear Save State”.
  • wm5_2_pic3.jpg
    De state is nu geheel leeg. We starten de emulator nu door op “Connect” te klikken in hetzelfde menu. We gaan nu het installatiebestand (WM5TestCAB.cab) op de emulator plaatsen.

  • Kies nogmaals in hetzelfde menu van de Device Emulator Manager bij je device “Cradle”.
  • Let op: In de verbindingsinstellingen van ActiveSync dien je wel verbindingen toe te staan voor “DMA”.

  • Plaats nu via de verkenner van ActiveSync het WM5TestCAB.cab bestand op emulator. Ik heb hem geplaatst in de My Documents folder.
  • We gaan nu naar de Pocket PC emulator.

  • Kies Start > Programs > File Explorer.
  • Klik op WM5TestCAB.
  • Als het goed is wordt het bestand nu geinstalleerd.

  • Open opnieuw de file explorer ga naar My Device > Program Files > WM5TestCAB.
  • Klik op WM5Test.
  • Je krijgt waarschijnlijk een foutmelding met de strekking dat het Compact Framework 2.0 niet kan worden gevonden.
    We gaan het framework nu installeren.

  • Ga naar C:Program FilesMicrosoft Visual Studio 8SmartDevicesSDKCompactFramework2.0v2.0WindowsCEwce500 op je lokale PC.
  • Kies de directory voor de processor die voldoet aan je Pocket PC in mijn geval armv4i.
  • Kopieer het bestand NETCFv2.wm.armv4i.cab naar de My Documents directory van de Pocket PC.
  • Open op de Pocket PC de file explorer en ga opnieuw naar My Documents om de zojuist gekopieerde .cab file te installeren.
  • Restart de emulator via de WM5 software als daar om wordt gevraagd.
  • Open File Explorer en start de WM5Test applicatie opnieuw.
  • Als het goed is draait de applicatie nu.

    Het vervelende is echter dat we de applicatie alleen kunnen starten via de file explorer. Daar gaan we wat aan doen. We zorgen dat er bij installatie een icon wordt toegevoegd aan het start menu.

    wm5_2_pic4.jpg

  • Ga naar de File System (WM5TestCAB) tab in VS2005 en klik in lijst aan de linkerkant met de rechtermuisknop op “Application Folder”.
  • Kies “Create shortcut to primary output from WM5Test”.
  • Er wordt nu een shortcut toegevoegd aan de application folder. Hernoem deze naar bijv. “WM5Test”.
  • wm5_2_pic5.jpg

  • Klik met de rechtermuisknop aan de linkerkant op “File System on Target Machine” > “Add Special Folder” > “Start Menu Folder”.
  • Drag-and-Drop de zojuist aangemaakte shortcut naar de nieuw aangemaakte folder.
  • Maak een nieuwe build van het CAB project.
  • Voordat we de nieuwe CAB file op de emulator gaan installeren moeten we eerst de oude versie verwijderen. Dit gaat alsvolgt.

  • Op de emulator kies in het Start Menu > Settings.
  • Kies System tab > Remove Programs.
  • Selecteer WM5Test en dan remove.
  • Het programma wordt van de Pocket PC emulator verwijderd. Kopieer nu de CAB file naar de emulator zoals eerder beschreven en installeer deze. Vergeet niet een leuk icoontje in te stellen voor de executable. Dit kan je doen door met de rechtermuisknop op het project WM5Test te klikken in de Solution Explorer en dan Properties te kiezen.

    Dat was het weer. Part III en daarmee het op een na laatste deel over dit onderwerp gaat over het gebruik van SQL Mobile.

    Jun.19

    Windows Mobile 5 Development – Part I – Building

    In de komende blog artikelen wil ik het een en ander kwijt over Windows Mobile 5 development. In dit artikel een quick start tutorial.

    Onlangs heb ik mijzelf een PDA met Windows Mobile 5 aangeschaft. Een mooi moment om eens te gaan experimenteren met het .NET compact framework (het .NET framework dat gebruikt wordt op Pocket PC’s). Na het bouwen van een kilometerregistratie applicatie heb ik wat ervaring op dit gebied op gedaan en wat is nu leuker dan dat even met de wereld te delen.

    Compact
    Het .NET compact framework is uiteraard zoals de naam al zegt compacter dan zijn grote broer voor desktops en servers. Wat mij bijvoorbeeld opviel is dat GradientBrushes niet kunnen worden terug gevonden in het framework. De vraag is of dat is gedaan om het framework compact te houden of om performance technische redenen niet handig is. Een ding is zeker het compact framework is een stuk minder compleet als het ‘normale’ .NET framework. Overigens heb ik zelf niet ervaren dat dit een belemmering is voor het maken van mooie applicaties. Alles is er maar dan in iets afgeslankte vorm.

    Wat heb je nodig?
    Om deze tutorial te kunnen uitvoeren dien je te beschikken over Windows XP of Windows 2003 server met service pack 1 en daarnaast uiteraard Visual Studio 2005. Verder dien je ActiveSync 4.1 geinstalleerd te hebben (verzorgt synchronisatie tussen pocket pc en desktop).

    Windows Mobile 5 SDK for Pocket PC
    Aangezien Visual Studio 2005 (VS2005) standaard niet voorziet in het native ontwikkelen van Windows Mobile 5 applicaties dient de Windows Mobile 5 SDK for Pocket PC te worden geinstalleerd. Na installatie zijn er een aantal templates in VS2005 toegevoegd voor het bouwen van Windows Mobile 5 (WM5) applicaties.

    Windows Mobile Developer Power Toys
    Om het leven tijdens development wat aangenamer te maken raad ik aan de Windows Mobile Developer Power Toys te installeren. In dit pakketje zit een Remote Desktop-achtige oplossing waarmee het Pocket PC scherm kan worden bekeken op de development machine. Vergeet na installatie niet het C:Program FilesWindows Mobile Developer Power ToysActiveSync_Remote_Displayreadme.txt door te lezen. Eigenlijk ondersteunen de toys alleen Pocket PC’s tot versie 4 echter bij mij kreeg ik deze software ook aan de praat door gebruik te maken van de v4.0 spullen.

    Aan de slag
    wm5_1_pic1.jpg

  • Open Visual Studio 2005
  • Kies New > Project…
  • Kies in de tree Visual C# > Smart Device > Windows Mobile 5.0 Pocket PC.
  • Note: de projecten met “(1.0)” achter de naam zijn applicaties die worden gebaseerd op het Compact Framework 1.0 ipv 2.0

  • Kies “Device Application”.
  • Geef het project de naam “WM5Test”.
  • wm5_1_pic2.jpg
    Als alles goed gaat verschijnt bovenstaande form binnen VS2005.

  • We voegen een label toe met als text “Hello World!”.
  • Start de applicatie (F5).
  • wm5_1_pic3.jpg
    Bovenstaande scherm verschijnt. Het leuke is dat we hier kunnen kiezen of we een emulator willen gebruiken om te debuggen of een echte Pocket PC (PDA bijv.). Is je Pocket PC verbonden via ActiveSync dan kun je kiezen voor de bovenste optie. Overigens ga ik hier eerst met de emulator aan de slag.

    De Emulator
    De emulator is traag. Sta niet gek te kijken als je een minuut naar een zwart scherm aan het kijken bent voordat hij opstart. Op mijn PC heeft de emulator soms 280Mb geheugen in gebruik. Voor de rest is hij overigens best betrouwbaar. Tijdens debuggen wordt de emulator benaderd door VS2005 via DMA (Direct Memory Access als ik me niet vergis). Het is overigens mogelijk als je dat handig vind de ge-emuleerde WM5 te koppelen aan ActiveSync door in het menu Tools > Device Emulator Manager rechts te klikken op de actieve emulator en Cradle aan te klikken in het popup menu. Als het goed is komt er dan een connectie met ActiveSync tot stand.

    wm5_1_pic4.jpg
    De eerste keer compileren kan even duren omdat het .NET Compact Framework op de emulator wordt geinstalleerd. Daarna zal je zien dat de nieuwe applicatie netjes wordt gestart en “Hello World!” op het form van de applicatie wordt getoond.
    wm5_1_pic5.jpg
    Ben je klaar met debuggen, sluit de emulator dan niet af maar stop met de stop knop in VS2005 de applicatie. Verder is het aan te raden bij het afsluiten van de emulator de state op te slaan. Het Compact Framework blijft dan aanwezig op de emulator en hoeft de volgende keer niet opnieuw te worden geinstalleerd.

    OK, dit was het voor nu. Volgende keer wil ik het hebben over het maken van een setupbestand voor je Pocket PC en de installatie van het Compact Framework.

    Jun.17

    Microsoft SQL Server 2005 Everywhere Edition CTP

    Microsoft heeft een de eerste CTP van SQL Server 2005 Everywhere uitgebracht. Een nieuw product in de familie. Voor mensen die bekend zijn met SQL Mobile, een vergelijkbaar product maar dan voor de Desktop. De SQL Server functionaliteit kan worden ge-embed in de desktop .NET software zonder dat daar (in tegenstelling tot bijv. SQL 2005 Express) een service voor hoeft te worden gestart.

    Praktisch komt het er op neer dat Everywhere klaar voor gebruik is als er een een referentie is toegevoegd naar de SqlServerCe assembly en het SqlCeConnection object verwijst naar de gewenste .sdf database file. Omdat Everywhere gebaseerd is op SQL Mobile is de betrouwbaarheid van data gewaarborgd bij bijv. computeruitval. De runtime neemt ongeveer 1.7Mb in, dat is dus niet echt dramatisch te noemen. Het mooie is natuurlijk ook dat een bestaand applicatie op basis van Everywhere, gemakkelijk opgeschaald kan worden naar een zwaarder SQL Server product met minimale code aanpassingen.

    Meer informatie
    Microsoft SQL Server 2005 Everywhere
    Steve Laskers blog