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

Mobile Computing mit Windows Mobile

  • Upload
    sagira

  • View
    194

  • Download
    11

Embed Size (px)

DESCRIPTION

Mobile Computing mit Windows Mobile. .NET Compact Framework & Webanwendungen. Wie testet man, ob ein Ei schlecht ist?. Was sie hier nicht lernen. I Was ist Mobile Computing?. Agenda. Mobile Betriebs- systeme. Mobile Geschäfts- prozesse. Mobile Geräte. Mobile Computing. - PowerPoint PPT Presentation

Citation preview

Page 1: Mobile Computing mit Windows Mobile

.NET Compact Framework & Webanwendungen

Mobile Computing mit Windows Mobile

Page 2: Mobile Computing mit Windows Mobile

WAS SIE HIER NICHT LERNEN

2

Wie testet man, ob ein Ei

schlecht ist?

Page 3: 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: Mobile Computing mit Windows Mobile

Mobile Computing

Mobile Betriebs-systeme

Mobile Geschäfts-prozesse

Mobile Geräte

Page 5: Mobile Computing mit Windows Mobile

• Windows Mobile ist einMarkenname von Microsoft

Die mobilen Betriebssysteme

5

Page 6: Mobile Computing mit Windows Mobile

Die Basis mobiler Betriebssysteme

6Torsten Weber | I Was ist Mobile Computing? [1]

Page 7: 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: 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: 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: 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: Mobile Computing mit Windows Mobile

Windows Mobile ist anders

11Torsten Weber | I Was ist Mobile Computing?

andere Denkweise beim Zugriff auf Daten

Page 12: Mobile Computing mit Windows Mobile

Windows Mobile ist anders

12Torsten Weber | I Was ist Mobile Computing?

Page 13: Mobile Computing mit Windows Mobile

Windows Mobile ist anders

13Torsten Weber | I Was ist Mobile Computing?

Page 14: Mobile Computing mit Windows Mobile

Windows Mobile ist anders

14Torsten Weber | I Was ist Mobile Computing?

192 dpi96 dpi

Page 15: Mobile Computing mit Windows Mobile

Windows Mobile ist anders

15Torsten Weber | I Was ist Mobile Computing?

Page 16: Mobile Computing mit Windows Mobile

Windows Mobile ist anders

16Torsten Weber | I Was ist Mobile Computing?

Page 17: 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: 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: Mobile Computing mit Windows Mobile

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

19Torsten Weber | I Was ist Mobile Computing?

Page 20: Mobile Computing mit Windows Mobile

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

20Torsten Weber | I Was ist Mobile Computing?

Page 21: Mobile Computing mit Windows Mobile

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

21Torsten Weber | I Was ist Mobile Computing?

Page 22: 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: 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: 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: Mobile Computing mit Windows Mobile

Wie und Was unterscheiden können

Kartendienst

Adresssuche

Mobiles System

Desktop System

Datenbank ServiceEreignisse

XML

JPEG, PNG

URL, Parameter

XML

MSXML

SOAP

JSON VPN MSMQ Komprimierung

IIGrundlagen

Mobile Computing

Page 26: 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: 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: 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: 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: 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: 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: 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: 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: 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: Mobile Computing mit Windows Mobile

Szenario DataSet

35Torsten Weber | II Grundlagen Mobile Computing

Code / RAM Dateisystem / RAM

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

Page 36: Mobile Computing mit Windows Mobile

Szenario SqlCeResultSet

36Torsten Weber | II Grundlagen Mobile Computing

Code / RAM Dateisystem / RAM

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

Page 37: 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: Mobile Computing mit Windows Mobile

• CameraCapture• ContactPicker• PicturePicker

neue Steuerelemente

38Torsten Weber | II Grundlagen Mobile Computing

Page 39: 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: 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: 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: Mobile Computing mit Windows Mobile

Szenario „Dispatching“ mit SnAPI

42Torsten Weber | I Was ist Mobile Computing?

SMS

I S

D

N

Page 43: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: Mobile Computing mit Windows Mobile

Mobile Best PracticesA B

2

1 3

Page 73: 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: 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: 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: 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: 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: 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: Mobile Computing mit Windows Mobile

Mobile Best Practices

Page 80: 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: 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: 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: Mobile Computing mit Windows Mobile

Mobile Best Practices

Page 84: Mobile Computing mit Windows Mobile

Mobile Best Practices

Page 85: Mobile Computing mit Windows Mobile

Mobile Best Practices

Page 86: Mobile Computing mit Windows Mobile

Mobile Best Practices

Page 87: Mobile Computing mit Windows Mobile
Page 88: Mobile Computing mit Windows Mobile

Mobile Best Practices

Page 89: 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: Mobile Computing mit Windows Mobile

Fragen?

90Torsten Weber

Wer exportiert die meisten Nilpferde…?

Page 91: 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 – Deutsch

www.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: 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: Mobile Computing mit Windows Mobile

Download des Verweiswerkzeugeswww.nahtlos-mobil.de/werkzeuge/verweiswerkzeug.zipwww.nahtlos-mobil.de/werkzeuge/verweiswerkzeug64.zipwww.nahtlos-mobil.de/werkzeuge/verweiswerkzeugItanium.zip

Programmieren mit dem .NET Compact Framework. Anwendungsentwicklungfür mobile Geräte, Ruprecht Dröge, Peter Nowak, Torsten WeberMicrosoft Press Deutschland 06/2008, 3-86645-426-0Microsoft Press Deutschland 09/2006, 3-86645-401-5

Links & Informationen

Page 94: 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