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

Slides:



Advertisements
Presentazioni simili
Perché.NET di Marco Maraglino don't worry...B-bright !
Advertisements

ARI sezione di Parma Sito ariparma ARI sezione di Parma.
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Consumare Web Service Andrea Saltarello
ASP.NET 2.0 Security Andrea Saltarello Software Architect – Software Architect – Managed Designs S.r.l.Managed Designs S.r.l.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
1 Quale spazio per uneducazione plurilingue nella scuola di oggi? Firenze, 30 settembre 2011 Silvia Minardi.
Java Enterprise Edition (JEE)
Connessione con MySQL.
Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Introduzione al Domain-Driven Design (DDD)
Accessibilità: primi passi per un mondo fruibile da tutti User Group.NET delle Marche 3° Workshop DotNetMarche.
Microsoft Days - Community After Hour Silverlight in Action User Group.NET delle Marche 8° Workshop DotNetMarche.
Tra presente e futuro delle interfacce utente con WPF e MVVM
Applicazioni SOA con Silverlight: dal design al deploy ° Workshop Venerdì 16 Luglio 2010.
DotNetMarche.Start () User Group.NET delle Marche 1° Workshop DotNetMarche.Start () Giovedì 12 ottobre 2006.
Community Tour User Group.NET delle Marche 12° Workshop DotNetMarche Venerdì 18 dicembre 2009.
Refactoring 2TheMax (con ReSharper) User Group.NET delle Marche 11° Workshop DotNetMarche Venerdì 9 ottobre.
JQuery in Action on.NET Framework User Group.NET delle Marche 9° Workshop DotNetMarche Venerdì 27 marzo 2009.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Luca Capitani Title Laboratorio di Web e Interface Design Università degli Studi di Roma La Sapienza.
Architettura Three Tier
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
XML e la generazione di cataloghi multimediali F. Garzotto, L. Mainetti, P. Paolini Politecnico di Milano HOC - Hypermedia Open Center Dipartimento di.
Cos’è un CMS? Content Management System
Introduzione ad ASP.net
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
24. Lezione 30/5/03 Creazione pagine web. DOVE TROVARE INFORMAZIONI.
UNIVERSITA’ POLITECNICA DELLE MARCHE
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
ARCHITECTURAL TOOLS FOR RHINO
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
UGIALT.NET Conference II
ASP.NET MVC Framework Simone Chiaretta Solution Developer, Avanade 27 Giugno 2008.
14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010 Introduzione ai framework per IoC / DI e AOP.
Sviluppare applicazioni migliori: CruiseControl.NET NHibernate User Group.NET delle Marche 2° Workshop DotNetMarche.
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
Who the hell am I? Simone Chiaretta Lavoro per Avanade Italy
UNIVERSITA’ POLITECNICA DELLE MARCHE
Introduzione a XI Conferenza nazionale di Statistica febbraio 2013 Pillole formative di statistica.
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
Visual Studio Team System User Group.NET delle Marche 10° Workshop DotNetMarche Mercoledì 13 maggio 2009.
ASP.NET MVC Framework Componentizzazione Simone Chiaretta Solution Developer, Avanade 27 Giugno 2009.
ASP.NET MVC Framework Simone Chiaretta Solution Developer, Avanade 24 Ottobre 2008.
14/06/2008 – Matteo Baglini Mail: Blog:
ASP.NET MVC Best Practices Simone Chiaretta Solution Developer, Avanade 21 Ottobre 2009.
Claudio Maccari Mail: Blog (ITA): Blog (ENG):
Amministrazione della rete: web server Apache
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() Giovedì 12 ottobre 2006.
| Lugano, Ruby on Rails.
PRO JOB La componente psicologica Alessandra Gorini, Gabriella Pravettoni Università degli Studi di Milano Istituto Europeo di Oncologia.
Corso di WebMaster Mercoledì 14 Novembre. Parte I – Introduzione al Corso Lezione 1: Presentazione Descrizione Breve del Corso Semplice Valutazione.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Diventa blogger Analisi degli obiettivi Piattaforma Wordpress Francesca Sanzo -
N4N Platform Architecture PA Inside outlook.
La Piattaforma del Credito Approfondimenti - integrazione Bergamo, 16 marzo 2010.
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
Programmazione Web Presentazione del corso /2015.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
Sicurezza II, A.A. 2011/2012 OpenID Speaker: André Panisson, PhD student Università degli Studi di Torino, Computer Science Department Corso Svizzera,
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Web 2.0: strumenti e tecnologie per la realizzazione di servizi innovativi di Jules Piccotti [ ]
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Transcript della presentazione:

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

Sono io? Diego Guidi

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

Ruby On Rails Buzzword del dopo Web 2.0 ovviamente! Buzzword del 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:

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…)

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!

Agile Web Application Framework MVC-Based MVC-Based: MVC-Based: - home: controller - index: action (metodo) del controller home del controller home - index: view associata al controller home al controller home

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).

Costruzione di un progetto di base con Castle MonoRail Applicazione Demo

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

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

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 …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

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 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

DotNetMarche BookStore Tutorial.Start()

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

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

Introduzione della validazione nel modello dei dati Task 3: Validazione

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

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

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

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

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

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

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

Abilitazione della gestione degli utenti Task 11: Gestione del Login

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

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

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

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

MonoRail è in continua evoluzione… MonoRail è in continua evoluzione… Caching Caching Generator Generator Migrate Migrate Dynamic compiling Dynamic compiling Occhio a Marc-Andre! Ed a Ayende! Oltre ovviamente a… Tutto qui?

Domande?

Slide e Materiale Grazie!