Folie 0 - net Developer

Werbung
Mobile Computing mit Windows Mobile
.NET Compact Framework & Webanwendungen
Wie testet man,
ob ein Ei
schlecht ist?
WAS SIE HIER NICHT LERNEN
1
Agenda
I
Was ist Mobile
Computing?
I Was ist Mobile Computing?
• Mobile Betriebssysteme von Microsoft
• Wer kann Mobile Computing?
II Grundlagen Mobile Computing
• Plattformen, Werkzeuge
• Leistungsmerkmale der SDKs, Browser etc.
• mobile Anwendungen / Webanwendungen
III Fazit
• Lohnt sich Mobile Computing?
2
Mobile Computing
Mobile
Betriebssysteme
Mobile
Geschäftsprozesse
Mobile
Geräte
Die mobilen Betriebssysteme
• Windows Mobile ist ein
Markenname von Microsoft
4
Die Basis mobiler Betriebssysteme
Torsten Weber | I Was ist Mobile
Computing?
5
[1]
Windows Mobile 5 / 6
• 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 …
6
Wer kann Mobile Computing?
• 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
Torsten Weber | I Was ist Mobile
Computing?
7
Windows Mobile ist anders
• 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
Torsten Weber | I Was ist Mobile
Computing?
8
Windows Mobile ist anders
• Microsoft: mobile Anwendungen sollten nicht
beendet werden
• andere Speicherverwaltung: Anwendungen
können jederzeit beendet werden
• darauf kann reagiert werden
Torsten Weber | I Was ist Mobile
Computing?
9
Windows Mobile ist anders
Torsten Weber | I Was ist Mobile
Computing?
10
Windows Mobile ist anders
Torsten Weber | I Was ist Mobile
Computing?
11
Windows Mobile ist anders
Torsten Weber | I Was ist Mobile
Computing?
12
Windows Mobile ist anders
96 dpi
192 dpi
Torsten Weber | I Was ist Mobile
Computing?
13
Windows Mobile ist anders
Torsten Weber | I Was ist Mobile
Computing?
14
Windows Mobile ist anders
Torsten Weber | I Was ist Mobile
Computing?
15
Wer kann 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
Torsten Weber | I Was ist Mobile
Computing?
16
Wer kann Mobile Computing?
• Was ist, wenn die Erfahrung fehlt?
• Was ist, wenn nur ein Aspekt mobil gemacht
werden soll?
Torsten Weber | I Was ist Mobile
Computing?
17
Sie brauchen was mobiles!
1. Lösung: Terminalanwendung
Torsten Weber | I Was ist Mobile
Computing?
18
Sie brauchen was mobiles!
2. Lösung: Webanwendung
Torsten Weber | I Was ist Mobile
Computing?
19
Sie brauchen was mobiles!
3. Lösung: .NET Compact Framework
Torsten Weber | I Was ist Mobile
Computing?
20
Sie brauchen was mobiles!
4. Lösung: .NET Compact Framework +
XSLT
Torsten Weber | I Was ist Mobile
Computing?
21
Sie brauchen was mobiles!
Welche Lösung?
Mobile
Betriebssysteme
Mobile
Geschäftsprozesse
Mobile
Geräte
Torsten Weber
Wie und Was unterscheiden können
• 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?
| I Was ist Mobile
23
 ist das Wie Torsten Weber
Computing?
Wie und Was unterscheiden können
II
Grundlagen
Mobile Computing
MSXML
URL, Parameter
Kartendienst
Mobiles System
JPEG, PNG
Desktop System
SOAP
Adresssuche
JSON
VPN
Datenbank Service
Ereignisse
MSMQ
Kompri
mierung
Werkzeuge für 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
Torsten Weber | II Grundlagen Mobile
• Deployment-Designer
(CAB-Files) + Code-Sign.25
Computing
Das .NET Compact Framework
• 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
Torsten Weber | II Grundlagen Mobile
Computing
26
Ein Vergleich .NET / .NET CF
72%
8%
28%
.NET Framework 2.0
Funktionalität
.NET Compact
Framework 2.0
Größe
Torsten Weber | II Grundlagen Mobile
Computing
4%
28%
.NET Compact
Framework 2.0
(ROM)
27
Die Funktionalitäten beim .NET CF 2
Visual Studio 2005
Native
MFC
Managed
ATL
.NET Compact
Framework
Win32
Server side
ASP .NET
Mobile Controls
Software Platform (APIs)
Device Management
Communication
Presentation
Data Access
Multimedia
Remote API
Configuration*
Bluetooth
Security
State & Notifications*
Pocket Watson
Connection Mgr.
TAPI*
SMS*
MAPI*
POOM*
ActiveSync
Home Screen
User Interface/Shell
HTML Control
DOM
SQL CE
ADO CE
XML
CE DB
OLE DB
GAPI
Camera
D3DM
Location*
Windows CE
Windows Mobile
* = Managed wrappers
CE DB
ActiveSync
SQL CE
Pocket Outlook
Pocket Internet Explorer
Windows Media Player
Drivers
Device
Hardware
Processor
Memory
GSM/GPRS
Display
Radio
CDMA/1xRTT
USB
or
Serial
Torsten Weber | II Grundlagen Mobile
Computing
WiFi
Bluetooth
28
Neuerungen in .NET CF 2
•
•
•
•
•
•
•
•
mehr Performance
Generics, partielle Klassen
COM Interop
Kryptographie
Message Queues
serielle Ports
neue Steuerelemente
User Controls mit Designer
Torsten Weber | II Grundlagen Mobile
Computing
29
Wenn das .NET CF nicht reicht
• Bluetooth, Druck, IrDA, OBEX
• Smart Device Framework
• 32feet.com
ComponentOne
Infragistics
In the Hand
Odyssey Software
Xceed
Torsten Weber | II Grundlagen Mobile
Computing
30
[2], [3], [4]
Die Entwicklung einer mobilen Anwendung
Visual Studio 2005
C# / VB.NET
.NET CF „Desktop“ Version
Windows
.NET CF
Torsten Weber | II Grundlagen Mobile
Computing
Windows Mobile
31
mobiler SQL Server (ab .NET CF 1)
•
•
•
•
•
•
•
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
Torsten Weber | II Grundlagen Mobile
Computing
32
mobiler SQL Server (ab .NET CF 2)
• 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
Torsten Weber | II Grundlagen Mobile
33
Computing
Szenario DataSet
if (Person.New) {
datamodel.Update();
…
Code / RAM
Dateisystem / RAM
Torsten Weber | II Grundlagen Mobile
Computing
34
Szenario SqlCeResultSet
if (Person.New) {
datamodel.Update();
…
Code / RAM
Dateisystem / RAM
Torsten Weber | II Grundlagen Mobile
Computing
35
Windows Mobile 5 – Was ist neu?
• .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
Torsten Weber | II Grundlagen Mobile
Computing
36
neue Steuerelemente
• CameraCapture
• ContactPicker
• PicturePicker
Torsten Weber | II Grundlagen Mobile
Computing
37
neue APIs - Managed Outlook 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); // gespeichert
me.JobTitle = “BASTA Speaker”;
me.Update(); // gespeichert
Torsten Weber | II Grundlagen Mobile
Computing
38
neue APIs - Managed Messaging
• Microsoft.WindowsMobile.PocketOutlook
• Email & SMS
– + Attachments
• Recipient ≠ Contact !
• Beispiel
Dim message As New SmsMessage
message.To.Add(New Recipient(callerNumber))
message.Body = “Update Process 203 RPC40o" +
selectedTime
message.Send()
Torsten Weber | II Grundlagen Mobile
Computing
39
neue APIs - SnAPI
• State & Notifications API
• einheitliches API zwecks Benachrichtigung,
"wenn etwas passiert"
• nutzt dokumentierte Registry-Keys
• transient & persistent notifications
Torsten Weber | II Grundlagen Mobile
Computing
40
Szenario „Dispatching“ mit SnAPI
S M S
Torsten Weber | I Was ist Mobile
Computing?
41
neue APIs - SnAPI
• 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;
Torsten Weber | II Grundlagen Mobile
Computing
42
neue APIs - SnAPI
• 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.ChangedTorsten
+= Weber
new| II Grundlagen Mobile
Computing
EventHandler(missedCall_Changed);
43
Leitfaden für die erste mobile Anwendung
• 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| II SmartDeviceFramework
Torsten Weber
Grundlagen Mobile
Computing
44
Leitfaden für die erste mobile Anwendung
II
Grundlagen
mobile
Webanwendungen
• für den physischen Zugriff
auf mobile Geräte bzw.
Emulatoren:
ActiveSync (XP) ab 4.1 bzw.
Gerätecenter (Vista)
• optional
– Geräteemulator 2 oder höher
Torsten Weber | II Grundlagen Mobile
Computing
45
[5] – [13]
2 Szenarien für das Wie für Mobile AJAX
• 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“
Torsten Weber | II Mobiles AJAX – Wie
geht es?
46
2 Szenarien für das Wie für Mobile AJAX
Webanwendung
Dateninseln
.NET CF
Anwendung
(Beispiel 1)
MSXML
(Beispiel 4)
MSXML
(Beispiel2)
SOAP &
mehr
(nahtlosmobil.de/cd110
6 + Beispiel 3)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
47
2 Szenarien für das Wie für Mobile AJAX
Webanwendung
Dateninseln
.NET CF
Anwendung
(Beispiel 1)
MSXML
(Beispiel 4)
MSXML
(Beispiel2)
SOAP &
mehr
(nahtlosmobil.de/cd110
6 + Beispiel 3)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
48
Was ist klar. Sie brauchen was mobiles!
Wie?: Eine Webanwendung mit AJAX
Detailinformationen: Ihr
Mobile Operator ist T-Mobile
oder Simyo oder jemand
anderes. Wer weiß das schon
so genau.
Torsten Weber | II Mobiles AJAX – Wie
geht es?
49
Szenario Webanwendung mit AJAX
• Produktdaten mobil abfragen
• notwendig: Produkt-ID
• soll verhindert werden: zusätzliches „HTMLDrumherum“ (Overhead)
• Vorteil: Zwischenschritt eines Seitenaufbaus
entfällt, Anwendung weiter sicht- und bedienbar
Torsten Weber | II Mobiles AJAX – Wie
geht es?
50
Szenario Webanwendung mit AJAX
Produkt-ID
Produkt
?
Produkt-ID
Produkt
Torsten Weber | II Mobiles AJAX – Wie
geht es?
51
Szenario Webanwendung mit AJAX
• 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
Torsten Weber | II Mobiles AJAX – Wie
geht es?
52
Mitgeschrieben für Sie!
Die Konfiguration von Fiddler
•
•
•
•
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.
Torsten Weber | II Mobiles AJAX – Wie
geht es?
53
[3]
Szenario Webanwendung mit AJAX
• 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.
Torsten Weber | II Mobiles AJAX – Wie
geht es?
übertragene
Daten
54
[4], [5], [6]
2 Szenarien für das Wie für Mobile AJAX
Webanwendung
Dateninseln
.NET CF
Anwendung
(Beispiel 1)
MSXML
(Beispiel 4)
MSXML
(Beispiel2)
SOAP &
mehr
(nahtlosmobil.de/cd110
6 + Beispiel 3)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
55
Szenario Webanwendung mit AJAX
Lösung 1: Dateninseln
• Beispiel für eine XML-Dateninsel:
<xml>
<Chapters>
<Chapter Name=“Vorwort”>
<ReferenceWeb ID=“…” URL=“…”>…</ReferenceWeb>
</Chapter>
<Chapter …>
…
</Chapter>
</Chapters>
</xml>
CODE
Torsten Weber | II Mobiles AJAX – Wie
geht es?
DEMO
56
Szenario Webanwendung mit AJAX
Lösung 1: Dateninseln
• 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);CODE
}
Torsten Weber | II Mobiles AJAX – Wie
DEMO
57
}
geht es?
2 Szenarien für das Wie für Mobile AJAX
Webanwendung
Dateninseln
.NET CF
Anwendung
(Beispiel 1)
MSXML
(Beispiel 4)
MSXML
(Beispiel2)
SOAP &
mehr
(nahtlosmobil.de/cd110
6 + Beispiel 3)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
58
Szenario Webanwendung mit AJAX
Lösung 2: MSXML
• erlaubt asynchrones Laden von Dateien per
HTTP-GET… mit Hilfe von Msxml2.XMLHTTP
• eventuell kombiniert mit dritter Lösung (Kontext)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
59
Szenario Webanwendung mit AJAX
Lösung 2: MSXML
• Beispiel laden einer Datei
function LoadXmlFile() {
if (webRequest) {
new ActiveXObject("Msxml2.XMLHTTP");
if (webRequest) {
webRequest.onreadystatechange = ParseResponse;
webRequest.open("GET", „http://...foo.xml",
true);
webRequest.send();
}
CODE
}
…
Torsten Weber | II Mobiles AJAX – Wie
DEMO
60
geht es?
}
2 Szenarien für das Wie für Mobile AJAX
Webanwendung
Dateninseln
.NET CF
Anwendung
(Beispiel 1)
MSXML
(Beispiel 4)
MSXML
(Beispiel2)
SOAP &
mehr
(nahtlosmobil.de/cd110
6 + Beispiel 3)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
61
Szenario Webanwendung mit AJAX
Lösung 3: SOAP (oder was anderes)
• 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
Torsten Weber | II Mobiles AJAX – Wie
geht es?
62
Szenario Webanwendung mit AJAX
Lösung 3: SOAP (oder was anderes)
• Beispiel für Windows Mobile 2003 / Windows
Mobile 5 Kompatibilität:
…
<body>
<form id="productID" …>
<input type="button" id="btnRequest"… />
<div id="wait" />
wait.innerHTML = '<img
<div id="result" />
document.forms['productID']
src="Resources/Wait.gif"
.btnRequest.disabled =
</form>
id="imgWait" alt="Bitte
true;
</body>
warten..." />';
</html>
Torsten Weber | II Mobiles AJAX – Wie
geht es?
63
Szenario Webanwendung mit AJAX
Lösung 3: SOAP (oder was anderes)
• 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
Torsten Weber | II Mobiles AJAX – Wie
geht es?
64
Szenario Webanwendung mit AJAX
Lösung 3: Beispiel ASP.NET 2.0 Web Service
Produkt-ID
Produkt
SOAP-
Steuerelemente
SOAPNachricht
verschicken
aktivieren,
Nachricht Statusbild
Methode für ausblenden
zusammen
Schritt 2
bauen
Ergebnis von
SOAP
registrieren
Browserweiche
auswerten und
für ActiveX
anzeigen
Objekt
Steuerelemente
deaktivieren, Statusbild anzeigen
WS
1
2
Torsten Weber | II Mobiles AJAX – Wie
geht es?
Produkt-ID
Produkt
CODE
DEMO
CODE
65
2 Szenarien für das Wie für Mobile AJAX
Webanwendung
.NET CF
Anwendung
Dateninseln
(Beispiel 1)
MSXML
(Beispiel2)
SOAP &
mehr
d
y
n
a
m
i
s
c
h
MSXML
(Beispiel 4)
(nahtlosmobil.de/cd110
6 + Beispiel 3)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
66
Szenario Webanwendung mit AJAX
Lösung 4: On-Demand-JavaScript
• 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>
Torsten Weber | III Fazit
67
Szenario Webanwendung mit AJAX
Lösung 4: On-Demand-JavaScript
• <div id="scriptHolder"></div> // irgendwo
// dann mit JavaScript On-Demand Code erzeugen
// oder abrufen mit
var newScript = "<script type='text/javascript'
src='http://dataservice.com/getData?p=wert&format=json'
/>";
scriptHolder.innerHTML = newScript;
• Methode bei Desktops, Servern wegen ScriptInjection nicht unterstützt
–  Browserweiche
Torsten Weber | III Fazit
68
2 Szenarien für das Wie für Mobile AJAX
Webanwendung
.NET CF
Anwendung
Dateninseln
(Beispiel 1)
MSXML
(Beispiel2)
SOAP &
mehr
d
y
n
a
m
i
s
c
h
MSXML
(Beispiel 4)
(nahtlosmobil.de/cd110
6 + Beispiel 3)
Torsten Weber | II Mobiles AJAX – Wie
geht es?
69
Szenario .NET CF mit AJAX (durch XSLT)
Lösung: MSXML
III
Fazit
• Oberflächen des .NETCF erweiterbar
• … aber Probleme können entstehen
• WebBrowser = COM
• Komplexität im Quellcode
Torsten Weber | II Mobiles AJAX – Wie
geht es?
70
Mobile Best Practices
A
1
B
3
2
Mobile Best Practices
• 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…
EanReader ean = new
EanReader ();
ean.Enabled = true;
…
SingletonProvider
EanReader ean = new
EanReader ();
ean.Enabled = true;
…
SingletonProvider
<EandReader>.Instance
.Enabled = true;
Mobile Best Practices
• XML-Verarbeitung bei .NET CF 2 um
40 % 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
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
Torsten Weber | III
Fazit dürftig
88
Fragen?
Wer exportiert
die meisten
Nilpferde…?
Torsten Weber
89
Links & Informationen
[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-AD8BA69E4CFF6295&displaylang=de
[6] Windows Mobile 5.0 SDK for Pocket PC
www.microsoft.com/downloads/details.aspx?familyid=83A52AF2-F524-4EC5-9155717CBE5D25ED&displaylang=en
[7] Windows Mobile 5.0 SDK for Smartphone
www.microsoft.com/downloads/details.aspx?familyid=DC6C00CB-738A-4B97-89105CD29AB5F8D9&displaylang=en
[8] Windows Mobile 6 Professional and Standard Software Development Kits Refresh
http://www.microsoft.com/downloads/details.aspx?familyid=06111a3a-a651-4745-88ef3d48091a390b&displaylang=en
Torsten Weber
90
Links & Informationen
[9] Localized Windows Mobile 5.0 Pocket PC Emulator Images
www.microsoft.com/downloads/details.aspx?familyid=EEC33AE3-C129-4C25-ABAA18E8E842178F&displaylang=en
[10] Localized Windows Mobile 5.0 Smartphone Emulator Images
www.microsoft.com/downloads/details.aspx?FamilyID=52fed581-8f8d-4c46-99664832098191b7&DisplayLang=en
[11] Windows Mobile 6 Localized Emulator Images
www.microsoft.com/downloads/details.aspx?familyid=38C46AA8-1DD7-426F-A9134F370A65A582&displaylang=en
[12] Microsoft Device Emulator 2.0 – Eigenständige Version
www.microsoft.com/downloads/details.aspx?familyID=dd567053-f231-4a64-a648fea5e7061303&displaylang=de
[13] Windows Mobile Device Center www.microsoft.com/windowsmobile/devicecenter.mspx
Torsten Weber
91
Links & Informationen
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
Impressum
Torsten Weber
* 22. März 1977, Wurzen
MVP Visual Developer
Device Application Development
Theodor-Körner-Straße 1
04808 Wurzen
+ 49 (3425) 924965
E-Mail: [email protected]
Blog, XING und Publikationen: torstenweber.de
Herunterladen