Tecnologie per lo sviluppo di applicazioni Visual studio SQL Server

Appunti della lezione del 8/10/2008 del corso di Basi di dati I - Università del Salento
Tecnologie per lo sviluppo di applicazioni
La tendenza attuale dell'ingegneria è quella dell'integrazione di componenti differenti provenienti da
ambiti diversi. Per realizzare un applicazione informatica completa è necessario mettere insieme
competenze, strumenti e tecnologie di ingegneria del software, di basi di dati, di sistemi operativi, ecc.
Le tecnologie più diffuse sono suddivisibili in due macro mondi: quello di Microsoft e quello di Java.
Le tecnologie Microsoft
Visual Studio (attualmente alla versione 2008);
SQL Server (attualmente alla versione 2008);
.NET (attualmente alla versione 3.5; recentemente affiancato ad Ajax);
Office Automation;
Il Sistema Operativo.
Visual studio
Si possono definire tre livelli di esperienza del programmatore:
iniziale;
intermedio;
avanzato.
Il tipico ciclo di scrittura del software per chi si trova ad un livello iniziale è:
editing del codice;
compilazione;
esecuzione;
debug.
Tale processo può essere agevolato e semplificato da applicazioni come Visual Studio.
Visual Studio appartiene alla categoria degli ambiente di sviluppo e dunque contiene, oltre ad un
editor di testo avanzato, numerosi strumenti di ausilio allo sviluppo ed automatismi vari che
agevolano la scrittura del software.
Ad esempio, esso consente, attraverso un'unica interfaccia coerente, il debug, il controllo del flusso di
esecuzione del programma, ecc.
Di solito l'ambiente di sviluppo si adotta nei livelli intermedio e avanzato.
SQL Server
È il DBMS di Microsoft e fornisce il motore per la gestione dei database.
L'interfaccia al DBMS è separata dal server ed è chiamata
Management Studio.
Management Studio consente di amministrare e gestire in
maniera completa il DBMS. Ad esempio consente di creare
database, le tabelle, di effettuare il debug, ecc.
DB1
Schema dei componenti di SQL Server
M
DBMS
(SQL
DB2
DB3
.NET
L'approccio comune alla programmazione è di tipo bottom-up: in ogni progetto si riscrive tutto il
codice da zero, dalle classi base fondamentali a quelle più avanzate. Un metodo di sviluppo più
efficiente prevede la possibilità di integrare nel proprio progetto delle librerie di codice esterne, già
pronte e spesso fornite da terzi. Esse svolgono funzioni comuni a diversi programmi e quindi evitano
la riscrittura di parti consistenti del software: si ottiene software più comprensibile e manutenibile.
Perciò si possono linkare le chiamate del proprio programma a delle librerie esterne. Di solito esse
sono di tipo dinamico: il linking con il programma che le richiede avviene a run-time. In Windows si
chiamano DLL (Dynamic Link Library).
L'evoluzione ulteriore è quella dei framework, come .NET. Essi contengono una serie di classi comuni
e riusabili in molte applicazioni. Normalmente infatti le classi e le funzioni sono definite nella
funzione main. I framework invece invertono l'approccio: le applicazioni hanno una struttura ben
definita con operazioni ricorrenti, e queste sono soddisfatte dai framework.
Se ad esempio si deve scrivere un gestionale è necessario avere le classi e i metodi per la creazione di
una fattura. In un framework tale codice potrebbe essere già presente, ma con classi e metodi astratti.
Il lavoro del programmatore consisterà allora nel completare o ridefinire tali classi adattandole alle
proprie esigenze: non sarà costretto a riscrivere tutto da zero.
MAIN
Application
Framework
C
F
Classe
Funzione
Struttura di un tipico programma in C++ o Java
C
F
Classe
Funzione
Struttura di un application framework. Le classi e le
funzioni sono di tipo astratto
Ajax
Spesso insieme al framework .NET si adotta la tecnologia Ajax che consente la comunicazione
asincorna tra client e server.
Modelli di applicazioni web
Un tipico programma si dice standalone se è su singolo host ed ha la seguente struttura:
Presentazione
(User Interface)
Logica Apllicativa
(Business Rules)
Dati
Nel modello network ci sono tre possibili configurazioni:
client/server (si usa in lan: es. università)
three tier (si usa in internet)
n-tier (ovvero la suddivisione in n livelli)
Client/server
Sui client c'è la user interface (UI), sul server c'è invece il DBMS
Client
1
Client
2
Client
3
………
Server
I client possono essere definiti:
thin client, se il server contiene la business rule e il client contiene la UI;
fat client, se nel client c'è la UI e anche la business rule.
L'archiettura Three Tier
Un altro modello è il cosiddetto modello THREE TIER, in cui abbiamo un server che contiene i dati,
un web server che serve per diffondere le pagine web e dei client. Anche in questo caso, a seconda che
la logica applicativa sia implementata sul server o sul client, si parlerà rispettivamente di THIN e FAT
client. Le pagine web possono essere di tipo statico (ovvero sono definite a “design time” e rimangono
uguali nel tempo finché non vengono modificate), e sono scritte tipicamente in HTML, o di tipo
dinamico (ovvero contengono dati che variano nel tempo – ad es. l’indicazione di una temperatura),
che possono contenere codice scritto in ASP, PHP, JSP, etc.
Le pagine di tipo dinamico sono formate da TEMPLATE HTML (detto anche maschera o gabbia
editoriale), in cui vengono predisposti gli spazi per i singoli oggetti. Al server web viene affiancato un
application server che ha il compito di ottenere i dati e di inserirli nella maschera. A questo punto la
pagina diventa HTML puro e può essere trasferita al client.
Il modello seguito da .NET e Java è Three Thier (o Four Thier).
Client
1
Web Server
+
Application Server
Client
2
Data Server
Modello THREE TIER
Client
3
………
Ajax è il codice
lato client che
consente
di
aggiornare
le
pagine web senza
dover
ricaricare:
cambia i contenuti
del template senza
fare intervenire il
web server.
Office Automation
Una caratteristica delle applicazioni da ufficio che spesso sfugge ai più e quella che essi sono
programmabili e dunque possono essere intergrati ad esempio in una architettura client/server.
Si può affermare che essi sono simili a dei framework: espongono il proprio modello ad oggetti
all'esterno e le loro funzionalità possono essere integrate in altri programmi. Tale operazione è
possibile attraverso il sistema ODBC (Open DataBase Connectivity). Un esempio è dato dalla stampaunione di MS Word.
Servizi del sistema operativo
Il sistema operativo offre molti servizi a volte non conosciuti che offrono ausili all'uso del computer.
Alcuni esempi sono la gestione delle immagini e della grafica e il sottosistema di riconoscimento
vocale.
Esempio di stampa-unione con MS Word utilizzando un database di MS Access
La funzionalità di stampa-unione di MS Word permette, tramite ODBC, di collegare Word con un
database (in questo caso di MS Access) per inserire dati in un documento “maschera” o “template”. Di
seguito vengono riportate brevemente le fasi necessarie ad effettuare una stampa-unione.
1) Si supponga di voler creare delle schede per dei clienti utilizzando MS Word e che i dati di tali
clienti siano inseriti in un database creato con MS Access. Per prima cosa si crea un documento di
base che servirà come “maschera” (o “template”). Dopo di che si visualizzi la barra degli strumenti
stampa-unione se non già visualizzata dal menu Visualizza -> Barre degli strumenti -> Stampa unione
(fig. 1).
Barra degli
strumenti
stampa-unione
Fig. 1
2) Nella barra degli strumenti stampa-unione fare clic sul pulsante “Impostazioni documento
principale” e scegliere il tipo di documento da utilizzare (nel nostro caso “Lettere”) (fig. 2)
3) Nella barra degli strumenti stampa-unione fare clic sul pulsante “Apri origine dati” e selezionare il
database dove sono memorizzati i dati, quindi fare clic su “Apri”.
Apri origine dati
4) Per inserire un campo nel documento, posizionarsi con il cursore nella posizione dove si desidera
inserirlo e fare clic sul pulsante “Inserisci campo unione” nella barra degli strumenti stampa-unione.
Selezionare il campo desiderato nella finestra successiva e fare clic su “Inserisci” quindi “Chiudi”.
Ripetere tale procedura per tutti i campi che si desiderano inserire. (fig. 3)
Fig. 3
5) I campi vengono visualizzati nel
documento con il nome del campo
racchiuso tra doppie parentesi angolari
(« »). È possibile formattare il campo
selezionandolo
(parentesi
angolari
comprese) e applicando la formattazione
desiderata. Un esempio è in fig. 4.
Fig. 4
6) Per visualizzare il risultato della stampa-unione, fare clic sul pulsante “Visualizza dati uniti” nella
barra degli strumenti stampa-unione. È possibile visualizzare i vari record spostandosi con i pulsanti
“Primo record”, “Record precedente”, “Record successivo” e “Ultimo record” presenti sempre nella
barra degli strumenti stampa unione.
Visualizza dati uniti
Pulsanti di navigazione
7) Un esempio di risultato è riportato in figura 5. La formattazione applicata in precedenza ai nomi dei
campi viene applicata automaticamente a tutti i risultati.
Fig. 5
È da sottolineare che fino a questo punto il documento è effettivamente collegato al database. Quando
viene salvato, invece, documento e database non risultano più collegati.
Per eventuali correzioni e aggiunte, scrivere agli autori:
Francesco Palermo: <haku at salug dot it>
Marco Grazioli: <[email protected]>
NB: Non avendo ancora Visual Studio, non ho potuto inserire qualcosa riguardo a quello visto a
lezione. Se qualcuno fosse interessato, mi può mandare una e-mail e, non appena ho il programma,
vedrò di realizzare un documento simile a quello della stampa-unione per riprendere ciò che abbiamo
fatto a lezione. Mi scuso per l’inconveniente. Marco G.