Image
Image

Di seguito una descrizione degli strumenti che utilizziamo per svolgere il nostro lavoro:

Table of Contents [Hide/Show]


   Framework web MVC
       MonoRail
         PRO:
         CONTRO:
       ASP.Net MVC Framework
   Inversione di Controllo
       Castle Windsor
       Spring.NET
       autofac
       StructureMap
       Ninject
       Unity
   Build Tool
       NAnt
       MSBuild
   Continous Integration
       CruiseControl.NET
       CI Factory
       Final Builder
       Team Foundation Server
       TeamCity
   Source control
       CVS
       Subversion
       Visual Source Safe
       Team Foundation Server
   Testing
       NUnit
       MBUnit
       xUnit.net
       Unit Testing con Visual Studio
       Nmock
       Mock Objects
       MoQ
       RhinoMocks
   Evolutionary Databases - Design and Deployment
       dbdeploy.NET
       dbdeploy
       MIGRATEdb
       LiquiBase
       ActiveRecordMigration
       SubSonic Migrate
       RikMigrations
       Migrator.NET
       DbVerse


Edit

Framework web MVC

...... Edit

MonoRail

Si differenzia dal modo di sviluppo standard tramite WebForms perchè rafforza la separazione dei concetti.Solo il controller gestisce il flusso dell'applicazione, il model rappresenta i dati e la view si occupa solo di presentarli.Di conseguenza si scrive meno codice ed il risultato finale è un'applicazione più manutenibile.Anche se il progetto si chiama MonoRail, non ci sono legami con il progetto Mono. MonoRail gira sul on Microsoft .Net 1.1, 2.0 e Mono.

PRO:

  • modello di sviluppo semplificato
  • integrazione (opzionale) con activerecord
  • possibilità di gestire html, css e javascript in maniera "corretta" (niente stili iniettati e js dentro la pagina)
  • accesso ai framework html/js quali jquery ecc...
  • Testabile (Nunit/MsTest/MbUnit)
  • Separazione reale controller model e view
  • Possibili eventuali porting verso altri modelli di presentation (WinForm, WPF …) con “poco” sforzo.
  • Ci si prepara all’eventuale porting verso l’MVC di microsoft !!!
  • Forum e i gruppi google per il supporto sono molto attivi
  • Disponibile anche un supporto a pagamento

CONTRO:

  • perdita del designer delle pagine di ASP.NET
  • impossibilità di usare la marea di controlli ASP.NET disponibili
  • Non molta documentazione al momento
  • Curva di apprendimento delle risorse

Edit

ASP.Net MVC Framework

Da qualche tempo a questa parte Microsoft ha reso noto che sta lavorando ad un progetto di implementazione del pattern MVC per ASP.Net
Ad ogni non è ancora disponibile nessuna beta anche se bisogna dire che di questo framework si sa già molto perchè su vari blog di team manager e collaboratori Microsoft è già stato mostrato qualche esempio.
Lo strumento sembra promettere bene anche nella prima versione non dovrebbe esserci supporto per MS AJAX.



Edit

Inversione di Controllo

C'è stato un grandissimo interesse nella comunità Java riguardo i lightweight container che permettono di assemblare componenti di differenti progetti dentro ad un'applicazione unica. Alla base di questi container c'è un pattern comune su come essi implementano il collegamento, un concetto espresso sotto il termine generico di "Inversione di Controllo".
Martin Fowler a riguardo ha scritto un'eccelente articolo.
Per un confronto dettagliato (non ancora completo) delle funzionalità dei framework elencati vedere IoC Benchmarking

Edit

Castle Windsor

è l'implementazione del pattern inversion of control (IoC) realizzata dal team castle grazie al quale lavora il noto framework Monorail per realizzare applicazioni web usando il pattern MVC.

Edit

Spring.NET

è il porting in .Net di un lightweight container Java, che permette di implementare facilmente il pattern inversion of control (IoC) nelle nostre applicazioni .Net.

Edit

autofac

...

Edit

StructureMap

...

Edit

Ninject

...

Edit

Unity

...

Edit

Build Tool



Edit

NAnt

NAnt è un tool gratuito basato su .NET ed ha molti vantaggi rispetto ad altri tool simili tanto da essere considerato IL tool. Innanzitutto NAnt è platform independent e puo' essere installato ed eseguito su qualunque sistema per cui esista un'implementazione di .NET. Inoltre invece di processare file di configurazione contenenti comandi basati sulla shell (che sono dipendenti dal sistema) NAnt processa file i cui comandi sono descritti in XML rendendo semplice il porting dei progetti su altri sistemi. Per la sua flessibilità è alla base degli strumenti di Continous Integration.

Edit

MSBuild

...

Edit

Continous Integration

Cos'è la Continous Integration....

Edit

CruiseControl.NET

è una suite di applicazioni ma il suo cuore è il servizio CruiseControl.NET che è un server per l'integrazione automatica. Il server monitora costantemente l'archivio dei sorgenti. Ogni volta che uno sviluppatore invia nuove modifiche, il server avvia una build automatica per validare le nuove modifiche.Al termine gli sviluppatori con un messaggio con l'esito della build.

Edit

CI Factory

può essere definito come una versione "customizzata" di CruiseControl.Net per neofiti. L'autore seguendo il paradigma "Convention over Configuration" propone una soluzione veloce per chi si vuole avvicinare facilmente alla Continous Integration.

Edit

Final Builder

......

Edit

Team Foundation Server

....

Edit

TeamCity

....

Edit

Source control

In informatica, il controllo versione è la gestione di versioni multiple di un insieme di informazioni. Viene usato prevalentemente nello sviluppo di progetti ingegneristici o informatici per gestire la continua evoluzione dei documenti digitali come il codice sorgente del software, i disegni tecnici, la documentazione testuale e altre informazioni importanti su cui può lavorare una squadra di persone. Le modifiche a questi documenti sono identificate incrementando un numero o un codice associato ad essi, denominato "numero di versione", "etichetta di versione", o semplicemente "versione", e sono etichettate con il nome della persona che ha apportato la modifica. Una semplice forma di controllo versione, per esempio, assegna il numero 1 alla prima versione di un disegno. Quando viene apportata la prima modifica, il numero di versione passa a 2 e così via. Gli strumenti software per il controllo versione sono sempre più riconosciuti essere necessari per la maggior parte dei progetti di sviluppo software.

Edit

CVS

Il Concurrent Versions System (CVS), conosciuto anche come Concurrent Versioning System, implementa un sistema di controllo versione: mantiene al corrente di tutto il lavoro e di tutti i cambiamenti in un insieme di file, tipicamente è l'implementazione di un software in via di sviluppo, in progetto, e permette a molti sviluppatori (potenzialmente distanti) di collaborare. CVS è divenuto popolare nel mondo del software libero ed è rilasciato sotto la GNU General Public License.

Edit

Subversion

(noto anche come svn, che è il nome del suo client a riga di comando) è un sistema di controllo versione progettato specificamente per sostituire CVS, che è considerato avere troppe carenze.

Edit

Visual Source Safe

è il sistema di controllo versione di Microsoft, il provider per l'utilizzo di tale SC è utilizzabile da tutti i prodotti Microsoft (visual Studio 6.0, Visual Studio 2003/2003/2005/2008) e sono anche disponibili plugin per IntelliJ Idea e Eclipse

Edit

Team Foundation Server

Meglio noto come TFS, L'ultimo nato di casa MicroSoft, consente di gestire l'intera LifeCycle dei progetti, dalla gestione dei requisiti all'assegnazione di Task al monitoraggio dei WorkItem su Portale Di Progetto sviluppato con Sharepoint Services. Mette a disposizione un Source Control Provider che permette policy di checkin customizzabili (ad esempio associare un checkin ad un workitem specifico), è disponibile anche una Versione Web per l'accesso al server da macchine che non hanno visual studio installato.

Edit

Testing



Edit

NUnit

Porting del popolare framework JUnit ...

Edit

MBUnit

...

Edit

xUnit.net

...

Edit

Unit Testing con Visual Studio

Tra le caratteristiche principali c'è la possibilità di integrazione con TFS, pubblicare i test results e assegnare i workitem.

Edit

Nmock

Mocking Framework ...

Edit

Mock Objects

Mocking Objects ...

Edit

MoQ

...

Edit

RhinoMocks

...

Edit

Evolutionary Databases - Design and Deployment



Meccanismo di update basato su script SQL:

Edit

dbdeploy.NET

... Edit

dbdeploy

...

Meccanismo di update basato su file XML:

Edit

MIGRATEdb

... Edit

LiquiBase

...

Meccanismo di update basato su file di codice:

Edit

ActiveRecordMigration

... Edit

SubSonic Migrate

... Edit

RikMigrations

... Edit

Migrator.NET

... Edit

DbVerse

DbVerse offers .NET development teams an efficient and easy to use tool for database change management. It is primarily targeted at MS SQL Server environments.

ScrewTurn Wiki version 2.0.19. Some of the icons created by FamFamFam.