2. Chi sono Alessandro Forte Dove trovarmi : WebSite : http://www.alessandroforte.it/ E-Mail : forte.alessandro83@gmail.com MSN : forte_alessandro@hotmail.com e ovviamentesu DOTNETCAMPANIA !!! MCTS - ASP. NET on Framework 3.5 Project Lead @ MerqurioPharma 2
3. Agenda Elencodegliargomentiaffrontatidurante la sessione Perchè Ajax e prerequisiti per sviluppare in Ajax Client Side Scripting Microsoft Ajax Library Creiamo un Ajax Client Control Creiamo un Ajax Server Control 3
4. Perchè Ajax? PRO AJAX è una tecnica multi-piattaforma si ottengono applicazioni più veloci (minori dati elaborati) E’ più UserFriendly………..ehm….è più bello :D CONTRO Da testare su tutti i browsers Deve esserci Javascript nel client Il tasto indietro … ma chi se ne frega? 4
7. Client Side Scripting – Script Blocks Esempio (01) : Vogliamomostrare/nascondere un DIV Come aggiungiamoilcodiceJavascript? Aggiungiamoilcodicejsnel markup Aggiungiamounareferenza al .jsnel markup…Guardiamoilcodice 7
8. CSS - Script Dinamici a Runtime Esempio (02) : Vogliamomostrare/nascondere un DIV a seguitodiunaregola Come aggiungiamoilcodiceJavascript? CiavvaliamodiRegisterClientScriptBlock…Guardiamoilcodice 8
9. CSS – Script Manager Esempio (03) : Vogliamomostrare/nascondere un DIV Come aggiungiamoilcodiceJavascript? Tramite lo ScriptManager. “Attentiall’overhead !!!”…Guardiamoilcodice 9
10. CSS – Cosascegliere? Neicasi in cui il “codice” è statico : File .jsreferenziatotramite tag <script> Neicasi in cui il “codice” è dinamico : Script caricatotramiteRegisterClientScriptBlock Neicasi in cui dobbiamointeragire con Ajax o con codicejspresente in degli Assembly: File .jscaricatotramiteScriptManager 10
12. Microsoft Ajax Library Perchè è tantoimportante? E’ un wrapper cheoffre un modo object oriented per sviluppare con Javascript Qualifunzionalitàmette a disposizione? Namespaces, classi, costruttori, metodi, proprietà, ecc… Browser compatibility … in fondo è Javascript Debugging e Globalization 12
13. Creiamo un componente Ajax Cosaintendiamo per componente Ajax? Dobbiamoseguireiseguenti steps: Registrazionedi un Namespace Creazionedellaclasse (ereditandodaSys.Component) Creazionedeicostruttori/distruttori Definizionedeimetodi e delleproprietà Registrazionedellaclasse Notificadicaricamento 13
14. Creiamo un componente Ajax Esempio (04) : Creiamo un PasswordStrengthComponent …Guardiamoilcodice 14
15. Creiamo un componente Ajax PRO: E’ mediamentecomplessodasviluppare E’ riutilizzabile in diversicontesti CONTRO: Non è adatto per l’utilizzo con icontrolli 15
16. Creiamo un Ajax Client Control Cosaintendiamo per Ajax Client Control? Dobbiamoseguireiseguenti steps: Registrazionedi un Namespace Creazionedellaclasse (ereditandoquestavoltadaSys.UI.Control) Creazionedeicostruttori/distruttori Definizionedeimetodi e delleproprietà Registrazionedellaclasse Notificadicaricamento Associazione ad un controllolato server tramitejavascript 16
17. Creiamo un Ajax Client Control Esempio (05) : Creiamo un PasswordStrengthClientControl …Guardiamoilcodice 17
18. Creiamo un Ajax Client Control PRO: Incapsula la logicadi business del controllo Puòestendere le funzionalitàdi un elemento del DOM Puòestendere le funzionalitàdi un controllolato server (anche se esistonogli Extender per questo) CONTRO: E’ necessarioscrivereulteriorecodicejsnel markup dellapaginaospite E’ pocoriutilizzabile 18
19. Creiamo un Ajax Server Control Cosaintendiamo per Ajax Server Control? Dobbiamoseguireiseguenti steps lato Client: Registrazionedi un Namespace Creazionedellaclasse (ereditandoquestavoltadaSys.UI.Control) Creazionedeicostruttori/distruttori Definizionedeimetodi e delleproprietà Registrazionedellaclasse Notificadicaricamento Associazione ad un controllolato server tramitejavascript Dobbiamoseguireiseguenti steps lato Server: Creazione del controllo Definizionedell’interfacciaIScriptControl Definizione dei metodi GetScriptDescriptors eGetScriptReferences 19
20. Creiamo un Ajax Server Control Esempio (06) : Creiamo un PasswordStrengthServerControl …Guardiamoilcodice 20
21. Creiamo un Ajax Server Control PRO: Iper-Riutilizzabile!!! CONTRO: Abbastanzacomplessodascrivere Abbastanzacomplessodadebuggare 21