.NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

94
.NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile

Transcript of .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Page 1: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

.NET Compact Framework & Webanwendungen

Mobile Computing mit Windows Mobile

Page 2: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

WAS SIE HIER NICHT LERNEN

2

Wie testet man, ob ein Ei

schlecht ist?

Page 3: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Agenda

3

I Was ist Mobile Computing?• M

obile Betriebssysteme von Microsoft

• Wer kann Mobile Computing?

II Grundlagen Mobile Computing• P

lattformen, Werkzeuge

• Leistungsmerkmale der SDKs, Browser etc.

• mobile Anwendungen / Webanwendungen

III Fazit• L

ohnt sich Mobile Computing?

IWas ist Mobile Computing?

Page 4: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Computing

Mobile Betriebs-systeme

Mobile Geschäfts-prozesse

Mobile Geräte

Page 5: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Windows Mobile ist einMarkenname von Microsoft

Die mobilen Betriebssysteme

5

Page 6: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Die Basis mobiler Betriebssysteme

6Torsten Weber | I Was ist Mobile

Computing? [1]

Page 7: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Partnerinnovationen• graduelle Verbesserungen• 3G/UMTS, WiFi, Voice/Data• neue APIs

• „höhere“ Produktivität• Word, Excel, Powerpoint Mobile• Persistent Storage• ActiveSync 4

• „besseres“ Multimedia• WMP 10 Mobile• HDD, USB 2.0 …

Windows Mobile 5 / 6

7

Page 8: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• vor einigen Jahren waren mobile Anwendungen schwerer zu entwickeln, das ist heute leichter

• die Werkzeuge sind erheblich mächtiger• .NET Compact Framework ist verfügbar• keine tief greifenden Kenntnisse oder spezielle

Ausbildung erforderlich• jeder kann prinzipiell sofort damit entwickeln

Wer kann Mobile Computing?

8Torsten Weber | I Was ist Mobile

Computing?

Page 9: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Entwicklung für mobile Geräte nicht vergleichbar mit Entwicklung für Desktops oder Server

• unter Windows Mobile 5 nur 32 Prozesse und nur 32 MB virtueller Adressierungsraum

• Einschränkungen wurden mit Windows Embedded CE 6 aufgehoben

• Embedded CE 6 != Windows Mobile 6

Windows Mobile ist anders

9Torsten Weber | I Was ist Mobile

Computing?

Page 10: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Microsoft: mobile Anwendungen sollten nicht beendet werden

• andere Speicherverwaltung: Anwendungen können jederzeit beendet werden

• darauf kann reagiert werden

Windows Mobile ist anders

10Torsten Weber | I Was ist Mobile

Computing?

Page 11: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Windows Mobile ist anders

11Torsten Weber | I Was ist Mobile

Computing?

andere Denkweise beim Zugriff auf Daten

Page 12: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Windows Mobile ist anders

12Torsten Weber | I Was ist Mobile

Computing?

Page 13: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Windows Mobile ist anders

13Torsten Weber | I Was ist Mobile

Computing?

Page 14: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Windows Mobile ist anders

14Torsten Weber | I Was ist Mobile

Computing?

192 dpi96 dpi

Page 15: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Windows Mobile ist anders

15Torsten Weber | I Was ist Mobile

Computing?

Page 16: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Windows Mobile ist anders

16Torsten Weber | I Was ist Mobile

Computing?

Page 17: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• prinzipiell kann jeder Mobile Computing• mächtige Entwicklungsumgebung + Kenntnisse

in .NET Framework und / oder .NET Compact Framework

!=konzeptionell gutes Mobile Computing

• es benötigt auch einen Erfahrungsschatz

Wer kann Mobile Computing?

17Torsten Weber | I Was ist Mobile

Computing?

Page 18: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Was ist, wenn die Erfahrung fehlt?• Was ist, wenn nur ein Aspekt mobil gemacht

werden soll?

Wer kann Mobile Computing?

18Torsten Weber | I Was ist Mobile

Computing?

Page 19: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Sie brauchen was mobiles!1. Lösung: Terminalanwendung

19Torsten Weber | I Was ist Mobile

Computing?

Page 20: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Sie brauchen was mobiles!2. Lösung: Webanwendung

20Torsten Weber | I Was ist Mobile

Computing?

Page 21: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Sie brauchen was mobiles!3. Lösung: .NET Compact Framework

21Torsten Weber | I Was ist Mobile

Computing?

Page 22: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Sie brauchen was mobiles!4. Lösung: .NET Compact Framework + XSLT

22Torsten Weber | I Was ist Mobile

Computing?

Page 23: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Sie brauchen was mobiles!Welche Lösung?

Torsten Weber

Mobile Betriebs-systeme

Mobile Geschäfts-prozesse

Mobile Geräte

Page 24: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Funktionsweise einer Versicherung: kollektive Risikoübernahme– die Verteilung von Risiko auf Menge und auf Zeit

• machen Coca Cola und Pepsi dasselbe?

• das Geschäft ist das Was• braucht eine Versicherung Service-Orientierung

oder Mobile Computing und dort AJAX? ist das Wie

Wie und Was unterscheiden können

24Torsten Weber | I Was ist Mobile

Computing?

Page 25: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Wie und Was unterscheiden können

Kartendienst

Adresssuche

Mobiles System

Desktop System

Datenbank ServiceEreignisse

XML

JPEG, PNG

URL, Parameter

XM

L

MSXML

SOAP

JSON VPN MSMQ Komprimierung

IIGrundlagen

Mobile Computing

Page 26: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Entwicklung für das .NET Compact Framework– mit Visual Studio Standard Edition (2005) bzw.

Professional (2008) (aber jeweils nie Express)

• native (C++) Device-Programmierung– kein extra Werkzeug mehr für eMbedded VC++– MFC 8, ATL 8 (auch für Smartphone), STL, CRT

• Forms-Designer, Datentools, etc.• Emulatoren

– ARM-Image

• Deployment-Designer (CAB-Files) + Code-Sign.

Werkzeuge für Mobile Computing

26Torsten Weber | II Grundlagen Mobile

Computing

Page 27: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• ist kompatible Teilmenge des .NET Framework• für Windows CE-basierte Geräte• bekannte .NET-Entwicklung

– RAD für mobile Geräte– Designer, Debugger, Emulatoren

• im Geräte-ROM seit WM 2003– Vorteil gegenüber Desktop, Server

• in .NET CF 2 kein COM Interop

Das .NET Compact Framework

27Torsten Weber | II Grundlagen Mobile

Computing

Page 28: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

.NET Framework 2.0 .NET Compact

Framework 2.0 .NET Compact Framework 2.0

(ROM)

28%28%

8%4%

72%

Ein Vergleich .NET / .NET CF

28Torsten Weber | II Grundlagen Mobile

Computing

FunktionalitätGröße

Page 29: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Die Funktionalitäten beim .NET CF 2

29Torsten Weber | II Grundlagen Mobile

Computing

Visual Studio 2005

DisplayUSB or Serial

ProcessorMemory

GSM/GPRSCDMA/1xRTT

Device Hardware

WiFiBluetooth

Radio

Drivers

Windows Mobile CE DBActiveSyncSQL CE

Pocket OutlookPocket Internet ExplorerWindows Media Player

Windows CE

Software Platform (APIs)

Home ScreenUser Interface/ShellHTML ControlDOM

GAPICameraD3DMLocation*

Remote APIConfiguration*BluetoothSecurityState & Notifications*Pocket Watson

Connection Mgr.TAPI*SMS* MAPI* POOM*ActiveSync

MultimediaCommunicationDevice Management PresentationSQL CEADO CEXMLCE DBOLE DB

Data Access

Native

Win32

ATL

Managed

.NET CompactFramework

Server side

ASP .NETMobile Controls

* = Managed wrappers

MFC

Page 30: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• mehr Performance• Generics, partielle Klassen• COM Interop• Kryptographie• Message Queues• serielle Ports• neue Steuerelemente• User Controls mit Designer

Neuerungen in .NET CF 2

30Torsten Weber | II Grundlagen Mobile

Computing

Page 31: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Bluetooth, Druck, IrDA, OBEX

• Smart Device Framework• 32feet.com

ComponentOneInfragisticsIn the HandOdyssey SoftwareXceed

Wenn das .NET CF nicht reicht

31Torsten Weber | II Grundlagen Mobile

Computing [2], [3], [4]

Page 32: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Die Entwicklung einer mobilen Anwendung

32Torsten Weber | II Grundlagen Mobile

Computing

Windows

.NET CF „Desktop“ Version

Visual Studio 2005C# / VB.NET

Windows Mobile

.NET CF

Page 33: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• kompakte relationale Datenbank • SQL-Syntax (kompatibel mit SQL Server)• hohe Performance • unterstützt Replikation & Synchronisation• Zugriff per ADO.NET, ADOCE, OLEDBCE • 128-Bit-Verschlüsselung der DB• unterstützt Transaktionen

mobiler SQL Server (ab .NET CF 1)

33Torsten Weber | II Grundlagen Mobile

Computing

Page 34: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Multi-User-Support• SqlCeResultSet (scrollable updateable

Cursor)zusätzlich zu DataReader, DataSet, DataTable

• Named Parameters• Auto-Compact• Management-Tools• VS2005-Integration• Smartphone-Unterstützung• für Win CE & Win32

mobiler SQL Server (ab .NET CF 2)

34Torsten Weber | II Grundlagen Mobile

Computing

Page 35: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Szenario DataSet

35Torsten Weber | II Grundlagen Mobile

Computing

Code / RAM Dateisystem / RAM

if (Person.New) { datamodel.Update(); …

Page 36: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Szenario SqlCeResultSet

36Torsten Weber | II Grundlagen Mobile

Computing

Code / RAM Dateisystem / RAM

if (Person.New) { datamodel.Update(); …

Page 37: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• .NET Compact Framework 1 SP3 im ROM• RAM-Installation von CF 2.0 für PPC &

Smartphone• SQL Mobile für PPC & Smartphone• Managed MAPI, Telephony, Pocket Outlook…• State & Notifications Broker• D3D Mobile• APIs für Kamera & Location• einheitliches CAB-Format

Windows Mobile 5 – Was ist neu?

37Torsten Weber | II Grundlagen Mobile

Computing

Page 38: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• CameraCapture• ContactPicker• PicturePicker

neue Steuerelemente

38Torsten Weber | II Grundlagen Mobile

Computing

Page 39: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• früher kein COM Interop, unter .NET CF 2 aber• oder mit Windows Mobile 5 API

– geht auch mit .NET CF 1

• Beispiel

OutlookSession outlook = new OutlookSession();Contact me = new Contact();me.FullName = “Torsten Weber”;outlook.Contacts.Items.Add(me); // gespeichertme.JobTitle = “BASTA Speaker”; me.Update(); // gespeichert

neue APIs - Managed Outlook Mobile

39Torsten Weber | II Grundlagen Mobile

Computing

Page 40: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Microsoft.WindowsMobile.PocketOutlook• Email & SMS

– + Attachments

• Recipient ≠ Contact !• Beispiel

Dim message As New SmsMessagemessage.To.Add(New Recipient(callerNumber))message.Body = “Update Process 203 RPC40o" + selectedTimemessage.Send()

neue APIs - Managed Messaging

40Torsten Weber | II Grundlagen Mobile

Computing

Page 41: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• State & Notifications API• einheitliches API zwecks Benachrichtigung,

"wenn etwas passiert"• nutzt dokumentierte Registry-Keys• transient & persistent notifications

neue APIs - SnAPI

41Torsten Weber | II Grundlagen Mobile

Computing

Page 42: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Szenario „Dispatching“ mit SnAPI

42Torsten Weber | I Was ist Mobile

Computing?

SMS

I S

D

N

Page 43: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• zwei Schritte– SystemState-Objekt erzeugen– Event-Handler anhängen

• Beispiel

SystemState callerId = new SystemState( SystemProperty.PhoneIncomingCallerContact);callerId.Changed += new EventHandler(callerId_Changed);void callerId_Changed(object sender, ChangeEventArgs e) { Contact caller = (Contact)callerId.CurrentValue;

neue APIs - SnAPI

43Torsten Weber | II Grundlagen Mobile

Computing

Page 44: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Beispiel

SystemState missedCall;void Form_Load(…) { if(!SystemState.IsApplicationLauncherEnabled( “MyApp.MissedCall”)) { missedCall = new SystemState( SystemProperty.PhoneMissedCall ); missedCall.EnableApplicationLauncher( “MyApp.MissedCall”); } else { SystemState missedCall = new SystemState(“MyApp.MissedCall”); }missedCall.Changed += new EventHandler(missedCall_Changed);

neue APIs - SnAPI

44Torsten Weber | II Grundlagen Mobile

Computing

Page 45: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Visual Studio– andere IDE ist möglich– Emulatoren sind dabei– mobiler SQL Server

ist dabei– Windows Mobile SDKs nachinstallieren

• Windows Mobile 5 SDK• Windows Mobile 6 SDK• lokalisierte Abbilder der Emulatoren nachinstallieren

– weitere Werkzeuge wie SmartDeviceFramework

Leitfaden für die erste mobile Anwendung

45Torsten Weber | II Grundlagen Mobile

Computing

Page 46: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• für den physischen Zugriffauf mobile Geräte bzw.Emulatoren:ActiveSync (XP) ab 4.1 bzw.Gerätecenter (Vista)

• optional– Geräteemulator 2 oder höher

Leitfaden für die erste mobile Anwendung

46Torsten Weber | II Grundlagen Mobile

Computing [5] – [13]

IIGrundlagen

mobile Webanwendungen

Page 47: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Mobile Webanwendung + Mobile AJAX– mit Internet Explorer Mobile seit Windows Mobile

2003 möglich– auch bei mobilen Geräten gibt es Vorteile von AJAX:

• Webseiten nicht komplett neu laden• spart Bytes und damit Geld

– Praxis

• .NET CF Anwendung + Mobile AJAX– XML-Transformation für „mehr Benutzeroberfläche“

2 Szenarien für das Wie für Mobile AJAX

47Torsten Weber | II Mobiles AJAX – Wie

geht es?

Page 48: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

2 Szenarien für das Wie für Mobile AJAX

48Torsten Weber | II Mobiles AJAX – Wie

geht es?

Dateninseln(Beispiel 1)

MSXML(Beispiel2)

SOAP & mehr(nahtlos-mobil.de/cd1106 + Beispiel 3)

Web-anwend

ung

MSXML(Beispiel 4)

.NET CF

Anwendung

Page 49: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

2 Szenarien für das Wie für Mobile AJAX

49Torsten Weber | II Mobiles AJAX – Wie

geht es?

Dateninseln(Beispiel 1)

MSXML(Beispiel2)

SOAP & mehr(nahtlos-mobil.de/cd1106 + Beispiel 3)

Web-anwend

ung

MSXML(Beispiel 4)

.NET CF

Anwendung

Page 50: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Was ist klar. Sie brauchen was mobiles!Wie?: Eine Webanwendung mit AJAX

50Torsten Weber | II Mobiles AJAX – Wie

geht es?

Detailinformationen: Ihr Mobile Operator ist T-Mobile

oder Simyo oder jemand anderes. Wer weiß das schon

so genau.

Page 51: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Produktdaten mobil abfragen• notwendig: Produkt-ID• soll verhindert werden: zusätzliches „HTML-

Drumherum“ (Overhead)• Vorteil: Zwischenschritt eines Seitenaufbaus

entfällt, Anwendung weiter sicht- und bedienbar

Szenario Webanwendung mit AJAX

51Torsten Weber | II Mobiles AJAX – Wie

geht es?

Page 52: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Szenario Webanwendung mit AJAX

52Torsten Weber | II Mobiles AJAX – Wie

geht es?

Produkt-ID

Produkt-ID

?

Produkt

Produkt

Page 53: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• wie viel übertragen wird, ist mit Fiddler feststellbar (www.fiddlertool.com)

• unterstützt als HTTP Debugging Proxy einen Debug-Modus wie eine IDE

• bei Emulatoren / mobile Geräten ist eine Konfiguration für Fiddler notwendig

Szenario Webanwendung mit AJAX

53Torsten Weber | II Mobiles AJAX – Wie geht es?

Page 54: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Für die Verwendung von Fiddler auf mobilen Geräten muss ein Browser erst konfiguriert werden. Für den Internet Explorer Mobile 5 unter Windows Mobile 5 (Pocket PC) führen Sie diese Konfiguration über Start, Einstellungen, Reiter Verbindungen, Anwendung Verbindungen, Reiter Erweitert und die Schaltfläche Netzwerk auswählen durch. Stellen Sie anschließend die Option Programme mit automatischem Internetzugriff verwenden auf den Eintrag Firmennetzwerk um. Klicken Sie dann auf die Schaltfläche Bearbeiten und wählen Sie den Reiter Proxyeinstellungen aus. Als nächstes muss die Option Dieses Netzwerk verwendet einen Proxyserver aktiviert und unter Proxyserver der Wert ppp_peer bei einer Verbindung über Bluetooth oder DMA bzw. dtpt_peer bei einer Verbindung über USB eingegeben werden. Klicken Sie anschließend auf Erweitert und im folgenden Dialog auf den Eintrag ppp_peer bzw. dtpt_peer beim Typ HTTP. Jetzt muss nur noch der Anschluss von 80 auf 8888 geändert und das Ganze 5-mal mit OK bestätigt werden.

• Jetzt ist der Desktop PC an der Reihe bei dem mit der rechten Maustaste im Infobereich der Taskleiste auf das Symbol von ActiveSync geklickt und dort im Kontextmenü der Eintrag Verbindungseinstellungen ausgewählt werden muss. In dem darauffolgenden Dialogfeld muss unter Dieser Computer ist verbunden mit die Option Firmennetzwerk eingestellt und mit OK bestätigt werden. Starten Sie Fiddler und wählen Sie aus dem Menü Tools den Menüpunkt Fiddler Options aus. Im darauf folgenden Dialogfeld Fiddler Options aktivieren Sie die Option Allow remote clients to connect aus und bestätigen mit OK.

• Docken Sie das mobile Gerät ein. Haben Sie keines zur Verfügung und arbeiten mit einem Emulator kann auch eine virtuelle Dockingstation verwendet werden. Hier muss erst sichergestellt werden, dass sich ActiveSync 4.x mit dem Emulator verbinden kann. In ActiveSync prüfen Sie über den Menübefehl Datei/Verbindungseinstellungen und in dem darauf folgenden Dialogfeld unter Verbindung zu folgenden Anschlüssen zulassen ob dort DMA ausgewählt ist. Anschließend kann über den Menüpunkt Extras/Geräteemulator-Manager per Kontextmenü eines gerade laufenden Emulators der Eintrag In Basisstation ausgewählt werden. Hat alles geklappt, ändert sich das Symbol des ausgewählten Emulators in ein Symbol, das eine Netzwerkverbindung dargestellt.

• Jetzt kann mit Start\Internet Explorer der Internet Explorer Mobile gestartet und der dabei entstehende Datenverkehr protokolliert und manipuliert werden. Eventuell muss dazu noch die Firewall des Desktop PCs angepasst und dort der Port 8888 freigegeben werden.

Mitgeschrieben für Sie!Die Konfiguration von Fiddler

54Torsten Weber | II Mobiles AJAX – Wie

geht es? [3]

Page 55: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• das Wie – Webanwendung mit Mobile AJAX welche Technologie?

• zweckadäquat entscheiden– alles laden: XML-Dateninseln– teilweise laden: MSXML– im Kontext laden: Mobile AJAX in

Verbindung mit SOAP / XML, JSON usw.

Szenario Webanwendung mit AJAX

55Torsten Weber | II Mobiles AJAX – Wie

geht es?

übertrageneDaten

[4], [5], [6]

Page 56: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

2 Szenarien für das Wie für Mobile AJAX

56Torsten Weber | II Mobiles AJAX – Wie

geht es?

Dateninseln(Beispiel 1)

MSXML(Beispiel2)

SOAP & mehr(nahtlos-mobil.de/cd1106 + Beispiel 3)

Web-anwend

ung

MSXML(Beispiel 4)

.NET CF

Anwendung

Page 57: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Beispiel für eine XML-Dateninsel:<xml> <Chapters> <Chapter Name=“Vorwort”> <ReferenceWeb ID=“…” URL=“…”>…</ReferenceWeb> </Chapter> <Chapter …> … </Chapter> </Chapters></xml>

Szenario Webanwendung mit AJAXLösung 1: Dateninseln

57Torsten Weber | II Mobiles AJAX – Wie

geht es?DEMO

CODE

Page 58: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Beispiel für eine XML-Dateninsel:

function loadChapters() { xmlDoc = Chapters.XMLDocument; chapters = xmlDoc.getElementsByTagName("Chapter");

for (i = 0; i < chapters.length; i++) { option = new Option(); option.text = chapters[i].attributes.getNamedItem("Name").text; option.value = option.text; document.all.chaptersList.options.add(option); }}

Szenario Webanwendung mit AJAXLösung 1: Dateninseln

58Torsten Weber | II Mobiles AJAX – Wie

geht es?DEMO

CODE

Page 59: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

2 Szenarien für das Wie für Mobile AJAX

59Torsten Weber | II Mobiles AJAX – Wie

geht es?

Dateninseln(Beispiel 1)

MSXML(Beispiel2)

SOAP & mehr(nahtlos-mobil.de/cd1106 + Beispiel 3)

Web-anwend

ung

MSXML(Beispiel 4)

.NET CF

Anwendung

Page 60: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• erlaubt asynchrones Laden von Dateien per HTTP-GET… mit Hilfe von Msxml2.XMLHTTP

• eventuell kombiniert mit dritter Lösung (Kontext)

Szenario Webanwendung mit AJAXLösung 2: MSXML

60Torsten Weber | II Mobiles AJAX – Wie

geht es?

Page 61: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Beispiel laden einer Dateifunction LoadXmlFile() { if (webRequest) { new ActiveXObject("Msxml2.XMLHTTP");

if (webRequest) { webRequest.onreadystatechange = ParseResponse; webRequest.open("GET", „http://...foo.xml", true); webRequest.send(); } } …}

Szenario Webanwendung mit AJAXLösung 2: MSXML

61Torsten Weber | II Mobiles AJAX – Wie

geht es?DEMO

CODE

Page 62: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

2 Szenarien für das Wie für Mobile AJAX

62Torsten Weber | II Mobiles AJAX – Wie

geht es?

Dateninseln(Beispiel 1)

MSXML(Beispiel2)

SOAP & mehr(nahtlos-mobil.de/cd1106 + Beispiel 3)

Web-anwend

ung

MSXML(Beispiel 4)

.NET CF

Anwendung

Page 63: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Internet Explorer Mobile 5 bietet JScript 5.6• bei Windows Mobile 2003

– innerText und innerHMTL nur bei div und span unterstützt

– Zugriff auf Inhalte nur innerhalb von <form>…</form>

• bei Windows Mobile 5 gibt es eine Unterstützung für style und document.all

Szenario Webanwendung mit AJAXLösung 3: SOAP (oder was anderes)

63Torsten Weber | II Mobiles AJAX – Wie

geht es?

Page 64: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Beispiel für Windows Mobile 2003 / Windows Mobile 5 Kompatibilität:… <body> <form id="productID" …> <input type="button" id="btnRequest"… /> <div id="wait" /> <div id="result" /> </form> </body></html>

Szenario Webanwendung mit AJAXLösung 3: SOAP (oder was anderes)

64Torsten Weber | II Mobiles AJAX – Wie

geht es?

wait.innerHTML = '<img src="Resources/Wait.gif" id="imgWait" alt="Bitte warten..." />';

document.forms['productID'].btnRequest.disabled = true;

Page 65: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• beim .NET Framework / .NET Compact Framework gibt es Proxyklassen, bei AJAX dagegen ActiveX

• damit können die Grenzen von JavaScript und HTML überwunden werden

• Zugriff auf Daten läuft zweigeteilt, asynchron ab

Szenario Webanwendung mit AJAXLösung 3: SOAP (oder was anderes)

65Torsten Weber | II Mobiles AJAX – Wie

geht es?

Page 66: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Szenario Webanwendung mit AJAXLösung 3: Beispiel ASP.NET 2.0 Web Service

66Torsten Weber | II Mobiles AJAX – Wie

geht es?

Produkt-ID

Produkt-IDProdukt

Produkt

21WSSteuerelemente deaktivieren, Status-bild anzeigen

Browserweiche für ActiveX Objekt

Methode für Schritt 2 registrieren

SOAP-Nachricht zusammenbauen

SOAP-Nachricht verschicken

Ergebnis von SOAP auswerten und anzeigen

Steuerelemente aktivieren, Statusbild ausblenden

DEMOCODE

CODE

CODE

Page 67: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

2 Szenarien für das Wie für Mobile AJAX

67Torsten Weber | II Mobiles AJAX – Wie

geht es?

Dateninseln(Beispiel 1)

MSXML(Beispiel2)

SOAP & mehr(nahtlos-mobil.de/cd1106 + Beispiel 3)

Web-anwend

ung

MSXML(Beispiel 4)

.NET CF

Anwendung

dynamisch

Page 68: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• bei Desktop und Servern bei JSON verwendet• „normal“

– über document.CreateElement <script> erzeugen

– dann src-Attribut von <script> setzen– bei IE Mobile nicht unterstützt (IE stürzt ab / hängt)

• <script>, src und Ziel erzeugen, als innerHTML eines <div>

Szenario Webanwendung mit AJAXLösung 4: On-Demand-JavaScript

68Torsten Weber | III Fazit

Page 69: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• <div id="scriptHolder"></div> // irgendwo

// dann mit JavaScript On-Demand Code erzeugen// oder abrufen mitvar newScript = "<script type='text/javascript' src='http://dataservice.com/getData?p=wert&format=json'/>";scriptHolder.innerHTML = newScript;

• Methode bei Desktops, Servern wegen Script-Injection nicht unterstützt– Browserweiche

Szenario Webanwendung mit AJAXLösung 4: On-Demand-JavaScript

69Torsten Weber | III Fazit

Page 70: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

2 Szenarien für das Wie für Mobile AJAX

70Torsten Weber | II Mobiles AJAX – Wie

geht es?

Dateninseln(Beispiel 1)

MSXML(Beispiel2)

SOAP & mehr(nahtlos-mobil.de/cd1106 + Beispiel 3)

Web-anwend

ung

MSXML(Beispiel 4)

.NET CF

Anwendung

dynamisch

Page 71: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Szenario .NET CF mit AJAX (durch XSLT)Lösung: MSXML

71Torsten Weber | II Mobiles AJAX – Wie

geht es?

• Oberflächen des .NETCF erweiterbar• … aber Probleme können entstehen

• WebBrowser = COM• Komplexität im Quellcode

IIIFazit

Page 72: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Best PracticesA B

2

1 3

Page 73: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• HTTP-Kommunikation ist smart, aber langsam und „fett“– Fiddler Tool einsetzen– eigene Datenstrukturen und Protokolle einsetzen– nur „Header“ übertragen

• bei mehreren Backend-Systemen Middle-Tier

Mobile Best Practices

Page 74: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Zugriffsschichten, nicht pro Formular– Singleton-Provider, Singleton-Base– Bibliotheken…

Mobile Best Practices

EanReader ean = new EanReader ();ean.Enabled = true;…

EanReader ean = new EanReader ();ean.Enabled = true;…

Singleton-Provider

SingletonProvider<EandReader>.Instance.Enabled = true;

Page 75: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• XML-Verarbeitung bei .NET CF 2 um40 % schneller

• XMLDocument im Ausnahmefall– XMLTextReader

• Datenbank vs. Dateisystem• DataSets vs. ResultSets

Mobile Best Practices

Page 76: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• GC.Collect(); bei Bild-Operationen– Bilder sind unverwaltet

• Generics einsetzen• Reflection kostet unheimlich viel Zeit• Referenz- oder Werttyp?

Mobile Best Practices

Page 77: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Multi-Threading einsetzen– bei Splashscreens– bei Datenbankzugriffen– bei Web Service-Zugriffen– Application.DoEvents(); reicht manchmal– BeginUpdate, EndUpdate verwenden

Mobile Best Practices

Page 78: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Formulare einfach halten– jedes Steuerelement muss sich die Berechtigung

„verdienen“– Tastatur eventuell selber als Formular

• Muss der Stift sein?– Steuerelement finden– Gestensteuerung– Steuercodes

Mobile Best Practices

Page 79: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Best Practices

Page 80: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• Formulare nicht gerätespezifisch– an Unterschiede bei DPI und

Ausrichtung denken– Anchoring, Docking verwenden

• Add-Ins für Visual Studio für P/Invoke• Komponenten verwenden

Mobile Best Practices

Page 81: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• PerformanceCounter oder• Power Toys verwenden

• Remote Performance Monitor and GC Heap Viewer • NETCF CLR Profiler • App Configuration Tool (NetCFcfg.exe) • NETCF ServiceModel Metadata Tool • Remote Logging Configuration Tool • NETCF Network Log Viewer

Mobile Best Practices

Page 82: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

• PerformanceCounter oder• Power Toys verwenden

• Remote Performance Monitor and GC Heap Viewer • NETCF CLR Profiler • App Configuration Tool (NetCFcfg.exe) • NETCF ServiceModel Metadata Tool • Remote Logging Configuration Tool • NETCF Network Log Viewer

Mobile Best Practices

Page 83: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Best Practices

Page 84: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Best Practices

Page 85: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Best Practices

Page 86: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Best Practices

Page 87: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.
Page 88: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Mobile Best Practices

Page 89: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Fazit

89Torsten Weber | III Fazit

• jeder kann Mobile Computing– Berührungsängste– Erfahrungsschatz

• enorme Wachstumsraten– „2012“– führt kein Nischendasein mehr

• Mobile Computing mit .NET CF– relativ einfach– ein „so geht es los“-Leitfaden fehlt– Dokumentation manchmal sehr dürftig

Page 90: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Fragen?

90Torsten Weber

Wer exportiert die meisten Nilpferde…?

Page 91: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

[1] Quelle Abbildungen: de.wikipedia.org/wiki/Lego

[2] Smart Device Framework, www.opennetcf.org

[3] In the Hand, www.inthehand.com

[4] Bluetooth, IrDA, OBEX, www.32feet.net

[5] ActiveSync v4.5 German – Deutschwww.microsoft.com/downloads/details.aspx?familyid=EC48087F-E74B-4B19-AD8B-A69E4CFF6295&displaylang=de

[6] Windows Mobile 5.0 SDK for Pocket PCwww.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155-717CBE5D25ED&displaylang=en

[7] Windows Mobile 5.0 SDK for Smartphonewww.microsoft.com/downloads/details.aspx?familyid=DC6C00CB-738A-4B97-8910-5CD29AB5F8D9&displaylang=en

[8] Windows Mobile 6 Professional and Standard Software Development Kits Refreshhttp://www.microsoft.com/downloads/details.aspx?familyid=06111a3a-a651-4745-88ef-3d48091a390b&displaylang=en

Links & Informationen

91Torsten Weber

Page 92: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

[9] Localized Windows Mobile 5.0 Pocket PC Emulator Imageswww.microsoft.com/downloads/details.aspx?familyid=EEC33AE3-C129-4C25-ABAA-18E8E842178F&displaylang=en

[10] Localized Windows Mobile 5.0 Smartphone Emulator Imageswww.microsoft.com/downloads/details.aspx?FamilyID=52fed581-8f8d-4c46-9966-4832098191b7&DisplayLang=en

[11] Windows Mobile 6 Localized Emulator Imageswww.microsoft.com/downloads/details.aspx?familyid=38C46AA8-1DD7-426F-A913-4F370A65A582&displaylang=en

[12] Microsoft Device Emulator 2.0 – Eigenständige Versionwww.microsoft.com/downloads/details.aspx?familyID=dd567053-f231-4a64-a648-fea5e7061303&displaylang=de

[13] Windows Mobile Device Center www.microsoft.com/windowsmobile/devicecenter.mspx

Links & Informationen

92Torsten Weber

Page 93: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Download des Verweiswerkzeuges

www.nahtlos-mobil.de/werkzeuge/verweiswerkzeug.zip

www.nahtlos-mobil.de/werkzeuge/verweiswerkzeug64.zip

www.nahtlos-mobil.de/werkzeuge/verweiswerkzeugItanium.zip

Programmieren mit dem .NET Compact Framework. Anwendungsentwicklung

für mobile Geräte, Ruprecht Dröge, Peter Nowak, Torsten Weber

Microsoft Press Deutschland 06/2008, 3-86645-426-0

Microsoft Press Deutschland 09/2006, 3-86645-401-5

Links & Informationen

Page 94: .NET Compact Framework & Webanwendungen Mobile Computing mit Windows Mobile.

Torsten Weber

* 22. März 1977, Wurzen MVP Visual DeveloperDevice Application Development

Theodor-Körner-Straße 104808 Wurzen+ 49 (3425) 924965

E-Mail: [email protected], XING und Publikationen: torstenweber.de

Impressum