Upload
maura-tucci
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
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
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
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
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++ ?
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
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
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
www.microsoft.com/italy/msdn/studenti
.NET Clients.NET Clients
www.microsoft.com/italy/msdn/studenti
Tablet PCTablet PC
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
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
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
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
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
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...
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)
www.microsoft.com/italy/msdn/studenti
Pocket PCPocket PC• GPSGPS• Marina AmericanaMarina Americana
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)
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
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
www.microsoft.com/italy/msdn/studenti
Demo Pocket PCDemo Pocket PC• Internet ExplorerInternet Explorer• CalendarCalendar• ContactsContacts
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
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
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
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
www.microsoft.com/italy/msdn/studenti
SmartPhoneSmartPhone• FotoFoto• FotoFoto
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
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
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
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
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
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
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
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
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
www.microsoft.com/italy/msdn/www.microsoft.com/italy/msdn/studentistudenti
ConnettivitàConnettività
PanoramicaPanoramica
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...
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....
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
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)
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
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
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
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
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...
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
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 ?
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
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
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
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
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)
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
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
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
www.microsoft.com/italy/msdn/studenti
WAP Architettura ClientWAP Architettura Client• Livelli embedded nel clientLivelli embedded nel client
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
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
www.microsoft.com/italy/msdn/www.microsoft.com/italy/msdn/studentistudenti
Panoramica Scenari di SviluppoPanoramica Scenari di Sviluppo
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 !!!
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)
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 ?
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
??
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 ?
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 ?
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
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
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
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 ?
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)
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
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
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...
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 ??
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
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
www.microsoft.com/italy/msdn/www.microsoft.com/italy/msdn/studentistudenti
Sviluppo Server-Side Sviluppo Server-Side
Basato su BrowserBasato su Browser
www.microsoft.com/italy/msdn/studenti
La sfidaLa sfida
Web Site
Web Site
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
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
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>
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>
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
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>
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>
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
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
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>
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”
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
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>
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
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…
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),
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
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
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
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
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
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>
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>
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>
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
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
www.microsoft.com/italy/msdn/studenti
ObjectListObjectList• DataBindingDataBinding• TemplateTemplate
• HeaderHeader• FooterFooter• ItemItem• AlternatingItemAlternatingItem
• Dettaglio automaticoDettaglio automatico
• DemoDemo• IEIE• Pocket PCPocket PC• NokiaNokia• SmartPhoneSmartPhone
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
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
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
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
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
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
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