Chi siamo Simone Chiaretta Davide Vosti Lavora per Avanade Italy

Slides:



Advertisements
Presentazioni simili
GREEN LIGHT for BUSINESS inspiring engagement in green business Milano, 24 Novembre 2011.
Advertisements

Commenti C#.
Francesco Cristofoli Microsoft Italia
Panoramica della soluzione Microsoft per la Piccola e Media Impresa.
Windows Development Day 28/01/05 Bologna The Media Center Show Daniele Bochicchio Microsoft ASP.NET MVP Daniele Bochicchio
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
Sviluppare applicazioni per utenti non-admin Fabio Santini Senior Developer Evangelist.
Fabio Mignani Senior Technology Specialist
Microsoft Midrange Modernisation Conference (Milano, 11 Maggio 2006) 1 RPG to.NET Case Study Esempio di migrazione di una applicazione italiana AS/400.
A sostegno del business
ASP.NET – Data Binding Davide Vernole .NET MVP.
Massimiliano Bosco – Aliware – Torino – Project 2003 Sviluppare Soluzioni EPM con Project Server (2/4)
Strumenti di sviluppo Microsoft Campagna incentivi per Software Assurance Opportunità di vendita.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Introduzione al Domain-Driven Design (DDD)
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.
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.
Giovanna DAngiolini Intervento su Sistema informativo delle classificazioni. Accesso tramite web services SERVER ISTAT DI CLASSIFICAZIONI UFFICIALI Gli.
Introduzione ad ASP.net
C# LE BASI 2007 Prima lezione - Introduzione.
SVILUPPO MODERNO DI APPLICAZIONI PER WINDOWS
Zeno Tajoli - CINECA 1.
Informatica Scienza della Pubblica Amministrazione (SAM) A.A. 2010/2011.
Melfi, 1 aprile 2011 – MediaShow 1 Social Network: possibilità di uso consapevole nella didattica Uso, consapevolezza, opportunità, proposte Caterina Policaro.
Rifiuti. Net è il software verticale di Mago
UGIALT.NET Conference II
"Non-Admin" Developing "Non-Admin" Developing Fabio Santini.NET Senior Developer Evangelist Microsoft Italy.
Linventore di FACEBOOK. Mark Zuckerberg, classe 1984, oltre ad essere informatico, imprenditore, dirigente dazienda statunitense è: il fondatore di FACEBOOK!
Windows Azure Community Tour… la vendemmia Mario De Ghetto Microsoft MVP – Visual Basic Development Iscritto allOrdine degli Ingegneri di Belluno Community.
ASP.NET MVC Framework Simone Chiaretta Solution Developer, Avanade 27 Giugno 2008.
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.
Utilità IR Posizione di Mercato Confronta i risultati di Hera con quelli del settore Questo strumento permette di confrontare i risultati annuali di Hera.
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
ISPESL Dipartimento Documentazione Informazione e Formazione DA MALPROF AD INTEGRA Paolo Montanari.
M.Daniela Greco. SkyDrive Microsoft SkyDrive è uno dei servizi offerti da Windows Live.Windows Live SkyDrive è un hard disk virtuale, accessibile da browser.
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.
ASP.NET MVC Framework SO WHAT? Simone Chiaretta Solution Developer, Avanade 3 Aprile 2009.
ASP.NET MVC Best Practices Simone Chiaretta Solution Developer, Avanade 21 Ottobre 2009.
Prima del volo una bella prova sulla BRACIBIKE 1 Gennaio 2011.
DotNetCampania 4U: Benvenuti! DotNetCampania Team.
USCITA CI SONO SEMPRE PIACUTE LE FAVOLE….. SOPRATTUTTO QUANDO E UN TEMPO DA… COME DICE SEMPRE LA MAESTRA LUCIA Realizzato da Sara e Daniela.
CORPO POLIZIA MUNICIPALE SANREMO 2004 – 2010 VIOLAZIONI AMMINISTRATIVE OMESSA COMUNICAZIONE AFFITTI E OSPITALITA + 141% rispetto al 2009.
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
Utilità IR Posizione di Mercato per business Confronta i risultati di Hera per business con quelli del settore Questo strumento permette di confrontare.
Ordinare F. Bombi Liste ordinate Una lista di n oggetti confrontabili (a 0, a 1, a 2, … a n-1 ) si dice ordinata quando a i.
ASP.NET – Autenticazione e Sicurezza basata sui ruoli
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 6 - Gestione della configurazione software Ernesto Damiani Università.
Introduzione a Spark.io, l'IoT arduino-like semplice ed economico
Microsoft Office SharePoint Server Tecnologia e strumenti per lo sviluppo e l’amministrazione User Group.NET delle Marche
Da GitHub a NuGet con la nuova build di Visual Studio Online Davide Benvegnù Managing Director & CTO – DBTek Ltd Microsoft MVP Visual Studio
.NET vNext e lo sviluppo web cross-platform
Davide Benvegnù Introduzione a Visual Studio Online #VSOIntro.
Davide Benvegnù Gestione del codice sorgente con VSO #VSOSources.
Davide Benvegnù Continuous Integration con VSO #VSOCI.
Call 5: ACTIVE – 3 rd Meeting G. Darbo – INFN / Genova 8 July 2013 o ACTIVE – 3 rd Meeting G. Darbo – INFN / Genova Indico agenda:
PHP HyperText Prepocessor.  Linguaggio di scripting lato server sviluppato per generare pagine web.  Permette ad un sito web di diventare dinamico 
Coding: un mondo da scoprire. Primi passi e consigli pratici Angela Di Pierro Senior IT Consultant Solution Developer - Software
Salvatore Upload data on Azure SQL Database using Azure Messaging, Stream Analytics & Logic Apps Salvatore
Paradigma MVC Ing. Buttolo Marco.
Agenda un po' diversa del solito
Transcript della presentazione:

Lavorare con applicazioni Brownfield il caso di 39x27.com 5° UGIALT.NET Conference – Milano 23 Gennaio 2010 Davide Vosti Team Lead, YEK SA @vosti http://vosti.posterous.com/ Simone Chiaretta Solution Developer, Avanade @simonech http://codeclimber.net.nz

Chi siamo Simone Chiaretta Davide Vosti Lavora per Avanade Italy Microsoft MVP ASP.NET e ASP Insider Blogger – http://codeclimber.net.nz Co-fondatore di UGIALT.NET Climber Davide Vosti Team Lead di YEK SA Owner di http://39x27.com Ciclista, podista, parapendista

Cos’è 39x27.com Archivio di salite in bicicletta, con altimetrie e tempi Inventato da Davide Rilasciata sulle preview di ASP.NET MVC 1.0 nel 2008 Speriamo di rilasciarla come opensource e come esempio di applicazione completa in ASP.NET MVC Team: Davide Vosti Simone Chiaretta Daniela Panfili - UX

Agenda Cos’è un applicazione “BrownField” Da dove parto? I problemi dell’ambiente di sviluppo I problemi del codice I problemi della UI Problemi di attuazione E dopo?

Cos’è un’applicazione BrownField

Definizione di BrownField Brown Field è l’opposto di Green Field aka progetti Legacy o, come dicono alcuni: “Applicazione non pensata per essere testabile” Tutti i progetti non nuovi sono brownfield Tutte le applicazioni tendono naturalmente a diventare brownfield

Da dove partire? I passi iniziali

E’ tutto da rifare Codice sorgente versionato in folder *_data Lista dei bugs su file excel Classi di 10k righe Metodi con indice di mantenibilità <10 Elevatissimo accoppiamento tra i livelli (sempre se ci sono) 1000 step manuali per compilare per la prima volta 200 step manuali per produrre una release “deployabile” Tutto in un unico progetto

Piano d’attacco Source Control, Issue Tracking, Build Automation Codice base (DAL, Domain Model, ecc...) Codice di UI layer

L’ambiente di sviluppo I Problemi dell’ambiente di sviluppo

Version Control System Se siamo veramente sfortunati step 1: configurare un SVN, TFS, Git, ... Se siamo più fortunati: Sistemare il repository Rimuovere folder Obj, Bin, .user, ecc... svn-ignore FTW!!

Get and compile experience Obiettivo 2: poter fare get latest e compilare su una macchina “vergine” senza acrobazie

Riorganizzare alberatura Mettere tutte le dipendenze sotto VCS No GAC-Hell Sistemare le referenze di progetto Inserire anche eventuali tool necessari: TestRunner Profilers Build Tools

Automatizzare la build Con o senza CI, la build deve andare da sola MSBuild NAnt Continuos Integration se team è sopra le 2-3 persone TFS TeamCity CC.NET Hudson

Chi ha scritto questo codice? I problemi del codice

Analizzare il codice Capire tramite metriche lo stato del codice Usare le metriche per identificare le zone critiche Farci aiutare dai tool come R# per ripulire il codice

Riorganizzare la solution Avere vari progetti per i vari layer Repositories Services DomainModel Codice “infrastrutturale” UI Test

Break dependencies, be SOLID Rompi le dipendenze!! Come farlo: Scegli un componente Imposta test funzionale (automatico o manuale) Rimuovi le sue dipendenze Testalo senza le dipendenze Ripeti con un’altro componente Non gestire le dipendenza a mano, usa un IoC Container

39x27.com: prima e a metà della cura Demo 39x27.com: prima e a metà della cura

Un po’ di UI pattern I problemi della UI

Miglioriamo la UI Anche la UI ha la stessa dignità del data access Pattern MVP/MVC/MVVM per isolare meglio UI da strato sottostante Se web application, dobbiamo considerare anche HTML, CSS e Javascript

I problemi di attuazione Tutto bello, ma... I problemi di attuazione

I problemi più comuni del refactoring Fare di tutto un po’ Refactoring o nuove features?

Cosa fare una volta che siamo tornati VERDI E ora? Cosa fare una volta che siamo tornati VERDI

Come rimanere verdi? Evitare le iterazioni di refactoring Cercare di mantenere alta la qualità Manutenere gli ambienti di CI, Build e testing

Brownfield Application Development in .NET Get the book Brownfield Application Development in .NET Kyle Baley and Donald Belcham Aprile 2010 http://www.manning.com/baley/ 4 copie in omaggio questa sera

Contatti – Simone Chiaretta MSN: simone_ch@hotmail.com Blog: English: http://codeclimber.net.nz/ Italiano: http://blogs.ugidotnet.org/piyo/ Twitter: @simonech

Contatti – Davide Vosti Skype: davide.vosti Blog: http://vosti.posterous.com/ Twitter: @vosti

Q&A