La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sviluppo Web Agile con Castle MonoRail Diego Guidi 1° Workshop DotNetMarche.Start () Giovedì 12 ottobre 2006.

Presentazioni simili


Presentazione sul tema: "Sviluppo Web Agile con Castle MonoRail Diego Guidi 1° Workshop DotNetMarche.Start () Giovedì 12 ottobre 2006."— Transcript della presentazione:

1 Sviluppo Web Agile con Castle MonoRail Diego Guidi diegoguidi@gmail.com 1° Workshop DotNetMarche.Start () Giovedì 12 ottobre 2006

2 Sono io? Diego Guidi http://dotnetmarche.org/members/D_Guidi.aspx http://dotnetmarche.org/members/D_Guidi.aspxhttp://dotnetmarche.org/members/D_Guidi.aspx http://nts.sourceforge.net http://nts.sourceforge.nethttp://nts.sourceforge.net http://blogs.ugidotnet.org/GisSharpBlog http://blogs.ugidotnet.org/GisSharpBloghttp://blogs.ugidotnet.org/GisSharpBlog http://lacorrente.blogspot.com http://lacorrente.blogspot.comhttp://lacorrente.blogspot.com diegoguidi@gmail.com diegoguidi@gmail.comdiegoguidi@gmail.com

3 Agile Web Application Framework MVC-Based Agile Web Application Framework MVC-Based Porting di Ruby On Rails Porting di Ruby On Rails Basato su architettura.NET e ASP.NET Basato su architettura.NET e ASP.NET Parte del Castle Project Parte del Castle Project Licenza: Apache License, Version 2.0 Licenza: Apache License, Version 2.0 Non legato a MONO! Non legato a MONO! Oggi parliamo di… MonoRail

4 Ruby On Rails Buzzword del 2006 - dopo Web 2.0 ovviamente! Buzzword del 2006 - dopo Web 2.0 ovviamente! Ha imposto allattenzione di tutti Ruby come linguaggio di programmazione Ha imposto allattenzione di tutti Ruby come linguaggio di programmazione Ha imposto allattenzione di tutti un modello di programmazione agile Ha imposto allattenzione di tutti un modello di programmazione agile MonoRail recepisce ed estende Ruby On Rails MonoRail recepisce ed estende Ruby On Rails Fonte: http://radar.oreilly.com/archives/2006/08/programming_language_trends_1.htmlhttp://radar.oreilly.com/archives/2006/08/programming_language_trends_1.html

5 Molti nemici, molto onore… DJango: Python based DJango: Python based GRails: Java based GRails: Java based Akelos: PHP based Akelos: PHP based Flex On Rails:Flash/Flex based Flex On Rails:Flash/Flex based SubSonic: The Zero Code DAL SubSonic: The Zero Code DAL.NET based.NET based Estremamente automatizzato Estremamente automatizzato Poco flessibile (al momento…) Poco flessibile (al momento…) http://www.codeplex.com/Wiki/View.aspx?ProjectName=actionpack http://www.codeplex.com/Wiki/View.aspx?ProjectName=actionpack http://www.codeplex.com/Wiki/View.aspx?ProjectName=actionpack

6 Agile Web Application Framework MVC-Based MVC-Based: MVC-Based: Model: mantiene lo stato dellapplicazione e si occupa della persistenza sul database. Model: mantiene lo stato dellapplicazione e si occupa della persistenza sul database. View: responsabile della presentazione dei dati del modello e dellinterfaccia utente. View: responsabile della presentazione dei dati del modello e dellinterfaccia utente. Controller: gestisce l richieste dellutente, interagisce con il modello e richiama la vista corretta, a cui fornisce i dati da visualizzare. Controller: gestisce l richieste dellutente, interagisce con il modello e richiama la vista corretta, a cui fornisce i dati da visualizzare. Separazione dei compiti Ogni cosa al suo posto!

7 Agile Web Application Framework MVC-Based MVC-Based: http://localhost:81/home/index.rails MVC-Based: http://localhost:81/home/index.railshttp://localhost:81/home/index.rails - home: controller - index: action (metodo) del controller home del controller home - index: view associata al controller home al controller home

8 Agile Web Application Framework MVC-Based AGILE: promuove un modello di sviluppo che, automatizzando i task ripetitivi, permette allo sviluppatore di concentrarsi sullapplicazione e non sullinfrastruttura. AGILE: promuove un modello di sviluppo che, automatizzando i task ripetitivi, permette allo sviluppatore di concentrarsi sullapplicazione e non sullinfrastruttura. Convention Over Configuration: limitare al minimo la necessità di file di configurazione, favorendo al contrario le convenzioni. Convention Over Configuration: limitare al minimo la necessità di file di configurazione, favorendo al contrario le convenzioni. DRY (Dont Repeate Yourself): evitare le ripetizioni di codice favorendo la condivisione. DRY (Dont Repeate Yourself): evitare le ripetizioni di codice favorendo la condivisione. Test Support: supporto per i test funzionali (controller). Test Support: supporto per i test funzionali (controller).

9 Costruzione di un progetto di base con Castle MonoRail Applicazione Demo

10 Rappresenta la parte Model di MonoRail Rappresenta la parte Model di MonoRail Implementazione del pattern ActiveRecord: Implementazione del pattern ActiveRecord: An object that wraps a row in a database table, encapsulates the database access, and adds domain logic on that data. (Fowler, Patterns of EAA)An object that wraps a row in a database table, encapsulates the database access, and adds domain logic on that data. (Fowler, Patterns of EAA) Basato su NHibernate Basato su NHibernate Persistenza gestita tramite meta-programmazione (attributi) Persistenza gestita tramite meta-programmazione (attributi) Non è necessario scriversi i file di mapping! Non è necessario scriversi i file di mapping! Validazione semi-automatica, gestita tramite attributi. Validazione semi-automatica, gestita tramite attributi. Operazioni CRUD automatiche Operazioni CRUD automatiche Disponibile anche separatamente da MonoRail Disponibile anche separatamente da MonoRail MonoRail components: ActiveRecord

11 Rappresenta la parte View e Controller: Rappresenta la parte View e Controller: Controller: Controller: Funzionalità di base per la gestione del flusso dellapplicazione Funzionalità di base per la gestione del flusso dellapplicazione Gestione automatica e trasparente della sessione Gestione automatica e trasparente della sessione View: View: Motore ufficiale: basato su NVelocity Motore ufficiale: basato su NVelocity Motori in sviluppo: WebForm, StringTemplate, Boo… Motori in sviluppo: WebForm, StringTemplate, Boo… Strumenti per la generazione di html Strumenti per la generazione di html MonoRail components: ActionPack

12 WebForms: WebForms: +: Infrastruttura basata su.NET +: Infrastruttura basata su.NET +: Supporto, documentazione, comunità di sviluppatori, ecc… +: Supporto, documentazione, comunità di sviluppatori, ecc… – : Complessità nella creazione e manutenzione delle applicazioni – : Complessità nella creazione e manutenzione delle applicazioni http://hammett.castleproject.org/?p=59 http://hammett.castleproject.org/?p=59 …my problem is that to do something that is more complex than just simply displaying one form on a page ASP.NET gets pretty complicated. Events are firing all over the place. I have to take viewstate into account… and then it became even more difficult to get stuff to respond the way I want them to respond. All in all it takes a really long time before I get something done properly…. MonoRail vs WebForms

13 MonoRail: MonoRail: +: Infrastruttura basata su ASP.NET,.NET e Castle +: Infrastruttura basata su ASP.NET,.NET e Castle +: Semplicità nella creazione e manutenzione delle applicazioni +: Semplicità nella creazione e manutenzione delle applicazioni http://www.brianromanko.com/2006/10/aspnet-on-rails.html http://www.brianromanko.com/2006/10/aspnet-on-rails.html http://www.brianromanko.com/2006/10/aspnet-on-rails.html Part of the reason for Ruby on Rails' quick adoption is that it provides a solid framework for development that has enough features to keep us framework quasi- developers happy while staying out of the way enough to make the framework work for the developer instead of against them (CSLA anyone?). It's slick and sexy. – : Supporto, documentazione, comunità di sviluppatori, ecc… – : Supporto, documentazione, comunità di sviluppatori, ecc… – : View basate su NVelocity (ma è davvero un problema?...) – : View basate su NVelocity (ma è davvero un problema?...) MonoRail vs WebForms

14 DotNetMarche BookStore Tutorial.Start()

15 Generazione automatica dellintelaiatura di base del sito web Task 1: Scaffolding

16 Personalizzazione dellintelaiatura di base generata tramite Scaffolding Task 2: Creazione della parte Admin

17 Introduzione della validazione nel modello dei dati Task 3: Validazione

18 Generazione manuale della parte del sito dedicata alla vendita dei nostri prodotti Task 4: Creazione della parte Store

19 Gestione degli errori e delle eccezioni Task 5: Gestione degli errori

20 Creazione della fase di ordinazione e pagamento Task 6: Gestione degli ordini

21 Una migliore gestione della fase di ordinazione tramite lutilizzo dei ViewComponents Task 7: I componenti di MonoRail

22 Creazione della fase di spedizione degli ordini Task 8: La fase di spedizione

23 Una migliore gestione della fase di spedizione tramite il FormHelper Task 9: La fase di spedizione - 2

24 Creazione e aggiunta degli utenti admin Task 10: Creazione della parte Login

25 Abilitazione della gestione degli utenti Task 11: Gestione del Login

26 Limitazione dellaccesso alla parte di amministrazione ai soli utenti admin Task 12: Introduzione ai Filters

27 Completamento del progetto con la correzione di alcune imperfezioni Task 13: Finalizzazione del sito web

28 Introduzione al supporto per i test offerto da MonoRail Task 14: Testiamo il tutto!

29 Il supporto ad Ajax in MonoRail Task 15: The Web, version 2.0

30 MonoRail è in continua evoluzione… MonoRail è in continua evoluzione… Caching Caching Generator Generator Migrate Migrate Dynamic compiling Dynamic compiling Occhio a Marc-Andre!http://macournoyer.wordpress.com http://macournoyer.wordpress.com Ed a Ayende! http://www.ayende.com/blog http://www.ayende.com/blog Oltre ovviamente a…http://www.castleproject.org http://www.castleproject.org Tutto qui?

31 Domande?

32 Slide e Materiale www.dotnetmarche.org Grazie!


Scaricare ppt "Sviluppo Web Agile con Castle MonoRail Diego Guidi 1° Workshop DotNetMarche.Start () Giovedì 12 ottobre 2006."

Presentazioni simili


Annunci Google