4. Microsoft eMbedded Visual Basic

Transcription

4. Microsoft eMbedded Visual Basic
1
Universität Osnabrück
Microsoft eMbedded Visual Basic
Entwicklung von Anwendungen
für den Pocket PC
Seminararbeit Mobile Computing
SS 2003
Holger Otte
2
Inhaltsverzeichnis
1. Einleitung
2. Pocket PC
2.1 Ausstattung
2.2 Vergleich zu anderen mobilen Geräten
3. Anwendungen auf dem Pocket PC
3.1 Überblick
3.2 Beispielanwendung Fensterbauer
4. Microsoft eMbedded Visual Basic
4.1 Die Microsoft eMbedded Visual Tools
4.2 Die Arbeit mit eMbedded Visual Basic
4.3 Vergleich zu Visual Basic 6
5. Entwicklung einer integrierten Anwendung
5.1 Überblick
5.2 Datenbankzugriff
5.3 Datenübertragung
6. .NET Compact Framework
6.1 .NET Framework
6.2 .NET Framework und die eMbedded Visual Tools
7. Zusammenfassung
3
1. Einleitung
In den letzten Jahren haben sich PDAs ("Personal Digital Assistants") immer weiter am
Markt durchgesetzt. Gleichzeitig sind diese Geräte immer leistungsstärker geworden, so
dass sich über reine Organizer-Funktionen hinaus ganz neue Anwendungsfelder auftun. Beispiele für PDAs dieser neuen Generation sind die von mehreren Herstellern angebotenen
Pocket PC.
Mircosoft bietet mit eMbedded Visual Basic eine Entwicklungsumgebung an, die es ermöglichen soll, anspruchsvolle Anwendungen für diese Geräte zu entwickeln. Ziel dieser Arbeit
ist es, einen Einblick in den Umgang mit dieser Umgebung zu geben so wie deren Möglichkeiten und Grenzen aufzuzeigen.
Die Anforderungen, die an eine Entwicklungsumgebung zu stellen sind, hängen entscheidend von den Anwendungen ab, die mit Hilfe dieser Software erstellt werden sollen. Aus
diesem Grund werden in der Arbeit zunächst die wichtigsten (technischen) Eigenschaften
eines Pocket PC erläutert und ein kurzer Vergleich zu anderen mobilen Geräten vorgenommen. Darauf aufbauend wird eine Übersicht über sinnvolle Anwendungen gegeben und ein
Beispiel einer betriebswirtschaftlichen Anwendung näher aufgezeigt.
Diese dient als Basis für den Hauptteil der Arbeit, in dem aufgezeigt wird, wie mit Hilfe von
eMbedded Visual Basic eine in das Unternehmensumfeld integrierte Anwendung entwickelt
werden kann. Abschließend wird ein Ausblick auf das .NET Compact Framework von Mircosoft gegeben, welches wohl die zukünftige Anwendungsentwicklung für den Pocket PC
maßgeblich beeinflussen wird.
4
2. Pocket PC
2.1 Ausstattung
Ein Pocket PC ist zunächt einmal ein PDA mit einem speziell für dieses Gerät entwickelten
Betriebssystem von Microsoft. Die zur Zeit auf dem Markt befindlichen Pocket PC sind mit
der Version Pocket PC 2002 ausgestattet. Ende Juni diesen Jahres wurde aber bereits das
Nachfolgesystem vorgestellt: Pocket PC 2003, auch Windows Mobile 2003 genannt. Entsprechende Geräte sollen in den nächsten Wochen auf den Markt kommen. [vgl. Heise03].
Abbildung 1: Pocket PC Compaq HP IPAQ H3950
Beide Versionen basieren auf Windows CE, dem Basis-Betriebssystem von Microsoft für
Mobile Geräte. Dabei setzt Pocket PC 2002 auf Windows CE 3.0 auf, Pocket PC 2003 auf
Windows CE .NET 4.2.
Pocket PC besitzen über das Betriebssystem hinaus aber noch weitere von Microsoft spezifizierte Eigenschaften, die die Hardware des Geräts betreffen. So sind diese mit einem Farbdisplay mit einer Auflösung von 320 x 240 Pixeln und 65535 Farben ausgestattet. Sie besitzen keine Maus und keine Tastatur, die Bedienung erfolgt, wie bei PDAs üblich, über einen
Stift. Eine entsprechende Software zur Schrifterkennug ist vorhanden. Daneben existieren
wenige Tasten, mit denen bestimmte Funktionen direkt angesteuert werden können. [vgl.
Connect03, S. 160ff]
Die zur Zeit am Markt befindlichen Geräte verfügen über einen ROM von mindestens 32
MB, in dem das Betriebssystem und einige vorinstallierte Anwendungen abgelegt sind, und
einen RAM von mindestens 64 MB, der für Anwendungen und Dateien genutzt wird. Über
Steckkarten kann der Speicher darüber hinaus erweitert werden. Die aktuellen Geräte ver-
5
fügen über einen Intel XScale Prozessor mit 400 MHz [vgl. Connect03, S. 160ff]
Pocket PC besitzen mehrere Schnittstellen zur Kommunikation mit anderen Pocket PC oder
Fremdsystemen. Über eine Basisstation kann der PDA mit einem PC verbunden werden.
Eine Software namens Active Sync erlaubt die Synchronisation des Pocket PC mit Mircosoft
Outlook auf dem PC so wie die Übertragung von Dateien und Programmen.
Eine Infrarotschnittstelle ermöglicht eine drahtlose Kommunikation mit einer geringeren
Übertragungsrate [vgl. Panther03, S. 326] Neuere Geräte verfügen zum Teil über ein Bluetooth-Interface und über eine entsprechende Zusatzkarte kann der PDA in ein WLAN gebracht werden. Für einige Anwendungen ist die Erweiterung des Pocket PC um einen GPSEmpfänger zur Navigation interessant. Je nach Ausstattung liegt der Kaufpreis eines Pocket
PC in einer Größenordnung von 500 - 800 € [vgl. Connect03, S. 155ff]. Die Abbildung 1
zeigt einen Pocket PC des Herstellers HP, den Compaq IPAQ H3950, der als Testsystem für
die Programmierbeispiele in dieser Arbeit eingesetzt wurde.
2.2 Vergleich zu anderen Systemen
Möchte man einen Pocket PC in Vergleich zu anderen mobilen Geräten setzen, so lässt sich
dieser am ehesten zwischen einem einfachen Organizer auf der einen Seite und einem Notebook auf der anderen Seite einordnen. Gegenüber dem Organizer, der in der ersten Linie die
„klassischen“ Organizer-Funktionatitäten wie Terminkalender und Adressbuch unterstützt,
besitzt der Pocket PC ein besseres Display und ist deutlich leistungsfähiger, so dass er sogar
für Anwendungen im Multimediabereich in Frage kommt. Dabei ist der Pocket PC jedoch
wesentlich teurer, teilweise sogar um ein Vielfaches, und die am Markt angebotenen Geräte,
wie zum Beispiel die oben erwähnten HP IPAQs, sind im Allgemeinen größer und auch unhandlicher als ein einfacher Organizer. [vgl. Connect03, S. 151]
Auf der anderen Seite ist ein Pocket PC im Vergleich zu einem Notebook deutlich kleiner,
leichter, handlicher und auch preiswerter. Insbesondere bei der Frage nach sinnvollen Anwendungsmöglichkeiten für Pocket PC muss allerdings berücksichtigt werden, dass ein
solcher PDA im Vergleich zu einem Notebook weniger leistungsfähig ist, ein wesentlich
kleineres Display besitzt und auf eine Tastatur verzichten muss. Auch wenn die Leistungsfähigkeit eines Pocket PC in den nächsten Jahren sicher weiter steigen wird, ist davon auszugehen, dass weder das Display vergrößert noch eine (leicht zu bedienende) Tastatur eingebaut wird, um die Handlichkeit zu bewahren.
6
3. Anwendungen auf dem Pocket PC
3.1 Überblick
Das klassiche Anwendungsfeld eines PDAs stellen die bereits angesprochenen OrganizerFunktionen dar. Diese werden natürlich auch von einem Pocket PC unterstützt und zwar
über das mit ausgelieferte Pocket Outlook. Die Leistungsfähigkeit eines Pocket PC eröffnet
darüber hinaus aber eine Reihe weiterer Anwendungsfelder. So befinden sich im Lieferumfang des Betriebssystems Pocket Word und Pocket Excel, welche Teilfunktionen der bekannten Windows-Varianten bieten. Angesichts des kleinen Bildschirms und der fehlenden
Tastatur ist aber wohl nicht davon auszugehen, dass ein Pocket PC im größeren Umfang für
Office-Funktionen, wie das Verfassen eines Textes, eingesetzt wird. Ein weiteres denkbares
Anwendungsfeld bilden Computerspiele jeglicher Art, auf die an dieser Stelle aber nicht
näher eingegangen werden soll.
In betriebswirtschaftlich sinnvollen Anwendungen ist der Pocket PC im Regelfall in ein
größeres IT-Umfeld integriert. Er übernimmt dabei schwerpunktmäßig Aufgaben im Rahmen der mobilen Datenpräsentation und Datenerfassung. Die Verarbeitung der Daten wird
in erster Linie von anderen Systemen übernommen, was einen entsprechenden Datenaustausch nötig macht. Die dazu notwendige Verbindung wird entweder ständig offen gehalten,
zum Beispiel über ein WLAN, oder aber nur zu bestimmten Zeiten hergestellt, zum Beispiel
über ein Mobilfunknetz. [vgl. Winlinx02]
3.2 Beispielanwendung Fensterbauer
In den weiteren Kapiteln der Arbeit soll aufgezeigt werden, welche Möglichkeiten die eMbedded Visual Tools bieten, um Anwendungen dieser Art zu entwickeln. Basis der Überlegungen ist dabei das folgende (fiktive) Beispiel eines Fensterherstellers, das in gewisser
Weise als typisch gelten kann und aus dem sich wichtige Anforderungen, die an eine Entwicklungsumgebung zu stellen sind, ableiten lassen.
Ein Fensterbauer besitzt zur Unterstützung des Vetriebs seiner Produkte eine Reihe von Außendienstmitarbeitern. Stellt ein Kunde eine Anfrage, so wird dieser von einem dieser Mitarbeiter aufgesucht, der dann vor Ort die Größen und die gewünschten Bauweisen (zum
Beispiel Profilart und -farbe, Anzahl der Flügel, Anzahl und Breite der Sprossen, usw.) der
Fenster aufnimmt. Diese Informationen dienen dann als Basis für die anschließende Kalkulation eines Angebots.
Die zur Zeit praktizierte Ausgestaltung des Prozesses sieht folgendermaßen aus: Die Daten
werden beim Kunden handschriftlich auf einem Formular festgehalten. Dabei ist der Außendienstmitarbeiter mit entsprechendem Informationsmaterial in Form von Katalogen ausgestattet, in denen die möglichen Bauweisen, wie zum Beispiel die maximale Flügelbreite
beschrieben sind. Die ausgefüllten Formulare werden anschließend zum Werk weitergeleitet
und dort von einer Innendienstmitarbeiterin in das ERP-System übertragen, welches die
betrieblichen Prozesse des Unternehmens unterstützt. Es wird ein Angebot erstellt, dass dem
7
Kunden zugeschickt wird.
Dieser Prozess könnte durch den Einsatz eines Pocket PC deutlich vereinfacht werden.
Grundidee ist die Aufnahme der Daten vor Ort nicht mehr handschriftlich durchzuführen,
sondern diese mit dem PDA zu unterstützen. Die gemessenen Fenstergrößen so wie die gewünschte Bauweise werden direkt in den Pocket PC eingetragen und sind somit sofort in
elektronischer Form verfügbar. In dem Gerät sind alle notwendigen Informationen abgelegt,
so dass auf den Einsatz von Katalogen größtenteils verzichtet werden kann. Nach Eingabe
aller Daten kann über den Pocket PC noch vor Ort beim Kunden das Angebot erstellt werden.
Pocket PC -
Pocket
Outlook
Client 1
...
Client n
Anwendung
ApplikationsServer
Mail
Termine
Aufgaben
Datenbank
Pocket PC
DBMS
ERP-System
Abbildung 2: Architektur der Beispielanwendung des Fensterbauers
Im Vergleich zu einem Notebook besitzt der Pocket PC für diesen Einsatzzweck den Vorteil,
dass er deutlich handlicher ist. Der Außendienstmitarbeiter kann mit dem PDA von Fenster
zu Fenster über die Baustelle gehen und die jeweiligen Daten erfassen. Die fehlende Tastatur
ist angesichts der vergleichsweise geringen Texteingaben kein gravierender Nachteil.
Die Pocket PC der Außendienstmitarbeiter kommunizieren in regelmäßigen Abständen mit
dem ERP-System des Fensterbauers. Dabei werden die anliegenden Kundenanfragen übermittelt, die erstellten Angebote an das System übergeben und ggf. Kataloginformationen
aktualisiert. Die Abbildung 2 zeigt eine mögliche Archiktektur der Anwendung. Auf der einen Seite steht das ERP-System, welches in drei Ebenen (DBMS, Applikations-Server und
Client aufgebaut ist. Auf der anderen Seite findet sich der Pocket PC eines Außendienstmitarbeiters. Die dort installierte Anwendung besitzt eine einfache Benutzeroberfläche und
verwaltet Kataloginformationen, Kundenanfragen und -angebote in einer lokalen Datenbank. Sie kommuniziert beispielsweise über ein Mobilfunknetz mit dem Applikations-Server des ERP-Systems zum Datenaustausch. Ergänzend kann eine Anbindung an Pocket
Outlook sinnvoll sein, um dort zum Beispiel Kundenkontakte aus Anfragen und Angeboten
automatisch einzupflegen.
8
Über die vorgestellte Lösung hinaus wäre es denkbar, den Pocket PC mit einem GPS-Empfänger und einem Navigationssystem auszustatten, so dass auf Basis der vom ERP-System
übermittelten Kundenanfragen eine Route vorgeschlagen werden kann und der Außendienstmitarbeiter direkt zum Kunden geführt wird.
9
4. Microsoft eMbedded Visual Basic
4.1 Die Microsoft eMbedded Visual Tools
Die aktuelle Version der Microsoft eMbedded Visual Tools kann kostenfrei über das Internet
heruntergeladen werden [Download01] und enthält die Entwicklungsumgebungen Mircosoft eMbedded Visual Basic 3.0 und Mircosoft eMbedded Visual C++ 3.0. Beide Umgebungen können auf einem PC unter Microsoft Windows betrieben werden. EMbedded Visual
Basic ermöglicht die Entwicklung von interpretierten Visual Basic Anwendungen. Der Interpreter ist beim Pocket PC 2002 standardmäßig im ROM enthalten. Mit eMbedded Visual
C++ können demgegenüber kompilierte Anwendungen in C++ entwickelt werden.
Mit den eMbedded Visual Tools werden weiterhin einige ActiveX-Steuerelemente ausgeliefert, die in beiden Umgebungen eingesetzt werden können. Es handelt sich dabei zum einen
um sichtbare Steuerelemente, zum Beispiel für die Darstellung einer Tabelle auf einem Formular, und zum anderen um unsichtbare Steuerlemente, zum Beispiel zum Zugriff auf eine
Datenbank. Für die Arbeit mit den eMbedded Visual Tools empfiehlt sich darüber hinaus die
Installation des Mircosoft Pocket PC 2002 SDK, welches ebenfalls kostenlos erhältlich ist
[Download01]. Dieses enthält einen Pocket PC 2002 Emulator, auf dem die entwickelten
Anwendungen getestet werden können.
4.2 Die Arbeit mit eMbedded Visual Basic
Die Abbildung 3 zeigt die Benutzeroberfläche von eMbedded Visual Basic. Wer bereits Erfahrungen mit Visual Basic 6.0 hat, der entsprechenden Umgebung für die Entwicklung von
Anwendungen für das Windows-Betriebssystem auf einem PC, erkennt viele Dinge wieder.
In der Tat ist es so, dass sich die Arbeit mit beiden Systemen ähnlich gestaltet, es ergeben
sich aber auch einige Unterschiede.
EMbedded Visual Basic ermöglicht die Entwicklung von Anwendungen ohne und mit Benutzeroberfläche. Im letzteren Fall, der sicherlich den Regalfall darstellt, wird die Anwenderschnittstelle aus Formularen aufgebaut, auf denen wiederum Steuerelemente, wie Schaltflächen oder Textfelder, angeordnet sind. Die Formulare werden in einem graphischen
Editor, dem Formulareditor, entworfen; der zugehörige Programmcode im sogenannten
Quelltexteditor bearbeitet (siehe auch Abbildung 3).
Visual Basic implementiert in Ansätzen Konzepte aus der Objektorientierung. So können
Formulare und Steuerelemente als Objekte angesehen werden, die bestimmte Eigenschaften
und Methoden besitzen. Die Eigenschaften eines Objekts beschreiben beispielsweise die
Position oder das Erscheiungsbild des Objekts. Sie können unter anderem in einem Eigenschaftenfenster gesetzt werden. Bei den Methoden eines Objekts handelt es sich letztlich um
Prozeduren und Funktionen, die diesem zugeordnet sind. Sie werden im Quelltexteditor bearbeitet.
Neben Ansätzen aus der Objektorientierung bedient sich Visual Basic dem Konzept der er-
10
eignisgesteuerten Programmierung. Während des Programmablaufs werden, zum Beispiel
bei der Bedienung bestimmter Steuerelemente, sogenannte Ereignisse ausgelöst. Ein Ereignis kann mit einer Prozedur, einer so genannten Ereigisprozedur verbunden werden, die dem
jeweiligen Formular zugeordnet ist. Bei Auslösung des Ereignisses wird die zugehörige Ereignisprozedur ausgeführt.
Abbildung 3: Benutzeroberfläche Microsoft eMbedded Visual Basic
Die Abbildung 3 zeigt ein einfaches Beispiel, welches den Mechanismus verdeutlichen soll:
Ein kleines Formular besitzt eine Schaltfläche und ein Textfeld, welches nach dem Programmstart leer ist. Drückt der Anwender nun auf die Schaltfläche, so wird die zugeordnete
Ereignisprozedur btnDrueck_Click des Formulars ausgelöst. In dieser findet sich eine Anweisung, die die Eigenschaft „Text“ auf den Wert „Hallo Welt“ setzt, womit der Text in dem
Textfeld erscheint. Die Verknüpfung zwischen Steuerlement so wie Ereignis auf der einen
Seite und Ereignisprozedur auf der anderen Seite erfolgt letztlich über den Namen der Prozedur, der sich aus dem Namen des Steuerlelements und dem Namen des Ereinisses zusammensetzt. Der Prozedurkopf wird nach der Auswahl des Steuerelements und des Ereignisses
auch vom System generiert.
Die Programmmierung einer Oberfäche mit eMbedded Visual Basic ist vergleichsweise
leicht zu erlernen und funktioniert bei kleineren Beispielen recht gut. Bei größeren Formularen mit vielen Steuerlementen wird der Quellcode allerdings leicht unübersichtlich. Es
empfielt sich in diesen Fällen die Ereignisprozeduren eher knapp zu halten und die Anwen-
11
dungslogik auszulagern. Ein weiteres Problem ergibt sich bei der Umbennung eines Steuerelements: werden die zugehörigen Ereignisprozedurn nicht ebenfalls umbenannt, gehen die
Zuordnungen zu den Prozeduren verloren.
Obwohl eMbedded Visual Basic die Konzepte der Objektorientierung in Ansätzen umsetzt,
fehlen doch wesentliche Elemente einer objektorientierten Programmiersprache. So können
zwar Objekte der angebotenen Objektklassen angelegt werden, aber keine eigenen Objektklassen erstellt werden. Ebenso wird die Vererbung nicht unterstützt. Zur Strukturierung des
Programmcodes können so genannte Module implementiert werden, die eine Sammlung von
Prozeduren und Funktionen darstellen.
Eine unter eMbedded Visual Basic entwickelte Anwendung kann auf dem Pocket PC Emulator getestet werden oder das Programm kann über Active Sync auf einen Pocket PC übertragen und auf diesem ausgeführt werden. Beides kann direkt aus der Entwicklungsumgebung heraus geschehen und es ist sogar ein Debuggen der Anwendung möglich. Der Pocket
PC Emulator hat sich bei den erstellten Beispielanwendungen grundsätzlich als brauchbar
erwiesen. Die Dauer bis zum Programmstart ist kürzer als bei einem Test der Anwendung
auf dem Pocket PC, zumindest wenn der Emulator bereits gestartet wurde. Bei Programmen,
die auf einige ActiveX-Steuerelemente zugreifen, kam es allerdings gelegentlich zu Abstürzen.
Die Entwicklung von Anwendungen für den Pocket PC erfordert eine gewisse Umstellung,
wenn zuvor Anwendungen für den PC entwickelt wurden. Es gilt einige wesentliche Punkte
zu berücksichtigen. Das Display des PDA ist, im Vergleich zum PC, sehr klein, somit ist es
praktisch nicht möglich mehrere Fenster parallel sichtbar zu halten. Aus diesem Grund wird
ein Formular in eMbedded Visual Basic standardmäßig in einer Art Vollbildmodus angezeigt. Die Anzahl der Steuerlemente auf einem solchen Formular sollte gering gehalten
werden, eine Reduktion auf das Wesentlich ist angebracht. Der Nutzer hat keine Tastatur zur
Verfügung, also muss die Anwendung so gebaut sein, dass möglichst wenig (Text-)Eingaben
notwendig sind. Das kann etwa durch Einsatz von Auswahllisten oder Ähnlichem erreicht
werden. Für die Bedienung mit dem Stift wird ein sogenanntes Soft Input Panel eingeblendet, welches den unteren Teil eines Formulars bedeckt. Dies ist bei der Layoutgestaltung zu
berücksichtigen. Der Speicher eines Pocket PC ist, im Vergleich zum PC, wesentlich kleiner,
auch wenn dieser mit einer Zusatzkarte ausgebaut werden kann. Ein sparsamer Umgang mit
dem Speicherplatz ist deshalb ratsam. [vgl. auch Panther03, S. 207 - 208]
4.3 Vergleich zu Visual Basic 6
Wenngleich sich in der Arbeit mit eMbedded Visual Basic Gemeinsamkeiten mit Visual
Basic 6 ergeben, so existieren doch auch einige Unterschiede, die sich sich zum größeren
Teil dadurch ergeben, dass eMbedded Visual Basic auf VBScript und nicht auf Visual Basic
selbst basiert. VBScript wurde ursprünglich für die Entwicklung von dynamischen Webseiten entwickelt und stellt lediglich eine Teilmenge von Visual Basic dar. So sind eMbedded
Visual Basic Anwendungen, wie bereits oben erwähnt, nicht kompiliert sondern interpretiert, was sich bei den getesteten Anwendungen auch durchaus, vor allem im langsamen
Bildschirmaufbau, bemerkbar machte.
12
VBScript unterstützt im Unterschied zu Visual Basic 6 nur einen Datentyp: den Typ Variant.
Bei der Deklaration einer Variablen kann zwar auch ein anderer Typ angegeben werden,
dieses dient aber eher Dokumentationszwecken. Aus diesem Grund finden auch keine Typüberprüfungen statt. Eine weitere Einschränkung im Vergleich zu Visual Basic 6 ist die fehlende Möglichkeit zur Erstellung von so genannten Klassenmodulen, das sind eigene Objektklassen mit Eigenschaften und Methoden. Weiterhin können keine
ActiveX-Steuerelemente entwickelt werden; zu diesem Zweck müsste auf eMbedded Visual
C++ zurückgegriffen werden. Die Anzahl der mitgelieferten ActiveX-Steuerelemente ist
deutlich kleiner als bei Visual Basic 6 und im Debug-Modus sind keine Codeänderungen
möglich, was sich dadurch erklärt, dass die Pocket PC Anwendung auf einem anderen System als dem Entwicklungssystem läuft. [vgl. Panther03, S. 104f] [vgl. vbtec00]
13
5. Entwicklung einer integrierten Anwendung
5.1 Überblick
Im Folgenden soll aufgezeigt werden, wie mit eMbedded Visual Basic eine integrierte Anwendung entwickelt werden kann. Basis der Überlegungen ist das Anwendungsbeispiel des
Fensterbauers, wie es in Abschnitt 3.2 beschrieben wurde. Die Abbildung 4zeigt noch einmal die vorgestellte Architektur der Anwendung ergänzt um die Komponenten, die die eMbedded Visual Tools zur Verfügung stellen, um die jeweilige Funktionalität abzubilden. Die
Komponenten ADOCE und Winsock werden in den folgenden beiden Abschnitten vorgestellt, die Schnittstelle zu Pocket Outlook (Pocket Outlook Object Model - POOM) wird
nicht näher beschrieben, sie arbeitet aber prinzipiell sehr ähnlich. Die Anwenderschnittstelle
kann über entsprechende Formulare aufgebaut werden, wie im vorherigen Kapitel beschrieben. Die Abbildung xx zeigt eine mögliches User-Interface. Für die Bereiche Datenbankzugriff, Kommunikation mit dem ....
Client 1
Pocket PC -
Pocket
Outlook
Anwendung
POOM
Mail
Termine
Aufgaben
Winsock
...
Client n
ApplikationsServer
ADOCE
Datenbank
Pocket PC
DBMS
ERP-System
Abbildung 4: Komponenten von Microsoft eMbedded Visual Basic
5.2 Datenbankzugriff
Für die Verwaltung der anfallenden Daten auf dem Pocket PC existieren prinzipiell mehrere
Lösungen. Im einfachsten Fall können diese in einer Datei auf dem Dateisystem abgelegt
werden, eine entsprechende ActiveX-Komponente ermöglicht den lesenden und schreibenden Zugriff. Liegen die Daten in strukturierter Form vor, so bietet sich dagegen der Einsatz
einer Datenbank an. In diesem Anwendungsbeispiel wird eine Windows-CE-Datenbankdatei verwendet. Dabei handelt es sich um eine Datei mit der Endung „.cdb“, die praktisch eine
Access-Datenbank für den Pocket PC darstellt und aus diesem Grund teilweise auch als Pocket Access Datenbank bezeichnet wird. Anders als auf dem PC gibt es auf dem Pocket PC
jedoch keine Access-Anwendung, der Zugriff auf die Datenbank erfolgt über ein ActiveX
Steuerlement namens ADOCE (ActiveX Data Objects for Windows CE). Diese ist im Lieferumfang der eMbedded Visual Tools enthalten und unterstützt verschiedene Operationen
14
von dem Anlegen einer Datenbankdatei bis hin zur Datenabfrage über SQL. Dabei ist allerdings zu berücksichtigen, dass die ADOCE deutlich weniger Funktionen bietet als Microsoft
Abbildung 5: Anwenderschnittstelle der Beispielanwendung
Access beziehungsweise die entsprechende ActiveX Komponente für den PC: die ADO (ActiveX Data Objects). [vgl. Panther03, S. 242ff] [vgl. DEVBUZZ02] [vgl. BasicCorporation03]
Ist der Pocket PC über ActiveSync an den PC angebunden, so werden Access-Dateien, die
von dem PC auf den Pocket PC übertragen werden automatisch in eine Windows-CE-Datenbank konvertiert. Die Abbildung 6 zeigt einen einfachen Ausschnitt der Datenstruktur für
das Beispiel des Fensterbauers, wie sie unter Microsoft Access entwickelt wurde. Diese Access-Datenbank wird dann auf den Pocket PC übertragen und die Anwendung kann mit der
festgelegten Struktur arbeiten.
Das Listing 1 zeigt beispielhaft, wie über Visual Basic und die ADOCE auf die WindowsCE-Datenbank zugegriffen werden kann. Es wird zunächst eine Verbindung zur Datenbank
aufgebaut, über eine entsprechende Abfrage werden Datensätze ausgelesen und anschließend wird die Verbindung wieder geschlossen.
Zentrale Elemente in der ADOCE sind die beiden Objetkklassen Connection und Recordset.
Über ein Connection-Objekt kann die Verbindung zur Datenbank aufgebaut werden und es
können SQL-Anweisungen abgesetzt werden. Ein Recordset-Objekt verwaltet Datensätze,
die zum Beispiel das Ergebnis einer Abfrage sein können. In den Zeilen 2 und 3 von Listing
1 werden entsprechende Variablen dieser Objekttypen deklariert.
Die Prozedur dbConnect baut die Verbindung zur Datenbank auf. Dazu wird zunächst ein
15
Connection-Objekt angelegt und bei diesem die Methode Open mit dem Namen der Datenbankdatei als Argument aufgerufen. Tritt ein Fehler auf, so wird dieser in einem kleinen
Meldungsfenster angezeigt (Zeilen 8 und 9). Die Prozedur loadDataFenster liest die einem
Abbildung 6: Access Datenbank der Anwendungsbeispiel
Auftrag zugeordneten Fenstermaße aus der Datenbank und schreibt die Datensätze in einTabellen-Steuerlement auf der Formularseite Dazu wird ein Recordset-Objekt angelegt (Zeile
17) und dann über die Methode Open eine SQL-Anfrage über die bestehende Verbindung
auf der Datenbank abgesetzt (Zeilen 18-20). Das Ergebnis dieser Abfrage ist über das Recordset verfügbar. Die Schleife in den Zeilen 21 bis 24 liest alle Ergebnis-Datensätze aus
diesem aus und schreibt sie in das Tabellen-Steuerlelement. Dabei kann mit der Methode
MoveNext (Zeile 24) zum nächsten Datensatz gesprungen werden und mit EOF (Zeile 21)
überprüft werden, ob noch weitere Datensätze existieren. Nach Abarbeitung aller Datensätze
wird in Zeile 26 das Recordset geschlossen. Die Prozedur dbClose beendet die Datenbankverbindung durch den Aufruf der Methode Close beim Connection-Objekt.
Für kleinere Anwendungen erscheint der Einsatz einer Winsdows-CE-Datenbank in Verbindung mit der ADOCE ausreichend. Die Arbeit mit der Schnittstelle gestaltete sich relativ
problemlos, der Funktionsumfang ist ausreichend. Allerdings ergeben sich Probleme, wenn
die entwickelte Anwendung auf dem Pocket PC Emulator getestet werden soll. Da der Emulator nicht über ActiveSync angesprochen werden kann, ist es nicht möglich die der Anwendung zugrunde liegende Access-Datenbank über diesen Weg zu konvertieren. Zudem verwendet der Emulator ein eigenes Pocket Access Format [vgl. Panther03, S. 262]. Aus diesem
Grund wurde die Anwendung um eine Initialisierungs-Prozedur ergänzt, welche, falls notwendig, beim Programmstart die Struktur der Datenbank anlegt.
Für den Pocket PC sind neben der Windows-CE-Datenbank auch Datenbankserver erhältlich, die aber nicht im Lieferumfang der eMbedded Visual Tools enthalten sind. So bietet
Microsoft für den Pocket PC einen SQL-Server für Windows CE an. Dieser hat im Vergleich
zur Windows-CE-Datenbank den Vorteil, dass er eine Datenreplikation mit einem SQL-Server unterstützt [vgl. Panther03, S. 265]. Neben Mircosoft hat auch Oracle einen Datenbank-
16
server für den Pocket PC im Angebot: Oracle Lite für Windows CE [vgl. Oracle03].
01 Const databaseFile = “\My Documents\Fenster.cdb“
02 Dim conn As ADOCE.Connection
03 Dim rs
As ADOCE.Recordset
04 Private Sub dbConnect()
05
On Error Resume Next
06
Set conn = CreateObject(“ADOCE.Connection.3.1“)
07
conn.Open(databaseFile)
08
If conn.Errors.Count > 0 Then
09
MsgBox “Fehler beim Öffnen der Datenbank!“
10
End If
11
On Error GoTo 0
12 End Sub
13 Private Sub loadDataFenster(aufID As Integer)
14
grdFenster.Rows = 0
15
grdFenster.AddItem “F_Nr“ & vbTab & “Breite“
16
& vbTab & “Höhe“
17
Set rs = CreateObject(„ADOCE.Recordset.3.1“)
18
rs.Open “SELECT Fenster_Nr, Breite, Höhe “ _
19
“ FROM Fenster WHERE Auftrags_ID = “ _
20
& aufID & “ ORDER BY Fenster_Nr“, conn
21
Do While Not rs.EOF
22
grdFenster.AddItem(rs(0).Value & vbTab &
23
rs(1).Value & vbTab & rs(2).Value)
24
rs.MoveNext
25
Loop
26
rs.Close
27 End Sub
28 Private Sub dbClose()
29
On Error Resume Next
30
conn.Close
31
On Error GoTo 0
32 End Sub
Listing1: Datenbankzugriff
17
5.3 Datenübertragung
Die Anwendungen auf den einzelnen Pocket PC der verschiedenen Außendienstmitarbeiter
müssen in regelmäßigen Abständen mit dem ERP-System des Fensterbauers kommunizieren
und aktuelle Daten auszutauschen.
Im Lieferumfang der eMbedded Visual Tools ist für diese Einsatzzwecke ein ActiveX- Steuerelement namens Winsock enthalten. Es ermöglicht den Austausch von Daten über die Infrarotschnittstelle des Pocket PC oder über ein Netzwerk. Das Funktionsprinzip dieser Komponente soll an einem kleinen Beispiel aufgezeigt werden. Die Pocket PC Anwendung baut
über ein Netzwerk eine Verbindung zu einem Server auf, der auf einem PC läuft und unter
Visual Basic 6 entwickelt wurde. Dabei nutzt auch der Server das Winsock-Steuerelement,
welches in entsprechender Form auch für den Windows-PC verfügbar ist. [vgl. Panther03, S.
325f] [vgl. parallax02]
Abbildung 7: Testoberfläche Client
Die Abbildung 7 zeigt die Testoberfläche für den Pocket PC Client. Sie besitzt zwei Schaltflächen: wird die obere Schaltfäche geklickt, so wird eine Verbindung zum Server aufgebaut,
wird die untere geklickt, so werden Daten aus der Datenbank ausgelesen und über die bestehende Verbindung zum Server geschickt. Die Kommunikation selbst wird über das Winsock-Steuerelement abgewickelt, welches auf dem Formular platziert wird. Zur Laufzeit der
Anwendung ist es allerdings nicht sichtbar.
Das Listing 2 zeigt die zugehörigen Ereignisprozeduren der Schaltflächen. In der Prozedur
zur ersten Schaltfläche werden beim Winsock-Steuerelement, das in diesem Beispiel den
Namen „tcpConnection“ erhalten hat, zunächst der Host und der Port des Servers gesetzt
und anschließend, über die Methode Connect, die Verbindung aufgebaut (Zeilen 2 - 5).
18
In der Ereignisprozedur zur zweiten Schaltfläche werden zunächst über eine SQL-Abfrage
Datensätze aus der Datenbank in ein Recordset gelesen (Zeilen 9-12). Diese werden anschließend abgearbeitet, wobei für jeden Datensatz eine Zeichenkette mit den Werten dieses
Satzes zusammengesetzt wird (Zeilen 14 und 15). Die Zeichenkette wird dann mit der Methode SendData an den Server geschickt.
01 Private Sub btnVerbindungAufbauen_Click()
02
tcpConnection.RemoteHost = “morgana“
03
tcpConnection.RemotePort = 1002
04
txtClientLog.Text = “Verbinden ...“
05
tcpConnection.Connect
06 End Sub
07 Private Sub btnDatenSenden_Click()
08
Dim str As String
09
Set rs = CreateObject(“ADOCE.Recordset.3.1“)
10
rs.Open “SELECT Fenster_Nr, Auftrags_ID, “ _
11
& Breite, Höhe FROM Fenster “ _
12
& “ORDER BY Auftrags_ID, Fenster_Nr“, conn
13
Do While Not rs.EOF
14
str = rs(0).Value & “;“ & rs(1).Value & “;“ _
15
& rs(2).Value & “;“ & rs(3).Value & vbTab
16
tcpConnection.SendData(str)
17
rs.MoveNext
18
Loop
19
rs.Close
20 End Sub
Listing 2: Winsock - Client
Die Abbildung 8 zeigt die Testoberfläche der Server-Anwendung, Listing 3 die zugehörigen
Ereignisprozeduren. Auch auf der Serverseite wird die Kommuikation über ein WinsockSteuerelement abgewickelt, hier benannt mit „tcpServer“.
Wird die Schaltfläche des Server geklickt, so wird in der zugehörigen Ereignisprozedur (Zeilen 1-4) das Winsock-Element mit der Methode Listen in einen Wartezustand gesetzt. Dies
bedeutet, dass der Server auf (Verbindungs-)Anfragen von einem Client wartet. Sobald ein
Client eine solche Anfrage stellt, wird eine entsprechende Ereignisprozedur aufgerufen (Zeilen 5-9), in der die Verbindung mit der Methode Accept (Zeile 7) angenommen wird und
diese damit aufgebaut ist.
Schickt der Client im Anschluss Daten an den Server, so wird eine weitere Ereignisprozedur
aufgerufen (Zeilen 10-15), in der mit der Methode GetData (Zeile 13) die Daten abgerufen
und in dem Textfeld hinzugefügt werden.
19
Abbildung 8: Testoberfläche Server
01 Private Sub startServer_Click()
02
tcpServer.Listen
03
txtLogServer.Text = “Warte ...“
04 End Sub
05 Private Sub tcpServer_ConnectionRequest
06
(ByVal requestID As Long)
07
tcpServer.Accept requestID
08
txtLogServer.Text = “Verbunden“
09 End Sub
10 Private Sub tcpServer_DataArrival
11
(ByVal bytesTotal As Long)
12
Dim strDaten As String
13
tcpServer.GetData(strDaten)
14
txtData.Text = txtData.Text + strDaten
15 End Sub
Listing 3: Winsock - Server
20
6. .NET Compact Framework
6.1 .NET Framework
Im Sommer 2000 stellte Microsoft seine neue Plattform für die Softwareentwicklung vor:
.NET [vgl. Westphal02, S. V]. Sie kann in gewisser Weise als Konkurrenz zur Java Plattform
von Sun gesehen werden, die sich bereits einige Jahre länger auf dem Markt befindet. Kernstück der .NET Plattform ist das .NET Framework, welches eine Laufzeitumgebung, die
Common Language Runtime CLR (S. 39/40) und eine Klassenbibliothek, die Base Class
Library (BCL), enthält.
Die CLR ist grundsätzlich vergleichbar mit der virtuellen Maschine der Java Plattform, allerdings ist diese nicht auf die Ausführung von Bytecode der Programmiersprache Java
ausgelegt, sondern verarbeitet Code der Microsoft Intermediate Language (MSIL). Für die
MSIL gibt es Compiler für verschiedene Hochsprachen. Mircosoft selbst bietet Übersetzer
für die Sprachen C#, Visual Basic .NET, J# (eine fast vollständige Java-Implentation) und
Visual C++. Von anderen Anbietern werden Compiler für weitere Sprachen angeboten bzw.
entwickelt (z.B. für Smalltalk). Die CLR übersetzt die MSIL mit Hilfe eines JIT-Compilers
in die Maschinensprache des jeweiligen Zielsystems. [vgl. Westphal02, S. 36ff] [vgl.
MSDN03]
Unter .NET können in einer Anwendung verschiedene Sprache kombiniert werden. Damit
dieses möglich ist, wird ein gemeinsames Typsystem benötigt, das Common Typ System
(CTS). Die Klassenbibliothek des .NET Framework ist ähnlich mächtig wie die Java-Klassenbibliothek und kann von allen .NET-Sprachen verwendet werden. Das .NET Framework
wird von Mircosoft nur für die Windows-Betriebssysteme angeboten, es sind aber Portierungen auf andere Betriebssysteme in der Entwicklung.
Microsoft bietet für das .NET Framework eine Entwicklungsumgebung an: das Visual Studio .NET. Sie stellt einheitliche Umgebung für die Entwicklung aller .NET Sprachen dar.
6.2 .NET Compact Framework und die eMbedded Visual Tools
Seit kurzer Zeit bietet Mircosoft für den Pocket PC das .NET Compact Framework an. Es
handelt sich dabei um eine schlanke Variante des .NET Frameworks, wobei der Funktionsumfang angesichts der geringeren Ressourcen auf einem Pocket PC auf das für die Arbeit
mit diesen mobilen Geräten Notwendige reduziert wurde. So ist das Compact Framework
mit ca. 1 MB deutlich kleiner als das Pendant für den PC mit ca. 20 MB.
Die Entwicklung von Anwendungen für das .NET Compact Framework erfolgt mit dem
Visual Studio .NET. Zur Zeit ist die Entwicklung allerdings nur in den Sprachen Visual
Basic und C# möglich. Das .NET Compact Framework kann kostenlos aus dem Internet
heruntergeladen und auf dem Pocket PC installiert werden. Die neue Betriebssystemversion
Pocket PC 2003 hat das Framework bereits im ROM verfügbar.
21
Im Vergleich zu den eMbedded Visual Tools bietet das .NET Compact Framework den Vorteil, dass Visual Basic .NET vollständig objektorientiert arbeitet. Einschränkungen in eMbedded Visual Basic, wie die fehlende Möglichkeit eigene Objekttypen zu definieren, fallen
damit weg. Auch das Konzept der Vererbung wird unterstützt. Die Arbeit mit der Klassenbibliothek des Frameworks gestaltet sich ähnlich wie in Kapitel 5 vorgestellt, da viele der alten
Komponenten, wie die ADOCE, in der neuen Bibliothek aufgegangen sind. Nachteilig ist,
dass das Visual Studio .NET, anders als die eMbedded Visual Tools, nicht kostenlos bezogen
werden kann.
Microsoft selbst sieht die Zukunft ganz klar in dem .NET Compact Framework. So unterstützt bereits das SDK der neuen Betriebssystemversion Pocket 2003 nicht mehr die eMbedded Visual Tools in der vorgestellten Version, wenngleich Anwendungen, die mit den eMbedded Visual Tools erstellt worden sind, auch auf dem neuen System lauffähig sind.
Entwicklern, die bisher mit eMbedded Visual Basic 3.0 gearbeitet haben, wird der Umstieg
auf Visual Basic .NET und dem Visual Studio .NET empfohlen. C++ Entwickler können mit
eMbedded Visual C++ 4.0 weiterhin Native-Anwendungen für den Pocket PC entwickeln,
allerdings ist auch hier die Möglichkeit gegeben auf das .NET Compact Framework zuzugreifen. [vgl. MicrosoftMobile03]
22
7 Zusammenfassung
Die Leitungsfähigkeit der heutigen Pocket PC eröffnet neue Möglichkeiten, die über einfache Organizer-Funktionen deutlich hinaus gehen. Im Rahmen der mobilen Datenpräsentation und -erfassung sind sinnvolle betriebswirtschaftliche Anwendungen für diese Geräte zu
erkennen. Die Entwicklungsumgebung eMbedded Visual Basic von Microsoft stellt zentrale
Komponenten für die Realisierung derartiger Anwendungen zur Verfügung, darüber hinaus
ist sie sehr leicht zu erlernen. Demgegenüber stehen Mängel, insbesondere in der fehlenden
Unterstützung der objektorientierten Ansätze. An dieser Stelle scheint das .NET Compact
Framework, als die zukünftige Entwicklungsplattform, Boden gut gemacht zu haben.
23
Literaturverzeichnis
Bücher und Zeitschriften
[Panther03]
Panther, Robert, 2003,
Pocket PC Programmierung mit eMbedded Visual Basic,
Franzis‘ Verlag, Poing
[Westphal02]
Westphal, Ralf, 2002
.NET kompakt,
Spektrum Akademischer Verlag, Heidelberg
[Connect03]
Connect Test Katalog 2003
Vereinigte Motor-Verlage, Stuttgart
Webseiten
[Winlinx02]
Mobile Business, Beispiele aus der Praxis
Erfahrungen aus dem Mobile Computing Competence Center,. winlinx
http://www.winlinx.de/10_download/winlinx_cases.pdf
[Heise03]
Heise-Newsticker, Meldung vom 23.06.03,
Microsoft veröffentlicht Pocket PC 2003,
http://www.heise.de/newsticker/result.xhtml?url=/newsticker/data/dal-22.06.03-000/default
.shtml&words=Pocket%20PC%202003
[Microsoft03]
Microsoft, 2003,
What‘s New for Developers in Windows Mobile 2003-based Pocket PC,
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppc2k3/html/
winmob03.asp
[vbtec00]
Schwieder, Jost, 2000
Unterschiede VBScript zu VB
http://vb-tec.de/vbscript.htm
[DEVBUZZ02]
DEVBUZZ.COM, 2002
eVB Databases, Forum
http://forums.devbuzz.com/tt.asp?appid=3&p=2&tmode=1&smode=1&cookieCheck=427
394153
24
[Oracle03]
Oracle, 2003
Oracle9i Lite: The Internet Platform for Mobile Computing
http://otn.oracle.com/products/lite/content.html
[parallax02]
parallax, 2002
Client-Server Programmierung in Visual Basic 6.0
http://www.theparallax.org/wissen/programming/vb_howtos/vbhowto.html
[MSDN03]
Microsoft MSDN, 2003
.NET Compact Framework Overview
http://msdn.microsoft.com/vstudio/device/compactfx.aspx
[DEVBUZZ03]
DEVBUZZ.COM, 2003
Understanding the .NET Compact Framework for the Pocket PC
http://www.devbuzz.com/content/compact_framework_overview_pg2.asp
[MircosoftMobile03]
Mircosoft, 2003
Windows Mobile 2003
http://worldofi.com/SWTests/PPC03.htm#feat
[Download01]
Mircosoft eMbedded Visual Tools 3.0
http://msdn.microsoft.com/downloads/default.aspx
[BasicCorporation03]
NS Basic Corparation, 2003
Microsoft‘s Active Data Object for Windows CE
http://nsbasic.com/ce/info/nsbce/technotes/TN10.htm