• Keine Ergebnisse gefunden

Universität Osnabrück

N/A
N/A
Protected

Academic year: 2022

Aktie "Universität Osnabrück"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(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

Inhaltsverzeichnis 2

Abbildungsverzeichnis 3

1. Einleitung 4

2. Pocket PC 5

2.1 Ausstattung 5

2.2 Vergleich zu anderen mobilen Geräten 6

3. Anwendungen auf dem Pocket PC 7

3.1 Überblick 7

3.2 Beispielanwendung Fensterbauer 7

4. Microsoft eMbedded Visual Basic 9

4.1 Microsoft eMbedded Visual Tools 9

4.2 Arbeit mit eMbedded Visual Basic 9

4.3 Vergleich zu Visual Basic 6 12

5. Entwicklung einer integrierten Anwendung 13

5.1 Überblick 13

5.2 Datenbankzugriff 13

5.3 Datenübertragung 17

6. .NET Compact Framework 20

6.1 .NET Framework 20

6.2 .NET Compact Framework und die eMbedded Visual Tools 20

7. Zusammenfassung 22

Literaturverzeichnis 23

(3)

Abbildungsverzeichnis

1. Pocket PC Compaq HP IPAQ H3950 5

2. Architektur der Beispielanwendung des Fensterbauers 8 3. Benutzeroberfläche Microsoft eMbedded Visual Basic 10 4. Eingesetzte Komponenten von Microsoft eMbedded Visual Basic 13 5. Anwenderschnittstelle der Beispielanwendung 14 6. Access Datenbank der Beispielanwendung (Ausschnitt) 15 7. Testoberfläche Client-Anwendung zur Datenübertragung 17 8. Testoberfläche Server-Anwendung zur Datenübertragung 19

Listings

1. Datenbankzugriff 16

2. Datenübertragung - Client 18

3. Datenübertragung - Server 19

(4)

1. Einleitung

In den letzten Jahren haben sich PDA („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. Bei- spiele für PDA dieser neuen Generation sind die von mehreren Herstellern angebotenen Pocket PC.

Microsoft bietet mit eMbedded Visual Basic eine Entwicklungsumgebung an, die es ermög- lichen soll, anspruchsvolle Anwendungen für diese Geräte zu realisieren. Ziel dieser Arbeit ist es, einen Einblick in den Umgang mit dieser Umgebung zu geben so wie deren Möglich- keiten und Grenzen aufzuzeigen.

Die Anforderungen, die an eine Entwicklungsumgebung zu stellen sind, hängen entschei- dend 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 vorgenom- men. 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 Mic- rosoft gegeben, welches wohl die zukünftige Anwendungsentwicklung für den Pocket PC maßgeblich beeinflussen wird. Die Arbeit endet mit einer kurzen Zusammenfassung.

(5)

2. Pocket PC

2.1 Ausstattung

Ein Pocket PC ist zunächst 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. Ent- sprechende Geräte sollen in den nächsten Wochen auf den Markt kommen. [vgl. Heise03].

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 spezi- fizierte Eigenschaften, die die Hardware des Geräts betreffen. So sind diese mit einem Farb- display mit einer Auflösung von 320 x 240 Pixeln und 65535 Farben ausgestattet. Sie besit- zen keine Maus und keine Tastatur, die Bedienung erfolgt, wie bei PDA üblich, über einen Stift. Eine entsprechende Software zur Schrifterkennung 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 verfü- gen über einen Intel XScale Prozessor mit 400 MHz. [vgl. Connect03, S. 160ff]

Abbildung 1: Pocket PC Compaq HP IPAQ H3950

(6)

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 Microsoft 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 Blue- tooth-Interface und über eine entsprechende Zusatzkarte kann der PDA in ein WLAN einge- bunden werden. Für einige Anwendungen ist die Erweiterung des Pocket PC um einen GPS- Empfänger zur Navigation interessant. Je nach Ausstattung liegt der Kaufpreis eines Pocket PC in einer Größenordnung von 500 bis 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 Note- book auf der anderen Seite einordnen. Gegenüber dem Organizer, der in erster 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 IPAQ, sind im Allgemeinen größer und auch un- handlicher 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 An- wendungsmö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 auszu- gehen, dass weder das Display nennenswert vergrößert noch eine (leicht zu bedienende) Tastatur eingebaut wird, um die Handlichkeit zu bewahren.

(7)

3. Anwendungen auf dem Pocket PC

3.1 Überblick

Das klassische Anwendungsfeld eines PDA stellen die bereits angesprochenen Organizer- Funktionen 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 Lieferum- fang des Betriebssystems Pocket Word und Pocket Excel, welche Teilfunktionen der be- kannten 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 wird.

In betriebswirtschaftlich sinnvollen Anwendungen ist der Pocket PC im Regelfall in ein größeres IT-Umfeld integriert. Er übernimmt dabei schwerpunktmäßig Aufgaben im Rah- men der mobilen Datenpräsentation und -erfassung. 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 wird aufgezeigt, welche Möglichkeiten die eMbedded Visual Tools bieten, um Anwendungen der beschriebenen Art zu entwickeln. Basis der Über- legungen 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 Ent- wicklungsumgebung zu stellen sind, ableiten lassen.

Ein Fensterbauer besitzt zur Unterstützung des Vertriebs 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 Kalku- lation 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ßen- dienstmitarbeiter mit entsprechendem Informationsmaterial in Form von Katalogen ausge- stattet, 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 einem Innendienstmitarbeiter in das ERP-System übertragen, welches die be- trieblichen Prozesse des Unternehmens unterstützt. Es wird ein Angebot erstellt, dass dem Kunden zugeschickt wird.

(8)

Dieser Prozess kann durch den Einsatz eines Pocket PC deutlich vereinfacht werden. Grund- idee 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.

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 über- mittelt, die erstellten Angebote an das System übergeben und ggf. Kataloginformationen aktualisiert. Die Abbildung 2 zeigt eine mögliche Architektur der Anwendung. Auf der einen Seite steht das ERP-System, welches in drei Ebenen (DBMS, Applikations-Server und Cli- ent) aufgebaut ist. Auf der anderen Seite findet sich der Pocket PC eines Außendienstmitar- beiters. Die dort installierte Anwendung besitzt eine einfache Benutzeroberfläche und ver- waltet 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 automa- tisch einzupflegen.

Über die vorgestellte Lösung hinaus wäre es denkbar, den Pocket PC mit einem GPS-Emp- fänger und einem Navigationssystem auszustatten, so dass auf Basis der vom ERP-System übermittelten Kundenanfragen eine Route vorgeschlagen werden kann und der Außendienst- mitarbeiter direkt zum Kunden geführt wird.

Datenbank

Pocket Outlook

Mail Termine Aufgaben

Pocket PC - Anwendung

Pocket PC

DBMS Applikations-

Server Client 1 Client n

ERP-System

...

Abbildung 2: Architektur der Beispielanwendung des Fensterbauers

(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 Micro- soft eMbedded Visual Basic 3.0 und Microsoft eMbedded Visual C++ 3.0. Beide Umgebun- gen können auf einem PC unter Microsoft Windows betrieben werden. EMbedded Visual Basic ermöglicht die Entwicklung von interpretierten Visual Basic Anwendungen. Der Inter- preter 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 ausgelie- fert, 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 For- mular, und zum anderen um unsichtbare Steuerelemente, zum Beispiel zum Zugriff auf eine Datenbank. Für die Arbeit mit den eMbedded Visual Tools empfiehlt sich darüber hinaus die Installation des Microsoft 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. Sie wirkt auf Entwickler, die bereits Erfahrungen mit Visual Basic 6.0, der entsprechenden Umgebung für die Anwendungsentwicklung für den Windows-PC, gesammelt haben, durchaus vertraut. In der Tat gestaltet sich die Arbeit mit beiden Systemen ähnlich, es ergeben sich aber auch ei- nige Unterschiede.

EMbedded Visual Basic ermöglicht die Entwicklung von Anwendungen ohne und mit Be- nutzeroberfläche. Im letzteren Fall, der sicherlich den Regalfall darstellt, wird die Anwen- derschnittstelle aus Formularen aufgebaut, auf denen wiederum Steuerelemente, wie Schalt- flächen oder Textfelder, angeordnet sind. Die Formulare werden in einem graphischen Editor, dem Formulareditor, entworfen; der zugehörige Programmcode im so genannten 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 beschreiben beispielsweise die Position oder das Erscheinungsbild 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.

(10)

Neben Ansätzen aus der Objektorientierung bedient sich Visual Basic dem Konzept der er- eignisgesteuerten Programmierung. Während des Programmablaufs werden, zum Beispiel bei der Bedienung bestimmter Steuerelemente, so genannte Ereignisse ausgelöst. Ein Ereig- nis kann mit einer so genannten Ereignisprozedur verbunden werden, die dem jeweiligen Formular zugeordnet ist. Bei Auslösung des Ereignisses wird diese ausgeführt.

Die Abbildung 3 zeigt ein einfaches Beispiel, welches den Mechanismus verdeutlicht: Ein kleines Formular besitzt eine Schaltfläche mit der Aufschrift „Drück mich!“ und ein Text- feld, welches nach dem Programmstart leer ist. Klickt der Anwender auf die Schaltfläche, so wird die zugeordnete Ereignisprozedur Drueck_Click des Formulars ausgelöst. Diese enthält eine Anweisung, die die Eigenschaft „Text“ des Textfelds auf den Wert „Hallo Welt“ setzt, womit dieser in dem Feld erscheint. Die Verknüpfung zwischen Steuerelement so wie Ereig- nis auf der einen Seite und Ereignisprozedur auf der anderen Seite erfolgt über den Namen der Prozedur, der sich aus dem Namen des Steuerelements und dem Namen des Ereignisses zusammensetzt. Der Prozedurkopf kann nach Auswahl des Steuerelements und des Ereignis- ses auch vom System generiert werden.

Die Programmierung einer Oberfläche mit eMbedded Visual Basic ist vergleichsweise leicht zu erlernen und funktioniert bei kleineren Beispielen recht gut. Bei größeren Formularen mit vielen Steuerelementen wird der Quellcode allerdings leicht unübersichtlich. Es empfiehlt sich in diesen Fällen die Ereignisprozeduren eher knapp zu halten und die Anwendungslogik

Abbildung 3: Benutzeroberfläche Microsoft eMbedded Visual Basic

(11)

auszulagern. Ein weiteres Problem ergibt sich bei der Umbenennung eines Steuerelements:

werden die zugehörigen Ereignisprozeduren nicht ebenfalls umbenannt, gehen die Zuord- nungen zu diesen 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 Objekt- klassen erstellt werden. Ebenso wird die Vererbung nicht unterstützt. Zur Strukturierung des Programmcodes können lediglich 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-Emu- lator getestet werden oder das Programm kann über Active Sync auf einen Pocket PC über- tragen und auf diesem ausgeführt werden. Beides kann direkt aus der Entwicklungsumge- bung 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ür- zen.

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 ange- zeigt. Die Anzahl der Steuerelemente auf einem solchen Formular sollte gering gehalten werden, eine Reduktion auf das Wesentliche ist angebracht. Der Nutzer hat keine Tastatur zur Verfügung, also muss die Anwendung so gebaut sein, dass möglichst wenig (Text-)Ein- gaben notwendig sind. Dieses kann durch den Einsatz von Auswahllisten oder Ähnliches erreicht werden. Für die Bedienung mit dem Stift wird ein so genanntes Soft Input Panel eingeblendet, welches den unteren Teil eines Formulars bedeckt. Dieses ist bei der Layout- gestaltung 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.

207f]

(12)

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 Websei- ten entwickelt und stellt lediglich eine Teilmenge von Visual Basic dar. So sind eMbedded Visual Basic Anwendungen, wie bereits oben erwähnt, nicht kompiliert sondern interpre- tiert, was sich bei den entwickelten Programmen auch durchaus, vor allem im langsamen Bildschirmaufbau, bemerkbar machte.

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, Typüberprüfungen finden nicht statt. Eine weitere Einschränkung im Vergleich zu Visual Basic 6 ist die fehlende Möglichkeit zur Er- stellung von Klassenmodulen, das sind eigene Objektklassen mit Eigenschaften und Metho- den. 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-Anwen- dung 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 wird aufgezeigt, wie mit eMbedded Visual Basic eine integrierte Anwendung entwickelt werden kann. Basis der Überlegungen ist das Anwendungsbeispiel des Fenster- bauers, wie es in Abschnitt 3.2 beschrieben wurde. Die Abbildung 4 zeigt noch einmal die vorgestellte Architektur der Anwendung ergänzt um die Komponenten, die die eMbedded Visual Tools zur Verfügung stellen, um die jeweiligen Funktionsbereiche abzubilden. Die Komponenten ADOCE und Winsock werden in den beiden folgenden Abschnitten vorge- stellt, die Schnittstelle zu Pocket Outlook (POOM - Pocket Outlook Object Model) wird nicht näher beschrieben, sie arbeitet aber prinzipiell sehr ähnlich. Die Anwenderschnittstelle kann, wie im vorherigen Kapitel beschrieben, über entsprechende Formulare aufgebaut wer- den.

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 schreiben- den 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 Po- cket 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- Komponente namens ADOCE (ActiveX Data Objects for Windows CE). Diese ist im Liefe- rumfang der eMbedded Visual Tools enthalten und unterstützt verschiedene Operationen von dem Anlegen einer Datenbankdatei bis hin zur Datenabfrage über SQL. Dabei ist aller-

Datenbank

Pocket Outlook

Mail Termine Aufgaben

Pocket PC - Anwendung

Pocket PC

DBMS Applikations-

Server Client 1 Client n

ERP-System

...

Winsock

ADOCE POOM

Abbildung 4: Eingesetzte Komponenten von Microsoft eMbedded Visual Basic

(14)

dings zu berücksichtigen, dass die ADOCE deutlich weniger Funktionen bietet als Microsoft Access beziehungsweise die entsprechende ActiveX-Komponente für den PC: die ADO (ActiveX Data Objects). [vgl. Panther03, S. 242ff] [vgl. DEVBUZZ02] [vgl. BasicCorpora- tion03]

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-Daten- bank 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 Windows CE-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 Objektklassen 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 Objektklassen deklariert.

Abbildung 5: Anwenderschnittstelle der Beispielanwendung

(15)

Die Prozedur dbConnect baut die Verbindung zur Datenbank auf. Dazu wird zunächst ein Connection-Objekt angelegt und bei diesem die Methode Open mit dem Namen der Daten- bankdatei 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 Auftrag zugeordneten Fenstermaße aus der Datenbank und schreibt die Datensätze in ein Tabellen-Steuerelement auf der Formularseite Dazu wird ein Recordset-Objekt angelegt (Zeile 17) und dann über die Methode Open eine SQL-Anfrage über die bestehende Verbin- dung 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-Steuerelement. 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 Datenbank- verbindung durch den Aufruf der Methode Close beim Connection-Objekt.

Für kleinere Anwendungen erscheint der Einsatz einer Winsdows-CE-Datenbank in Verbin- dung 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 Emu- lator nicht über ActiveSync angesprochen werden kann, ist es nicht möglich die der Anwen- dung zugrunde liegende Access-Datenbank über diesen Weg zu konvertieren. Zudem ver- wendet 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 not- wendig, beim Programmstart die Struktur der Datenbank anlegt.

Für den Pocket PC sind neben der Windows CE-Datenbank auch Datenbankserver erhält- lich, 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 unter anderem den Vorteil, dass er eine Datenreplikation mit einem SQL-Server unterstützt [vgl. Panther03, S. 265]. Neben Microsoft hat auch Oracle einen Datenbankserver für den Pocket PC im Angebot: Oracle Lite für Windows CE [vgl.

Oracle03].

Abbildung 6: Access Datenbank der Beispielanwendung (Ausschnitt)

(16)

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 um aktuelle Daten auszutauschen.

Im Lieferumfang der eMbedded Visual Tools ist für diese Einsatzzwecke ein ActiveX- Steu- erelement namens Winsock enthalten. Es ermöglicht den Austausch von Daten über die In- frarotschnittstelle des Pocket PC oder über ein Netzwerk. Das Funktionsprinzip dieser Kom- ponente wird an einem kleinen Beispiel aufgezeigt. Die Pocket PC-Anwendung baut über ein Netzwerk eine Verbindung zu einer Server-Anwendung auf, welche auf einem Windows- PC läuft. Diese wurde unter Visual Basic 6 entwickelt und nutzt ebenfalls ein Winsock-Steu- erelement, dass in entsprechender Form auch für den Windows-PC verfügbar ist. [vgl. Pan- ther03, S. 325f] [vgl. parallax02]

Die Abbildung 7 zeigt die Testoberfläche für den Pocket PC-Client. Sie besitzt zwei Schalt- flächen: „Verbindung aufbauen ...“ und „Daten senden ...“. Klickt der Anwender auf die obere Schaltfläche, so wird eine Verbindung zum Server aufgebaut, klickt er auf die untere, so werden Daten aus der Datenbank ausgelesen und über die bestehende Verbindung über- tragen. Die Kommunikation selbst wird über das Winsock-Steuerelement abgewickelt. Die- ses wird auf dem Formular angeordnet, wo es allerdings zur Laufzeit der Anwendung nicht sichtbar ist.

Das Listing 2 zeigt die zugehörigen Ereignisprozeduren der Schaltflächen. In der Prozedur zur ersten Schaltfläche (btnVerbindungAufbauen_Click) werden beim Winsock-Steuerele- ment, das in diesem Beispiel den Namen „tcpConnection“ erhalten hat, zunächst der Host

Abbildung 7: Testoberfläche Client-Anwendung zur Datenübertragung

(18)

und der Port des Servers gesetzt und anschließend, über die Methode Connect, die Verbin- dung aufgebaut (Zeilen 2-5).

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 an- schließ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 Me- thode SendData an den Server geschickt.

Die Abbildung 8 zeigt die Testoberfläche der Server-Anwendung, Listing 3 die zugehörigen Ereignisprozeduren. Auch auf der Serverseite wird die Kommunikation über ein Winsock- Steuerelement abgewickelt, hier benannt mit „tcpServer“.

Klickt der Anwender auf die Schaltfläche des Servers, so wird in der zugehörigen Ereignis- prozedur (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 auf- gerufen (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.

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: Datenübertragung - Client

(19)

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: Datenübertragung - Server

Abbildung 8: Testoberfläche Server-Anwendung zur Datenübertragung

(20)

6. .NET Compact Framework

6.1 .NET Framework

Im Sommer 2000 stellte Microsoft seine neue Plattform für die Softwareentwicklung vor:

.NET. Sie kann in gewisser Weise als Konkurrenz zur Java Plattform von Sun gesehen wer- den, die sich bereits einige Jahre länger auf dem Markt befindet. Kernstück der .NET Platt- form 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.

[vgl. Westphal02, S. V, S. 39f]

Die CLR ist grundsätzlich vergleichbar mit der virtuellen Maschine der Java Plattform, al- lerdings 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. Microsoft selbst bietet Übersetzer für die Sprachen C#, Visual Basic .NET, J# (eine fast vollständige Java-Implementierung) und Visual C++. Von anderen Anbietern werden Compiler für weitere Sprachen angeboten bzw. entwickelt, zum Beispiel 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-Klas- senbibliothek und kann von allen .NET-Sprachen verwendet werden. Das .NET Framework wird von Microsoft nur für die Windows-Betriebssysteme angeboten, es sind aber Portierun- gen auf andere Betriebssysteme in der Entwicklung. Microsoft bietet für das .NET Frame- work eine Entwicklungsumgebung an, das Visual Studio .NET., welches eine einheitliche Umgebung für die Entwicklung in allen .NET Sprachen darstellt.

6.2 .NET Compact Framework und die eMbedded Visual Tools

Seit kurzer Zeit bietet Microsoft für den Pocket PC das .NET Compact Framework an. Es handelt sich dabei um eine schlanke Variante des .NET Frameworks, wobei der Funkti- onsumfang 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 cirka 1 MB deutlich kleiner als das Pendant für den PC mit cirka 20 MB.

Die Entwicklung von Anwendungen für das .NET Compact Framework erfolgt mit dem Visual Studio .NET, wobei zur Zeit nur die Sprachen Visual Basic und C# unterstützt wer- den. 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. Das Visual Studio .NET ist demgegenüber li- zenzpflichtig.

(21)

Im Vergleich zu den eMbedded Visual Tools bietet das .NET Compact Framework den Vor- teil, dass Visual Basic .NET vollständig objektorientiert arbeitet. Einschränkungen in eM- bedded Visual Basic, wie die fehlende Möglichkeit eigene Objektklassen zu definieren, fal- len 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.

Microsoft sieht die Zukunft der Anwendungsentwicklung für den Pocket PC offensichtlich in dem .NET Compact Framework. So unterstützt bereits das SDK der neuen Betriebssys- temversion Pocket PC 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 Vi- sual 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öglich- keit gegeben auf das .NET Compact Framework zuzugreifen. [vgl. MicrosoftMobile03]

(22)

7. Zusammenfassung

Die Leistungsfähigkeit der heutigen Pocket PC eröffnet neue Möglichkeiten, die über einfa- che Organizer-Funktionen deutlich hinaus gehen. Im Rahmen der mobilen Datenpräsentati- on 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 bestimmte 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 ha- ben.

(23)

Literaturverzeichnis

Bücher und Zeitschriften [Connect03]

Connect Test Katalog 2003

Vereinigte Motor-Verlage, Stuttgart [Panther03]

Panther, Robert, 2003,

Pocket PC Programmierung mit eMbedded Visual Basic, Franzis‘ Verlag, Poing

[Westphal02]

Westphal, Ralf, 2002 .NET kompakt,

Spektrum Akademischer Verlag, Heidelberg Webseiten

[BasicCorporation03]

NS Basic Corporation, 2003

Microsoft‘s Active Data Object for Windows CE http://nsbasic.com/ce/info/nsbce/technotes/TN10.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

[DEVBUZZ03]

DEVBUZZ.COM, 2003

Understanding the .NET Compact Framework for the Pocket PC

http://www.devbuzz.com/content/compact_framework_overview_pg2.asp [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

(24)

[MicrosoftMobile03]

Microsoft, 2003

Windows Mobile 2003

http://worldofi.com/SWTests/PPC03.htm#feat [MSDN03]

Microsoft MSDN, 2003

.NET Compact Framework Overview

http://msdn.microsoft.com/vstudio/device/compactfx.aspx [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 [vbtec00]

Schwieder, Jost, 2000

Unterschiede VBScript zu VB http://vb-tec.de/vbscript.htm [Winlinx02]

Mobile Business, Beispiele aus der Praxis

Erfahrungen aus dem Mobile Computing Competence Center,. winlinx http://www.winlinx.de/10_download/winlinx_cases.pdf

Downloads [Download01]

Microsoft eMbedded Visual Tools 3.0

http://msdn.microsoft.com/downloads/default.aspx

Referenzen

ÄHNLICHE DOKUMENTE

für das Wachstum eines Clusters nicht ausreicht, sich nur auf die internen Informationen und Entwicklun¬ gen zu verlassen, sondern dass überregionale Bezie¬ hungen wichtig sind,

Interpreter, interpreter Schablonenmethode Beobachter, observer Kommando, transaction Memento, token Strategie, policy Vermittler, mediator Zustand, state. Zuständigkeitskette, chain

Interpreter, interpreter Schablonenmethode Beobachter, observer Kommando, transaction Memento, token Strategie, policy Vermittler, mediator Zustand, state. Zuständigkeitskette, chain

Interpreter, interpreter Schablonenmethode Beobachter, observer Kommando, transaction Memento, token Strategie, policy Vermittler, mediator Zustand, state. Zuständigkeitskette, chain

Interpreter, interpreter Schablonenmethode Beobachter, observer Kommando, transaction Memento, token Strategie, policy Vermittler, mediator Zustand, state. Zuständigkeitskette, chain

b) Steuerfreie Rücklagen zur Förderung bestimmter Wirtschaftszweige.. Tabellarische Übersicht über die Rückstellungen 360 5. 366 dd) Berechnungsverfahren

2.3 Befreiung des Unternehmers von der Gefahrtragung 245 2.4 Gefahrtragung des Bestellers 246 3 Gewährleistung des Unternehmers 246 3.1 Überblick über die Voraussetzungen

Für Cooperative Level brauchen wir keinen exklusiven Zugriff (ist für die Tastatur auch nicht erlaubt), aber gleichzei- tig möchten wir die Tastaturdaten empfangen, auch wenn