Progettare e realizzare
applicazioni con
Visual Studio .NET Enterprise
Architect
Francesco Albano
Senior Developer Evangelist
.NET Developer & Platform Strategy Division
Microsoft Italy
Agenda
Panoramica di Duwamish
Architettura di Duwamish
Obiettivi di progettazione
I diagrammi UML
Gli Enterprise Template
User Services Layer
Data Access Layer
Business Logic Layer
Flusso dell'Applicazione
Panoramica di Duwamish
I layer applicativi
User Services

Progetto Web realizzato come applicazione ASP .NET
Business Services


Progetto Business Façade

Modellato sulla base dei casi di uso del sistema

Maschera la complessità delle regole delle classi dello strato
business
Progetto Business Rules

Contiene le regole di business da rispettare
Data Services

Progetto Data Access
Progetti Common e System Framework


Common utilizzato per classi ausiliarie
System Framework utilizzato per la configurazione del tracing,
dell’applicazione e per la gestione degli errori
Panoramica di Duwamish
User Services
Progetto Web



Codice responsabile dell’interfaccia utente
Comunica con lo strato Business Façade
Pesante utilizzo di
 Web Forms
 User controls
 Validation Controls
Panoramica di Duwamish
Business Services
Componenti della logica di business
realizzati come assembly .NET
Si avvale di transazioni SQL Server
DataSet ADO.NET
Panoramica di Duwamish
Data Services
Si avvale di funzionalità di ADO.NET




Utilizza prevalentemente la classe
SQLDataAdapter per l’accesso ai dati
Popola DataSet tipizzati disconnessi (classi che
ereditano da DataSet)
Informazioni di connessione prelevate da
web.config
I DataSet sono utilizzati per trasportare i dati
tra i diversi layer
Panoramica di Duwamish
Layer Supplementari
Business Façade



Funzioni che rispecchiano i principali casi di uso scoperti durante
la fase di analisi
Effettua chiamate allo strato Business o a quello Data per conto
dello strato User
Maschera la complessità delle interazioni tra gli oggetti dello
strato Business
Common

Codice condiviso tra i componenti

Classi che ereditano da DataSet e specificano il formato di
CategoryData, BookData, CustomerData, OrderData
System Framework

Codice che fornisce all’applicazione

Servizi di sistema o di infrastruttura

Non specifico dell’applicazione
Obiettivi di progettazione
Requisiti Non Funzionali
Availability

Applicazione sempre disponibile (in teoria)
Le scelte di implementazione


Web Farm
Cosa offre al riguardo ASP.NET
 Lo stato delle sessioni è memorizzabile su uno State
Server
 Rilevamento automatico dei problemi e riavvio del
server Web senza interruzione di servizio
 Sostituzione di DLL senza interruzione di servizio
Obiettivi di progettazione
Requisiti Non Funzionali
Maintainability


Il codice dovrebbe riflettere la documentazione prodotta
in fase di progettazione
Il codice dovrebbe essere modularizzato per facilitare la
gestione da parte di gruppi differenti
Le scelte di implementazione


I casi di uso rimappati nello strato Business Façade
Codice segmentato in 6 progetti Visual Studio
modificabili in blocco o singolarmente
Obiettivi di progettazione
Requisiti Non Funzionali
Manageability


Modifiche alla configurazione del sito senza riavvio
Trace e log su file o nel log degli eventi
Le scelte di implementazione




Configurazione memorizzata in web.config
Trace e log realizzati tramite la classe EventLog del CLR
Trace verso file di testo tramite le classi FileInfo e StreamWriter
del CLR
ASP .NET mette a disposizione contatori delle prestazioni per ogni
applicazione Web

Statistiche sugli oggetti Request e Response

Statistiche sulla Cache

Statistiche sugli errori

Statistiche sulle transazioni
Obiettivi di progettazione
Requisiti Non Funzionali
Performance

Eguagliare o superare le prestazioni della versione 4.0
di Duwamish
Le scelte di implementazione



ASP .NET compila le pagine in eseguibili
Utilizzo del caching sull’output delle pagine di ASP .NET
Pieno supporto per le Web Farm tramite
memorizzazione dello stato delle sessioni su server
esterni ed utilizzo di classi stateless
Obiettivi di progettazione
Requisiti Non Funzionali
Reliability


Gestione corretta degli errori
Nessuna visualizzazione all’utente finale di un errore
nativo
Le scelte di implementazione


Gestione degli errori basata su eccezioni
Supporto per le pagine personalizzate di errore di
ASP.NET
Obiettivi di progettazione
Requisiti Non Funzionali
Scalability

Scale up e scale out
Le scelte di implementazione



Scale up grazie al supporto di ASP .NET per le Web
Garden
Scale out grazie allo stato di sessione esterno
Accesso ai componenti locale o tramite .NET remoting
Obiettivi di progettazione
Requisiti Non Funzionali
Security

Richiede l’autenticazione per prevenire lo spoofing degli
URL
Le scelte di implementazione

Utilizzo del supporto intrinseco di ASP .NET per
l’autenticazione basata su form
Architettura di Duwamish
Requisiti funzionali
Un cliente Internet deve poter navigare nel catalogo prodotti
di Duwamish Books per categoria
Un cliente Internet deve essere in grado di ricercare un libro
in base ai seguenti criteri:




Ricerca per titolo
Ricerca per autore
Ricerca per ISBN
Ricerca per argomento
Un cliente Internet deve poter selezionare uno o più libri ed
inserirli nel carrello per l’acquisto
…
I Diagrammi UML
Diagrammi dei Casi di Uso
Customer Account
Management
I casi di uso
sono
generalmente
utilizzati per:



Modellare il
contesto di un
sistema
Modellare i
requisiti di un
sistema
Esprimere i
requisiti, come
attività, dal
punto di vista
dell’utente
Internet Customer
Purchase Books
Product Catalog
Search
I Diagrammi UML
Diagrammi di classe
search
searchresults
«uses»
«uses»
default
categories
«uses»
book
«uses»
I diagrammi di classe o di struttura esprimono la struttura globale del
sistema, le relazioni e le caratteristiche comportamentali
I Diagrammi UML
Diagrammi dei Componenti
I diagrammi dei componenti sono generalmente utilizzati per:

Modellare il codice sorgente

Modellare i rilasci degli eseguibili

Modellare Ia struttura fisica delle basi di dati

Modellare sistemi adattativi
Un diagramma dei componenti illustra come i vari sottosistemi
software vanno a comporre la struttura globale di un sistema
Web
SystemFramework
Business Facade
I Diagrammi UML
Diagrammi di Sequenza
I diagrammi di sequenza sono utilizzati per:

Modellare il flusso applicativo temporale
: Web::book
: BusinessFacade::ProductSystem
: DataAccess::Books
GetBooksByISBN()
GetBooksByAuthor()
GetBooksByNaturalLanguage()
GetBooksBySubject()
GetBooksByTitle()
GetBookById()
I Diagrammi UML
Diagrammi di Deployment
I diagrammi di
deployment sono
utilizzati per:



Modellare sistemi
embedded
Modellare sistemi
client/server
Modellare sistemi
altamente distribuiti
Un diagramma di
deployment illustra come
sono configurati l’
hardware ed il software
in un sistema
DataAccess
Database Server
Database
I Diagrammi UML
Diagrammi aggiuntivi
I diagrammi di collaborazione sono utilizzati per:

Modellare il flusso organizzativo
I diagrammi di stato sono utilizzati per:

Modellare le relazioni tra oggetti e le transizioni di
stato
I diagrammi di attività sono utilizzati per:


Modellare un workflow
Modellare un’operazione
Enterprise Templates
L’esigenza
I progetti software sono sempre più complessi,
vasti e critici
Un’architettura applicativa inefficiente può rendere
tale una qualunque piattaforma
Una buona architettura funziona solo se tutti
rispettano le regole per implementarla
Le raccomandazioni sono fini a se stesse se non
lette ed utilizzate
Enterprise Templates
Gli obiettivi
Condividere la conoscenza e l’esperienza
aziendale in fase di progettazione
per:
Ridurre il problema della “Lavagna
Bianca”
Ridurre il problema della “Cabina di
Pilotaggio”
Semplificare l’individuazione delle scelte
corrette
Enterprise Templates
La soluzione
Elementi da
escludere
Enterprise Template
Struttura
applicazion
e (progetti,
codice,…)
Elementi da
includere
Policy
(TDL)
Guida
(contesto
e html)
User Services Layer
Web Forms
Le pagine Web sono prodotte
dinamicamente dal server Web
Interfaccia utente divisa in due componenti


Componenti visuali
Logica dell’interfaccia utente
Applicazione non dipendente dal browser
Modello ad oggetti coerente
Programmazione guidata dall’evento
Business Logic Layer
Creazione dello strato di Business
Utilizzato per incapsulare “le regole di
business” in uno strato separato rispetto ai
dati ed ai servizi di interfaccia



Calcolo delle tasse
Calcolo delle spese di spedizione
Verifica del formato di un indirizzo email
Stateless
Composto di classi .NET
Data Access Layer (DAL)
Creazione dello strato Data
Riceve le richieste dallo strato di Business

Inserimento, aggiornamento, cancellazione
Potrebbe ricevere richieste direttamente
dall’interfaccia utente o dallo strato Business
Façade

Semplici visualizzazioni
Utilizza stored procedure per recuperare i dati
Restituisce i dati allo strato Business /Façade
Flusso dell'Applicazione
Navigazione sulle categorie
User Services Layer
CategoriesModule.ascx
Invoca BusinessFacade.ProductSystem.GetCategories
Business Façade Layer
Invoca DataAccess.Categories.GetCategories
Data Services Layer
Invoca la Stored Procedure
GetCategories
SQL Server
La Stored procedure
GetCategories preleva i dati
Flusso dell'Applicazione
Ricerca
User Services Layer
SearchModule.ascx
Invoca BusinessFacade.ProductSystem.GetSearchItems
Business Façade Layer
Invoca il giusto metodo DataAccess.Books.?
? = Il nome del metodo dipende dal criterio di ricerca
Data Services Layer
Invoca la Stored Procedure appropriata al tipo di
ricerca
SQL Server
GetBooksByTitle
GetBooksByISBN
GetBooksByAuthor
…
© 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Scarica

applicazioni_VSNET