112
www.microsoft.com/italy/msdn/ www.microsoft.com/italy/msdn/ studenti studenti Introduction to Mobile Introduction to Mobile Development Development Roberto Brunetti Email: [email protected] BLog: www.DevLeap.it/BLog/Rob.rss

Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: [email protected]@devleap.it BLog:

Embed Size (px)

Citation preview

Page 1: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/www.microsoft.com/italy/msdn/studentistudenti

Introduction to Mobile Introduction to Mobile DevelopmentDevelopment

Roberto BrunettiEmail: [email protected]: www.DevLeap.it/BLog/Rob.rss

Page 2: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Chi siamoChi siamo• www.DevLeap.itwww.DevLeap.it• Un gruppo di 5 persone con tanta voglia Un gruppo di 5 persone con tanta voglia

didi• Studiare a fondo le tecnologieStudiare a fondo le tecnologie• Capire il “behind the scenes”Capire il “behind the scenes”• Implementare soluzioni realiImplementare soluzioni reali• Confrontarsi con le problematiche realiConfrontarsi con le problematiche reali• Sperimentare nuove ideeSperimentare nuove idee

Page 3: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Cosa FacciamoCosa Facciamo• Sviluppo internoSviluppo interno• CorsiCorsi• ConferenzeConferenze• SeminariSeminari• MentoringMentoring• Analisi e disegno di progettoAnalisi e disegno di progetto• Auditing su realizzazioni proprie o di terze Auditing su realizzazioni proprie o di terze

partiparti• Valutazione skill risorse umaneValutazione skill risorse umane• Non facciamo sviluppo direttamenteNon facciamo sviluppo direttamente

• (Supporto telefonico/via email a contorno di altri (Supporto telefonico/via email a contorno di altri servizi: mentoring)servizi: mentoring)

• Definizione di percorsi di crescita per team di Definizione di percorsi di crescita per team di svilupposviluppo

Page 4: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Chi siete ?Chi siete ?• Avete mai visto un Pocket PC ?Avete mai visto un Pocket PC ?• Avete mai sviluppato in ambienti Avete mai sviluppato in ambienti

“mobile” ?“mobile” ?• Conoscete .NET ?Conoscete .NET ?• Sviluppate in Visual Basic o C++ ?Sviluppate in Visual Basic o C++ ?

Page 5: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

AgendaAgenda• Panoramica ai dispositivi Mobile MSPanoramica ai dispositivi Mobile MS• Panoramica Strumenti di sviluppoPanoramica Strumenti di sviluppo• Panoramica Connettività e ProtocolliPanoramica Connettività e Protocolli• Panoramica Scenari di sviluppoPanoramica Scenari di sviluppo• Sviluppo Web (server-side)Sviluppo Web (server-side)• Sviluppo Rich ClientSviluppo Rich Client• Enterprise ApplicationEnterprise Application• Altri Tool attualiAltri Tool attuali• Direzioni futureDirezioni future

Page 6: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

UseremoUseremo• Tablet PC/Pocket PC 2002/SmartPhone Tablet PC/Pocket PC 2002/SmartPhone

20022002• Collegheremo/ScollegheremoCollegheremo/Scollegheremo• Qualche crash…Qualche crash…

• SQL Server 2000SQL Server 2000• SQL Server for Windows CESQL Server for Windows CE• C++ e C#C++ e C#• WML/HTML/ASP.NETWML/HTML/ASP.NET• .NET.NET

• Emulatori di dispositiviEmulatori di dispositivi• Per allargare il panoramaPer allargare il panorama

Page 7: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Panoramica dispositiviPanoramica dispositivi• Notebook...non poteva mancareNotebook...non poteva mancare• Tablet PCTablet PC• Smart Display DeviceSmart Display Device• Windows CEWindows CE• Pocket PCPocket PC• Pocket PC Phone EditionPocket PC Phone Edition• SmartPhone SmartPhone • Telefonini WAPTelefonini WAP• PDA Palm OSPDA Palm OS

Page 8: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

.NET Clients.NET Clients

Page 9: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Tablet PCTablet PC

Page 10: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Tablet PCTablet PC• Interfaccia identica a XPInterfaccia identica a XP

• Con Ink Recogniction e EMR StylusCon Ink Recogniction e EMR Stylus

• Adattabile a qualunque forma fisicaAdattabile a qualunque forma fisica• All’interno è un PCAll’interno è un PC

• RAM – Disco Fisso – Schede varie - USBRAM – Disco Fisso – Schede varie - USB

• Windows XP Tablet PC EditionWindows XP Tablet PC Edition• Girano tutte le applicazioni attualiGirano tutte le applicazioni attuali• Include .NET Framework completoInclude .NET Framework completo

• 2 Forme2 Forme• State : LapTop classicoState : LapTop classico• Convertible: tastiera e pennaConvertible: tastiera e penna

Page 11: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

DemoDemo• Internet Explorer su TabletInternet Explorer su Tablet• Remote AssistanceRemote Assistance

• Creazione invitation da Tablet (pwd=pippo)Creazione invitation da Tablet (pwd=pippo)• Salvo su DeskTopSalvo su DeskTop• Open invitation da DesktopOpen invitation da Desktop• Aggiustare SchermoAggiustare Schermo

• PowerPoint su Tablet PCPowerPoint su Tablet PC• Journal su Tablet PCJournal su Tablet PC

Page 12: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Smart Display Smart Display (Foto)(Foto)• Stylus e touch-sensitive screenStylus e touch-sensitive screen• On-screen KeyboardOn-screen Keyboard• Handwriting recognictionHandwriting recogniction• Supporto per mouse e tastiera wirelessSupporto per mouse e tastiera wireless• Accesso al PC con Windows XP (SP1)Accesso al PC con Windows XP (SP1)

• Via scheda wireless 802.11Via scheda wireless 802.11

• Basato suBasato su• XP ProfessionalXP Professional• Windows CE for Smart Device (+ probabile)Windows CE for Smart Device (+ probabile)

• Versione CE.NET 4.1Versione CE.NET 4.1• + Add-on kit+ Add-on kit

Page 13: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Windows CEWindows CE• Sistema Operativo Real-timeSistema Operativo Real-time• ModulareModulare

• Si possono scegliere le componenti per Si possono scegliere le componenti per creare un devicecreare un device

• 3.03.0• pIE 3, Supporto Ethernet, IIS, ASP, MSMQpIE 3, Supporto Ethernet, IIS, ASP, MSMQ• Ad oggi gli OEM hanno aggiuntoAd oggi gli OEM hanno aggiunto

• Bluetooth, 802.x, FingerprintBluetooth, 802.x, Fingerprint

• 4.x4.x• Bluetooth, 802.xBluetooth, 802.x• IE 5.5, WMT 8.0, Direct X 8.0IE 5.5, WMT 8.0, Direct X 8.0• .NET Compact Framework.NET Compact Framework• Kerberos, SSL, SmartCardKerberos, SSL, SmartCard

Page 14: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Varie formeVarie forme• Pocket PC 2000 (3.0)Pocket PC 2000 (3.0)

• CE 3.0CE 3.0

• Pocket PC 2002Pocket PC 2002• CE 3.0 con nuova shellCE 3.0 con nuova shell

• Handheld PCHandheld PC• CE 2.0CE 2.0

• Handheld PC ProHandheld PC Pro• CE 2.0 con applicazioni 3.0CE 2.0 con applicazioni 3.0

• CE .NET (4.x)CE .NET (4.x)• Pocket PC 2003 (deve uscire)Pocket PC 2003 (deve uscire)

• Automazione industrialeAutomazione industriale

Page 15: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PCPocket PC• Sistema operativo Windows CE 3.0Sistema operativo Windows CE 3.0

• Ogni produttore può scegliere i moduliOgni produttore può scegliere i moduli

• Ne esistono due versioni Ne esistono due versioni • Pocket PC 2000 (anche detta 3.0)Pocket PC 2000 (anche detta 3.0)• Pocket PC 2002Pocket PC 2002

• InterfacciaInterfaccia• Pen e Keyboard on-screenPen e Keyboard on-screen• Touch ScreenTouch Screen

• Ogni produttore può inserire HwOgni produttore può inserire Hw• Lettore Bar CodeLettore Bar Code• GPS integratoGPS integrato• Applicazioni CustomApplicazioni Custom• Guscio customGuscio custom• ...nei ristoranti......nei ristoranti...

Page 16: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

HardwareHardware• ROM: 32 – 48ROM: 32 – 48• RAM: 32 – 64RAM: 32 – 64• Processore (da 206 a 400 Mhz)Processore (da 206 a 400 Mhz)

• StrongARM, Intel PXA 250, Texas OMAP 710 StrongARM, Intel PXA 250, Texas OMAP 710

• Add-onAdd-on• Compact FlashCompact Flash• SD SlotSD Slot• InfraredInfrared• USB – SerialUSB – Serial• BluetoothBluetooth• Jacket di espansioneJacket di espansione

• Per PCMCIA (PCCard)Per PCMCIA (PCCard)

Page 17: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PCPocket PC• GPSGPS• Marina AmericanaMarina Americana

Page 18: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Per le demo con Pocket PCPer le demo con Pocket PC• Add-on kit per Pocket PCAdd-on kit per Pocket PC

• Scheda VGA per proiezione esternaScheda VGA per proiezione esterna• Cavo di connessione con proiettoreCavo di connessione con proiettore• Oppure wireless (con proiettore wireless)Oppure wireless (con proiettore wireless)

• Noi non l’abbiamoNoi non l’abbiamo• Ricorriamo ad un vecchio sistemaRicorriamo ad un vecchio sistema

• CE Remote DisplayCE Remote Display• Comodo per sviluppare (Tastiera/Mouse)Comodo per sviluppare (Tastiera/Mouse)

Page 19: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

DemoDemo• Secure Digital (SD Slot)Secure Digital (SD Slot)

• Memoria aggiuntivaMemoria aggiuntiva• Normalmente 8 – 256 MbNormalmente 8 – 256 Mb• Sta per uscire Panasonic SD Storage 1 GbSta per uscire Panasonic SD Storage 1 Gb

• SDIOSDIO• SD con Input / OutputSD con Input / Output• File di Video su Pocket PCFile di Video su Pocket PC

• FingerprintFingerprint

Page 20: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PC 2002 ApplicationsPocket PC 2002 Applications

• ConnettivitàConnettività• [Modem][Modem]• [Scheda Wireless][Scheda Wireless]• [Bluetooth][Bluetooth]• [Ethernet][Ethernet]• VPN (PPTP)VPN (PPTP)• Terminal ServicesTerminal Services• ActiveSyncActiveSync

• ““Office”Office”• Inbox (e-mail)Inbox (e-mail)• Contacts, Calendar, Contacts, Calendar,

Tasks, NotesTasks, Notes• Excel, WordExcel, Word• ReaderReader

• Internet ExplorerInternet Explorer• HTML 3.2HTML 3.2• XMLXML• WAP 1.2.1WAP 1.2.1• JScriptJScript• SSLSSL• ActiveXActiveX

• MSN Instant MSN Instant MessengerMessenger

• Windows Media Windows Media PlayerPlayer• Locale e StreamingLocale e Streaming

Page 21: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Demo Pocket PCDemo Pocket PC• Internet ExplorerInternet Explorer• CalendarCalendar• ContactsContacts

Page 22: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PC Phone EditionPocket PC Phone Edition• Integra il PocketPC con il telefonoIntegra il PocketPC con il telefono• Nasce dal PocketPC 2002Nasce dal PocketPC 2002

• Pen-based e tastiera on-screenPen-based e tastiera on-screen• Touch-Pad per la composizioneTouch-Pad per la composizione

• 32 Mb ROM32 Mb ROM• 32 Mb RAM32 Mb RAM• Processore StrongARMProcessore StrongARM• InfraredInfrared• SD slotSD slot

Page 23: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PC Phone EditionPocket PC Phone Edition• FotoFoto• FotoFoto

• Dimensione schermo Dimensione schermo • Normalmente uguale a Pocket PCNormalmente uguale a Pocket PC• Potrebbe variare da produttore a produttorePotrebbe variare da produttore a produttore

Page 24: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PC Phone EditionPocket PC Phone Edition• Applicazioni del Pocket PC 2002Applicazioni del Pocket PC 2002• SIM SIM • SIM ManagerSIM Manager• Contatti SIM (Address Book)Contatti SIM (Address Book)• SMSSMS• Conference CallConference Call• AuricolareAuricolare

• Multitasking: si può lavorare con le Multitasking: si può lavorare con le applicazioni mentre si telefonaapplicazioni mentre si telefona

Page 25: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Smartphone 2002 HardwareSmartphone 2002 Hardware

• Processore 120MHz ARMProcessore 120MHz ARM• 8MB+ RAM8MB+ RAM• 16MB Flash ROM16MB Flash ROM• 176x220 16-bit display176x220 16-bit display• SD SlotSD Slot• No Compact FlashNo Compact Flash• E’ un telefonoE’ un telefono

• No touch-screenNo touch-screen• No StylusNo Stylus

Page 26: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

SmartPhoneSmartPhone• FotoFoto• FotoFoto

Page 27: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Smartphone 2002 ApplicationsSmartphone 2002 Applications

• Telefonia!Telefonia!• Tastierino on-screenTastierino on-screen• ProfileProfile• ShortcutShortcut• GPRSGPRS• Tri-bandTri-band• ActiveSyncActiveSync

• Pocket OutlookPocket Outlook• Inbox (e-mail, v-Inbox (e-mail, v-

mail, sms)mail, sms)• ContactsContacts• CalendarCalendar• TasksTasks

• Internet ExplorerInternet Explorer• HTML 3.2HTML 3.2• XMLXML• WAP 1.2.1WAP 1.2.1• JScriptJScript• SSLSSL

• MSN Instant MSN Instant MessengerMessenger

• Windows Media Windows Media PlayerPlayer• Locale e StreamingLocale e Streaming

• ActiveSyncActiveSync

Page 28: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

SP Internet ExplorerSP Internet Explorer• HTML 3.2 HTML 3.2

• No FramesNo Frames• HTML 4.0 – innerText, innerHTML, accesskeyHTML 4.0 – innerText, innerHTML, accesskey• No Style SheetsNo Style Sheets

• WAP 1.2.1WAP 1.2.1• Microsoft JScript® 1.1Microsoft JScript® 1.1• cHTML (i-Mode)cHTML (i-Mode)

• accesskey, tel: URLaccesskey, tel: URL

• XML / XSLXML / XSL• Microsoft ActiveX® controlsMicrosoft ActiveX® controls• SSL securitySSL security• Imagini: JPEG, GIF, PNG, BMP, 2BP, XBM, Imagini: JPEG, GIF, PNG, BMP, 2BP, XBM,

WBMPWBMP

Page 29: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

SP Supporto WAPSP Supporto WAP• Integrazione con HTML ViewerIntegrazione con HTML Viewer• WML, WBXML, WML Script, WTLS WML, WBXML, WML Script, WTLS

securitysecurity• Bearer (Portante)Bearer (Portante)

• IP, SMS (WAP Push, SI/SL)IP, SMS (WAP Push, SI/SL)

• WTAI (Wireless Telephony Application WTAI (Wireless Telephony Application Interface)Interface)• SmartPhone consente MakeCallSmartPhone consente MakeCall• Le caratteristiche non sono adatte allo Le caratteristiche non sono adatte allo

SmartPhone e non sicureSmartPhone e non sicure

Page 30: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

SmartPhone DemoSmartPhone Demo• Usiamo sempre Remote DisplayUsiamo sempre Remote Display• ContactContact• CalendarCalendar

• Operazioni One-HandOperazioni One-Hand

• SD SlotSD Slot• Usare quella del Pocket PCUsare quella del Pocket PC• Autorun all’inserimentoAutorun all’inserimento

Page 31: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ROM vs RAMROM vs RAM• ROMROM

• Sistema OperativoSistema Operativo• Aggiornabile per upgrade del S.O.Aggiornabile per upgrade del S.O.

• RAMRAM• Per far girare le applicazioniPer far girare le applicazioni• Per Storage “permanente”Per Storage “permanente”

• Tranne Hard ResetTranne Hard Reset• Tranne esaurimento batteria Tranne esaurimento batteria tamponetampone

• Sul Pocket PC Off non significa ResetSul Pocket PC Off non significa Reset• Viene mantenuta la RAMViene mantenuta la RAM• Le applicazioni restano nel loro statoLe applicazioni restano nel loro stato

• Demo Memoria su Pocket PCDemo Memoria su Pocket PC• Inserire SD slotInserire SD slot

Page 32: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PC Phone Pocket PC Phone EditionEdition

SmartphoneSmartphone

UtilizzoUtilizzo • Data centric con supporto Data centric con supporto voicevoice

• Telefono con funzionalitá dati Telefono con funzionalitá dati

Mercato di Mercato di riferimentriferimentoo

• Mobile ProfessionalMobile Professional • Mobile ProfessionalMobile Professional• ConsumerConsumer

SchermoSchermo • 240x320 o maggiore240x320 o maggiore • 176x220 hi-res color176x220 hi-res color

InputInput • A due maniA due mani• Touch screen e stylusTouch screen e stylus

• Una mano (one-handed)Una mano (one-handed)• Keypad e joystickKeypad e joystick

ApplicatioApplicationn

• Tutta la suiteTutta la suite • No Pocket Word, Pocket No Pocket Word, Pocket Excel, Reader or Terminal Excel, Reader or Terminal Service ClientService Client

PrioritàPriorità • Mobile OutlookMobile Outlook• Web accessWeb access• Comunicazioni Voice e textComunicazioni Voice e text

• Comunicazioni Voice e textComunicazioni Voice e text• Mobile OutlookMobile Outlook• Web accessWeb access

Pocket PC Phone vs. SmartphonePocket PC Phone vs. Smartphone

Page 33: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Pocket PC vs. SmartPhonePocket PC vs. SmartPhone• SmartPhoneSmartPhone

• Full-screen dialog, 2 SoftKeys, Menu Full-screen dialog, 2 SoftKeys, Menu semplicisemplici

• Meno RAMMeno RAM• File System più piccoloFile System più piccolo• Processore più lentoProcessore più lento

• L’accoppiata vincente L’accoppiata vincente • Lo SP può fare da Modem per il Pocket PCLo SP può fare da Modem per il Pocket PC• Come per i cellulari tradizionaliCome per i cellulari tradizionali• Connessione Cavo/Infrared/BlueToothConnessione Cavo/Infrared/BlueTooth

Page 34: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Installazione applicazioniInstallazione applicazioni• Non sono telefoni !!!!Non sono telefoni !!!!• Cambia il paradigmaCambia il paradigma

• Download e Install file .CABDownload e Install file .CAB• Security su SmartPhoneSecurity su SmartPhone

• Per prevenire download “maligni”Per prevenire download “maligni”

• Installazione da DesktopInstallazione da Desktop• Tramite ActiveSyncTramite ActiveSync• Si lancia il setup su DesktopSi lancia il setup su Desktop• Viene scaricato e installato il sw sul DeviceViene scaricato e installato il sw sul Device

Page 35: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Altri DeviceAltri Device• NokiaNokia• Sony EricssonSony Ericsson• SamsungSamsung• Etc EtcEtc Etc

• WAP + WMLWAP + WML• Alcuni HTTP + Alcuni HTTP +

HTMLHTML

• Ancora TastiereAncora Tastiere

• PDAPDA• HandHeld PCHandHeld PC

• Passati...Passati...

• Palm OSPalm OS• Tante versioniTante versioni• Schermi DiversiSchermi Diversi• B&W/ColorB&W/Color• WAP + WMLWAP + WML• HTTP + HTMLHTTP + HTML

Page 36: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/www.microsoft.com/italy/msdn/studentistudenti

ConnettivitàConnettività

PanoramicaPanoramica

Page 37: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Device -> DeskTopDevice -> DeskTop• Porta SerialePorta Seriale

• In dotazione sui vecchi deviceIn dotazione sui vecchi device

• Porta USBPorta USB• In dotazione sui nuovi deviceIn dotazione sui nuovi device

• Porta InfrarossiPorta Infrarossi• SempreSempre

• ReteRete• Scheda separata oppure integrataScheda separata oppure integrata

• ActiveSyncActiveSync• Per sincronizzare i datiPer sincronizzare i dati

• Outlook, File System, Favorites di IE etc...Outlook, File System, Favorites di IE etc...

Page 38: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Connettività P2PConnettività P2P• PerchèPerchè

• PC -> PDA per sincronizzazione datiPC -> PDA per sincronizzazione dati• PDA -> Cellulare come modem (gateway)PDA -> Cellulare come modem (gateway)

• CavoCavo• Vecchio stileVecchio stile• 1 cavo per ogni coppia di Device1 cavo per ogni coppia di Device

• IrDA - InfrarossiIrDA - Infrarossi• Eliminiamo i caviEliminiamo i cavi• Necessità allineamentoNecessità allineamento

• BluetoothBluetooth• Elimina i caviElimina i cavi• Discovering / ParnershipDiscovering / Parnership• Occhio quando siete fuori....Occhio quando siete fuori....

Page 39: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ActiveSyncActiveSync• Per controllare la SincronizzazionePer controllare la Sincronizzazione

• Calendario, Task, Email, NoteCalendario, Task, Email, Note

• Per passare dati e convertirliPer passare dati e convertirli• Word, Excel, PowerpointWord, Excel, Powerpoint• PDF (da Adobe)PDF (da Adobe)• File Audio/VideoFile Audio/Video

• Ogni applicazione può montare il filtro Ogni applicazione può montare il filtro di conversionedi conversione

• Funge anche da Gateway per i deviceFunge anche da Gateway per i device

Page 40: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ActiveSyncActiveSync• Connection SettingsConnection Settings• Porta SerialePorta Seriale• Porta InfrarossoPorta Infrarosso• USBUSB• NetworkNetwork

• E... Bluethooh (COM Port Emulation)E... Bluethooh (COM Port Emulation)

Page 41: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Connettività NetworkingConnettività Networking• Basato su TCP/IPBasato su TCP/IP• Bluetooth per PANBluetooth per PAN• Scheda ReteScheda Rete

• SeparataSeparata• Vecchio stileVecchio stile

• Scheda Rete WirelessScheda Rete Wireless• Peer-to-PeerPeer-to-Peer• Access PointAccess Point

• I nuovi device “costosi” ce l’hanno a bordoI nuovi device “costosi” ce l’hanno a bordo

Page 42: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Connectivity OverviewConnectivity OverviewCircuit Switched Data Circuit Switched Data (e.g. GSM, CDMA)(e.g. GSM, CDMA)

Packet Data (e.g. Packet Data (e.g. GPRS, 1xRTT)GPRS, 1xRTT)

SMSSMS

802.11802.11

Desktop Pass-ThroughDesktop Pass-Through

BluetoothBluetooth

TCP/IPTCP/IP

WAPWAP

Cable Cable ReplacementReplacement

Page 43: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Firewall !Firewall !• I device naviganoI device navigano• Come proteggerli ?Come proteggerli ?• Dal piu’ famoso produttore di FirewallDal piu’ famoso produttore di Firewall• www.checkpoint.com/products/connect/www.checkpoint.com/products/connect/

vpn-1_clients_wince.htmlvpn-1_clients_wince.html• Lavora in tandem con VPN-1 per Lavora in tandem con VPN-1 per

rendere sicurerendere sicure• IPSecIPSec• NATNAT• Tunneling/EncriptionTunneling/Encription• LDAPLDAP• Personal FirewallsPersonal Firewalls

Page 44: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Demo Pocket PCDemo Pocket PC• Schede di reteSchede di rete• Wireless NetworkWireless Network

• Gestione Connessioni da Connection Gestione Connessioni da Connection ManagerManager

Page 45: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Rob e Marco a ParigiRob e Marco a Parigi• Che bello il mondo Che bello il mondo wirelesswireless

• Tutto senza cavi !!!!Tutto senza cavi !!!!

• Tranne l’alimentazione !!!Tranne l’alimentazione !!!

• Ma qualcuno ci sta già pensando...Ma qualcuno ci sta già pensando...

Page 46: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

APIAPI• ConnessioneConnessione

• Esposte da Connection ManagerEsposte da Connection Manager

• Send/ReceiveSend/Receive• Winsock – TCP/IP, Bluetooth, IRDAWinsock – TCP/IP, Bluetooth, IRDA• Wininet – HTTP, FTPWininet – HTTP, FTP• WAP WDP API – UDP o Binary SMSWAP WDP API – UDP o Binary SMS• SMS API – SMS Text SendingSMS API – SMS Text Sending

Page 47: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Stupid Windows SocketStupid Windows Socket• Applicazione 1 Applicazione 1

• Listen (es porta 7878)Listen (es porta 7878)

• Applicazione 2Applicazione 2• Open Socket IP:7878Open Socket IP:7878• Send “Ciao”Send “Ciao”

• Applicazione 1Applicazione 1• Riceve “Ciao” -> OperazioneRiceve “Ciao” -> Operazione• Reply “OK”Reply “OK”

• Applicazione 2Applicazione 2• Riceve OK -> “Messaggio ricevuto”Riceve OK -> “Messaggio ricevuto”

• Scacchi ? Dama ?Scacchi ? Dama ?

Page 48: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WinInet e WinsockWinInet e Winsock• Simili alle API di Windows XPSimili alle API di Windows XP• Supporto Winsock 2.0Supporto Winsock 2.0• WinInetWinInet

• HTTP e FTPHTTP e FTP• Open UrlOpen Url• Analizza la responseAnalizza la response• Chimata a Connection Manager automaticaChimata a Connection Manager automatica

Page 49: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WAP e WMLWAP e WML• Conosciamo tutti Http e HtmlConosciamo tutti Http e Html• Spendiamo un po’ di tempo su WAP e Spendiamo un po’ di tempo su WAP e

WMLWML• Riferimento Riferimento WAP ForumWAP Forum

• www.wapforum.orgwww.wapforum.org

• Definizione diDefinizione di• WAP Wireless Application ProtocolWAP Wireless Application Protocol• WML Wireless Markup LanguageWML Wireless Markup Language• WMLScriptWMLScript

Page 50: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WAPWAP• Protocollo applicativo End-to-EndProtocollo applicativo End-to-End• Ambiente application basato su BrowserAmbiente application basato su Browser

Page 51: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WAP ApplicationWAP Application• Un’applicazione WAP consisteUn’applicazione WAP consiste

• Applicazione ServerApplicazione Server• Applicazione ClientApplicazione Client

• L’applicazione Client viene scaricata L’applicazione Client viene scaricata tramite un gateway dal Servertramite un gateway dal Server

• L’applicazione Client può girare su L’applicazione Client può girare su dispositivi diversidispositivi diversi

• WAP fornisce lo standardWAP fornisce lo standard• BrowserBrowser• Interprete di scriptInterprete di script

Page 52: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ClientClient• BrowserBrowser

• Simile a un web browserSimile a un web browser• Interpreta WMLInterpreta WML

• Script InterpreterScript Interpreter• Esecuzione di applicazioniEsecuzione di applicazioni• Interpreta WMLScript (Simile a ECMAScript)Interpreta WMLScript (Simile a ECMAScript)• Set di librerie per accedere ai servizi del UASet di librerie per accedere ai servizi del UA

• WML e WMLScriptWML e WMLScript• Ottimizzati per WAPOttimizzati per WAP• Binary encoded (compilati)Binary encoded (compilati)

Page 53: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

““Client / Server”Client / Server”• L’applicazione è memorizzata su un web L’applicazione è memorizzata su un web

serverserver• Il contenuto può essere Il contenuto può essere

• WML WML • WMLScriptWMLScript• HTMLHTML

• Alcuni gateway possono eseguire la Alcuni gateway possono eseguire la conversione HTML->WMLconversione HTML->WML

• L’accesso è via URLL’accesso è via URL• Come per il webCome per il web

Page 54: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WML simile HTMLWML simile HTML

<?xml version=“1.0”?><?xml version=“1.0”?>

<!DOCTYPE wml PUBLIC ...........><!DOCTYPE wml PUBLIC ...........>

<wml><wml>

<card id=“card1” title=“Prima card”><card id=“card1” title=“Prima card”>

<p>Primo esempio</p><p>Primo esempio</p>

</card></card>

</wml></wml>

Demo NokiaDemo Nokia

Demo SmartPhoneDemo SmartPhone

Page 55: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

FlowFlow

1 Pressione di un tasto sul telefonino1 Pressione di un tasto sul telefonino

2 Lo user agent invia la richiesta via WAP 2 Lo user agent invia la richiesta via WAP al gatewayal gateway

3 Richiesta al web server via HTTP3 Richiesta al web server via HTTP

5 Normale HTTP Response5 Normale HTTP Response

6 Codifica binaria e invio allo user agent6 Codifica binaria e invio allo user agent

Page 56: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WAP Architettura ClientWAP Architettura Client• Livelli embedded nel clientLivelli embedded nel client

Page 57: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Altri Markup Language...Altri Markup Language...• ...per Interfacce utente...per Interfacce utente

• HDMLHDML• Handheld Device Markup LanguageHandheld Device Markup Language

• cHTMLcHTML• Compact HTMLCompact HTML

• XHTMLXHTML• Utilizza regole XML per HTMLUtilizza regole XML per HTML• Esempio <br /> oppure <hr></hr>Esempio <br /> oppure <hr></hr>

• XMLXML

Page 58: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Standard utilizzati oggiStandard utilizzati oggi• Pocket PC 2002 (OBEX, HTTP, HTML, WAP, Pocket PC 2002 (OBEX, HTTP, HTML, WAP,

CHTML, XML, WLAN, Wi-Fi (802.11x), CHTML, XML, WLAN, Wi-Fi (802.11x), Bluetooth, MPEG4, IRDA, 802.3 (Ethernet), Bluetooth, MPEG4, IRDA, 802.3 (Ethernet), POP3, IMAP4, WAP, VPN, Windows Media, POP3, IMAP4, WAP, VPN, Windows Media, MP3, RDP protocol, SMTP, SMS, LDAP, JScript MP3, RDP protocol, SMTP, SMS, LDAP, JScript 1.2, NNTP, SSL2, SSL3, PCT 1.0, SGC)1.2, NNTP, SSL2, SSL3, PCT 1.0, SGC)

• Pocket PC 2002 Phone Edition (OBEX, HTTP, Pocket PC 2002 Phone Edition (OBEX, HTTP, HTML, WAP, CHTML, XML, WLAN, Wi-Fi HTML, WAP, CHTML, XML, WLAN, Wi-Fi (802.11x), Bluetooth, MPEG4, GSM, GPRS, (802.11x), Bluetooth, MPEG4, GSM, GPRS, IRDA, 802.3 (Ethernet), POP3, IMAP4, WAP, IRDA, 802.3 (Ethernet), POP3, IMAP4, WAP, VPN, Windows Media, MP3, RDP protocol, VPN, Windows Media, MP3, RDP protocol, SMTP, SMS, LDAP, JScript 1.2, NNTP, SSL2, SMTP, SMS, LDAP, JScript 1.2, NNTP, SSL2, SSL3, PCT 1.0, SGC, GSM/GPRS, CDMA/1xRTT)SSL3, PCT 1.0, SGC, GSM/GPRS, CDMA/1xRTT)

• Smartphone 2002 (OBEX, HTTP, HTML, WAP, Smartphone 2002 (OBEX, HTTP, HTML, WAP, CHTML, XML, WLAN, Wi-Fi (802.11x), CHTML, XML, WLAN, Wi-Fi (802.11x), Bluetooth, MPEG4, GSM, GPRS, IRDA, 802.3 Bluetooth, MPEG4, GSM, GPRS, IRDA, 802.3 (Ethernet), POP3, IMAP4, WAP, VPN, Windows (Ethernet), POP3, IMAP4, WAP, VPN, Windows Media, MP3, TAPI, ExTAPI, WLTS, GSM/GPRS, Media, MP3, TAPI, ExTAPI, WLTS, GSM/GPRS, CDMA/1xRTT)CDMA/1xRTT)Nota: Lista incompletaNota: Lista incompleta

Page 59: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/www.microsoft.com/italy/msdn/studentistudenti

Panoramica Scenari di SviluppoPanoramica Scenari di Sviluppo

Page 60: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ScenariScenari• Utilizzo di Terminal ServiceUtilizzo di Terminal Service

• Impatto zero sul DeviceImpatto zero sul Device• Solo per Pocket PCSolo per Pocket PC

• Utilizzo di Internet ExplorerUtilizzo di Internet Explorer• Impatto zero sul DeviceImpatto zero sul Device

• Applicazione sul DeviceApplicazione sul Device• Installazione sul DeviceInstallazione sul Device

• Semplice o complessa che siaSemplice o complessa che sia• ScenariScenari

• Utilizzo del Web RequestUtilizzo del Web Request• Vecchio stileVecchio stile

• Utilizzo di XMLUtilizzo di XML• Vecchio StileVecchio Stile

• Utilizzo di Web Service !!!Utilizzo di Web Service !!!• Download e uso dei dati sul device !!!Download e uso dei dati sul device !!!

Page 61: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

DecisioniDecisioni• Server Side o Smart ClientServer Side o Smart Client• Tecnolgie Server SideTecnolgie Server Side

• Mobile WebMobile Web• NotificationNotification

• Tecnologie Smart ClientTecnologie Smart Client• Managed o Native Client CodeManaged o Native Client Code

• Strategia accesso ai datiStrategia accesso ai dati• XML Web serviceXML Web service• SQL Merge ReplicationSQL Merge Replication• SQL Remote Data Access (RDA)SQL Remote Data Access (RDA)

Page 62: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Server Server SideSide

SmartSmartClientClient

??

• Abbiamo il controllo dei Abbiamo il controllo dei Device?Device?

• Possiamo installare e gestire i Possiamo installare e gestire i client device?client device?

• Quanto (ore) viene usata Quanto (ore) viene usata questa applicazione?questa applicazione?

• Serve un’interfaccia utente Serve un’interfaccia utente particolare?particolare?

• L’applicazione deve lavorare L’applicazione deve lavorare disconnessa? disconnessa?

• Quanto cosa la connessione?Quanto cosa la connessione?

Server Side o Smart Client ?Server Side o Smart Client ?

Page 63: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Server Side o Smart Client !Server Side o Smart Client !

• Server sideServer side• Supporto multi-deviceSupporto multi-device• Logica Server-sideLogica Server-side• Nessuna installazione sul Nessuna installazione sul

clientclient• Interfaccia via BrowserInterfaccia via Browser• Solo on-lineSolo on-line

• Smart ClientSmart Client• Versioni diverseVersioni diverse• Logica e dati Client-sideLogica e dati Client-side• Installazione sui clientInstallazione sui client• Flessibilità interfaccia Flessibilità interfaccia

utenteutente• PerformancePerformance• Offline & OnlineOffline & Online• Utilizzo API localiUtilizzo API locali

• POOMPOOM

Server SideServer Side

SmartSmartClientClient

??

Page 64: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ComplementariComplementaries. Push URL per es. Push URL per

“browse back”“browse back”

• Mobile WebMobile Web• Applicazioni Applicazioni

interattiveinterattive• Interfaccia utenteInterfaccia utente• Modello di sviluppo Modello di sviluppo

WebWeb• Device con supporto Device con supporto

per Browserper Browser

• NotificationNotification• Push messaggiPush messaggi• SMS, IM, ecc.SMS, IM, ecc.• Architettura Architettura

Publish / SubscribePublish / Subscribe• Device con e senza Device con e senza

supporto Browsersupporto Browser

Mobile WebMobile Web NotificationNotification

Server-side: Tipo di App ?Server-side: Tipo di App ?

Page 65: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Mobile WebMobile Web• HTML, WML, HDML, cHTML o XHTML ?HTML, WML, HDML, cHTML o XHTML ?• Se HTML, quale versione ?Se HTML, quale versione ?

• 3.2 supportata da molti device ?3.2 supportata da molti device ?• 4.0 supportata da alcuni4.0 supportata da alcuni

• Uso Javascript lato client ?Uso Javascript lato client ?• Sarebbe bello ma non funziona su tutti i Sarebbe bello ma non funziona su tutti i

devicedevice

• Due opzioniDue opzioni• Usiamo il minimo comune denominatoreUsiamo il minimo comune denominatore• Adattiamo il rendering per vari deviceAdattiamo il rendering per vari device

• ...e quando ne esce uno nuovo ?...e quando ne esce uno nuovo ?

Page 66: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

• Mobile ControlsMobile Controls• Altra produttivitàAltra produttività• Gestione sempliceGestione semplice• Supporto XMLSupporto XML• Web Services integratiWeb Services integrati• PerformancePerformance• Device ExtensionDevice Extension• Event-basedEvent-based

• Native / XSLTNative / XSLT• Sviluppo più complessoSviluppo più complesso• Nuovo codice per nuovi Nuovo codice per nuovi

devicedevice• Supporto XML Supporto XML

(obbligatorio)(obbligatorio)• No Web ServicesNo Web Services• Utilizzo di standardUtilizzo di standard• Riutilizzo ASP 3.0 e altri Riutilizzo ASP 3.0 e altri

ambientiambienti

ASP.NET, ASP.NET, Mobile Mobile ControlsControls

Native / Native / XSLTXSLT

Mobile Mobile Web BrowseWeb Browse ??

Scelte Server-sideScelte Server-side

Mobile Controls, XSLT o Hand CodedMobile Controls, XSLT o Hand Coded

Page 67: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Quick DemoQuick Demo• Mobile Control Adaptive RenderingMobile Control Adaptive Rendering

• Calendario: Una roba complessa !!!Calendario: Una roba complessa !!!

• Internet Explorer Tablet PC (o PC)Internet Explorer Tablet PC (o PC)• IE su Pocket PCIE su Pocket PC• IE su SmartPhoneIE su SmartPhone• Nokia Mobile Internet ToolkitNokia Mobile Internet Toolkit• Microsoft Mobile ExplorerMicrosoft Mobile Explorer

• .. Ci torniamo.. Ci torniamo

Page 68: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Notification TechnologyNotification Technology

Windows ServerWindows Server

SQL Server:SQL Server:SQL Notification SQL Notification

ServicesServices

OpzioniOpzioniInvioInvio

MMIS, MMIS, .NET Alerts.NET Alerts

SMTPSMTPetc.etc.

SOAPSOAPecc.ecc.

SMSSMS

IMIM

SMTPSMTP

GenerazioneGenerazione DeliveryDelivery

EventiEventi

SubscriptionsSubscriptions

Page 69: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Scelte Smart ClientScelte Smart Client• Piattaforma Target ?Piattaforma Target ?• Applicazione o Driver ?Applicazione o Driver ?• Facilità di sviluppo o performance Facilità di sviluppo o performance

pure ?pure ?• Conoscenze precedenti ?Conoscenze precedenti ?

Page 70: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Piattaforma clientPiattaforma client• LapTop / Tablet PCLapTop / Tablet PC

• VB 6, VC++, .NETVB 6, VC++, .NET• Driver C++Driver C++

• Pocket PC 2000/2002Pocket PC 2000/2002• eVB 3.0, eVC++ 3.0, .NETeVB 3.0, eVC++ 3.0, .NET• Driver eVC++Driver eVC++

• HPC e Palm PC (vecchi)HPC e Palm PC (vecchi)• eVB 3.0, eVC++ 3.0eVB 3.0, eVC++ 3.0

• SmartPhone 2002SmartPhone 2002• eVC++ 3.0 (per adesso)eVC++ 3.0 (per adesso)

• CE.NETCE.NET• eVC++ 4.0, .NET (Pocket PC 2003 occorre eVC++ 4.0, .NET (Pocket PC 2003 occorre

SP2)SP2)

Page 71: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Scelte Smart ClientScelte Smart Client

ManagedManaged.NET CF.NET CF(VB .NET, C# etc.)(VB .NET, C# etc.)

eVBeVB

TempoTempo

eVC

e e

VB

eVC

e e

VB

eVC

eVC native eVCnative eVC

Page 72: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Scelte Smart ClientScelte Smart Client

Windows CEWindows CE Windows XPWindows XP

Pocket PC + Pocket PC + PPC PhonePPC Phone

EditionEdition

MicrosoftMicrosoftSmartphoneSmartphone

Other Other Windows CE Windows CE

DevicesDevices

Notebook Notebook PCsPCs

Tablet PCsTablet PCs

……

.NET .NET FrameworkFramework

.NET .NET Compact Compact

FrameworkFrameworkSD

Ks

SD

Ks

SD

Ks

SD

Ks

eVCeVC

OS

OS

Visual Studio .NETVisual Studio .NET+ Smart Device Extensions+ Smart Device Extensions

To

ol

To

ol

OS

OS

Page 73: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Quick DemoQuick Demo• Visual Studio .NETVisual Studio .NET

• Una semplice applicazione (SDEApp)Una semplice applicazione (SDEApp)• Sul Pocket PCSul Pocket PC• Modifica testoModifica testo

• Ci torniamo...Ci torniamo...

Page 74: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Scelte Smart ClientScelte Smart Client

• ManagedManaged• ProduttivitàProduttività• ““Safe Programming”Safe Programming”• Supporto Web ServiceSupporto Web Service• Librerie comuniLibrerie comuni• Stessi tool e API del Stessi tool e API del

desktopdesktop• Si utilizza per la Si utilizza per la

maggioranza dei casimaggioranza dei casi

• NativeNative• Sviluppo a basso livelloSviluppo a basso livello• Sviluppo Real-time Sviluppo Real-time • Sviluppo DriverSviluppo Driver• Sviluppo wrapper per Sviluppo wrapper per

codice legacycodice legacy• SmartPhone...per adessoSmartPhone...per adesso

ManagedManaged.NET CF.NET CF

Native (eVC)Native (eVC)

SmartSmartClientClient ??

Page 75: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Scelte accesso ai datiScelte accesso ai dati

Windows CEWindows CE

SQL Server CESQL Server CE

.NET Compact .NET Compact FrameworkFramework

Windows ServerWindows Server

SQL ServerSQL Server

1. XML Web 1. XML Web ServiceService

3. Sincronizzazione3. Sincronizzazione(http)(http)

4. ADO.NET4. ADO.NETDati LocaliDati Locali

XML XML Web Web

ServiceService

XML XML Web Web

ServiceService

2. Accesso SQL Server2. Accesso SQL Server

ASP.NET, ASP.NET, Mobile ControlsMobile Controls

Presentation LayerPresentation LayerMobile BrowserMobile BrowserWAP, HTML ecc.

Sm

art

clie

ntB

row

ser

Page 76: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Scelte Accesso ai DatiScelte Accesso ai Dati• 1. XML Web services1. XML Web services

• Riutilizzo Web service (desktop, mobile web Riutilizzo Web service (desktop, mobile web ecc.)ecc.)

• Incapsulamento Business LogicIncapsulamento Business Logic

• 2. Direct SQL Server2. Direct SQL Server• Più semplice per applicazioni sempre on-line Più semplice per applicazioni sempre on-line

• 3. SQL Server CE Synch3. SQL Server CE Synch• Utilizzo di dati localiUtilizzo di dati locali• Sincronizzazione auto/granulare dei datiSincronizzazione auto/granulare dei dati• Applicazioni Off-lineApplicazioni Off-line

• 4. Local data access4. Local data access• Utilizzo di store locale per applicazioni Off-lineUtilizzo di store locale per applicazioni Off-line• Utilizzo ADO .NET, SQL Server CE, XMLUtilizzo ADO .NET, SQL Server CE, XML

Page 77: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/www.microsoft.com/italy/msdn/studentistudenti

Sviluppo Server-Side Sviluppo Server-Side

Basato su BrowserBasato su Browser

Page 78: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

La sfidaLa sfida

Web Site

Web Site

Page 79: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

La sfiga La sfiga • Device DiversiDevice Diversi• Schermi diversiSchermi diversi• Dimensioni diverseDimensioni diverse• Supporto Markup Language DiversoSupporto Markup Language Diverso

• Html e Http li conosciamoHtml e Http li conosciamo• Diamo uno sguardo a WML rispetto a Diamo uno sguardo a WML rispetto a

HTMLHTML

• Ricordiamoci che il WAP Gateway gira le Ricordiamoci che il WAP Gateway gira le richieste in Http verso il serverrichieste in Http verso il server

Page 80: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WMLWML• E’ un documento XMLE’ un documento XML

• RigorosoRigoroso• Case sensitive (xml è minuscolo)Case sensitive (xml è minuscolo)• Well formed /ValidWell formed /Valid• www.wapforum.org/DTD/wml_1.1.xmlwww.wapforum.org/DTD/wml_1.1.xml

• Card = Unità baseCard = Unità base• Singola interazione fra l’utente e il browserSingola interazione fra l’utente e il browser

• Deck = DocumentoDeck = Documento• Raggruppa le cardRaggruppa le card• Esiste una card di defaultEsiste una card di default• Scaricato via urlScaricato via url

Page 81: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Simile a HTMLSimile a HTML

<?xml version=“1.0”?><?xml version=“1.0”?>

<!DOCTYPE wml PUBLIC ...........><!DOCTYPE wml PUBLIC ...........>

<wml><wml>

<card id=“card1” title=“Prima card”><card id=“card1” title=“Prima card”>

<p>Primo esempio</p><p>Primo esempio</p>

</card></card>

</wml></wml>

Page 82: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

MultiCardMultiCard<?xml version=“1.0”?><?xml version=“1.0”?>

<!DOCTYPE wml PUBLIC ...........><!DOCTYPE wml PUBLIC ...........>

<wml><wml>

<card id=“card1” title=“Prima card”><card id=“card1” title=“Prima card”>

<p>Prima</p><p>Prima</p>

</card></card>

<card id=“card2” title=“Seconda card”><card id=“card2” title=“Seconda card”>

<p>Seconda</p><p>Seconda</p>

</card></card>

</wml></wml>

Page 83: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WML: Tag e ElementWML: Tag e Element

Deck / Card

Events

Tasks

Variables

User Input

Anchor

Image

Timer

Text

wml, card, template, head, access, meta

do, ontimer, onenter, onpick, onevent, postfield

go, prev, refresh, noop

Setvar

input, select, option, optgroup, fieldset

a, anchor

img

timer

br, p, table, tr, td

Page 84: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Navigazione LINKNavigazione LINK<wml><wml>

<card id=“card1” title=“prima card”><card id=“card1” title=“prima card”>

<p><p>

Seleziona Seleziona

<anchor>vai<anchor>vai

<go href=“#card2”/><go href=“#card2”/>

</anchor> </anchor>

per navigareper navigare

</p></p>

</card></card>

<card id=“card2” title=“seconda card”><card id=“card2” title=“seconda card”>

<p>Informazioni</p><p>Informazioni</p>

</card></card>

</wml></wml>

Page 85: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Navigazione ACCEPTNavigazione ACCEPT<wml><wml>

<card id=“card1” title=“prima card”><card id=“card1” title=“prima card”>

<do type=“accept” label=“Vai”><do type=“accept” label=“Vai”>

<go href=“#card2”/><go href=“#card2”/>

</do></do>

<p>Seleziona <b>vai</b> per navigare</p><p>Seleziona <b>vai</b> per navigare</p>

</card></card>

<card id=“card2” title=“seconda card”><card id=“card2” title=“seconda card”>

<p>Informazioni</p><p>Informazioni</p>

<do type="prev" label=“Indietro"><do type="prev" label=“Indietro">

<prev/><prev/>

</do></do>

</card></card>

</wml></wml>

Page 86: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

VariabiliVariabili• In HTML in quanto tale non esistono !In HTML in quanto tale non esistono !• Sono case sensitiveSono case sensitive• Si impostano conSi impostano con

• <setvar name=“variab1” value=“valore”/><setvar name=“variab1” value=“valore”/>

• Durante la navigazioneDurante la navigazione• <go href=“#card2”><setvar...../></go><go href=“#card2”><setvar...../></go>

• Si leggono i valori conSi leggono i valori con• $(variab1)$(variab1)

• Mantengono il contesto (!= HTTP)Mantengono il contesto (!= HTTP)• Se l’utente naviga interagendo con Se l’utente naviga interagendo con

l’applicazionel’applicazione• Può essere perso se naviga verso altri deck Può essere perso se naviga verso altri deck

non interagendo con l’applicazionenon interagendo con l’applicazione

Page 87: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

User InputUser Input• <input<input

• name=“nome”name=“nome”• default=“valore default”default=“valore default”• format=“inputmask”format=“inputmask”• emptyok=“true/false”emptyok=“true/false”• size=“dimensioneinput”size=“dimensioneinput”• maxlength=“maxchar”maxlength=“maxchar”• tabindex=“numero”tabindex=“numero”• />/>

• I campi diventano/sono delle variabiliI campi diventano/sono delle variabili

Non Esiste in HTML

Page 88: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Input esempioInput esempio<wml><wml>

<card id=“card1” title=“Inserimento”<card id=“card1” title=“Inserimento”

<do type=“accept”><do type=“accept”>

<go href=“#card2”/><go href=“#card2”/>

</do></do>

<p>Immetti il tuo nome: <input <p>Immetti il tuo nome: <input name=“nome”/></p>name=“nome”/></p>

</card></card>

<card id=“card2 title=“Visualizzazione”><card id=“card2 title=“Visualizzazione”>

<p>Ciao $(nome)</p><p>Ciao $(nome)</p>

</card></card>

</wml></wml>

Page 89: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WMLScriptWMLScript• Per validare gli inputPer validare gli input• MessageBoxMessageBox• Interazione con lo user agentInterazione con lo user agent

• Invio di chiamateInvio di chiamate• Invio di SMSInvio di SMS• Address Book telefonoAddress Book telefono• Address Book SIMAddress Book SIM

• Può sfruttare caratteristiche specifiche Può sfruttare caratteristiche specifiche del device...come per i browserdel device...come per i browser

• E’ standard compreso nella specifica WAPE’ standard compreso nella specifica WAP• Diverso da HTML dove è “a cura del Diverso da HTML dove è “a cura del

browser”browser”

Page 90: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Interazione con il serverInterazione con il server<card><card>

<do type=“accept”><do type=“accept”>

<go href=“http://xxx” method=“get/post”><go href=“http://xxx” method=“get/post”>

<postfield name=“name" value="$<postfield name=“name" value="$(nome)"/>(nome)"/>

</go></go>

</do></do>

<p> Inserisci il tuo nome <input <p> Inserisci il tuo nome <input name=“nome”/>name=“nome”/>

</p></p>

</card></card>

• GET/POST come HTML ma possiamo decidere quali GET/POST come HTML ma possiamo decidere quali valori inviarevalori inviare

Page 91: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Server-side scriptingServer-side scripting• Inviare WML dinamico al dispositivoInviare WML dinamico al dispositivo

<wml><wml>

<%While not rs.eof%><%While not rs.eof%>

<card id=“<%=rs(“IdCard”)%>” <card id=“<%=rs(“IdCard”)%>” title=“<title=“<

%=rs(“TitoloCard”)%>”>%=rs(“TitoloCard”)%>”>

......

</card></card>

<%rs.movenext<%rs.movenext

End%>End%>

</wml></wml>

Page 92: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Torniamo al problemaTorniamo al problema• WML e HTML sono diversiWML e HTML sono diversi

• Per la gestione dei formPer la gestione dei form• Per la gestione delle variabiliPer la gestione delle variabili• In WML non esistono molti dei tag HTMLIn WML non esistono molti dei tag HTML

• Inoltre abbiamo schermi di dimensioni Inoltre abbiamo schermi di dimensioni diversi da device a devicediversi da device a device

• Potremmo scrivere codice che testa il Potremmo scrivere codice che testa il device (HTTP_USER_AGENT) e si device (HTTP_USER_AGENT) e si comporta di conseguenzacomporta di conseguenza• Che fare per ogni nuovo device che esce ?Che fare per ogni nuovo device che esce ?• Ci potremmo fare una libreria e un file di Ci potremmo fare una libreria e un file di

configurazioneconfigurazione

Page 93: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ASP.NET Mobile ControlsASP.NET Mobile Controls

• Integrazione con Integrazione con VS.NET 2002/2003VS.NET 2002/2003

.NET Framework

Services Framework

ASP.NET

Common Language Runtime

System Services

Windows Forms&

.NET Compact Framework

Base Data Debug …

Web Forms

MobileWeb Forms

Web Services

• Estendono ASP.NET Estendono ASP.NET per applicazioni per applicazioni mobilemobile

• Multi-DeviceMulti-Device

• Multi-LanguageMulti-LanguageHTML/WML…HTML/WML…

Page 94: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Supporto Device – 200 c.a.Supporto Device – 200 c.a.• ACCESS Compact: NetFront 2.0, Fujitsu F503i, Mitsubishi D502i, Mitsubishi ACCESS Compact: NetFront 2.0, Fujitsu F503i, Mitsubishi D502i, Mitsubishi

D503i, NEC N210i, NEC N502i, Sony SO503iD503i, NEC N210i, NEC N502i, Sony SO503i• Ericsson 2.0: Ericsson R380, Ericsson R320, Ericsson R520m, Ericsson T20sEricsson 2.0: Ericsson R380, Ericsson R320, Ericsson R520m, Ericsson T20s• GoAmerica Go.Web: Compaq iPAQ H3650, Palm Vx, RIM Blackberry 857, RIM GoAmerica Go.Web: Compaq iPAQ H3650, Palm Vx, RIM Blackberry 857, RIM

Blackberry 950, RIM Blackberry 957, Blackberry 950, RIM Blackberry 957, • Microsoft Mobile Explorer: Sony CMD-Z5, Sony CMD-J5, Benefon Q, Microsoft Mobile Explorer: Sony CMD-Z5, Sony CMD-J5, Benefon Q, • Microsoft Pocket Internet Explorer: Casio Cassiopeia E-125, Compaq iPAQ Microsoft Pocket Internet Explorer: Casio Cassiopeia E-125, Compaq iPAQ

H3630, Compaq iPAQ H3650, HP Jornada 720, Compaq iPAQ H3670H3630, Compaq iPAQ H3650, HP Jornada 720, Compaq iPAQ H3670• Nokia: Nokia 3330, Nokia 6210, Nokia 7110, Nokia 9110iNokia: Nokia 3330, Nokia 6210, Nokia 7110, Nokia 9110i• Openwave UP.Browser 3.x: Audiovox CDM-9000, Ericsson R280LX, Hitachi Openwave UP.Browser 3.x: Audiovox CDM-9000, Ericsson R280LX, Hitachi

C407H, Kyocera QCP 2035A, Kyocera QCP 3035, LG V111, Mitsubishi T250, C407H, Kyocera QCP 2035A, Kyocera QCP 3035, LG V111, Mitsubishi T250, Motorola StarTAC 7868W, Motorola TimePort P8767, Samsung SCH-6100, Motorola StarTAC 7868W, Motorola TimePort P8767, Samsung SCH-6100, Samsung SCH-850, Samsung SCH-8500, Samsung UpRoar M100, Sanyo C401SA, Samsung SCH-850, Samsung SCH-8500, Samsung UpRoar M100, Sanyo C401SA, Sanyo SCP-4500, Sanyo SCP-5000, Sprint Touchpoint, Sprint Touchpoint 2200, Sanyo SCP-4500, Sanyo SCP-5000, Sprint Touchpoint, Sprint Touchpoint 2200, Sprint Touchpoint 3000Sprint Touchpoint 3000

• Openwave UP.Browser 4.x: Alcatel One Touch 701, Audiovox CDM-135, Audiovox Openwave UP.Browser 4.x: Alcatel One Touch 701, Audiovox CDM-135, Audiovox CDM-9100, Motorola i1000plus, Motorola i2000plus, Motorola i50sx, Motorola CDM-9100, Motorola i1000plus, Motorola i2000plus, Motorola i50sx, Motorola i85s, Motorola T2288, Motorola TimePort P7382i, Motorola TimePort P7389, i85s, Motorola T2288, Motorola TimePort P7382i, Motorola TimePort P7389, Motorola V100, Motorola V120c, Motorola V2288, Motorola V60c, Siemens C35i, Motorola V100, Motorola V120c, Motorola V2288, Motorola V60c, Siemens C35i, Siemens S35i, Siemens SL45Siemens S35i, Siemens SL45

• Miscellaneous Browsers: Handspring Visor Platinum (Qualcomm Eudora Internet Miscellaneous Browsers: Handspring Visor Platinum (Qualcomm Eudora Internet Suite 2.1; Blazer 1.0 and Omnisky 2.1.0.15), IBM WorkPad c505 (ilinx Xiino Suite 2.1; Blazer 1.0 and Omnisky 2.1.0.15), IBM WorkPad c505 (ilinx Xiino 1.01J), Kyocera QCP 6035 (Qualcomm Eudora 2.0), Nokia 9210 (Symbian Crystal 1.01J), Kyocera QCP 6035 (Qualcomm Eudora 2.0), Nokia 9210 (Symbian Crystal 6.0), Palm VII (MyPalm 1.0), Palm Vx (AU-Systems 2.12181.1 and Omnisky 6.0), Palm VII (MyPalm 1.0), Palm Vx (AU-Systems 2.12181.1 and Omnisky 2.0.04), Palm m505 (MyPalm 1.1), Panasonic P210i, Panasonic P502i, Sharp J-2.0.04), Palm m505 (MyPalm 1.1), Panasonic P210i, Panasonic P502i, Sharp J-SH04 (Original Equipment Manufacturer's Version 3.0), Sharp Zaurus MI-E1 SH04 (Original Equipment Manufacturer's Version 3.0), Sharp Zaurus MI-E1 (Original Equipment Manufacturer's Version 6.1), Sony CLIE PEG-N700C (ilinz (Original Equipment Manufacturer's Version 6.1), Sony CLIE PEG-N700C (ilinz Palmscape 4.0SJ), Toshiba J-T05 (Original Equipment Manufacturer's Version Palmscape 4.0SJ), Toshiba J-T05 (Original Equipment Manufacturer's Version 3.0), 3.0),

Page 95: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Web Form e Mobile Web FormWeb Form e Mobile Web Form

MobileMobile Web FormWeb Form<<mobilemobile:Form runat="server">:Form runat="server">

<<mobilemobile:Label runat=“server">:Label runat=“server">Ciao CiaoCiao Ciao

</</mobilemobile:Label>:Label></</mobilemobile:Form>:Form>

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

Ciao CiaoCiao Ciao </</aspasp:Label>:Label></Form></Form>

Web FormWeb Form

Page 96: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

CaratteristicheCaratteristiche• Adaptive RenderingAdaptive Rendering

• Mobile ControlMobile Control• SviluppoSviluppo• Espongono Proprieta’, Metodi, EventiEspongono Proprieta’, Metodi, Eventi

• AdapterAdapter• Producono l’OutputProducono l’Output• Un adapter per ogni tipo di “ML” da inviareUn adapter per ogni tipo di “ML” da inviare• Inviano ML correttoInviano ML corretto

• CustomizationCustomization• Modello estendibile per customizzare il Modello estendibile per customizzare il

rendering per un particolare devicerendering per un particolare device

Page 97: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Adaptive RenderingAdaptive RenderingCalendarioCalendario

WMLWML

cHTMLcHTML HTMLHTML

CalendarCalendar

MobileMobileCapabilitiesCapabilities

HTTP HTTP RequestRequest

Invio super-TABLE Invio super-TABLE HTMLHTML

Mobile.ASPXMobile.ASPX

Recupero Recupero Device Device AdapterAdapter

Recupero Recupero info Browser info Browser

e Devicee DeviceSelezione Selezione Device AdapterDevice Adapter

Recupero Recupero Device Device AdapterAdapter

WAPWAP

ASP.NET and IISASP.NET and IIS Invio testo WMLInvio testo WML

InizializzazioneInizializzazioneControlliControlli

Page 98: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Text Display ControlsText Display Controls• Label ControlLabel Control

• Piccole quantità di info – read onlyPiccole quantità di info – read only

• TextBox ControlTextBox Control• Single-line input (text box)Single-line input (text box)

• DemoDemo• SempliceSemplice• Trace per diverso renderingTrace per diverso rendering

Page 99: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Navigazione Navigazione • Una pagina ASP.NET tradizionale Una pagina ASP.NET tradizionale

contiene un solo formcontiene un solo form• I device possono avere schermi I device possono avere schermi

ridottissimiridottissimi• Si possono costruire più form nella Si possono costruire più form nella

stessa paginastessa pagina• Evitando di avere tante pagine “minuscole” Evitando di avere tante pagine “minuscole”

sul sitosul sito• Utilizzando gli stesse entità (nomi di pagine) Utilizzando gli stesse entità (nomi di pagine)

dell’applicazione Desktopdell’applicazione Desktop• Riutilizzando la stessa logica Riutilizzando la stessa logica

dell’applicazione Desktopdell’applicazione Desktop

Page 100: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Transfer ControlsTransfer Controls• Link control Link control

• Testo con hyperlinkTesto con hyperlink• Verso un form diverso (card in WML)Verso un form diverso (card in WML)• Verso una pagina diversaVerso una pagina diversa

• Proprietà Softkey (per telefonini)Proprietà Softkey (per telefonini)

• PhoneCall controlPhoneCall control• Genera mark-upGenera mark-up

• Su un telefonino con possibilità di chiamata Su un telefonino con possibilità di chiamata direttadiretta

• Su un device visualizza il numeroSu un device visualizza il numero

<mobile:Link id="lnkfrmResults" runat="server" <mobile:Link id="lnkfrmResults" runat="server" NavigateUrl="#frmResults">Go to Results</mobile:Link>NavigateUrl="#frmResults">Go to Results</mobile:Link>

Page 101: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Transfer ControlsTransfer Controls• Command controlCommand control

• Bottone tradizionaleBottone tradizionale• Può invocare eventi server-sidePuò invocare eventi server-side

• Proprietà SoftkeyLabelProprietà SoftkeyLabel• Testo per la SoftKey del telefoninoTesto per la SoftKey del telefonino

• Demo 03: Notare Variabili in WMLDemo 03: Notare Variabili in WML• Demo 04Demo 04

<mobile:Command id="cmdSelectProduct" runat="server“ <mobile:Command id="cmdSelectProduct" runat="server“ softkeylabel=“Next”>Select Product</mobile:Command>softkeylabel=“Next”>Select Product</mobile:Command>

Page 102: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

List ControlList Control• Utile per costruire MenùUtile per costruire Menù• Può avere Text e ValuePuò avere Text e Value• Sul click viene scatenato ItemCommandSul click viene scatenato ItemCommand

<mobile:List id=“lstXXX" runat="server“ <mobile:List id=“lstXXX" runat="server“ OnItemCommand=“lstXXX_Command”>OnItemCommand=“lstXXX_Command”>

<Item Text=“Udine” Value=“UD” /><Item Text=“Udine” Value=“UD” /><Item Text=“Trento” Value=“TN” /><Item Text=“Trento” Value=“TN” /><Item Text=“Milano” Value=“MI” /><Item Text=“Milano” Value=“MI” />

</mobile:List></mobile:List>

Page 103: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

TextView ControlTextView Control

• Testo lungoTesto lungo• Consente Consente

• BoldBold• ItalicItalic• Salti paginaSalti pagina• ParagrafiParagrafi• Anchor nel testoAnchor nel testo• Supporta PaginazioneSupporta Paginazione

Page 104: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

List e Selection ListList e Selection List

ListList SelectionListSelectionList ObjectListObjectList

DataboundDatabound OpzionaleOpzionale OpzionaleOpzionale ObbligatorioObbligatorio

PaginationPagination SiSi NoNo SiSi

DecorationDecoration None, None, Bulleted, Bulleted, NumberedNumbered

Dropdown, Dropdown, ListBox, Radio ListBox, Radio Button, Button, CheckBox, CheckBox, MultiSelectMultiSelect

Solo con Solo con CustomizatiCustomizationon

InteractiveInteractive OpzionaleOpzionale SiSi OpzionaleOpzionale

Controlli Controlli simili in simili in ASP.NETASP.NET

DatalistDatalist ListBox, ListBox, CheckBox, CheckBox, CheckBoxList, CheckBoxList, RadioButton, RadioButton, RadioButtonLiRadioButtonList, & st, & DropDownListDropDownList

DatagridDatagrid

Page 105: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

ObjectListObjectList• DataBindingDataBinding• TemplateTemplate

• HeaderHeader• FooterFooter• ItemItem• AlternatingItemAlternatingItem

• Dettaglio automaticoDettaglio automatico

• DemoDemo• IEIE• Pocket PCPocket PC• NokiaNokia• SmartPhoneSmartPhone

Page 106: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Un po’ di stileUn po’ di stile• Aggiungere un po’ di informazioni di Aggiungere un po’ di informazioni di

stylestyle• 3 stili predefiniti3 stili predefiniti

• titletitle• ErrorError• SubcommandSubcommand

• Associabili con StyleReferenceAssociabili con StyleReference

• Demo 07Demo 07

• Estendibile con propri stiliEstendibile con propri stili

Page 107: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

WAP/WML batte HTTP/HTMLWAP/WML batte HTTP/HTML• Gestione input numericoGestione input numerico• Mantenimento valore campi e variabili Mantenimento valore campi e variabili

cross-requestcross-request• Tutto gestito dietro le quinteTutto gestito dietro le quinte• In HTTP/HTML non sarebbe possibileIn HTTP/HTML non sarebbe possibile• Entra in gioco il ViewState di ASP.NETEntra in gioco il ViewState di ASP.NET

Page 108: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

DatiDati• Caricamento dati da codiceCaricamento dati da codice• Esempio conEsempio con

• Controllo SelectionListControllo SelectionList• ComboBox, ListBox (anche multiselect)ComboBox, ListBox (anche multiselect)

• Demo 10Demo 10

Page 109: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

IISIIS.NET Framework 1.1 .NET Framework 1.1

(ASP.NET)(ASP.NET)

SviluppoSviluppo ProduzioneProduzione

CreazioneCreazioneWeb FormWeb Form

Business LogicBusiness Logic

PresentationPresentation Layer (controls)Layer (controls)

Test Test DeviceDevice

Invio inInvio inProduzioneProduzione

HTTPHTTPRequestRequest

DeviceDeviceCapabilitýCapabilitý

Mobile Controls Mobile Controls Device AdapterDevice Adapter

generano outputgenerano output

AggiuntaAggiuntaDevice AdaptersDevice Adapters

DeviceDeviceCapabilityCapabilityaggiornatoaggiornato

HTTPHTTPResponseResponse

Mobile.aspxMobile.aspx

Device ExtensibilityDevice Extensibility

WWAAPP

Page 110: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

DeviceSpecific CustomizationDeviceSpecific Customization

Step 1:Step 1: Selezionare il Device•Filtri Predefiniti•Filtri Custom

Step 1:Step 1: Selezionare il Device•Filtri Predefiniti•Filtri Custom

Step 3:Step 3: Applicare Customization Using•Property Overrides

•<Choice Filter=“filtro” Proprietà=“xxx” />•Template

•<Choice Filter=“filtro”>•<ItemTemplate>...</ItemTemplate>

•</Choice>

Step 3:Step 3: Applicare Customization Using•Property Overrides

•<Choice Filter=“filtro” Proprietà=“xxx” />•Template

•<Choice Filter=“filtro”>•<ItemTemplate>...</ItemTemplate>

•</Choice>

Step 2:Step 2: DeviceSpecific•Selezionare il Controllo•Taggarlo con DeviceSpecific

Step 2:Step 2: DeviceSpecific•Selezionare il Controllo•Taggarlo con DeviceSpecific

Page 111: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

CustomizationCustomizationObjectList ControlObjectList Control

Header Header TemplateTemplate

Item TemplateItem Template

AlternateItemAlternateItemTemplateTemplate

FooterFooterTemplateTemplate

SeparatorSeparatorTemplateTemplate

Pocket PC Pocket PC CustomizationCustomization

Phone: LimitazioniPhone: Limitazioni

ItemDetailsItemDetailsTemplateTemplate

Page 112: Www.microsoft.com/italy/msdn/studenti Introduction to Mobile Development Roberto Brunetti Email: roberto@devleap.itroberto@devleap.it BLog:

www.microsoft.com/italy/msdn/studenti

Emulatori disponibiliEmulatori disponibili• Link verso i vari emulatoriLink verso i vari emulatori

• http://support.microsoft.com/default.ashttp://support.microsoft.com/default.aspx?scid=kb;en-us;320977px?scid=kb;en-us;320977

• http://www.asp.net/mobile/DeviceSimulhttp://www.asp.net/mobile/DeviceSimulators.aspx?tabindex=6ators.aspx?tabindex=6