1. Introduzione
Il codice PDF di questo documento è disponibile |QUI|.
Gli esempi di questo documento sono disponibili |QUI|.
Vogliamo scrivere un'applicazione .NET che consenta a un utente di effettuare simulazioni di calcolo delle retribuzioni delle assistenti materne dell'associazione «Maison de la petite enfance» di un comune. Ci occuperemo sia dell’organizzazione del codice DotNet dell’applicazione che del codice stesso.
L’applicazione finale, che chiameremo [SimuPaie], avrà la seguente struttura a tre livelli:
![]() |
- il livello [1-dao] (DAO = Data Access Object) si occuperà dell’accesso ai dati, che saranno inseriti in un database.
- Il livello [2-métier] si occuperà dell’aspetto business dell’applicazione, ovvero il calcolo delle retribuzioni.
- Il livello [3-ui] (ui=User Interface) si occuperà della presentazione dei dati all’utente e dell’esecuzione delle sue richieste. Chiamiamo [Application] l’insieme dei moduli che assicurano questa funzione. Esso funge da interfaccia con l’utente.
- I tre livelli saranno resi indipendenti grazie all’utilizzo di interfacce .NET
- L’integrazione dei diversi livelli sarà realizzata da Spring IoC
L’elaborazione di una richiesta da parte di un cliente si svolge secondo le seguenti fasi:
- il cliente invia una richiesta all’applicazione.
- L’applicazione elabora tale richiesta. A tal fine, potrebbe aver bisogno dell’aiuto del livello [métier], che a sua volta potrebbe aver bisogno del livello [dao] se è necessario scambiare dati con il database. L’applicazione riceve una risposta dal livello [métier].
- In base a tale risposta, invia al cliente la vista (= la risposta) appropriata.
L'interfaccia presentata all'utente può assumere diverse forme:
- un'applicazione da console: in questo caso, la vista è una sequenza di righe di testo.
- un'applicazione grafica Windows: in questo caso, la vista è una finestra di Windows
- un’applicazione web: in questo caso, la vista è una pagina HTML
- ...
Scriveremo diverse versioni di questa applicazione:
- una versione ASPNET che comprende un unico modulo ed è realizzata con un'architettura a singolo livello.
- una versione identica alla precedente ma con estensioni Ajax
- una versione ASP.NET basata su un'architettura a tre livelli in cui il livello di accesso ai dati è implementato con il framework NHibernate. Conterrà sempre l'unico modulo della versione 1.
- una versione 4 ASP.NET multi-vista e a pagina singola con l’architettura a tre livelli della versione 3.
- la parte server di un'applicazione client/server in cui il server è implementato da un servizio web basato sull'architettura a livelli della versione 3.
- la parte client della precedente applicazione client/server, implementata da un livello ASP.NET.
- una versione 7 ASP.NET multi-vista e multi-pagina con l'architettura a tre livelli della versione 3.
- una versione 8 ASP.NET multi-vista e multi-pagina client del servizio web della versione 5.
- una versione 9 ASP.NET multi-vista e multi-pagina con l'architettura a tre livelli della versione 3, in cui il livello di accesso ai dati è implementato tramite classi Spring che facilitano l'utilizzo del framework NHibernate.
- una versione 10 implementata in FLEX e client del servizio web della versione 5.
Prerequisiti
In una scala [débutant-intermédiaire-avancé], questo documento si trova nella sezione [intermédiaire]. Per comprenderlo sono necessari diversi prerequisiti che è possibile trovare in alcuni dei documenti che ho scritto:
- Programmazione ASP.NET [Sviluppo Web con ASP.NET 1.1 (2004)];
- Linguaggio C# 2008: [Imparare C# versione 3.0 con .NET Framework 3.5 (2008)Imparare C# versione 3.0 con .NET Framework 3.5 (2008)]: classi, interfacce, ereditarietà, polimorfismo
- [Spring IoC], disponibile su URL e [Spring IoC per .NET (2005)]. Presenta le basi dell’inversione di controllo (Inversion of Control) o dell’iniezione di dipendenze (Dependency Injection) del framework Spring.Net [http://www.springframework.net].
- [Creazione di un'applicazione web a tre livelli con ASP.NET 2.0, C#, Spring.NET e NHibernate (2010)]. Questo corso presenta un'applicazione semplificata per l'acquisto di prodotti sul web. La sua architettura a tre livelli implementa il modello MVC.
All’inizio di alcuni paragrafi del presente documento vengono talvolta forniti suggerimenti di lettura che rimandano ai documenti precedenti.
Strumenti
Gli strumenti utilizzati in questo caso di studio sono disponibili gratuitamente sul web. Sono i seguenti:
- Visual C# 2008, Visual Web Developer Express 2008, SQL Server Express 2005, disponibili su URL [http://www.microsoft.com/express/downloads/].
- Spring IoC per l’istanziazione dei servizi necessari all’applicazione, disponibile su URL [http://www.springframework.net/] – si veda anche [3]
- NHibernate per il livello di accesso ai dati di SGBD [http://sourceforge.net/projects/nhibernate/]
- NUnit: [http://www.nunit.org] per i test unitari.
