mobile internet toolkit michael klopstock, frank lange technologieberater developer group microsoft...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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)
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
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),...
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">
WML-Darstellung im EmulatorWML-Darstellung im Emulator
Demo mit Nokia WAP-
Toolkit
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/
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
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
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
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
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
Integration ins VS.NETIntegration ins VS.NET
Demo:Neuer Projekttyp...
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)
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
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.
Rendering je nach GerätRendering je nach Gerät
Demo
Emulatoren zum TestenEmulatoren zum Testen
Mobile Internet ExplorerMobile Internet Explorer YourWAP Wireless CompanionYourWAP Wireless Companion Nokia WAP ToolkitNokia WAP Toolkit ......
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
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>
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>
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>
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
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
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
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 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)
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
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
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}
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}
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;}
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; }}
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
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
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?
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
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
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
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>
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
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
SOAP RCPSOAP RCP
Add Web Reference...Add Web Reference...
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
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
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
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();
GeräteeigenschaftenGeräteeigenschaften 2/22/2RequiresUniqueHtmlCheckboxNamesJavaScriptScreenCharactersWidthRendersWmlDoAcceptsInlineGatewayMinorVersionBrowserScreenCharactersHeightScreenPixelsHeightCrawlerGatewayMajorVersionIsColorAOLBetaMinorVersionWin32CookiesRequiresUrlQuerySuffixForInitialRequestMobileDeviceModelMobileDeviceManufacturerW3CDomVersionClrVersionCanRenderSetvarZeroWithMultiSelectionListRequiresHandheldFriendlyMetaTagPreferredImageMIMEGatewayVersion
RequiresUniqueHtmlCheckboxNamesJavaScriptScreenCharactersWidthRendersWmlDoAcceptsInlineGatewayMinorVersionBrowserScreenCharactersHeightScreenPixelsHeightCrawlerGatewayMajorVersionIsColorAOLBetaMinorVersionWin32CookiesRequiresUrlQuerySuffixForInitialRequestMobileDeviceModelMobileDeviceManufacturerW3CDomVersionClrVersionCanRenderSetvarZeroWithMultiSelectionListRequiresHandheldFriendlyMetaTagPreferredImageMIMEGatewayVersion
VBScriptRequiresPhoneNumbersAsPlainTextRendersBreaksAfterHtmlListsCanSendMailRendersBreaksAfterWmlAnchorRendersWmlSelectsAsMenuCardsMSDomVersionPreferredRenderingTypeHasBackButtonFramesTypeSupportsCSSJavaAppletsCDFVersionNumberOfSoftkeysMaximumSoftkeyLabelLengthPreferredRenderingMIMEEcmaScriptVersionInputTypeCanInitiateVoiceCallTablesWin16CanRenderOneventAndPrevElementsTogetherTagWriterRequiresUrlEncodedPostfieldValuesScreenPixelsWidth
VBScriptRequiresPhoneNumbersAsPlainTextRendersBreaksAfterHtmlListsCanSendMailRendersBreaksAfterWmlAnchorRendersWmlSelectsAsMenuCardsMSDomVersionPreferredRenderingTypeHasBackButtonFramesTypeSupportsCSSJavaAppletsCDFVersionNumberOfSoftkeysMaximumSoftkeyLabelLengthPreferredRenderingMIMEEcmaScriptVersionInputTypeCanInitiateVoiceCallTablesWin16CanRenderOneventAndPrevElementsTogetherTagWriterRequiresUrlEncodedPostfieldValuesScreenPixelsWidth
ActiveXControlsScreenBitDepthBackgroundSoundsPlatformIsMobileDeviceMajorVersion
ActiveXControlsScreenBitDepthBackgroundSoundsPlatformIsMobileDeviceMajorVersion
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>
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
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
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)
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>
ResultatResultat
Erster Filter: PocketPC:Erster Filter: PocketPC:
Zweiter Filter: HTML32 Zweiter Filter: HTML32 (Änderung):(Änderung):
Header Template
Item Template(Labels, keine Links!)
Device Specific ControlDevice Specific Control
Prinzip wie zuvorPrinzip wie zuvor
ohne Default-ohne Default-ImplementierungImplementierung
mit Header- und mit Header- und Footer-TemplateFooter-Template
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
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"
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
Sonstige ControlsSonstige Controls
Controls, die das Rendering nicht den Controls, die das Rendering nicht den Child-Controls überlassenChild-Controls überlassen
brauchen Adapter...brauchen Adapter...
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
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
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
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
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>
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
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
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/
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? ......