76
Mobile Internet Toolkit Mobile Internet Toolkit Michael Klopstock, Michael Klopstock, Frank Lange Frank Lange Technologieberater Technologieberater Developer Group Developer Group Microsoft GmbH Microsoft GmbH [email protected] [email protected] , , [email protected] [email protected]

Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH [email protected]@microsoft.com,

Embed Size (px)

Citation preview

Page 1: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Mobile Internet ToolkitMobile Internet Toolkit

Michael Klopstock, Michael Klopstock, Frank LangeFrank Lange

TechnologieberaterTechnologieberaterDeveloper GroupDeveloper GroupMicrosoft GmbHMicrosoft GmbH

[email protected]@microsoft.com, , [email protected]@microsoft.com

Page 2: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht... WAP – ein paar GrundbegriffeWAP – ein paar Grundbegriffe VS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet Toolkit Programmierung mit dem MMITProgrammierung mit dem MMIT Geräteeigenschaften und neue ControlsGeräteeigenschaften und neue Controls Fazit und LiteraturFazit und Literatur

Page 3: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Worum es geht...Worum es geht...

Portale für MobilgerätePortale für Mobilgeräte ASP.NET-TechnologieASP.NET-Technologie VS .NET als EntwicklungsumgebungVS .NET als Entwicklungsumgebung UI-Anpassung an Endgeräte etc.UI-Anpassung an Endgeräte etc. Erweiterbarkeit für neue GeräteErweiterbarkeit für neue Geräte

Page 4: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar Grundbegriffe

Der WAP-StandardDer WAP-Standard WAP Application EnvironmentWAP Application Environment Markup LanguagesMarkup Languages

VS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 5: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar Grundbegriffe

Der WAP-StandardDer WAP-Standard WAP Application EnvironmentWAP Application Environment Markup LanguagesMarkup Languages

VS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 6: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Der WAP-StandardDer WAP-Standard

Wireless Application ProtocolWireless Application Protocol WAP Forum WAP Forum (Ericsson, Motorola, Nokia,...) definiert WAP (Ericsson, Motorola, Nokia,...) definiert WAP

IndustriestandardIndustriestandard

WML-Nutzung WML-Nutzung (Cooperation White Paper zwischen WAP (Cooperation White Paper zwischen WAP Formum und W3C)Formum und W3C)

Bedarf, da Mobilgeräte (noch) zu Bedarf, da Mobilgeräte (noch) zu leistungsschwach für übliche HTML-leistungsschwach für übliche HTML-Seiten via HTTP sindSeiten via HTTP sind

a) HTML-Interpretation (RAM, a) HTML-Interpretation (RAM, CPU)CPU)

b) Display (Farbgrafik, Größe)b) Display (Farbgrafik, Größe) c) kleine Stromakkusc) kleine Stromakkus

Page 7: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

WAP-HistorieWAP-Historie HDML=Handheld Markup LanguageHDML=Handheld Markup Language

(Fa. Unwired Planet, jetzt-Name: Openwave)(Fa. Unwired Planet, jetzt-Name: Openwave)

WAP 1.0 - 1998, wenig beachtetWAP 1.0 - 1998, wenig beachtet WAP 1.1 – viele Services entstandenWAP 1.1 – viele Services entstanden WAP 1.2 – 1999 WTA, Push, WMLScriptWAP 1.2 – 1999 WTA, Push, WMLScript WAP 2.0 – 2001 WML nun als XHTML, WAP 2.0 – 2001 WML nun als XHTML,

viele Standard-Integrationen (TCP/IP, viele Standard-Integrationen (TCP/IP, HTTP, TLS,...) HTTP, TLS,...) – Gerät muß also WAP1 und HTTP unterstützen! – Gerät muß also WAP1 und HTTP unterstützen! Also der Schritt zu HTTP und WAP1 nur noch Historie?Also der Schritt zu HTTP und WAP1 nur noch Historie?

WAP = Wireless Application ProtocolWTA = Wireless Telephone Application

Page 8: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar Grundbegriffe

Der WAP-StandardDer WAP-Standard WAP Application EnvironmentWAP Application Environment Markup LanguagesMarkup Languages

VS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 9: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

WAE WAE = WAP Application Environment= WAP Application Environment

WAP Umgebung

PPG = Push Proxy Gateway (Push-Nachrichten zum Mobilgerät)PAP = Push Access ProtocolSI = Service Indication (Web Server sendet an Gateway eine Meldung samt URL (z.B. Mail eingegangen)SL = Service Loading (Web Server sendet an Gateway eine URL zwecks Datenabgriff)

WTA Server = stellt WTA-Dienste bereit (WML und WMLScript für typische Handyfunktionalität auf dem Mobilgerät)WTA = Wireless Tolephony Application

Page 10: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

WAP(1) Protocol StackWAP(1) Protocol Stack

WAE = Wireless Application EnvironmentWTAI = Wireless Telephony Application Interface

WSP = Wireless Session Protocol WTP = Wireless Transaction Protocol WTLS = Wireless Transport Layer Security (vergleichbar mit TLS=Transport Layer Security oder SSL=Secure Socket Layer)WDP = Wireless Datagram Protocol

meist GSM (auch CSD, USSD, HSCSD, GPRS)

Verbinden, Senden, Empfangen,...(Datagram Protocol)

(Optionaler Security Layer)

3 Klassen an Serveranforderungen: unsicher, Zustellgarantie, Antwortgarantie

Ob verbindungslos oder verb.orientiert

Formate, Schnittstellen (z.B. WML, WMLScript, Script-Libraries, WTAI)

Page 11: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar Grundbegriffe

Der WAP-StandardDer WAP-Standard WAP Application EnvironmentWAP Application Environment Markup LanguagesMarkup Languages

VS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 12: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Markup: HTML & CoMarkup: HTML & Co SGML = Standard Generalized Markup SGML = Standard Generalized Markup

Language (hat sehr viele Optionen)Language (hat sehr viele Optionen) XML = Extensible Markup Language XML = Extensible Markup Language

(handhabbarer als SGML durch (handhabbarer als SGML durch eingeschränktes Regelwerk)eingeschränktes Regelwerk)

HTML = Hypertext Markup Language (mit HTML = Hypertext Markup Language (mit SGML definiert)SGML definiert)

XHTML = Extensible XHTML = Extensible Hypertext Markup Hypertext Markup Language (vergleichbar HTML, aber mit XML Language (vergleichbar HTML, aber mit XML definiert)definiert)

DHTML = Dynamic HTML, Erweiterungen auf DHTML = Dynamic HTML, Erweiterungen auf Client via Scripting nutzbarClient via Scripting nutzbar

Diverse XML-Markups: WML, MathML, CML (Chemie), SVG (Vektorgrafik),...

Page 13: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Eine XML-SpracheEine XML-SpracheXML-Header und DocTypeDef-VerweisXML-Header und DocTypeDef-Verweis

Erweiterungen für Handybereich Erweiterungen für Handybereich (Navigation, Softkeys,..)(Navigation, Softkeys,..)

Cards und DecksCards und DecksDeck („Kartenstapel“) kann in einer Übertragung zum Handy Deck („Kartenstapel“) kann in einer Übertragung zum Handy geschickt werden. Der kleine Textbildschirm zeigt nur einzelne geschickt werden. Der kleine Textbildschirm zeigt nur einzelne Cards.Cards.

Markup: WML Markup: WML = Wireless Markup Language= Wireless Markup Language

<wml> <card id=„card1“>...</card> <card id=„card1“>...</card></wml>

<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

Page 14: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

WML-Darstellung im EmulatorWML-Darstellung im Emulator

Demo mit Nokia WAP-

Toolkit

Page 15: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Markup: MobilbereichMarkup: Mobilbereich cHTML (Compact HTML)cHTML (Compact HTML)

ein HTML-Subset ohne JPGs,...aber GIFs,...ein HTML-Subset ohne JPGs,...aber GIFs,...Vorteil: HTML-Editor nutzenVorteil: HTML-Editor nutzen"Compact HTML for Small Information Appliances""Compact HTML for Small Information Appliances"http://www.w3.org/TR/1998/NOTE-compactHTML-http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/19980209/

iModeiModegroße Verbreitung in Japan ab 1999große Verbreitung in Japan ab 1999http://www.nttdocomo.com/http://www.nttdocomo.com/

WML 1.1WML 1.1"Wireless Markup Language Specification Version 1.1“"Wireless Markup Language Specification Version 1.1“http://www.wapforum.org/docs/technical1.1/WML-3-Feb-http://www.wapforum.org/docs/technical1.1/WML-3-Feb-1999.pdf1999.pdf

XHTML (in WAP 2.0)XHTML (in WAP 2.0)Vorteil: wohlgeformtes XMLVorteil: wohlgeformtes XML""XHTML 1.0: The Extensible HyperText Markup Language XHTML 1.0: The Extensible HyperText Markup Language - A Reformulation of HTML 4.0 in XML 1.0- A Reformulation of HTML 4.0 in XML 1.0““http://www.w3.org/TR/xhtml1/http://www.w3.org/TR/xhtml1/

Page 16: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet Toolkit

VerfügbarkeitVerfügbarkeit Entwicklungsumgebung und DokuEntwicklungsumgebung und Doku Zielgeräte und EmulatorenZielgeräte und Emulatoren Auch ohne VS .NETAuch ohne VS .NET

Programmierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 17: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet Toolkit

VerfügbarkeitVerfügbarkeit Entwicklungsumgebung und DokuEntwicklungsumgebung und Doku Zielgeräte und EmulatorenZielgeräte und Emulatoren Auch ohne VS .NETAuch ohne VS .NET

Programmierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 18: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Mobile Internet ToolkitMobile Internet Toolkit

Webseiten für Mobilgeräte entwickelnWebseiten für Mobilgeräte entwickeln Beta 1 hiess „.NET Mobile Web SDK“Beta 1 hiess „.NET Mobile Web SDK“ ASP.NET-TechnikASP.NET-Technik

Gemeinsames Programmiermodell und Gemeinsames Programmiermodell und Technologie mit „normalen“ HTML-Technologie mit „normalen“ HTML-Webseiten im .NET FrameworkWebseiten im .NET Framework

MIT integriert sich in VS.NETMIT integriert sich in VS.NET VS .NET muß nicht zwingend genutzt werden VS .NET muß nicht zwingend genutzt werden

(ASPX-Seite mit Editor erstellen)(ASPX-Seite mit Editor erstellen) Download unterDownload unter

http://www.microsoft.com/mobile/developer/http://www.microsoft.com/mobile/developer/downloadsdownloads

Page 19: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet Toolkit

VerfügbarkeitVerfügbarkeit Entwicklungsumgebung und DokuEntwicklungsumgebung und Doku Zielgeräte und EmulatorenZielgeräte und Emulatoren Auch ohne VS .NETAuch ohne VS .NET

Programmierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 20: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

MIT EntwicklungsumgebungMIT Entwicklungsumgebung

BestandteileBestandteile

Mobile Internet ToolkitMobile Internet Toolkit

Visual Studio .NETVisual Studio .NET

.NET – Laufzeitumgebung(.NET Component Update, XP Server)

.NET – Laufzeitumgebung(.NET Component Update, XP Server)

Geräte-EmulatorenGeräte-Emulatoren Mobilgeräte über WAP GatewayMobilgeräte über WAP Gateway

Page 21: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Integration ins VS.NETIntegration ins VS.NET

Demo:Neuer Projekttyp...

Page 22: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

DokumentationDokumentation

Online Hilfe im VS.NETOnline Hilfe im VS.NET

Visual Studio.NETVisual Studio.NET/SDKs und Tools/SDKs und Tools

/Visual Studio SDK/Visual Studio SDK/Mobile Internet Toolkit/Mobile Internet Toolkit

(no filter-Einstellung im Content View)(no filter-Einstellung im Content View)

Page 23: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet Toolkit

VerfügbarkeitVerfügbarkeit Entwicklungsumgebung und DokuEntwicklungsumgebung und Doku Zielgeräte und EmulatorenZielgeräte und Emulatoren Auch ohne VS .NETAuch ohne VS .NET

Programmierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 24: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Auszug aus der GerätelisteAuszug aus der Geräteliste WML Cell PhonesWML Cell Phones

Mitsubishi T250 Mitsubishi T250 Nokia 7110 Nokia 7110 Siemens C-35i Siemens C-35i Ericsson R380 Ericsson R380 Nokia 6210 Nokia 6210 Samsung 850 Samsung 850 Siemens S-35i Siemens S-35i Sprint TouchpointSprint Touchpoint

Imode: Imode: Mitsubishi D502i, Mitsubishi D502i, NEC N502i NEC N502i Panasonic P502i Panasonic P502i

Pocket PC (Microsoft Pocket PC (Microsoft Pocket Internet Explorer)Pocket Internet Explorer)

Palm VIIx (default HTML); Palm VIIx (default HTML); Palm V (Go America)Palm V (Go America)

RIM Blackberry 950; RIM RIM Blackberry 950; RIM Blackberry 957 (Go Blackberry 957 (Go America)America)

Device Emulators: Device Emulators: Microsoft Mobile Microsoft Mobile

Explorer™ v 2.01 Explorer™ v 2.01 emulator emulator

Pocket PC Pocket PC Phone.com UP.SDK 4.1 Phone.com UP.SDK 4.1

emulator with generic emulator with generic skin skin

Phone.com UP.SDK 3.2 Phone.com UP.SDK 3.2 for WML emulator with for WML emulator with Mitsubishi T250 skin Mitsubishi T250 skin

DoCoMo 502 emulator DoCoMo 502 emulator Microsoft Internet Microsoft Internet

Explorer 5.5 and 6.0 Explorer 5.5 and 6.0 Andere Geräte/Emulatoren Andere Geräte/Emulatoren mögen auch gehen, wurden mögen auch gehen, wurden aber nicht offiziell getestet.aber nicht offiziell getestet.

Page 25: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Rendering je nach GerätRendering je nach Gerät

Demo

Page 26: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Emulatoren zum TestenEmulatoren zum Testen

Mobile Internet ExplorerMobile Internet Explorer YourWAP Wireless CompanionYourWAP Wireless Companion Nokia WAP ToolkitNokia WAP Toolkit ......

Page 27: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet Toolkit

VerfügbarkeitVerfügbarkeit Entwicklungsumgebung und DokuEntwicklungsumgebung und Doku Zielgeräte und EmulatorenZielgeräte und Emulatoren Auch ohne VS .NETAuch ohne VS .NET

Programmierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 28: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Beispiel ohne VS.NETBeispiel ohne VS.NET

*.ASPX-Seite auf Webshare*.ASPX-Seite auf Webshare .NET-Framework muß installiert sein.NET-Framework muß installiert sein

(Windows Component Update)(Windows Component Update)

<%@ Register TagPrefix="Mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage“Language="C#" %>

<Mobile:Form runat="server"> <Mobile:Label runat="server">Hallo Welt!</Mobile:Label></Mobile:Form>

<%@ Register TagPrefix="Mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>

<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage“Language="C#" %>

<Mobile:Form runat="server"> <Mobile:Label runat="server">Hallo Welt!</Mobile:Label></Mobile:Form>

Page 29: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Anzeige im IE6Anzeige im IE6

HTML (Demo)HTML (Demo)

<html><body><form id="ctrl0" name="ctrl0" method="post" action="Default.aspx?__ufps=631420380393432010"><input type="hidden" name="__EVENTTARGET" value=""><input type="hidden" name="__EVENTARGUMENT" value=""><script language=javascript><!--function __doPostBack(target, argument){ var theform = document.ctrl0 theform.__EVENTTARGET.value = target theform.__EVENTARGUMENT.value = argument theform.submit()}// --></script><span>Hallo Welt!</span><br></form></body></html>

<html><body><form id="ctrl0" name="ctrl0" method="post" action="Default.aspx?__ufps=631420380393432010"><input type="hidden" name="__EVENTTARGET" value=""><input type="hidden" name="__EVENTARGUMENT" value=""><script language=javascript><!--function __doPostBack(target, argument){ var theform = document.ctrl0 theform.__EVENTTARGET.value = target theform.__EVENTARGUMENT.value = argument theform.submit()}// --></script><span>Hallo Welt!</span><br></form></body></html>

Page 30: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Anzeige im WAP-EmulatorAnzeige im WAP-Emulator

WML (gleiches Demo)WML (gleiches Demo)

<?xml version='1.0'?><!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN' 'http://www.wapforum.org/DTD/wml_1.1.xml'><wml><head><meta http-equiv="Cache-Control" content="max-age=0" /></head>

<card><do type="prev" label="Back"><prev /></do><p>Hallo Welt!<br/></p></card></wml>

<?xml version='1.0'?><!DOCTYPE wml PUBLIC '-//WAPFORUM//DTD WML 1.1//EN' 'http://www.wapforum.org/DTD/wml_1.1.xml'><wml><head><meta http-equiv="Cache-Control" content="max-age=0" /></head>

<card><do type="prev" label="Back"><prev /></do><p>Hallo Welt!<br/></p></card></wml>

Page 31: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMIT

Page, Forms und ControlsPage, Forms und Controls Website portierenWebsite portieren MMIT und das .NET FrameworkMMIT und das .NET Framework

Geräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 32: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMIT

Page, Forms und ControlsPage, Forms und Controls Website portierenWebsite portieren MMIT und das .NET FrameworkMMIT und das .NET Framework

Geräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 33: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Namespace "mobile"Namespace "mobile"

<mobile:Form runat="server"><mobile:Label runat=“server">

Hello, Mobile World</mobile:Label>

</mobile:Form>

<mobile:Form runat="server"><mobile:Label runat=“server">

Hello, Mobile World</mobile:Label>

</mobile:Form>

<Form runat="server"><asp:Label runat=“server">

Hello, World</asp:Label></Form>

<Form runat="server"><asp:Label runat=“server">

Hello, World</asp:Label></Form>

Web FormWeb Form

System.Web.UI.MobileControlsSystem.Web.UI.MobileControls statt: System.Web.UI [.Control, .Page,..]statt: System.Web.UI [.Control, .Page,..]

MobileMobile

Web FormWeb Form

Page 34: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Beispiel: MinimalBeispiel: Minimal

Form mit Push Button und LabelForm mit Push Button und Label Push-Event: Push-Event: Labeltext setzen Labeltext setzen

Mit File/Browse With kann Default Browser geändert werden.Nokia WAP Toolkit akzeptiert URL als Kommandozeile – gut!

Das Nokia Toolkit kann das erzeugte WML anzeigen. Der IE vom PC kann das erzeugte HTML darstellen.

Page 35: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Page mit Forms, ControlsPage mit Forms, Controls

ProgrammiertechnischProgrammiertechnisch Forms/Controls sind Members der Page Forms/Controls sind Members der Page Controls gehören nicht der Form, sondern Page Controls gehören nicht der Form, sondern Page

Designdarstellung (Page/HTML)Designdarstellung (Page/HTML) Form-Zugehörigkeit der Controls sichtbar Form-Zugehörigkeit der Controls sichtbar

Geräte laden die PageGeräte laden die Page evtl. mehrere Forms gleichzeitig, falls der evtl. mehrere Forms gleichzeitig, falls der Wechsel von einer Form zur andern nicht über eine Wechsel von einer Form zur andern nicht über eine serverseitige Event-Funktion implementiert wird serverseitige Event-Funktion implementiert wird (d.h. z.B. einfacher Link zur anderen Form)(d.h. z.B. einfacher Link zur anderen Form)

Page 36: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Beispiel :Page mit zwei FormsBeispiel :Page mit zwei Forms

Page mit zwei FormsPage mit zwei Forms Form1: Push ButtonForm1: Push Button

stetzt die Properties Label::Text und stetzt die Properties Label::Text und Page::ActiveFormPage::ActiveForm

Form2: LabelForm2: Label

Page 37: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Control-ÜberblickControl-Überblick

Form, PanelForm, Panelzur logischen Gruppierungzur logischen Gruppierung

Label, TextViewLabel, TextViewz.B. .Text auf z.B. .Text auf <!--#include file="INFO.TXT"--><!--#include file="INFO.TXT"-->um lokale Textdatei als Quelle anzugebenum lokale Textdatei als Quelle anzugeben

LinkLinkz.B. .NavigateURL auf z.B. .NavigateURL auf #Form2 oder Webadresse#Form2 oder Webadresse

CallCallz.B. .PhoneNumber auf +49 (89) 3176-1000 z.B. .PhoneNumber auf +49 (89) 3176-1000

ImageImage.URL oder .AlternateText falls nicht darstellbar.URL oder .AlternateText falls nicht darstellbar(weiteres siehe später bei Geräteeigenschaften...) (weiteres siehe später bei Geräteeigenschaften...)

CalenderCalender.SelectedDate, Bereich nur über zweimal Tag .SelectedDate, Bereich nur über zweimal Tag auswählenauswählen

Page 38: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

List-ControlList-Control 1/21/2

Einfache DarstellungEinfache Darstellung

List1.Items.Clear();for(int i=1; i<=10; i++)

List1.Items.Add(i.ToString());

List1.Items.Clear();for(int i=1; i<=10; i++)

List1.Items.Add(i.ToString());

Anwahl eines ItemsAnwahl eines Itemsprivate void List1_ItemCommand(object source,

System.Web.UI.MobileControls.ListCommandEventArgs e){ Label1.Text=e.ListItem.Text; this.ActiveForm=Form1; //mit Label1}

private void List1_ItemCommand(object source, System.Web.UI.MobileControls.ListCommandEventArgs e)

{ Label1.Text=e.ListItem.Text; this.ActiveForm=Form1; //mit Label1}

Page 39: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

List-ControlList-Control 2/22/2

Anzeigestring und WertestringAnzeigestring und Wertestringstring[] staedte = { "Berlin", "München", "Hamburg" };string[] links = { "17°C Wolken", "15°C Sonne", "19° Regen" };List1.Items.Clear();for(int i=0; i<staedte.GetLength(0); i++) List1.Items.Add(new MobileListItem(staedte[i], links[i]));

string[] staedte = { "Berlin", "München", "Hamburg" };string[] links = { "17°C Wolken", "15°C Sonne", "19° Regen" };List1.Items.Clear();for(int i=0; i<staedte.GetLength(0); i++) List1.Items.Add(new MobileListItem(staedte[i], links[i]));

SelectionListSelectionList.SelectType = DropDown|MultiSelectListBox|....SelectType = DropDown|MultiSelectListBox|...

ObjectListObjectListfür Data Bindingfür Data Binding

private void List1_ItemCommand(…) //Selection{ Label1.Text=e.ListItem.Value; // Wetterdaten}

private void List1_ItemCommand(…) //Selection{ Label1.Text=e.ListItem.Value; // Wetterdaten}

Page 40: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Validators (v.a. TextBoxes)Validators (v.a. TextBoxes)

RequiredFieldValidatorRequiredFieldValidator.ControlToValidate, .InitialValue /*was als leer .ControlToValidate, .InitialValue /*was als leer gilt*/, .ErrorMessagegilt*/, .ErrorMessage

CompareValidatorCompareValidator.ControlToValidate, .Type, .ValueToCompare, .Operator.ControlToValidate, .Type, .ValueToCompare, .Operator

RangeValidatorRangeValidator.ControlToValidate, .Type, .MinimumValue, .MaximumValue.ControlToValidate, .Type, .MinimumValue, .MaximumValue

RegularExpressionValidatorRegularExpressionValidator CustomValidatorCustomValidator ValidationSummaryValidationSummary

private void Command1_Click(…){ if (Page.IsValid) //Validation! this.ActiveForm = Form2;}

private void Command1_Click(…){ if (Page.IsValid) //Validation! this.ActiveForm = Form2;}

Page 41: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

ff Validatorsff Validators

CustomValidatorCustomValidatorDoppelklickDoppelklick.ServerValidate-Eventfunction,.ServerValidate-Eventfunction,.ControlToValidate, .ErrorMessage.ControlToValidate, .ErrorMessageevtl. zusätzlich einen RequiredFieldValidator oder Form.Validate evtl. zusätzlich einen RequiredFieldValidator oder Form.Validate überschreibenüberschreiben

ValidationSummaryValidationSummaryoft auf anderen Form gelegt, Anzeige alles Validator-Errorstrings oft auf anderen Form gelegt, Anzeige alles Validator-Errorstrings automatisch mit <BACK>-Buttonautomatisch mit <BACK>-Button.FormToValidate.FormToValidate

private void CustomValidator1_ServerValidate(…){ // nur aufgerufen, wenn Inputfeld nicht leer ist! try // ungerade Zahl ist OK { args.IsValid = (int.Parse(args.Value) & 1)>0; } catch (FormatException) { args.IsValid=false; }}

private void CustomValidator1_ServerValidate(…){ // nur aufgerufen, wenn Inputfeld nicht leer ist! try // ungerade Zahl ist OK { args.IsValid = (int.Parse(args.Value) & 1)>0; } catch (FormatException) { args.IsValid=false; }}

Page 42: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMIT

Page, Forms und ControlsPage, Forms und Controls Website portierenWebsite portieren MMIT und das .NET FrameworkMMIT und das .NET Framework

Geräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 43: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Realität und GrenzenRealität und Grenzen

Webseiten sind nicht einfach vom Desktop Webseiten sind nicht einfach vom Desktop PC übertragbarPC übertragbar

Desktop-Webseiten-Design (Farben, Desktop-Webseiten-Design (Farben, Formen, Motive, Emotionen,...) ist ein Formen, Motive, Emotionen,...) ist ein anderer Ansatzanderer Ansatz

Seitendesign für das mobile Gerät orientiert Seitendesign für das mobile Gerät orientiert sich an der reinen Funktionalitätsich an der reinen Funktionalität

Page-Aufteilung kann übernommen werden. Page-Aufteilung kann übernommen werden. Auf der Page dann mehrere Forms. Auf der Page dann mehrere Forms.

Keine freie Positionierbarkeit der Controls Keine freie Positionierbarkeit der Controls auf der Formauf der Form

Page 44: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Filtern einer Webseite?Filtern einer Webseite?

Das bin ich im Urlaub. Klicken Sie auf

das Bild!

Hier das Ergebnisdiagramm:

Viel Spaß mit diesem Download: 8 MB

Bilder weg - Lösung?Bilder weg - Lösung?

Page 45: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Logik auf der Seite?Logik auf der Seite?

Gewünschte Navigationslogik schwer Gewünschte Navigationslogik schwer automatisiert erkennbarautomatisiert erkennbar

Name

Anschrift

Alter

Größe

*

*

* optional

BestellenBestellen

Name

Anschrift

Optionale AngabenAlter

Größe

Bestellen

Page 46: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Design der Mobile AppDesign der Mobile App 1/21/2 Ein Generischer AnsatzEin Generischer Ansatz

Idee, mobile Geräte einzubeziehen Idee, mobile Geräte einzubeziehen

Modell der FunktionalitätModell der Funktionalität

Organisation in Web PagesOrganisation in Web Pages

UI der Web FormsUI der Web Forms UI der Mobile FormsUI der Mobile Forms

Logik-Feindesign der FormsLogik-Feindesign der Forms

Analyse bestehender GeschäftsprozesseAnalyse bestehender Geschäftsprozesse

Page 47: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Design der Mobile AppDesign der Mobile App 2/22/2 Ableiten aus bestehender Web PageAbleiten aus bestehender Web Page

Bestehende Web PageBestehende Web Page

Entdecke was wichtig ist:Trick: Bilder weg, Farben weg, Kopie zum Texteditor

Entdecke was wichtig ist:Trick: Bilder weg, Farben weg, Kopie zum Texteditor

UI und Feinlogikfür Mobile Forms

UI und Feinlogikfür Mobile Forms

Microsoft Press BooksNewslettersMicrosoft JobsPrivacy Statement

Get Windows 2000 Professional, the most reliable Windows ever.

See how Office 2000 at home can pay dividends in school and at work.

Today's News

Page 48: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Demo: Page mit FormsDemo: Page mit Forms

ASP.NET Web Forms: Page hat 1 FormASP.NET Web Forms: Page hat 1 Form Mobile Web Forms: Page hat n FormsMobile Web Forms: Page hat n Forms

Page-Organisationslogik wie PC,Page-Organisationslogik wie PC,Form paßt zu kleinem DisplayForm paßt zu kleinem Display

<Mobile:Form runat="server">

<Mobile:Link runat="server" Target="#frm2">

</Mobile:Form>

<Mobile:Form runat="server" id=„frm2">...

</Mobile:Form>

<Mobile:Form runat="server">

<Mobile:Link runat="server" Target="#frm2">

</Mobile:Form>

<Mobile:Form runat="server" id=„frm2">...

</Mobile:Form>

Page 49: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMIT

Page, Forms und ControlsPage, Forms und Controls Website portierenWebsite portieren MMIT und das .NET FrameworkMMIT und das .NET Framework

Geräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 50: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

DB-BindingDB-Binding

1.1. Form mit ObjektListForm mit ObjektList2.2. Data-Tab/OleDbAdapter auf Form ziehenData-Tab/OleDbAdapter auf Form ziehen

Wizard erzeugt Adapter und Wizard erzeugt Adapter und ConnectionConnection

3.3. Data-Menü/Generate DatasetData-Menü/Generate Dataset4.4. ObjectList: ObjectList:

DataSource=DataSet1DataSource=DataSet1DataMember=mytableDataMember=mytable

5.5. Init-Binding-CodeInit-Binding-CodeDataSet1.Clear();DataSet1.Clear();OleDbAdapter1.Fill(DataSet1);OleDbAdapter1.Fill(DataSet1);ObjectLis1.DataBind();ObjectLis1.DataBind();

6.6. Mit ObjectList / Rclick / Property Builder die Mit ObjectList / Rclick / Property Builder die Tabellenanzeige definierenTabellenanzeige definieren

Page 51: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

SOAP RCPSOAP RCP

Add Web Reference...Add Web Reference...

Page 52: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue Controls

Geräteeigenschaften abfragenGeräteeigenschaften abfragen Eigene Controls entwicklenEigene Controls entwicklen Neue Geräte integrierenNeue Geräte integrieren

Fazit und LiteraturFazit und Literatur

Page 53: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Windows 2000 (with IIS).NET Framework

Mobile Internet ToolkitDevelopment Environment Production

Environment

Prinzip: Geräteunterstützung Prinzip: Geräteunterstützung

Create mobile Web Form

IntegrateBusiness Logic

Mobile Presentation

Layer (controls)

Test Target Devices

Post toWeb Servers

HTTPRequest

DeviceCapabilities

Mobile Controls &

Device Adaptersgenerate display

AddDevice Adapters

Update DeviceCapabilities

HTTPResponse

Mobile.aspxPages Mobil-

geräte

Page 54: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue Controls

Geräteeigenschaften abfragenGeräteeigenschaften abfragen Eigene Controls entwicklenEigene Controls entwicklen Neue Geräte integrierenNeue Geräte integrieren

Fazit und LiteraturFazit und Literatur

Page 55: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

GeräteeigenschaftenGeräteeigenschaften 1/11/1

Request.Browser-PropertiesRequest.Browser-Properties

String propName;PropertyDescriptorCollection properties

= TypeDescriptor.GetProperties (Request.Browser);

StreamWriter fOut = File.CreateText("C:\\TEST.TXT");

for(int i=0; i<properties.Count; i++){ propName = properties[i].Name; fOut.WriteLine ( propName + " = "

+ Request.Browser[propName] );}fOut.Close();

String propName;PropertyDescriptorCollection properties

= TypeDescriptor.GetProperties (Request.Browser);

StreamWriter fOut = File.CreateText("C:\\TEST.TXT");

for(int i=0; i<properties.Count; i++){ propName = properties[i].Name; fOut.WriteLine ( propName + " = "

+ Request.Browser[propName] );}fOut.Close();

Page 56: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

GeräteeigenschaftenGeräteeigenschaften 2/22/2RequiresUniqueHtmlCheckboxNamesJavaScriptScreenCharactersWidthRendersWmlDoAcceptsInlineGatewayMinorVersionBrowserScreenCharactersHeightScreenPixelsHeightCrawlerGatewayMajorVersionIsColorAOLBetaMinorVersionWin32CookiesRequiresUrlQuerySuffixForInitialRequestMobileDeviceModelMobileDeviceManufacturerW3CDomVersionClrVersionCanRenderSetvarZeroWithMultiSelectionListRequiresHandheldFriendlyMetaTagPreferredImageMIMEGatewayVersion

RequiresUniqueHtmlCheckboxNamesJavaScriptScreenCharactersWidthRendersWmlDoAcceptsInlineGatewayMinorVersionBrowserScreenCharactersHeightScreenPixelsHeightCrawlerGatewayMajorVersionIsColorAOLBetaMinorVersionWin32CookiesRequiresUrlQuerySuffixForInitialRequestMobileDeviceModelMobileDeviceManufacturerW3CDomVersionClrVersionCanRenderSetvarZeroWithMultiSelectionListRequiresHandheldFriendlyMetaTagPreferredImageMIMEGatewayVersion

VBScriptRequiresPhoneNumbersAsPlainTextRendersBreaksAfterHtmlListsCanSendMailRendersBreaksAfterWmlAnchorRendersWmlSelectsAsMenuCardsMSDomVersionPreferredRenderingTypeHasBackButtonFramesTypeSupportsCSSJavaAppletsCDFVersionNumberOfSoftkeysMaximumSoftkeyLabelLengthPreferredRenderingMIMEEcmaScriptVersionInputTypeCanInitiateVoiceCallTablesWin16CanRenderOneventAndPrevElementsTogetherTagWriterRequiresUrlEncodedPostfieldValuesScreenPixelsWidth

VBScriptRequiresPhoneNumbersAsPlainTextRendersBreaksAfterHtmlListsCanSendMailRendersBreaksAfterWmlAnchorRendersWmlSelectsAsMenuCardsMSDomVersionPreferredRenderingTypeHasBackButtonFramesTypeSupportsCSSJavaAppletsCDFVersionNumberOfSoftkeysMaximumSoftkeyLabelLengthPreferredRenderingMIMEEcmaScriptVersionInputTypeCanInitiateVoiceCallTablesWin16CanRenderOneventAndPrevElementsTogetherTagWriterRequiresUrlEncodedPostfieldValuesScreenPixelsWidth

ActiveXControlsScreenBitDepthBackgroundSoundsPlatformIsMobileDeviceMajorVersion

ActiveXControlsScreenBitDepthBackgroundSoundsPlatformIsMobileDeviceMajorVersion

Page 57: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

FilterFilter

Festgelegt in WEB.CONFIGFestgelegt in WEB.CONFIG<!-- Device Browsers --><filter name="isGoAmerica" compare="browser" argument="Go.Web" /><filter name="isMME" compare="browser" argument="Microsoft Mobile Explorer" /><filter name="isMyPalm" compare="browser" argument="MyPalm" /><filter name="isPocketIE" compare="browser" argument="Pocket IE" /><filter name="isUP3x" compare="type" argument="Phone.com 3.x Browser" /><filter name="isUP4x" compare="type" argument="Phone.com 4.x Browser" />

<!-- Specific Devices --><filter name="isEricssonR380" compare="type" argument="Ericsson R380" /><filter name="isNokia7110" compare="type" argument="Nokia 7110" />

<!-- Device Capabilities --><filter name="prefersGIF" compare="preferredImageMIME" argument="image/gif" /><filter name="prefersWBMP" compare="preferredImageMIME" argument="image/vnd.wap.wbmp" /><filter name="supportsColor" compare="isColor" argument="true" /><filter name="supportsCookies" compare="cookies" argument="true" /><filter name="supportsJavaScript" compare="javascript" argument="true" /><filter name="supportsVoiceCalls" compare="canInitiateVoiceCall" argument="true" /></deviceFilters>

<!-- Device Browsers --><filter name="isGoAmerica" compare="browser" argument="Go.Web" /><filter name="isMME" compare="browser" argument="Microsoft Mobile Explorer" /><filter name="isMyPalm" compare="browser" argument="MyPalm" /><filter name="isPocketIE" compare="browser" argument="Pocket IE" /><filter name="isUP3x" compare="type" argument="Phone.com 3.x Browser" /><filter name="isUP4x" compare="type" argument="Phone.com 4.x Browser" />

<!-- Specific Devices --><filter name="isEricssonR380" compare="type" argument="Ericsson R380" /><filter name="isNokia7110" compare="type" argument="Nokia 7110" />

<!-- Device Capabilities --><filter name="prefersGIF" compare="preferredImageMIME" argument="image/gif" /><filter name="prefersWBMP" compare="preferredImageMIME" argument="image/vnd.wap.wbmp" /><filter name="supportsColor" compare="isColor" argument="true" /><filter name="supportsCookies" compare="cookies" argument="true" /><filter name="supportsJavaScript" compare="javascript" argument="true" /><filter name="supportsVoiceCalls" compare="canInitiateVoiceCall" argument="true" /></deviceFilters>

Page 58: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Demo: Neue Filter hinzufügenDemo: Neue Filter hinzufügen

VS: RClick auf ControlVS: RClick auf Control Templating Options / Applied Device Filter / Edit / Available Device Filter / Edit Templating Options / Applied Device Filter / Edit / Available Device Filter / Edit

VS: RClick auf ControlVS: RClick auf Control Templating Options / Applied Device Filter / Edit Templating Options / Applied Device Filter / EditReihenfolge: first match!Reihenfolge: first match!

Templating OptionTemplating Option aktueller Filter im Editor aktueller Filter im Editor

Page 59: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Templates editierenTemplates editieren

für aktuellen Filter können die für aktuellen Filter können die Templates verändert werdenTemplates verändert werden

Templates bestimmen die DarstellungTemplates bestimmen die Darstellungz.B. List Control: Header, Item, Seperator, AlternateItem, Footerz.B. List Control: Header, Item, Seperator, AlternateItem, Footer

RClick: Edit Template / AuswahlRClick: Edit Template / Auswahl ... (siehe kommende Folie)... (siehe kommende Folie) RClick: End Template EditingRClick: End Template Editing

Page 60: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Template editierenTemplate editieren

hier: List Control für "isHTML32"-Filterhier: List Control für "isHTML32"-Filter Ins Item-Template wurde ein Label Ins Item-Template wurde ein Label

gezogengezogen Label-DataBindings:Label-DataBindings:

hier wurde "Text"hier wurde "Text"an Container.Text gebundenan Container.Text gebunden(Darstellung der Item-Texte)(Darstellung der Item-Texte)

Page 61: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

HTML-ServercodeHTML-Servercode Filterabhängige Template-VeränderungenFilterabhängige Template-Veränderungen

<mobile:List id=List1 runat="server">

<DeviceSpecific> <Choice xmlns="Mobile HTML3.2 Template" Filter="isPocketIE"></Choice> <Choice xmlns="Mobile HTML3.2 Template" BackColor="#FFE0C0" Filter="isHTML32"> <HeaderTemplate> <H1>Hallo</H1> </HeaderTemplate>

<ItemTemplate> <mobile:Label id=Label1 runat="server" BackColor="Yellow" Text='<%# DataBinder.Eval(Container, "Text") %>' ForeColor="#C0C000"></mobile:Label> </ItemTemplate> </Choice> <Choice xmlns="Mobile HTML3.2 Template"></Choice></DeviceSpecific>

<Item Value="Hamburg" Text="Hamburg"></Item><Item Value="München" Text="München"></Item><Item Value="Berlin" Text="Berlin"></Item></mobile:List>

<mobile:List id=List1 runat="server">

<DeviceSpecific> <Choice xmlns="Mobile HTML3.2 Template" Filter="isPocketIE"></Choice> <Choice xmlns="Mobile HTML3.2 Template" BackColor="#FFE0C0" Filter="isHTML32"> <HeaderTemplate> <H1>Hallo</H1> </HeaderTemplate>

<ItemTemplate> <mobile:Label id=Label1 runat="server" BackColor="Yellow" Text='<%# DataBinder.Eval(Container, "Text") %>' ForeColor="#C0C000"></mobile:Label> </ItemTemplate> </Choice> <Choice xmlns="Mobile HTML3.2 Template"></Choice></DeviceSpecific>

<Item Value="Hamburg" Text="Hamburg"></Item><Item Value="München" Text="München"></Item><Item Value="Berlin" Text="Berlin"></Item></mobile:List>

Page 62: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

ResultatResultat

Erster Filter: PocketPC:Erster Filter: PocketPC:

Zweiter Filter: HTML32 Zweiter Filter: HTML32 (Änderung):(Änderung):

Header Template

Item Template(Labels, keine Links!)

Page 63: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Device Specific ControlDevice Specific Control

Prinzip wie zuvorPrinzip wie zuvor

ohne Default-ohne Default-ImplementierungImplementierung

mit Header- und mit Header- und Footer-TemplateFooter-Template

Page 64: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue Controls

Geräteeigenschaften abfragenGeräteeigenschaften abfragen Eigene Controls entwicklenEigene Controls entwicklen Neue Geräte integrierenNeue Geräte integrieren

Fazit und LiteraturFazit und Literatur

Page 65: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

User ControlsUser Controls

*.ASCX-File (Text)*.ASCX-File (Text) ähnlich wie eine Page, aber als Control ähnlich wie eine Page, aber als Control

EntityEntity An Container-Sprache gebunden (z.B. An Container-Sprache gebunden (z.B.

C#)C#)da Text ist, nicht IL.da Text ist, nicht IL.

Wizard (Project/Add-Menü) Wizard (Project/Add-Menü) in Beta2 nur Web User Control (nicht mobile)in Beta2 nur Web User Control (nicht mobile)

BeispielBeispielsiehe "siehe "Walkthrough: Creating Web User Controls"Walkthrough: Creating Web User Controls"nicht Beta2: nicht Beta2: ""Walkthrough: Converting a Web Forms Page to a User Walkthrough: Converting a Web Forms Page to a User Control"Control"

Page 66: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Composite ControlComposite Control

ein Assembly (IL in DLL)ein Assembly (IL in DLL) Besteht aus Child Controls, welche das Besteht aus Child Controls, welche das

Rendering erledigenRendering erledigen

Page 67: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Sonstige ControlsSonstige Controls

Controls, die das Rendering nicht den Controls, die das Rendering nicht den Child-Controls überlassenChild-Controls überlassen

brauchen Adapter...brauchen Adapter...

Page 68: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue Controls

Geräteeigenschaften abfragenGeräteeigenschaften abfragen Eigene Controls entwicklenEigene Controls entwicklen Neue Geräte integrierenNeue Geräte integrieren

Fazit und LiteraturFazit und Literatur

Page 69: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Device AdapterDevice Adapter

Anpassung an neue Geräte oder neue Anpassung an neue Geräte oder neue eigenständige Controls entwickleneigenständige Controls entwicklen

Adapter sind für's RenderingAdapter sind für's Rendering Vorhandene Controls/Forms/Pages Vorhandene Controls/Forms/Pages

werden anhgepaßt – sollte vom werden anhgepaßt – sollte vom Gerätehersteller kommen (neue Gerätehersteller kommen (neue Standards)Standards)

Adapter klinken sich in die Mobile Adapter klinken sich in die Mobile Runtime einRuntime ein

Online-Hilfe noch leere Seiten!Online-Hilfe noch leere Seiten!The device adapter code included in Beta 2 is subject to changeThe device adapter code included in Beta 2 is subject to change

Page 70: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Device AdapterDevice Adapter

QuelltextQuelltextC:\Program Files\Microsoft.NET\Mobile Internet Toolkit\Adapter SourceC:\Program Files\Microsoft.NET\Mobile Internet Toolkit\Adapter Source

z.B. z.B. WmlLinkAdapter.CSWmlLinkAdapter.CSBasisklasse: WmlControlAdapterBasisklasse: WmlControlAdapterpublic override void Render(WmlMobileTextWriter writer)public override void Render(WmlMobileTextWriter writer)

z.B. HtmlLinkAdapter.CSz.B. HtmlLinkAdapter.CSBasisklasse: Basisklasse: HtmlControlAdapterHtmlControlAdapterpublic override void Render(HtmlMobileTextWriter writer)public override void Render(HtmlMobileTextWriter writer)

Der gesamte Adapter hat das Interface:Der gesamte Adapter hat das Interface:IControlAdapterIControlAdapter

Assembly KompilierenAssembly KompilierenCsc /target:library /out:System.Web.UI.MobileControls.ShippedAdapterSource.dll Csc /target:library /out:System.Web.UI.MobileControls.ShippedAdapterSource.dll /r:System.Web.Mobile.dll /D:COMPILING_FOR_SHIPPED_SOURCE *.cs /r:System.Web.Mobile.dll /D:COMPILING_FOR_SHIPPED_SOURCE *.cs

Page 71: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Device Adapters & Server ControlsDevice Adapters & Server Controls

Add New Mobile Server Controls

HTML 3.2JScript

WML 1.1cHTMLAdd New Device Adapters

HTML 3.2

Mitsubishi T250 ,Nokia 7110, Pocket PC, Siemens C-35i,Ericsson R380, Mitsubishi D502i, NEC N502i

Nokia 6210,Palm VIIx, Palm V and more

UpdateDevice

Capabilities

Call Label

Command

AdRotator

Link Image

CalendarTextBox

List

TextView

Validators ObjectListMobile

Internet Controls

Mobile Server Controls

Device

Adapters

Device

Capabilities

Page 72: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

Neues vergleichbares GerätNeues vergleichbares Gerät Kopieren und Ändern von Kopieren und Ändern von

GeräteeigenschaftenGeräteeigenschaften Erweitern von Machine.configErweitern von Machine.config

C:\WINNT\Microsoft.NET\Framework\v1.0.2914\CONFIG\machine.configC:\WINNT\Microsoft.NET\Framework\v1.0.2914\CONFIG\machine.config<case match="R380 (?'browserMajorVersion'\w*)

(?'browserMinorVersion'\.\w*) WAP1\.1"> browser = "Ericsson" type = "Ericsson R380" version = ${browserMajorVersion}.${browserMinorVersion} majorVersion = ${browserMajorVersion} minorVersion = ${browserMinorVersion} isMobileDevice = "true" preferredRenderingType = "wml11" preferredRenderingMIME = "text/vnd.wap.wml" preferredImageMIME = "image/vnd.wap.wbmp" inputType = "virtualKeyboard" canInitiateVoiceCall = "true" mobileDeviceManufacturer = "Ericsson" mobileDeviceModel = "R380" screenPixelsWidth = "310" ……</case>

<case match="R380 (?'browserMajorVersion'\w*)(?'browserMinorVersion'\.\w*) WAP1\.1">

browser = "Ericsson" type = "Ericsson R380" version = ${browserMajorVersion}.${browserMinorVersion} majorVersion = ${browserMajorVersion} minorVersion = ${browserMinorVersion} isMobileDevice = "true" preferredRenderingType = "wml11" preferredRenderingMIME = "text/vnd.wap.wml" preferredImageMIME = "image/vnd.wap.wbmp" inputType = "virtualKeyboard" canInitiateVoiceCall = "true" mobileDeviceManufacturer = "Ericsson" mobileDeviceModel = "R380" screenPixelsWidth = "310" ……</case>

Page 73: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

AgendaAgenda

Worum es geht...Worum es geht...WAP – ein paar GrundbegriffeWAP – ein paar GrundbegriffeVS .NET und Mobile Internet ToolkitVS .NET und Mobile Internet ToolkitProgrammierung mit dem MMITProgrammierung mit dem MMITGeräteeigenschaften und neue ControlsGeräteeigenschaften und neue ControlsFazit und LiteraturFazit und Literatur

Page 74: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

FazitFazit

MMIT als Add-On zum VS .NET MMIT als Add-On zum VS .NET ASP .NET-TechnologieASP .NET-Technologie Mobile Controls rendern Markup Mobile Controls rendern Markup

entsprechend dem Client-Gerätentsprechend dem Client-Gerät Gateway schickt Markup ins Gateway schickt Markup ins

MobilfunknetzMobilfunknetz Liste der Geräteeigenschaften auf Liste der Geräteeigenschaften auf

Server gespeichertServer gespeichert Anpassung an neue Geräte möglichAnpassung an neue Geräte möglich

Page 75: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

LiteraturLiteratur

http://http://www.wapforum.comwww.wapforum.com//WAP ForumWAP Forum

http://www.w3.org/http://www.w3.org/World Wide Web ConsortiumWorld Wide Web Consortium

http://www.w3.org/TR/1998/NOTE-WAP-http://www.w3.org/TR/1998/NOTE-WAP-1998103019981030 (WAP Forum - W3C Cooperation White (WAP Forum - W3C Cooperation White Paper)Paper)

http://www.microsoft.com/mobile/http://www.microsoft.com/mobile/developer/downloadsdeveloper/downloads

http://www.forum.nokia.comhttp://www.forum.nokia.com http://msdn.microsoft.com/vstudio/http://msdn.microsoft.com/vstudio/

Page 76: Mobile Internet Toolkit Michael Klopstock, Frank Lange Technologieberater Developer Group Microsoft GmbH mikeklop@microsoft.commikeklop@microsoft.com,

DiskussionDiskussion

MMIT-Ansatz pro/cons?MMIT-Ansatz pro/cons? Zukunft Mobilmarkt?Zukunft Mobilmarkt?

(WinCE-Geräte können HTML!)(WinCE-Geräte können HTML!) Kunden leichter mit Handy-Portal als Kunden leichter mit Handy-Portal als

mit Pocket PC-Portal zu gewinnen?mit Pocket PC-Portal zu gewinnen? ......