La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


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

1 Sviluppo Web Agile con Castle MonoRail Diego Guidi diegoguidi@gmail.com 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 Porting di Ruby On Rails Porting di Ruby On Rails Agile Web Application Framework MVC-Based Agile Web Application Framework MVC-Based 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 RoR MonoRail recepisce ed estende RoR 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: riceve gli eventi dallutente, interagisce con il modello e richiama la vista corretta. Controller: riceve gli eventi dallutente, interagisce con il modello e richiama la vista corretta. 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 EEA)An object that wraps a row in a database table, encapsulates the database access, and adds domain logic on that data. (Fowler, Patterns of EEA) 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 ereditate dalle classi base. Operazioni CRUD ereditate dalle classi base. 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…. 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. It's the iPod of development frameworks. 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.htmlhttp://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, Model e Controller basate su C# - VB.NET – : View basate su NVelocity, Model e Controller basate su C# - VB.NET MonoRail vs WebForms

14 DotNetMarche BookStore Tutorial.Start()

15 Domande?

16 Slide e Materiale www.dotnetmarche.org Grazie!


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

Presentazioni simili


Annunci Google