mobile computing mit windows mobile
Post on 13-Feb-2016
194 Views
Preview:
DESCRIPTION
TRANSCRIPT
.NET Compact Framework & Webanwendungen
Mobile Computing mit Windows Mobile
WAS SIE HIER NICHT LERNEN
2
Wie testet man, ob ein Ei
schlecht ist?
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?
Mobile Computing
Mobile Betriebs-systeme
Mobile Geschäfts-prozesse
Mobile Geräte
• Windows Mobile ist einMarkenname von Microsoft
Die mobilen Betriebssysteme
5
Die Basis mobiler Betriebssysteme
6Torsten Weber | I Was ist Mobile Computing? [1]
• 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
• 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?
• 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?
• 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?
Windows Mobile ist anders
11Torsten Weber | I Was ist Mobile Computing?
andere Denkweise beim Zugriff auf Daten
Windows Mobile ist anders
12Torsten Weber | I Was ist Mobile Computing?
Windows Mobile ist anders
13Torsten Weber | I Was ist Mobile Computing?
Windows Mobile ist anders
14Torsten Weber | I Was ist Mobile Computing?
192 dpi96 dpi
Windows Mobile ist anders
15Torsten Weber | I Was ist Mobile Computing?
Windows Mobile ist anders
16Torsten Weber | I Was ist Mobile Computing?
• 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?
• 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?
Sie brauchen was mobiles!1. Lösung: Terminalanwendung
19Torsten Weber | I Was ist Mobile Computing?
Sie brauchen was mobiles!2. Lösung: Webanwendung
20Torsten Weber | I Was ist Mobile Computing?
Sie brauchen was mobiles!3. Lösung: .NET Compact Framework
21Torsten Weber | I Was ist Mobile Computing?
Sie brauchen was mobiles!4. Lösung: .NET Compact Framework + XSLT
22Torsten Weber | I Was ist Mobile Computing?
Sie brauchen was mobiles!Welche Lösung?
Torsten Weber
Mobile Betriebs-systeme
Mobile Geschäfts-prozesse
Mobile Geräte
• 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?
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
• 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
• 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
.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
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
• 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
• 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]
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
• 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
• 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
Szenario DataSet
35Torsten Weber | II Grundlagen Mobile Computing
Code / RAM Dateisystem / RAM
if (Person.New) { datamodel.Update(); …
Szenario SqlCeResultSet
36Torsten Weber | II Grundlagen Mobile Computing
Code / RAM Dateisystem / RAM
if (Person.New) { datamodel.Update(); …
• .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
• CameraCapture• ContactPicker• PicturePicker
neue Steuerelemente
38Torsten Weber | II Grundlagen Mobile Computing
• 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
• 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
• 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
Szenario „Dispatching“ mit SnAPI
42Torsten Weber | I Was ist Mobile Computing?
SMS
I S
D
N
• 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
• 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
• 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
• 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
• 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?
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
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
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.
• 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?
Szenario Webanwendung mit AJAX
52Torsten Weber | II Mobiles AJAX – Wie geht es?
Produkt-ID
Produkt-ID
?
Produkt
Produkt
• 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?
• 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]
• 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]
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
• 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
• 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
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
• 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?
• 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
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
• 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?
• 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;
• 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?
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
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
• 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
• <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
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
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
Mobile Best PracticesA B
2
1 3
• 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
• 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;
• XML-Verarbeitung bei .NET CF 2 um40 % schneller
• XMLDocument im Ausnahmefall– XMLTextReader
• Datenbank vs. Dateisystem• DataSets vs. ResultSets
Mobile Best Practices
• GC.Collect(); bei Bild-Operationen– Bilder sind unverwaltet
• Generics einsetzen• Reflection kostet unheimlich viel Zeit• Referenz- oder Werttyp?
Mobile Best Practices
• Multi-Threading einsetzen– bei Splashscreens– bei Datenbankzugriffen– bei Web Service-Zugriffen– Application.DoEvents(); reicht manchmal– BeginUpdate, EndUpdate verwenden
Mobile Best Practices
• 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
Mobile Best Practices
• 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
• 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
• 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
Mobile Best Practices
Mobile Best Practices
Mobile Best Practices
Mobile Best Practices
Mobile Best Practices
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
Fragen?
90Torsten Weber
Wer exportiert die meisten Nilpferde…?
[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
[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
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
Torsten Weber
* 22. März 1977, Wurzen MVP Visual DeveloperDevice Application Development
Theodor-Körner-Straße 104808 Wurzen+ 49 (3425) 924965
E-Mail: feedback@torstenweber.deBlog, XING und Publikationen: torstenweber.de
Impressum
top related