La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Progettare e realizzare applicazioni con Visual Studio.NET Enterprise Architect Francesco Albano Senior Developer Evangelist.NET Developer & Platform.

Presentazioni simili


Presentazione sul tema: "Progettare e realizzare applicazioni con Visual Studio.NET Enterprise Architect Francesco Albano Senior Developer Evangelist.NET Developer & Platform."— Transcript della presentazione:

1

2 Progettare e realizzare applicazioni con Visual Studio.NET Enterprise Architect Francesco Albano Senior Developer Evangelist.NET Developer & Platform Strategy Division Microsoft Italy

3 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

4 User Services Progetto Web realizzato come applicazione ASP.NET Progetto Web realizzato come applicazione ASP.NET Business Services Progetto Business Façade Progetto Business Façade Modellato sulla base dei casi di uso del sistema Modellato sulla base dei casi di uso del sistema Maschera la complessità delle regole delle classi dello strato business Maschera la complessità delle regole delle classi dello strato business Progetto Business Rules Progetto Business Rules Contiene le regole di business da rispettare Contiene le regole di business da rispettare Data Services Progetto Data Access Progetto Data Access Progetti Common e System Framework Common utilizzato per classi ausiliarie Common utilizzato per classi ausiliarie System Framework utilizzato per la configurazione del tracing, dell’applicazione e per la gestione degli errori System Framework utilizzato per la configurazione del tracing, dell’applicazione e per la gestione degli errori Panoramica di Duwamish I layer applicativi

5 Progetto Web Codice responsabile dell’interfaccia utente Codice responsabile dell’interfaccia utente Comunica con lo strato Business Façade Comunica con lo strato Business Façade Pesante utilizzo di Pesante utilizzo di Web Forms Web Forms User controls User controls Validation Controls Validation Controls Panoramica di Duwamish User Services

6 Componenti della logica di business realizzati come assembly.NET Si avvale di transazioni SQL Server DataSet ADO.NET Panoramica di Duwamish Business Services

7 Si avvale di funzionalità di ADO.NET Utilizza prevalentemente la classe SQLDataAdapter per l’accesso ai dati Utilizza prevalentemente la classe SQLDataAdapter per l’accesso ai dati Popola DataSet tipizzati disconnessi (classi che ereditano da DataSet) Popola DataSet tipizzati disconnessi (classi che ereditano da DataSet) Informazioni di connessione prelevate da web.config Informazioni di connessione prelevate da web.config I DataSet sono utilizzati per trasportare i dati tra i diversi layer I DataSet sono utilizzati per trasportare i dati tra i diversi layer Panoramica di Duwamish Data Services

8 Business Façade Funzioni che rispecchiano i principali casi di uso scoperti durante la fase di analisi 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 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 Maschera la complessità delle interazioni tra gli oggetti dello strato BusinessCommon Codice condiviso tra i componenti Codice condiviso tra i componenti Classi che ereditano da DataSet e specificano il formato di CategoryData, BookData, CustomerData, OrderData Classi che ereditano da DataSet e specificano il formato di CategoryData, BookData, CustomerData, OrderData System Framework Codice che fornisce all’applicazione Codice che fornisce all’applicazione Servizi di sistema o di infrastruttura Servizi di sistema o di infrastruttura Non specifico dell’applicazione Non specifico dell’applicazione Panoramica di Duwamish Layer Supplementari

9 Obiettivi di progettazione Requisiti Non Funzionali Availability Applicazione sempre disponibile (in teoria) Applicazione sempre disponibile (in teoria) Le scelte di implementazione Web Farm Web Farm Cosa offre al riguardo ASP.NET Cosa offre al riguardo ASP.NET Lo stato delle sessioni è memorizzabile su uno State Server Lo stato delle sessioni è memorizzabile su uno State Server Rilevamento automatico dei problemi e riavvio del server Web senza interruzione di servizio Rilevamento automatico dei problemi e riavvio del server Web senza interruzione di servizio Sostituzione di DLL senza interruzione di servizio Sostituzione di DLL senza interruzione di servizio

10 Maintainability Il codice dovrebbe riflettere la documentazione prodotta in fase di progettazione 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 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 I casi di uso rimappati nello strato Business Façade Codice segmentato in 6 progetti Visual Studio modificabili in blocco o singolarmente Codice segmentato in 6 progetti Visual Studio modificabili in blocco o singolarmente Obiettivi di progettazione Requisiti Non Funzionali

11 Manageability Modifiche alla configurazione del sito senza riavvio Modifiche alla configurazione del sito senza riavvio Trace e log su file o nel log degli eventi Trace e log su file o nel log degli eventi Le scelte di implementazione Configurazione memorizzata in web.config Configurazione memorizzata in web.config Trace e log realizzati tramite la classe EventLog del CLR Trace e log realizzati tramite la classe EventLog del CLR Trace verso file di testo tramite le classi FileInfo e StreamWriter 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 ASP.NET mette a disposizione contatori delle prestazioni per ogni applicazione Web Statistiche sugli oggetti Request e Response Statistiche sugli oggetti Request e Response Statistiche sulla Cache Statistiche sulla Cache Statistiche sugli errori Statistiche sugli errori Statistiche sulle transazioni Statistiche sulle transazioni Obiettivi di progettazione Requisiti Non Funzionali

12 Performance Eguagliare o superare le prestazioni della versione 4.0 di Duwamish Eguagliare o superare le prestazioni della versione 4.0 di Duwamish Le scelte di implementazione ASP.NET compila le pagine in eseguibili ASP.NET compila le pagine in eseguibili Utilizzo del caching sull’output delle pagine di ASP.NET 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 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

13 Reliability Gestione corretta degli errori Gestione corretta degli errori Nessuna visualizzazione all’utente finale di un errore nativo Nessuna visualizzazione all’utente finale di un errore nativo Le scelte di implementazione Gestione degli errori basata su eccezioni Gestione degli errori basata su eccezioni Supporto per le pagine personalizzate di errore di ASP.NET Supporto per le pagine personalizzate di errore di ASP.NET Obiettivi di progettazione Requisiti Non Funzionali

14 Scalability Scale up e scale out Scale up e scale out Le scelte di implementazione Scale up grazie al supporto di ASP.NET per le Web Garden Scale up grazie al supporto di ASP.NET per le Web Garden Scale out grazie allo stato di sessione esterno Scale out grazie allo stato di sessione esterno Accesso ai componenti locale o tramite.NET remoting Accesso ai componenti locale o tramite.NET remoting Obiettivi di progettazione Requisiti Non Funzionali

15 Security Richiede l’autenticazione per prevenire lo spoofing degli URL 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 Utilizzo del supporto intrinseco di ASP.NET per l’autenticazione basata su form Obiettivi di progettazione Requisiti Non Funzionali

16 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 titolo Ricerca per autore Ricerca per autore Ricerca per ISBN Ricerca per ISBN Ricerca per argomento Ricerca per argomento Un cliente Internet deve poter selezionare uno o più libri ed inserirli nel carrello per l’acquisto … Architettura di Duwamish Requisiti funzionali

17 I casi di uso sono generalmente utilizzati per: Modellare il contesto di un sistema Modellare il contesto di un sistema Modellare i requisiti di un sistema Modellare i requisiti di un sistema Esprimere i requisiti, come attività, dal punto di vista dell’utente Esprimere i requisiti, come attività, dal punto di vista dell’utente Internet Customer Customer Account Management Purchase Books Product Catalog Search I Diagrammi UML Diagrammi dei Casi di Uso

18 I Diagrammi UML Diagrammi di classe «uses»«uses» «uses» «uses» defaultcategoriesbook searchresultssearch I diagrammi di classe o di struttura esprimono la struttura globale del sistema, le relazioni e le caratteristiche comportamentali

19 I Diagrammi UML Diagrammi dei Componenti I diagrammi dei componenti sono generalmente utilizzati per: Modellare il codice sorgente Modellare il codice sorgente Modellare i rilasci degli eseguibili Modellare i rilasci degli eseguibili Modellare Ia struttura fisica delle basi di dati Modellare Ia struttura fisica delle basi di dati Modellare sistemi adattativi Modellare sistemi adattativi Un diagramma dei componenti illustra come i vari sottosistemi software vanno a comporre la struttura globale di un sistema Web Business Facade SystemFramework

20 I Diagrammi UML Diagrammi di Sequenza I diagrammi di sequenza sono utilizzati per: Modellare il flusso applicativo temporale Modellare il flusso applicativo temporale : Web::book : BusinessFacade::ProductSystem : DataAccess::Books GetBooksByISBN() GetBooksByAuthor() GetBooksByNaturalLanguage() GetBooksBySubject() GetBooksByTitle() GetBookById()

21 I Diagrammi UML Diagrammi di Deployment I diagrammi di deployment sono utilizzati per: Modellare sistemi embedded Modellare sistemi embedded Modellare sistemi client/server Modellare sistemi client/server Modellare sistemi altamente distribuiti Modellare sistemi altamente distribuiti Un diagramma di deployment illustra come sono configurati l’ hardware ed il software in un sistema DataAccess Database Server Database

22 I Diagrammi UML Diagrammi aggiuntivi I diagrammi di collaborazione sono utilizzati per: Modellare il flusso organizzativo Modellare il flusso organizzativo I diagrammi di stato sono utilizzati per: Modellare le relazioni tra oggetti e le transizioni di stato Modellare le relazioni tra oggetti e le transizioni di stato I diagrammi di attività sono utilizzati per: Modellare un workflow Modellare un workflow Modellare un’operazione Modellare un’operazione

23 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 L’esigenza

24 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

25 Enterprise Template Struttura applicazion e (progetti, codice,…) Policy (TDL) Guida (contesto e html) Elementi da includere Elementi da escludere Enterprise Templates La soluzione

26 User Services Layer Web Forms Le pagine Web sono prodotte dinamicamente dal server Web Interfaccia utente divisa in due componenti Componenti visuali Componenti visuali Logica dell’interfaccia utente Logica dell’interfaccia utente Applicazione non dipendente dal browser Modello ad oggetti coerente Programmazione guidata dall’evento

27 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 tasse Calcolo delle spese di spedizione Calcolo delle spese di spedizione Verifica del formato di un indirizzo Verifica del formato di un indirizzo Stateless Composto di classi.NET

28 Data Access Layer (DAL) Creazione dello strato Data Riceve le richieste dallo strato di Business Inserimento, aggiornamento, cancellazione Inserimento, aggiornamento, cancellazione Potrebbe ricevere richieste direttamente dall’interfaccia utente o dallo strato Business Façade Semplici visualizzazioni Semplici visualizzazioni Utilizza stored procedure per recuperare i dati Restituisce i dati allo strato Business /Façade

29 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

30 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 …

31 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Scaricare ppt "Progettare e realizzare applicazioni con Visual Studio.NET Enterprise Architect Francesco Albano Senior Developer Evangelist.NET Developer & Platform."

Presentazioni simili


Annunci Google