UGIALT.NET Conference II

Slides:



Advertisements
Presentazioni simili
Agile e Scrum.
Advertisements

SVILUPPATO DA MIT Libraries e Hewlett-Packard (HP)
Linguaggio R Raffaele Miele Dipartimento di Matematica e Statistica Università degli Studi di Napoli Federico II
Elaborazione di Franco Grivet Chin
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
Visual Studio Tools For Office 2005 Fabio Santini. NET Senior Developer Evangelist Microsoft Italy.
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Consumare Web Service Andrea Saltarello
ASP.NET – Data Binding Davide Vernole .NET MVP.
ASP.NET 2.0 Security Andrea Saltarello Software Architect – Software Architect – Managed Designs S.r.l.Managed Designs S.r.l.
Strumenti di sviluppo Microsoft Campagna incentivi per Software Assurance Opportunità di vendita.
I contenuti di questa presentazione sono stati realizzati a cura di M
Utilizzo di XP in ambienti distribuiti
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
Workflow Foundation (WF) & CardSpace User Group.NET delle Marche 5° Workshop DotNetMarche Giovedì 27 settembre.
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.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Elaborazione di Franco Grivet Chin
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto.
work: kinect & social network x-platform Martedì 13 Settembre 2011 #dnum
Windows Azure Community Tour… la vendemmia Mario De Ghetto Microsoft MVP – Visual Basic Development Iscritto allOrdine degli Ingegneri di Belluno Community.
CQRS ed Event Sourcing su Windows Azure Venerdì 29 Marzo 2013 #dnm.
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
Fabrizio Grossi Verifica delle attività. L'operato degli amministratori di sistema deve essere oggetto, con cadenza almeno annuale, di un'attività
Firenze – Festival della Creatività 2009 Comm.it s.r.l. – Ing. Davide Rogai, Ph.D. – Software >> fast on demand software.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Data Access Layer.
Sviluppo Web Agile con Castle MonoRail Diego Guidi DotNetMarche.Start() 12 ottobre 2006.
Sviluppo Web Agile con Castle MonoRail Diego Guidi 1° Workshop DotNetMarche.Start () Giovedì 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:
IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI.
ASP.NET MVC Best Practices Simone Chiaretta Solution Developer, Avanade 21 Ottobre 2009.
IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI.
User stories Claudio Maccari Mail:
Chi siamo Simone Chiaretta Davide Vosti Lavora per Avanade Italy
Claudio Maccari Mail: Blog (ITA): Blog (ENG):
Venezia Confartigianato. Open Source: che cose Source CodeCompila, Verifica, Installa…Programma Il codice sorgente (source code)…. e a volte qualcosa.
© 2005 Ethea Introduzione a InstantObjects Per chi conosce altri OPF Per chi non conosce altri OPF A cura di Nando Dessena
Java Enterprise Edition
MODELLI DI PROCESSO DI PRODUZIONE SOFTWARE
#sqlsatPordenone #sqlsat367 February 28, 2015 Unit testing su database Alessandro
N4N Platform Architecture PA Inside outlook.
Spring Framework Spring è un framework Open Source per lo sviluppo di applicazioni su piattaforma Java. Vantaggi: Libertà di programmazione Comunità molto.
Lezione 1 Panoramica sui paradigmi di programmazione
La Piattaforma del Credito Approfondimenti - integrazione Bergamo, 16 marzo 2010.
Real World data access layers DataSet vs. Custom entities Pierre Greborio Software Architect – PEWay SrL Microsoft MVP – Solutions Architect.
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.
Emanuele DelBono
Extreme Programming Genova, 29 Ottobre /06/20152 Cosa è XP? È una delle metodologie cosiddette agili per lo sviluppo di software. Le metodologie.
#sqlsatTorino #sqlsat400 May 23, 2015 Entity Framework 7 Back To The Future Nuove piattaforme, nuovi data store Michael about.me/micdenny.
DIT Department of Information and Communication Technology Information System Ingegneria del Software: un caso di studio.
Davide Benvegnù Gestione del codice sorgente con VSO #VSOSources.
Davide Benvegnù Continuous Integration con VSO #VSOCI.
Davide Benvegnù Cloud Load Testing con VSO #VSOLoadTest.
Transcript della presentazione:

UGIALT.NET Conference II UGIALT.NET Conference - 14 Giugno 2008 UGIALT.NET Conference II

Agenda della conference 10:00 – Benvenuto 10:15 – Introduzione a UGIALT.NET 10:30 – Lightning talks 11:00 – Pausa 11:15 – Prioritizzazione user stories 11:30 – Prima User Story introduttiva 12:00 – Users Stories 13:30 – Pranzo 14:30 – User Stories cont. 17:30 – Chiusura Lavori e futuro

Sponsor

Introduzione a UGIALT

Agenda Manifesto Storia Cosa significa ALT.NET Perchè ALT.NET

Manifesto Sei un dev che usa quello che funziona ma sei sempre alla ricerca di qualcosa di meglio Tieni d’occhio il resto del mondo per adottare il meglio da ogni community: Open Source, Agile, Java, Ruby, ecc… Non sei contento del tuo stato attuale. Le cose possono sempre essere migliorarate, codice più elegante e semplice, più manutenibile e di maggiore qualità Sai che I tools sono importanti, ma non ti portano molto lontano. Sono i principi e la conoscenza che contano. I tool migliori sono quelli che incorporano la conoscenza e incoraggiano I principi (ad. Es. Resharper)

Un po’ di storia Aprile 2007 – Il termine ALT.NET appare per la prima volta in un post di David Laribee Ottobre 2007 – Prima ALT.NET Conference ad Austin (TX) Novembre 2007 – Nasce UGIALT.NET Febbraio 2008 – 1° Conf UGIALT.NET Aprile 2008 – ALT.NET conf a Seattle

Cosa significa ALT ALT != Alternativo ALT == Avere Alternative

Perchè ALT.NET UserGroup tradizionali sono “about technology” Più importante: Principi base dell’OOP Processi e metodologie di sviluppo Tool Alternativi

Ligthning Talks

Agenda Agilità (Emanuele DelBono) TDD (Roberto Valenti) Mocking – Rhino (Claudio Maccari) IoC/DI (Simone Busoli) MVC/MVP (Simone Chiaretta) ORM (Matteo Baglini)

Agile Emanuele DelBono

Agilità Emanuele DelBono emanuele@codiceplastico.com http://blog.codiceplastico.com Agilità

Le metodologie tradizionali

Agility!

I tre capisaldi La femmina Il danaro La mortazza

I tre capisaldi (quelli veri) Iterazioni Collaborazione Adattabilita’

Le persone non strumenti le persone e le interazioni sono più importanti dei processi e degli strumenti

Software, non documentazione è più importante avere software funzionante che documentazione

Il cliente collaborativo collaborare con i clienti al di là del contratto

Adattarsi al cambiamento essere pronti a rispondere ai cambiamenti più che aderire al planning

Perché? Fornire valore al cliente in breve tempo Gestire il cambiamento Ridurre il rischio Migliorare la qualità Per divertirsi mentre si lavora!

Cos’è XP? XP è una metodologia basata su un insieme di pratiche: Whole Team Planning Game Customer Tests Small Releases Simple Design Pair Programming Test Driven Development Design Improvement Continuous Integration Collective Code Ownership Coding Standard Metaphor Sustainable Pace

TDD Roberto Valenti

Cos’è Test Driven Development Pratica di XP Sviluppo funzionalità guidato dai Test Attività di progettazione : Red : definire il comportamento atteso con asserzioni Green : rendere eseguibili con successo i test, le asserzioni sono verificate Refactor : effettuare refactoring mantenendo verificate asserzioni (eliminare duplicati, design pattern …)

TDD Mantra Processo TDD

Refactoring Migliorare il software tramite l’ applicazione di una serie di modifiche interne che non cambiano il comportamento esterno.

Scopo principale del TDD Non è testare il codice. Aiutare sviluppatori e clienti durante il processo di sviluppo definendo requisiti non ambigui. TDD = Design (design emergente)

Velocità sviluppo tradizionale Costo x Modifica nel Tempo

Tradizionale vs Agile Costo x Modifica nel Tempo

Benefici Codice semplice e funzionante Codice Testato (Simple Design Principle) “Simplicity is more complicated than you think. But it’s well worth it” – Ron Jeffries Codice Testato (Test Behaviour Not Code) Facilmente manetunibile (Embrace Change) YAGNI (You Arent Gonna Need It) = No over design Microsoft al Teched a detto che loro non fanno qlc di simile perchè non saprebbero fare di meglio

Mocking Claudio Maccari

Rhino.Mocks Claudio Maccari Mail: cmaccari@absistemi.it Blog (ITA): http://blogs.ugidotnet.org/makka Blog (ENG): http://testdrivendevelopment.wordpress.com/ Rhino.Mocks

Cos’è Rhino.Mocks? Framework mock object per .net http://www.ayende.com/projects/rhino-mocks.aspx Si parla di test… unit testing Ora disponibile versione 3.4 Microsoft al Teched a detto che loro non fanno qlc di simile perchè non saprebbero fare di meglio

Rende più semplice lo unit testing Fake the hard stuff Risorse esterne Networks Databases Altri sistemi Risorse interne Qualsiasi cosa con setup complesso Legacy code

Si tratta di interazione Objects talking to objects “State based testing” va bene “Interaction based testing” e più interessante

Struttura di un test con Rhino.Mock Creazione di un mock Definizione delle comporamento atteso Esecuzione del codice sotto da testare Verifica delle aspettative Asserts addizionali

Basta chiacchiere Lets see some code!

Codice da testare

Test usando il mock

Per andare a fondo

Registra e ripeti La soluzione sta nel mezzo ?

Tipi di mock

Impostare le aspettative (1/2)

Impostare le aspettative (2/2)

Rhino.Mocks … Rocks! Download Wiki Quick Reference (ottimo documento) http://www.ayende.com/projects/rhino-mocks.aspx Wiki http://www.ayende.com/Wiki/ Quick Reference (ottimo documento) http://www.ayende.com/Wiki/GetFile.aspx?File=Rhino+Mocks+3.3+Quick+Reference.pdf

Q & A Dopo 

IoC/DI Simone Busoli

Dependency Injection Inversion of Control Simone Busoli 14/06/2008 - Milano Dependency Injection Inversion of Control

Di cosa si tratta Comunemente DI - IoC Principi comuni di disegno software Alta coesione Basso accoppiamento … Riduzione delle dipendenze tra componenti software Chi conosce chi? Risoluzione dipendenze tra componenti

Scenario Voglio poter registrare le iscrizioni ad un evento Persistere i dettagli dell’iscritto Comunicare se l’iscrizione è andata a buon fine tramite mail SubscriptionService EmailService PersonRepository

Dependency Injection Elevato accoppiamento SubscriptionService conosce direttamente i dettagli di EmailService e PersonRepository BAD

Dependency Injection Cambiamento di paradigma Il servizio conosce solo l’interfaccia dei componenti che utilizza GOOD

Dependency Injection Iniettare dipendenze dall’esterno rende più onerosa l’istanziazione di componenti Necessario conoscere tutte le dipendenze

Vorrei un’istanza di SubscriptionService Inversion of Control Hollywood Principle Don’t call us, we will call you! Vorrei un’istanza di SubscriptionService

Inversion of Control Container Entità esterna all’applicazione Configurabile Conosce le dipendenze tra i componenti ed è in grado di soddisfarle a runtime IoC Container Vorrei un’istanza di SubscriptionService Istanza completa di tutte le dipendenze

Windsor Container Inversion of Control container open source Stabile – production ready Si configura il container (xml, boo, C#) Si richiede l’istanza di un componente Il container si occupa di soddisfare le dipendenze e creare l’istanza

Windsor Container Esempio Configurazione Xml

Windsor Container Esempio Codice client Molto meglio, eh? Altri containers StructureMap Spring.Net Autofac …

Risorse Inversion of Control and Dependency Injection: Working with Windsor Container http://msdn.microsoft.com/en-us/library/aa973811.aspx Castle Project http://www.castleproject.org/container/ StructureMap http://structuremap.sourceforge.net

MVC/MVP Simone Chiaretta

UI Patterns: MVC – MVP 14/06/2008 – Sim0ne Chiaretta email: simone@piyosailing.com blog ITA: http://blogs.ugidotnet.org/piyo/ blog ENG: http://codeclimber.net.nz/ UI Patterns: MVC – MVP

It’s all about separation Loose coupling Necessario rimuovere l’ambiente esterno Uomo WebServer

UI Pattern MVC – Model View Controller MVP – Model View Presenter

Model View Controller Model Controller View

Model View Presenter View Presenter Model IView

Dove si trovano in natura MVC MonoRail ASP.NET MVC Framework Prism MVP Mostly custom built WebClientSoftwareFactory CompositeUIApplicationBlock

Come saperne di più su MVC http://asp.net/mvc/ - Sito ufficiale, con download P2 http://www.codeplex.com/aspnet - Codice sorgente http://del.icio.us/tag/aspnetmvc - tutti gli articoli su ASP.NET MVC http://polymorphicpodcast.com/shows/mvcresources/ - lista “commentata” di risorse Blog di MS ScottGu: http://weblogs.asp.net/scottgu/default.aspx ScottHa: http://www.hanselman.com/blog/ PhilHa: http://haacked.com/ Leggendo il mio blog  DotNetMarche – 27 Giugno – Testing automatizzato e Asp.NET MVC Framework

ORM Matteo Baglini

ORM - Object Relational Mapping 14/06/2008 – Matteo Baglini Mail: matteo.baglini@gmail.com Blog: http://blogs.ugidotnet.org/bmatte ORM - Object Relational Mapping

Quando e Perchè usare un ORM

Scenario Business Logic Layer modellato utilizzando il pattern Domain Model. Le tabelle del database secondo il modello relazionale RDBMS .

Problema Paradigm Mismatch ? ORM

Definizione di ORM L’ Object Relational Mapping è uno strumento che permette di mappare i dati fra il modello RDBMS ed il modello OOP.

Tecniche di Data Mapping File XML Decorando Classi e Proprietà con Attributi

Vantaggi e Svantaggi

Vantaggi Permette di disegnare il modello seguendo la teoria OOP osservando solo la business logic. Approccio non più bottom-up ma top-down (dal dominio alla persistenza). Generazione automatica ed ottimizzata di statement sql creati ad hoc, i quali permettendo di gestire in maniera molto più granulare le operazioni CRUD.

Svantaggi Alta curva di apprendimento iniziale. Leggeri compromessi nella progettazione del Domain Model, es. Implementare interfacce. Viene visto come “lo strumento” che permette allo sviluppatore di dimenticarsi del database.

ORM per .NET

I più famosi NHibernate Linq To Sql Entity Framework (Beta 3) Open Source / Porting da Hibernate (Java) / Multi Database Vendor / Persistence Ignorance / Mapping Complessi Linq To Sql Supporto di MS/ Integrato con VS / Sintassi Linq / Molto Semplice Entity Framework (Beta 3) Supporto di MS/ Integrato con VS / Multi Database Vendor / Sintassi Linq / Mapping Complessi

Link Object Relational Mapping NHibernate/Hibernate Wikipedia - http://en.wikipedia.org/wiki/Object-relational_mapping C2.com - http://c2.com/cgi/wiki?ObjectRelationalMapping NHibernate/Hibernate Sito - http://www.hibernate.org/ Libro - http://www.manning.com/kuate/

Link Linq To Sql Entity Framework MSDN - http://msdn.microsoft.com/en-us/library/bb386976.aspx Serie di di Post sul Blog di ScottGu - http://weblogs.asp.net/scottgu/archive/tags/LINQ/Data/default.aspx Entity Framework MSDN - http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx CodePlex Samples- http://www.codeplex.com/adonetsamples/