SlideShare a Scribd company logo
1 of 42
Università Degli Studi Di Trieste
                     Facoltà Di Ingegneria
      Corso Di Laurea Triennale In Ingegneria Elettronica
                    Curriculum Gestionale




 Sviluppo di Un Prototipo di Interfaccia per La Verbalizzazione
                     di Esami Universitari




Relatore: Prof. Maurizio Fermeglia



Laureando: Bledar Qosja
                                      Anno Accademico 2010-2011

                                                                  1
SOMMARIO
Capitolo 1 INTRODUZIONE                           4
1.1 PREFAZIONE                                   4


Capitolo 2 ANALISI                                6
2.1 STUDIO DELLE TECNOLOGIE                      4
    2.1.1 .Net Framework 4.0                     6
       C#                                       7
    2.1.2 Visual Studio 2010                     8
       L’accesso ai dati ADO.NET                9
    2.1.3 SQL: Structured Query Language         10
       Microsoft SQL Server                     10
2.2 RACCOLTA DEI REQUISITI                       11



Capitolo 3 REALIZZAZIONE DEL PROTOTIPO           12
    3.1 PROGETTAZIONE LOGICA                     12
         Struttura del prototipo                12
         Namespaces                             13
         Architettura del database              16
         Temi, stili e skin                     18
                                                     2
3.2 PROGETTAZIONE FISICA                         20
       Realizzazione del database                   20
       Interfaccia e funzionalità                   26
        -Convalida dell’input: I validator control   27
        -Connessione a una sorgente dati             28
       Mostrare dati in griglia: Gridview           30
       Verbalizzazione                              37


Capitolo 4 CONCLUSIONI                               40


Appendice A ABBREVAZIONI USATE                       41


Appendice B ELENCO DELLE IMMAGINI                    41


Appendice C BIBLIOGRAFIA                             42




                                                      3
CAPITOLO 1
                                                  INTRODUZIONE
____________________________________________


1.1 Prefazione


       Lo scopo della tesi è creare un prototipo di interfaccia web per la
verbalizzazione degli esami Universitari, aiutando in questo modo il
docente a verbalizzare l’esame di un apposito studente senza avere il
bisogno di creare un appello online.
        Il docente può accedere utilizzando le proprie credenziali fornite
dall’Università per verbalizzare l’esame di un apposito studente. Per far ciò,
il prototipo deve essere in grado di:


      Visualizzare solo gli insegnamenti appartenenti al docente che ha
       effettuato l’accesso.

      Selezionare uno degli insegnamenti appartenenti al docente e
       visualizzare gli studenti che hanno verbalizzato l’esame del
       insegnamento selezionato.

      Avere una casella di testo dove è possibile cercare il piano di studi
       dello studente inserendo il suo numero di matricola.



                                                                               4
 Visualizzare il piano di studi appartenente allo studente con tutti gli
       insegnamenti della sua carriera Universitaria .


      Avere la possibilità di verbalizzare l’esito solo per gli insegnamenti
       appartenenti al docente che non sono stati verbalizzati in passato.
      Per conseguire tale obiettivo è necessario passare attraverso diverse
fasi di lavoro:

     studio delle tecnologie
     raccolta dei requisiti
     progettazione
     realizzazione del prototipo
Tali punti vengono sviluppati nei capitoli seguenti inerenti l’analisi e la
realizzazione.




                                                                              5
CAPITOLO 2
                          STUDIO DELLE TECNOLOGIE
____________________________________________


2.1.1    .NET Framework 4.0


     Il framework è una struttura di supporto su cui un software può essere
organizzato e progettato. Alla base di un framework c’è sempre una serie
di librerie di codice utilizzabili con uno o più linguaggi di programmazione.
    .NET creata dalla Microsoft è una versatile piattaforma di sviluppo
software basata sulla tecnologia di programmazione ad oggetti.
     Realizzata come contrapposizione proprietaria al linguaggio Java, ha
un ruolo strategico per la Microsoft come piattaforma di sviluppo per
applicazioni desktop e server per le architetture client/server ,internet ed
intranet.
    La prima Versione di .NET Framework è stata rilasciata nel 2002.
La sua caratteristica è di essere indipendente dalla versione operativa di
Windows su cui è installata, e di includere molte funzionalità progettate
espressamente in modo da integrarsi in un ambiente internet , e garantire il
massimo grado di sicurezza ed integrità dei dati.
    L’innovazione migliore è stata quella riguardante le ASP (Active
Server Pages), che in linea con le filosofie di marketing, sono diventate
ASP.NET 4.0 .


                                                                               6
A differenza di ASP, che implementa motori di scripting, con codice
interpretato in fase di visualizzazione, ASP.NET supporta dei veri
linguaggi di programmazione e codice completamente compilato .

       In applicazioni molto complesse, a parità di funzionalità, ASP.NET
da' il meglio di sé, anche grazie a meccanismi di caching molto avanzati.
Inoltre, ASP.NET ha strumenti di debugging e tracing molto potenti, che
permettono di controllare meglio tutta una serie di parametri nella fase di
rilascio di un'applicazione web, migliorando dunque la qualità e
l'affidabilità dell'applicazione finale.



         C#


      Il C# è un linguaggio di programmazione object-oriented sviluppato
da Microsoft all’interno dell’iniziativa .NET. La sintassi del C# prende
spunto da quella del Delphi, del C++, da quella di Java ed a Visual Basic
per gli strumenti di programmazione visuale e per la sua semplicità.
      Può essere definito come il linguaggio che meglio degli altri descrive
le linee guida sulle quali ogni programma .NET viene eseguito.C# è stato
creato da Microsoft specificamente per la programmazione nel framework
.NET. I suoi tipi di dati hanno una corrispondenza univoca con i tipi .NET e
molte delle sue astrazioni, come classi, interfacce, delegati ed eccezioni
sono particolarmente adatte a gestire il .NET framework.
       Come Java il C# ha i suoi package e possiamo ritrovare una serie di
classi già sviluppate per l’interazione con i vari ambienti, Front End,
Database, Xml e altri. In C# quello che in Java è chiamato package viene
chiamato namespace . Le classi sono organizzate all’interno di una serie di
namespace che raggruppano le classi con funzionalità simili; ad esempio
System.Data per l’accesso alle basi di dati, System.Web per la
comunicazione tra browser e server.


                                                                              7
2.1.2 Visual Studio


        Visual Studio è un ambiente di sviluppo integrato (IDE) sviluppato
da Microsoft che supporta attualmente diversi tipi di linguaggio, quali C,
C++, C#, F#, Visual Basic.NET, e ASP.NET permettendo la realizzazione
delle applicazioni, siti web, applicazioni web e servizi web.
       In particolare, Visual Studio è probabilmente il miglior editor per lo
sviluppo di applicazioni web in ambito Microsoft ed è cosi completo di
funzionalità che più che un editor risulta essere un vero e proprio ambiente
di sviluppo.
      La prima versione di Visual Studio .NET è stata rilascata nel 2002.
Tecnicamente è chiamato Visual Studio 7.0 e solo dopo il rilascio di Visual
Studio 2003 questa versione inizio a essere chiamata Visual Studio .NET
2002. Basato sul NET. Framework 1.0 non era possibile sviluppare
applicazioni per versioni successive del Framework.
        Nel corso degli anni Visual Studio diventa sempre più fulcro di ogni
attività legata allo sviluppo. Subendo nel tempo un’evoluzione che lo ha
portato ad includere tecnologie sempre più innovative e ad introdurre
costanti miglioramenti alle numerose funzionalità già presenti fin dalla
prima versione, come Team Foundation Server, la parte “server” di visual
studio che è molto di più di una semplice evouzione del Visual Source Safe.
       Visual Studio 2010 rispetto alla versione precedente a integrato
ulteriori migliorie per quanto riguarda la parte dedicata al web. Prima di
tutto offre un rinnovato supporto per gli ultimi standard web, come
XHTML e CSS derivando parte delle proprie funzionalità ad Expression
Web. Infine l’Intellisense è stato esteso a tutti i componenti e migliorato,
per offrire il meglio in tutte le situazioni, dal markup della pagina fino al
web.config, passando per il codice client-side(Javascript).


                                                                                8
 L’accesso ai dati ADO.NET

        ADO.NET rappresenta il sottosistema di accesso ai dati presente
all’interno del .NET Framework . Ispiratosi profondamente ad ActiveX
Data Objects(ADO), ADO.NET fornisce agli sviluppatori in ambito .NET
funzionalità simili a quelle fornite da ADO agli sviluppatori in ambito
COM(Component Object Model).
       ADO.NET fornisce uniformità di accesso sia ai DBMS(Data Base
Management System) come SQL Server e Oracle, sia a sorgenti dati
raggiungibili tramite provider OLE DB e driver ODBC.
       Tramite ADO.NET, le applicazioni sono in sono in grado di
connettersi alle sorgenti dati per recuperare, modificare e aggiornare i dati
in esse contenuti.
       Le comunicazioni con una sorgente dati e il relativo modello di
programmazione di ADO.NET prevede una serie di azioni di validità
generale, che devono essere sempre attuate, indipendentemente dal tipo di
sorgente dati. A ciascuna di queste azioni corrisponde, per ogni data
provider, una classe derivata da uno dei tipi astratti contenuti nel
System.Data.Common e implementata in base alle caratteristiche specifiche
della sorgente dati di riferimento.




                                                                                9
2.1.3 SQL: Stuctured Query Language


       SQL è un linguaggio di interrogazione per database progettato per
leggere, modificare e gestire dati memorizzati in un sistema di gestione di
basi di dati basato sul modello relazionale. Il modello entità-relazioni (E/R)
viene adoperato per analizzare le caratteristiche di una situazione,
prescindendo dagli eventi che si verificheranno. Ciò al fine di costruire un
modello concettuale di dati sentito come indipendente dalle applicazioni.
      Il modello entità – relazione si distingue per la presenza di vari
elementi che lo definiscono:
   le entità , classi/insiemi di oggetti riguardo i quali si ha interesse a
    raccogliere informazioni;
   le relazioni, legame logico tra entità;
   gli attributi, legami che si formano tra due entità;




         MICROSOFT SQL SERVER


       SQL Server è un DBMS relazionale prodotto da Microsoft. Nelle
prime versioni era utilizzato per basi di dati medio piccole, ma a partire
dalla versione 2000 è stato utilizzato anche per la gestione di basi di dati di
grandi dimensioni.
      Microsoft SQL Server usa una variante del linguaggio SQL standard
chiamato T-SQL Transact-SQL. Comunica sulla rete utilizzando un
protocollo a livello di applicazione chiamato “Tabular Data Stream”. SQL
Server supporta anche “Open Database Connectivity”(ODBC). Il servizio
di SQL Server risponde per default sulla porta 1443.

                                                                               10
2.2 RACCOLTA DEI REQUISITI


       Il prototipo di interfaccia dovrà funzionare in un ambiente Windows.
L’interfaccia verrà creata, sfruttando il framework .NET 4.0, nell’ambiente
di sviluppo Visual Studio 2010. Il linguaggio adottato sarà il C#.
     I dati raccolti saranno in un database relazionale realizzato tramite
SQL Server 2008 versione express.




                                                                             11
CAPITOLO 3
                 REALIZZAZIONE DEL PROTOTIPO
____________________________________________
3.1 PROGETTAZIONE LOGICA


         STRUTTURA DEL PROTOTIPO
       Un aspetto importante di questa fase è come strutturare la
piattaforma del prototipo. La quale verrà suddiviso in cinque interfacce :




                     Figura 1- Interfacce del prototipo


                                                                             12
1. Pagina di accesso, contiene un form di autenticazione composto da
   Username e Password. La verifica delle credenziali verrà effettuata
   usando una query sul database.


2. Pagina Insegnamenti, contiene tutti gli insegnamenti del docente
   autenticato rappresentati usando una Gridview(Griglia), e anche una
   casella in cui e possibile inserire il numero della matricola dello
   studente per visualizzare il suo piano di studi.




3. Pagina piano di studi, dov’è possibile visualizzare tutti gli
   insegnamenti della matricola usando una Gridview, e anche gli esami
   che il docente può modificarne l’esito.


4. Pagina verbalizzazione, contenente il form di verbalizzazione.




                                                                         13
 NAMESPACES

      Ogni interfaccia, sopra descritta, è stata collocata in un namespace
dedicato nei file con estensione aspx.cs . Essi sono cosi definiti:


-System.Data;
Consente di accedere alle classi che rappresentano l’architettura ADO.NET.


-System.Data.SqlClient;
       Questo namespace è il provider di dati .NET Framework di SQL
Server e descrive un insieme di classi utilizzate per accedere al database
SQL Server nello spazio gestito. Mediante l’oggetto SqlDataAdapter, è
possibile inserire dati in un oggetto Dataset residente in memoria,
utilizzabile per eseguire query e aggiornare il database.



-System.Web.UI.WebControls;
       Lo spazio dei nomi System.Web.UI.WebControls contiene classi
che consentono la creazione di controlli server Web in una pagina Web.
I controlli server Web vengono eseguiti sul server e includono controlli
form quali pulsanti e caselle di testo, nonché controlli finalizzati a scopi
specifici, ad esempio i calendari. Poiché i controlli server Web vengono
eseguiti sul server, è possibile controllare questi elementi a livello di
codice.
    Sebbene il rendering dei controlli server Web venga eseguito come
HTML, il relativo modello di oggetti non riflette necessariamente la sintassi
HTML.


                                                                               14
Lo spazio dei nomi System.Web.UI.WebControls contiene classi
che nel rendering risultano come tag HTML, ad esempio il
controllo Textbox e il controllo Listbox. Lo spazio dei nomi contiene anche
classi che non vengono visualizzate nella pagina Web dopo il rendering ma
che supportano operazioni sui dati, ad esempio le classi SqlDataSource e
ObjectDataSource.
       Altri controlli, quali Gridview e DetailsView, supportano la
visualizzazione e la modifica dei dati. La classe WebControl funge da
classe base per molte classi dello spazio dei
nomi System.Web.UI.WebControls


-System.Configuration;
Rappresenta un file di configurazione applicabile a un’applicazione, a una
risorsa o a un computer specifico. La classe utilizzata nel nostro caso è:
ConfigurationManager, utilizzata per la dichiarazione della stringa di
connessione.




                                                                             15
 ARCHITETTURA DEL DATABASE


       Una fase importante nella costruzione del database è la sua
progettazione che è stata effettuata usando lo schema entità-relazione
(E-R).




                           Figura 2- Schema E-R




                                                                         16
Le entità presenti nello schema (E-R) sono:
       Dati studenti, rappresenta tutti i dati anagrafici dello studente come
nome, cognome, data di nascita, e-mail. Come chiave primaria di questa
entità è il numero della matricola.
      Corso di studi, composta dal codice del corso che è anche la chiave
primaria e il suo nome.
      Dati docenti, fanno parte gli attributi nome e cognome docente e
come identificativo ha il codice docente.
      Anno accademico, rappresenta l’anno in cui lo studente ha
frequentato l’insegnamento.
      La relazione con maggior interesse nel nostro caso è Insegnamenti ,
dove vengono assegnati al docente i rispettivi insegnamenti.
      La tabella principale su cui vengono effettuate maggior parte delle
operazioni è la tabella piano di studi, composta dai seguenti attributi:




                 Figura 3-L’entità Piano Di Studi e i suoi attributi


       Questa entità verrà rappresentata nel interfaccia Piano Di Studi dove
sarà possibile modificare l’esito di un insegnamento non verbalizzato
appartenente al docente che ha effettuato l’accesso.


                                                                                17
 TEMI, STILI E SKIN


      Una pagina web è formata fondamentalmente da due elementi : i
contenuti veri e propri e la formattazione, ovvero l’aspetto con cui i
contenuti sono mostrati al utente.




                      Figura 4-Composizione del file Style


         Un tema (o theme) definisce un’insieme di stili o attributi grafici e li
associa ai vari elementi e controlli utilizzati. Ciascun tema è caratterizzato
da un nome che lo identifica univocamente ed è composto da un insieme di
file : i fogli di stile CSS, contenenti gli stili dei tag, gli skin dei controlli e le
immagini.
       Per utilizzare i fogli di stile non è obbligatorio definire un tema che li
contenga. I file CSS cosi come le immagini, sono elementi che possono
essere aggiunti a un progetto web senza necessariamente dover definire un
tema.



                                                                                    18
Una utilissima funzione dei CSS è la possibilità di essere applicati
solo sui dispositivi medi specificati dall’autore. La sintassi HTML utilizzata
è:




                 Figura 5-Sintassi HTML del foglio di stile


      Come si può vedere ad ogni interfaccia è associata il fogli di stile
StyleSheet.css contenente anche le immagini contenute nel file Style.




                                                                             19
3.2 PROGETTAZIONE FISICA


   REALIZZAZIONE DEL DATABASE
      Come precedentemente evidenziato, il database sarà costituito dalle
seguenti tabelle:

     Stud_Data




                   Figura 6- Proprietà della tabella Stud_Data


-Matricola, definita come chiave primaria e non può essere ammessa il
valore NULL in quanto chiave primaria della tabella.


-Nome, sarà definito di tipo nchar(30). Esso conterrà solamente il nome
dello studente e non può essere ammesso il valore NULL.


-Cognome, sarà definito di tipo nchar(30). Esso conterrà solamente il
cognome dello studente e non può essere ammesso il valore NULL.


-[E-mail], sarà definito di tipo nvarchar(50), contenente l’e-mail dello
studente. L’inserimento del quale può essere opzionale .
                                                                            20
Doc_Data




                Figura 7- Proprietà della tabella Doc_Data


-Codice_Doc, definita come chiave primaria e non potrà essere ammesso il
valore NULL in quanto chiave primaria della tabella.
-Nome, contenente il nome del docente è non potrà essere ammesso il
valore NULL.
-Cognome, contenente il cognome del docente è non potrà essere ammesso
il valore NULL.


     Insegnamenti




                Figura 8- Proprietà della tabella Insegnamenti




                                                                       21
-Codice_Insegnamento, rappresenta la chiave primaria della tabella e
identifica l’insegnamento associato al’docente il quale non può ammettere
valore NULL.
-Nome, definisce il nome dell’insegnamento associato al docente.
-ID_Doc, rappresenta il codice identificativo del docente che sarà una
chiave esterna e non può assumere valore NULL.


     A.A




                   Figura 9- Proprietà della tabella A.A


     -ID, sarà di tipo int e non può assumere valore NULL essendo chiave
     primaria della tabella.
     -Anno Accademico, sarà di tipo int e rappresenta l’anno che lo
     studente ha frequentato il corso.



     Corso_di_studio




               Figura 10- Proprietà della tabella Corso_di_studio




                                                                            22
-Codice_corso, sarà definita di tipo int e non può assumere valore
     NULL essendo la chiave primaria della tabella.
     -Nome_corso, rappresenta il nome del corso.



     Piano Di Studi




             Figura 11- Proprietà della tabella Piano Di Studi


-Matricola, Corso_ID, Codice_Insegnamento e Anno di Frequenza saranno
chiavi esterne perché sarà applicata l’integrità referenziale e non potranno
assumere valore NULL.
-Anno di Frequenza, sarà definito di tipo int e può essere ammesso il valore
NULL nell’caso lo studente non abbia frequentato ancora l’insegnamento .
-Data Esame, sarà definito di tipo date e può essere ammesso il valore
NULL nell’caso lo studente non abbia ancora sostenuto l’esame.
-Voto, sarà definito di tipo nvarchar(10) e può essere ammesso il valore
NULL nell’caso lo studente non abbia ancora sostenuto l’esame.




                                                                           23
VERBALE




               Figura 12- Proprietà della tabella VERBALE


-Matricola, Codice_Insegnamento e Nome_Insegnamento avranno valori
predefiniti una volta arrivati nell’interfaccia Verbalizzazione.aspx.
-Data_esame,Voto, Note e Anno avranno valori che saranno assegnati
durante la compilazione del modulo nell’interfaccia Verbalizzazioni.aspx.




                                                                            24
Infine vengono effettuate le varie relazioni fra le tabelle, dove la
tabella con più chiavi esterne sarà Piano Di Studi.




                  Figura 13- Diagramma del database SQL




                                                                              25
 INTERFACCIA E FUNZIONALITÀ


 Avviato il prototipo ci si troverà davanti alla pagina d’accesso:




                   Figura 14- Pagina di accesso


    La pagina d’accesso e composta da due textbox o caselle di testo e
un pulsante che ha il compito di autenticare le credenziali del utente.




                                                                      26
-Convalida dell’input: i Validator Control


       Sono i controlli più utili, proprio perché rendono automatica la
validazione del contenuto di un campo. Nel caso in cui l’utente non
inserisce le credenziali o ne dimentica una e preme il pulsante Accedi ,
allora viene avviato il controllo RequiredFieldValidator che verifica che sia
presente del teso nella casella.




            Figura 15- RequiredFieldValidator in codice HTML


      Nella finestra proprietà del RequiredFieldValidator è stato
impostato il campo assegnato al validator control e il messaggio di errore
che esce quando ciò si verifica.
       Nella fase di autenticazione viene fatto un semplice controllo nella
tabella Dati_Docenti, dove il nome utente corrisponde al cognome del
docente e il password al identificatore della tabella. Tutto questo perché
durante l’autenticazione reale si hanno misure di sicurezza più rigide e
complesse.



-Connessione a una sorgente dati
       Ciascun data provider ADO.NET implementa la classe astratta
DbConnection in base alle caratteristiche peculiari della sorgente dati di
riferimento. Questa classe include alcuni membri di utilità generale e, in
particolare, il metodo di apertura Open, il metodo di chiusura Close e la

                                                                              27
proprietà ConnectionString, che rappresenta la stringa di contenente le
informazioni di configurazione della connessione. Nel nostro caso nella
pagina Accesso.aspx.cs la connessione con il database SQL è stata
effettuata dentro il metodo bool check() .




       Inizialmente dopo aver aperto una nuova connessione SQL e
definendo dentro il metodo check() la stringa di connessione è stato usato il
metodo Open() per aprire la connessione con il database SQL. Dopodiché è
stato utilizzato l’oggetto DataTable e DataSet, dove DataTable rappresenta
una tabella di dati in memoria e DataSet la cache di dati in memoria.


       Il DataSet include le collezioni Tables e Relations, che
rappresentano l’insieme delle tabelle e delle relazioni in esso contenute.
Ogni DataTable include, a sua volta le collezioni Rows, Columns e

                                                                             28
Constraits, che rappresentano l’insieme delle righe, delle colonne e dei
vincoli.
       Mediante queste collezioni dove nel nostro caso è stato usato Rows è
possibile accedere ai dati contenuti in un Dataset o in una DataTable,
semplicemente specificando la “posizione” dell’elemento ricercato
nell’ambito della struttura interna dell’oggetto contenitore. Per riempire il
container di dati DataTable è stata usata la classe SqlDataAdapter
contenente anche il query SQL, specificando in questo modo la tabella dove
il metodo check() controllerà le credenziali. Se nel caso le credenziali sono
quelle giuste il metodo ritorna true se no ritorna false.
        Quando si preme il pulsante Accedi, viene controllato se il metodo
check() è vero e l’utente viene reindirizzato nella pagina Insegnamenti se
no verrà visualizzato un messaggio di errore. È stata usata la proprietà
session per creare una nuova sessione Codice_ID che servirà nelle query
fatte in seguito.




                                                                             29
 MOSTRARE DATI IN GRIGLIA: GRIDVIEW

       Per mostrare i dati contenuti nel database SQL è stata utilizzato il
controllo Gridview che visualizza i valori di una origine dati in una tabella
in cui ogni colonna rappresenta un campo e ogni riga rappresenta un record.
Il controllo Gridview consente la selezione, l’ordinamento e la modifica
degli elementi.
      La connessione della nostra Gridview con il database SQL è stata fatta
selezionando la stringa di connessione dal design del Gridview.




       Figura 16- Connessione della Gridview con il database SQL




                                                                           30
La tabella del database collegata con il Gridview è la tabella
nominata Insegnamenti. Lo scopo è di visualizzare solo le unità didattiche
relative al docente, ecco perché dopo aver selezionato i record da
visualizzare nella Gridview è stata inserita una query. La query seleziona
solo i record dove il codice docente associato a ciascun insegnamento è
uguale alla sessione Codice_ID. Quindi il query seleziona solo i record
appartenenti al docente.




      Figura 17- Il codice SQL all’interno del Gridview nella pagina
                              Insegnamenti


      Oltre alla visualizzazione delle unità didattiche appartenenti al
docente, nella pagina Insegnamenti viene visualizzato anche il nome e il
cognome del docente che ha effettuato l’accesso. Tutto questo è stato fatto
aggiungendo delle etichette chiamate Label e modificando il loro valore in

                                                                             31
base alla sessione che viene creata. Espresso in code-behind nella pagina
Insegnamenti.aspx.cs si ha:




        Dal database SQL è stato scelto la tabella Doc_data che rappresenta i
dati relativi al docente come nome, cognome e il codice che lo identifica. In
questo modo solo quando l’identificatore del docente sarà uguale alla
sessione Codice_ID, la prima etichetta rappresenterà il nome e la seconda il
cognome del docente.
       Il docente potrà selezionare uno dei insegnamenti corrispondenti e
vedere le verbalizzazioni effettuate da parte sua solo per l’insegnamento
selezionato nella pagina Verbalizzati.aspx . Anche in questo caso i dati
saranno visibili usando la Gridview, dove durante la selezione
dell’insegnamento viene creata una sessione che lo identifica.

                                                                            32
Nella pagina Insegnamenti il docente dovrà essere in grado di
inserire la matricola dello studente interessato in una casella di testo per
visualizzare il piano di studi appartenente allo studente. In questo modo se
la matricola è inserita correttamente e si trova nel database SQL l’utente
sarà reindirizzato nella pagina successiva se no viene mostrato un
messaggio di errore. Per controllare se la matricola si trova nel database
SQL è stato usata il metodo check_matricola():




                                                                           33
Il metodo check_matricola() ritorna true se la matricola si trova ne
database SQL e se no ritorna false. Accanto alla casella di testo è stato
aggiunto un pulsante nominato Cerca. Il pulsante quando viene azionato
controlla se il metodo check_matricola() è vero e ha il compito di
reindirizzare l’utente nella interfaccia Piano Di Studi, se non è vero verrà
mostrato un messaggio di errore.




                                                                               34
Nella pagina Piano Di Studi.aspx vengono visualizzati solo gli
insegnamenti corrispondenti al numero di matricola inserito
precedentemente. Il docente ha la possibilità di modificare l’esito solo per
gli insegnamenti appartenenti a lui e che non sono stati verbalizzati in
passato.




                          Figura 18-Piano di studi
        È stato inserito un campo Templatefield il quale rappresenta un
campo in cui viene visualizzato il contenuto personalizzato nella
Gridview.All’interno del Templatefield è stato inserito un pulsante che
viene visualizzato solo quando è verificata la condizione. Per far ciò è stato
usato l’evento RowDataBound.




                                                                               35
RowDataBound viene generato quando una riga di dati,
rappresentata da un oggetto GridviewRow, viene associata a dati nel
controllo Gridview.
       Una volta premuto il pulsante il docente viene reindirizzato nella
pagina Verbalizzazione.aspx. Durante l’operazione dalla Gridview viene
creata una sessione appartenente al codice del insegnamento.




                                                                            36
 VERBALIZZAZIONE


      La verbalizzazione dell’esame da parte del docente viene effettuata
compilando il modulo nella pagina Verbalizzazione.aspx:




                    Figura 19- Pagina Verbalizzazione
       La pagina è composta da tre caselle di testo e quattro dropdownlist,
che rappresentano dei controlli che gli consentono al docente di selezionare
un singolo elemento da un elenco in discesa.




                                                                            37
Dopo aver aperto una connessione è stato usato la classe SqlComand
per l’inserimento degli dati nel database.




        Tutti i dati inseriti nella pagina Verbalizzazione.aspx vengono
inseriti nella tabella VERBALE. In questo modo, il docente dopo aver
compilato il modulo e dopo aver premuto il pulsante “Salva” non può più
modificare l’esito del esame corrispondente, perché è appena stato
verbalizzato.




                                                                          38
CAPITOLO 4
                                                       CONCLUSIONI
____________________________________________

       È possibile affermare, che i requisiti e le specifiche fissati all’inizio
del progetto sono stati rispettati e gli obbiettivi prefissati sono stati
raggiunti.
       Per quanto riguarda invece il lavoro svolto, gli elementi che hanno
richiesto un maggiore attenzione e tempo sono state la fase di progettazione
iniziale della struttura del prototipo e la progettazione fisica.
       Il progetto è stato realizzato nello stato di prototipo. Nonostante ciò
l’architettura con il quale è stato realizzato, conferisce una struttura solida
e la possibilità di ulteriori sviluppi.
       Nel complesso del lavoro svolto mi ritengo soddisfatto dei risultati
ottenuti e di tutto ciò che ne è derivato.




                                                                               39
APPENDICE A
                                      ABBREVAZIONI USATE
____________________________________________________________


ASP          Active Server Pages
IDE          Integrated Development Environment
CSS          Cascading Style Sheets
ADO          Active Data Objects
SQL          Structured Query Language



                                                APPENDICE B
                               ELENCO DELLE IMMAGINI
____________________________________________________________


Figura 1- Interfacce del prototipo 12
Figura 2- Schema E-R 16
Figura 3-L’entità Piano Di Studi e i suoi attributi 17

                                                           40
Figura 4-Composizione del file Style 18
Figura 5-Sintassi HTML del foglio di stile 19
Figura 6- Proprietà della tabella Stud_Data 20
Figura 7- Proprietà della tabella Doc_Data 21
Figura 8- Proprietà della tabella Insegnamenti 21
Figura 9- Proprietà della tabella A.A 22
Figura 10- Proprietà della tabella Corso_di_studio 22
Figura 11- Proprietà della tabella Piano Di Studi 23
Figura 12- Proprietà della tabella VERBALE 24
Figura 13- Diagramma del database SQL 25
Figura 14- Pagina di accesso 26
Figura 15- RequiredFieldValidator in codice HTML 27
Figura 16- Connessione della Gridview con il database SQL 30
Figura 17- Il codice SQL all’interno del Gridview nella pagina
Insegnamenti 31
Figura 18-Piano di studi 35
Figura 19- Pagina Verbalizzazione 37




                                                                 41
APPENDICE C
                                                 BIBLIOGRAFIA
____________________________________________________________


1. http://www.microsoft.com/downloads/it-
it/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7
NET.Framework 4.0.
2. http://it.wikipedia.org/wiki/C_sharp C#
3. http://it.wikipedia.org/wiki/Microsoft_Visual_Studio Visual Studio 2010
4. http://msdn.microsoft.com/it-it/library/e80y5yhx(v=vs.80).aspx
ADO.NET.
5. http://msdn.microsoft.com/it-
it/library/system.web.ui.webcontrols.gridview(v=vs.80).aspx GRIDVIEW.
6. http://msdn.microsoft.com/en-us/library/aa720677(v=vs.71).aspx
I validator control.
7. http://msdn.microsoft.com/it-
it/library/system.web.ui.webcontrols.gridview.rowdatabound(v=vs.80).aspx
l’evento RowDataBound.




                                                                         42

More Related Content

Viewers also liked

prudential financial 2Q07 Quarterly Financial Supplement
prudential financial 2Q07 Quarterly Financial Supplementprudential financial 2Q07 Quarterly Financial Supplement
prudential financial 2Q07 Quarterly Financial Supplementfinance8
 
Mercati € Mercanti _ numero 32
Mercati € Mercanti _ numero 32Mercati € Mercanti _ numero 32
Mercati € Mercanti _ numero 32Marcello Agnello
 
reliance steel & aluminum Q3_2007_10Q
reliance steel & aluminum  Q3_2007_10Qreliance steel & aluminum  Q3_2007_10Q
reliance steel & aluminum Q3_2007_10Qfinance32
 
tollbrothers 10-Q_jan_2002
 tollbrothers   10-Q_jan_2002 tollbrothers   10-Q_jan_2002
tollbrothers 10-Q_jan_2002finance50
 

Viewers also liked (6)

Buying at auction fact sheet
Buying at auction   fact sheetBuying at auction   fact sheet
Buying at auction fact sheet
 
Real estate market report magnolia 77354 december 2013
Real estate market report magnolia 77354 december 2013Real estate market report magnolia 77354 december 2013
Real estate market report magnolia 77354 december 2013
 
prudential financial 2Q07 Quarterly Financial Supplement
prudential financial 2Q07 Quarterly Financial Supplementprudential financial 2Q07 Quarterly Financial Supplement
prudential financial 2Q07 Quarterly Financial Supplement
 
Mercati € Mercanti _ numero 32
Mercati € Mercanti _ numero 32Mercati € Mercanti _ numero 32
Mercati € Mercanti _ numero 32
 
reliance steel & aluminum Q3_2007_10Q
reliance steel & aluminum  Q3_2007_10Qreliance steel & aluminum  Q3_2007_10Q
reliance steel & aluminum Q3_2007_10Q
 
tollbrothers 10-Q_jan_2002
 tollbrothers   10-Q_jan_2002 tollbrothers   10-Q_jan_2002
tollbrothers 10-Q_jan_2002
 

Similar to Sviluppo di un prototipo di interfaccia per la verbalizzazione degli esami online

Presentazione Sviluppo di un prototipo di interfaccia
Presentazione Sviluppo di un prototipo di interfacciaPresentazione Sviluppo di un prototipo di interfaccia
Presentazione Sviluppo di un prototipo di interfacciaLeD87
 
Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Venturaguest335584
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1dotnetcode
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsMarcello Teodori
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...artemedea
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
 
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...guest86388a
 
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...guest86388a
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide SitoDavide Sito
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsIgor Antonacci
 
Laboratorio internet 6: Piano di qualità
Laboratorio internet 6: Piano di qualitàLaboratorio internet 6: Piano di qualità
Laboratorio internet 6: Piano di qualitàRoberto Polillo
 
Framework di supporto allo sviluppo di applicazioni Web
Framework di supporto allo sviluppo di applicazioni WebFramework di supporto allo sviluppo di applicazioni Web
Framework di supporto allo sviluppo di applicazioni WebDavide Bellettini
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20minFabrizio Straccia
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 
Sviluppare applicazioni per la piattaforma java EE - Scheda corso LEN
Sviluppare applicazioni per la piattaforma java EE - Scheda corso LENSviluppare applicazioni per la piattaforma java EE - Scheda corso LEN
Sviluppare applicazioni per la piattaforma java EE - Scheda corso LENLEN Learning Education Network
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Paradisi63
 

Similar to Sviluppo di un prototipo di interfaccia per la verbalizzazione degli esami online (20)

Presentazione Sviluppo di un prototipo di interfaccia
Presentazione Sviluppo di un prototipo di interfacciaPresentazione Sviluppo di un prototipo di interfaccia
Presentazione Sviluppo di un prototipo di interfaccia
 
Tesi Marco Ventura
Tesi Marco VenturaTesi Marco Ventura
Tesi Marco Ventura
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 
Struttin' on, novità in casa Struts
Struttin' on, novità in casa StrutsStruttin' on, novità in casa Struts
Struttin' on, novità in casa Struts
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
 
S354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.xS354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.x
 
Tesi di Laurea
Tesi di LaureaTesi di Laurea
Tesi di Laurea
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio Online
 
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
 
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
Cecutti Federico - Progetto e sviluppo di un'applicazione domotica per telefo...
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide Sito
 
Machine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devopsMachine learning models continuous deployment on azure using devops
Machine learning models continuous deployment on azure using devops
 
Laboratorio internet 6: Piano di qualità
Laboratorio internet 6: Piano di qualitàLaboratorio internet 6: Piano di qualità
Laboratorio internet 6: Piano di qualità
 
Framework di supporto allo sviluppo di applicazioni Web
Framework di supporto allo sviluppo di applicazioni WebFramework di supporto allo sviluppo di applicazioni Web
Framework di supporto allo sviluppo di applicazioni Web
 
Presentazione review it_20min
Presentazione review it_20minPresentazione review it_20min
Presentazione review it_20min
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
Sviluppare applicazioni per la piattaforma java EE - Scheda corso LEN
Sviluppare applicazioni per la piattaforma java EE - Scheda corso LENSviluppare applicazioni per la piattaforma java EE - Scheda corso LEN
Sviluppare applicazioni per la piattaforma java EE - Scheda corso LEN
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014
 

Sviluppo di un prototipo di interfaccia per la verbalizzazione degli esami online

  • 1. Università Degli Studi Di Trieste Facoltà Di Ingegneria Corso Di Laurea Triennale In Ingegneria Elettronica Curriculum Gestionale Sviluppo di Un Prototipo di Interfaccia per La Verbalizzazione di Esami Universitari Relatore: Prof. Maurizio Fermeglia Laureando: Bledar Qosja Anno Accademico 2010-2011 1
  • 2. SOMMARIO Capitolo 1 INTRODUZIONE 4 1.1 PREFAZIONE 4 Capitolo 2 ANALISI 6 2.1 STUDIO DELLE TECNOLOGIE 4 2.1.1 .Net Framework 4.0 6  C# 7 2.1.2 Visual Studio 2010 8  L’accesso ai dati ADO.NET 9 2.1.3 SQL: Structured Query Language 10  Microsoft SQL Server 10 2.2 RACCOLTA DEI REQUISITI 11 Capitolo 3 REALIZZAZIONE DEL PROTOTIPO 12 3.1 PROGETTAZIONE LOGICA 12  Struttura del prototipo 12  Namespaces 13  Architettura del database 16  Temi, stili e skin 18 2
  • 3. 3.2 PROGETTAZIONE FISICA 20  Realizzazione del database 20  Interfaccia e funzionalità 26 -Convalida dell’input: I validator control 27 -Connessione a una sorgente dati 28  Mostrare dati in griglia: Gridview 30  Verbalizzazione 37 Capitolo 4 CONCLUSIONI 40 Appendice A ABBREVAZIONI USATE 41 Appendice B ELENCO DELLE IMMAGINI 41 Appendice C BIBLIOGRAFIA 42 3
  • 4. CAPITOLO 1 INTRODUZIONE ____________________________________________ 1.1 Prefazione Lo scopo della tesi è creare un prototipo di interfaccia web per la verbalizzazione degli esami Universitari, aiutando in questo modo il docente a verbalizzare l’esame di un apposito studente senza avere il bisogno di creare un appello online. Il docente può accedere utilizzando le proprie credenziali fornite dall’Università per verbalizzare l’esame di un apposito studente. Per far ciò, il prototipo deve essere in grado di:  Visualizzare solo gli insegnamenti appartenenti al docente che ha effettuato l’accesso.  Selezionare uno degli insegnamenti appartenenti al docente e visualizzare gli studenti che hanno verbalizzato l’esame del insegnamento selezionato.  Avere una casella di testo dove è possibile cercare il piano di studi dello studente inserendo il suo numero di matricola. 4
  • 5.  Visualizzare il piano di studi appartenente allo studente con tutti gli insegnamenti della sua carriera Universitaria .  Avere la possibilità di verbalizzare l’esito solo per gli insegnamenti appartenenti al docente che non sono stati verbalizzati in passato. Per conseguire tale obiettivo è necessario passare attraverso diverse fasi di lavoro: studio delle tecnologie raccolta dei requisiti progettazione realizzazione del prototipo Tali punti vengono sviluppati nei capitoli seguenti inerenti l’analisi e la realizzazione. 5
  • 6. CAPITOLO 2 STUDIO DELLE TECNOLOGIE ____________________________________________ 2.1.1 .NET Framework 4.0 Il framework è una struttura di supporto su cui un software può essere organizzato e progettato. Alla base di un framework c’è sempre una serie di librerie di codice utilizzabili con uno o più linguaggi di programmazione. .NET creata dalla Microsoft è una versatile piattaforma di sviluppo software basata sulla tecnologia di programmazione ad oggetti. Realizzata come contrapposizione proprietaria al linguaggio Java, ha un ruolo strategico per la Microsoft come piattaforma di sviluppo per applicazioni desktop e server per le architetture client/server ,internet ed intranet. La prima Versione di .NET Framework è stata rilasciata nel 2002. La sua caratteristica è di essere indipendente dalla versione operativa di Windows su cui è installata, e di includere molte funzionalità progettate espressamente in modo da integrarsi in un ambiente internet , e garantire il massimo grado di sicurezza ed integrità dei dati. L’innovazione migliore è stata quella riguardante le ASP (Active Server Pages), che in linea con le filosofie di marketing, sono diventate ASP.NET 4.0 . 6
  • 7. A differenza di ASP, che implementa motori di scripting, con codice interpretato in fase di visualizzazione, ASP.NET supporta dei veri linguaggi di programmazione e codice completamente compilato . In applicazioni molto complesse, a parità di funzionalità, ASP.NET da' il meglio di sé, anche grazie a meccanismi di caching molto avanzati. Inoltre, ASP.NET ha strumenti di debugging e tracing molto potenti, che permettono di controllare meglio tutta una serie di parametri nella fase di rilascio di un'applicazione web, migliorando dunque la qualità e l'affidabilità dell'applicazione finale.  C# Il C# è un linguaggio di programmazione object-oriented sviluppato da Microsoft all’interno dell’iniziativa .NET. La sintassi del C# prende spunto da quella del Delphi, del C++, da quella di Java ed a Visual Basic per gli strumenti di programmazione visuale e per la sua semplicità. Può essere definito come il linguaggio che meglio degli altri descrive le linee guida sulle quali ogni programma .NET viene eseguito.C# è stato creato da Microsoft specificamente per la programmazione nel framework .NET. I suoi tipi di dati hanno una corrispondenza univoca con i tipi .NET e molte delle sue astrazioni, come classi, interfacce, delegati ed eccezioni sono particolarmente adatte a gestire il .NET framework. Come Java il C# ha i suoi package e possiamo ritrovare una serie di classi già sviluppate per l’interazione con i vari ambienti, Front End, Database, Xml e altri. In C# quello che in Java è chiamato package viene chiamato namespace . Le classi sono organizzate all’interno di una serie di namespace che raggruppano le classi con funzionalità simili; ad esempio System.Data per l’accesso alle basi di dati, System.Web per la comunicazione tra browser e server. 7
  • 8. 2.1.2 Visual Studio Visual Studio è un ambiente di sviluppo integrato (IDE) sviluppato da Microsoft che supporta attualmente diversi tipi di linguaggio, quali C, C++, C#, F#, Visual Basic.NET, e ASP.NET permettendo la realizzazione delle applicazioni, siti web, applicazioni web e servizi web. In particolare, Visual Studio è probabilmente il miglior editor per lo sviluppo di applicazioni web in ambito Microsoft ed è cosi completo di funzionalità che più che un editor risulta essere un vero e proprio ambiente di sviluppo. La prima versione di Visual Studio .NET è stata rilascata nel 2002. Tecnicamente è chiamato Visual Studio 7.0 e solo dopo il rilascio di Visual Studio 2003 questa versione inizio a essere chiamata Visual Studio .NET 2002. Basato sul NET. Framework 1.0 non era possibile sviluppare applicazioni per versioni successive del Framework. Nel corso degli anni Visual Studio diventa sempre più fulcro di ogni attività legata allo sviluppo. Subendo nel tempo un’evoluzione che lo ha portato ad includere tecnologie sempre più innovative e ad introdurre costanti miglioramenti alle numerose funzionalità già presenti fin dalla prima versione, come Team Foundation Server, la parte “server” di visual studio che è molto di più di una semplice evouzione del Visual Source Safe. Visual Studio 2010 rispetto alla versione precedente a integrato ulteriori migliorie per quanto riguarda la parte dedicata al web. Prima di tutto offre un rinnovato supporto per gli ultimi standard web, come XHTML e CSS derivando parte delle proprie funzionalità ad Expression Web. Infine l’Intellisense è stato esteso a tutti i componenti e migliorato, per offrire il meglio in tutte le situazioni, dal markup della pagina fino al web.config, passando per il codice client-side(Javascript). 8
  • 9.  L’accesso ai dati ADO.NET ADO.NET rappresenta il sottosistema di accesso ai dati presente all’interno del .NET Framework . Ispiratosi profondamente ad ActiveX Data Objects(ADO), ADO.NET fornisce agli sviluppatori in ambito .NET funzionalità simili a quelle fornite da ADO agli sviluppatori in ambito COM(Component Object Model). ADO.NET fornisce uniformità di accesso sia ai DBMS(Data Base Management System) come SQL Server e Oracle, sia a sorgenti dati raggiungibili tramite provider OLE DB e driver ODBC. Tramite ADO.NET, le applicazioni sono in sono in grado di connettersi alle sorgenti dati per recuperare, modificare e aggiornare i dati in esse contenuti. Le comunicazioni con una sorgente dati e il relativo modello di programmazione di ADO.NET prevede una serie di azioni di validità generale, che devono essere sempre attuate, indipendentemente dal tipo di sorgente dati. A ciascuna di queste azioni corrisponde, per ogni data provider, una classe derivata da uno dei tipi astratti contenuti nel System.Data.Common e implementata in base alle caratteristiche specifiche della sorgente dati di riferimento. 9
  • 10. 2.1.3 SQL: Stuctured Query Language SQL è un linguaggio di interrogazione per database progettato per leggere, modificare e gestire dati memorizzati in un sistema di gestione di basi di dati basato sul modello relazionale. Il modello entità-relazioni (E/R) viene adoperato per analizzare le caratteristiche di una situazione, prescindendo dagli eventi che si verificheranno. Ciò al fine di costruire un modello concettuale di dati sentito come indipendente dalle applicazioni. Il modello entità – relazione si distingue per la presenza di vari elementi che lo definiscono:  le entità , classi/insiemi di oggetti riguardo i quali si ha interesse a raccogliere informazioni;  le relazioni, legame logico tra entità;  gli attributi, legami che si formano tra due entità;  MICROSOFT SQL SERVER SQL Server è un DBMS relazionale prodotto da Microsoft. Nelle prime versioni era utilizzato per basi di dati medio piccole, ma a partire dalla versione 2000 è stato utilizzato anche per la gestione di basi di dati di grandi dimensioni. Microsoft SQL Server usa una variante del linguaggio SQL standard chiamato T-SQL Transact-SQL. Comunica sulla rete utilizzando un protocollo a livello di applicazione chiamato “Tabular Data Stream”. SQL Server supporta anche “Open Database Connectivity”(ODBC). Il servizio di SQL Server risponde per default sulla porta 1443. 10
  • 11. 2.2 RACCOLTA DEI REQUISITI Il prototipo di interfaccia dovrà funzionare in un ambiente Windows. L’interfaccia verrà creata, sfruttando il framework .NET 4.0, nell’ambiente di sviluppo Visual Studio 2010. Il linguaggio adottato sarà il C#. I dati raccolti saranno in un database relazionale realizzato tramite SQL Server 2008 versione express. 11
  • 12. CAPITOLO 3 REALIZZAZIONE DEL PROTOTIPO ____________________________________________ 3.1 PROGETTAZIONE LOGICA  STRUTTURA DEL PROTOTIPO Un aspetto importante di questa fase è come strutturare la piattaforma del prototipo. La quale verrà suddiviso in cinque interfacce : Figura 1- Interfacce del prototipo 12
  • 13. 1. Pagina di accesso, contiene un form di autenticazione composto da Username e Password. La verifica delle credenziali verrà effettuata usando una query sul database. 2. Pagina Insegnamenti, contiene tutti gli insegnamenti del docente autenticato rappresentati usando una Gridview(Griglia), e anche una casella in cui e possibile inserire il numero della matricola dello studente per visualizzare il suo piano di studi. 3. Pagina piano di studi, dov’è possibile visualizzare tutti gli insegnamenti della matricola usando una Gridview, e anche gli esami che il docente può modificarne l’esito. 4. Pagina verbalizzazione, contenente il form di verbalizzazione. 13
  • 14.  NAMESPACES Ogni interfaccia, sopra descritta, è stata collocata in un namespace dedicato nei file con estensione aspx.cs . Essi sono cosi definiti: -System.Data; Consente di accedere alle classi che rappresentano l’architettura ADO.NET. -System.Data.SqlClient; Questo namespace è il provider di dati .NET Framework di SQL Server e descrive un insieme di classi utilizzate per accedere al database SQL Server nello spazio gestito. Mediante l’oggetto SqlDataAdapter, è possibile inserire dati in un oggetto Dataset residente in memoria, utilizzabile per eseguire query e aggiornare il database. -System.Web.UI.WebControls; Lo spazio dei nomi System.Web.UI.WebControls contiene classi che consentono la creazione di controlli server Web in una pagina Web. I controlli server Web vengono eseguiti sul server e includono controlli form quali pulsanti e caselle di testo, nonché controlli finalizzati a scopi specifici, ad esempio i calendari. Poiché i controlli server Web vengono eseguiti sul server, è possibile controllare questi elementi a livello di codice. Sebbene il rendering dei controlli server Web venga eseguito come HTML, il relativo modello di oggetti non riflette necessariamente la sintassi HTML. 14
  • 15. Lo spazio dei nomi System.Web.UI.WebControls contiene classi che nel rendering risultano come tag HTML, ad esempio il controllo Textbox e il controllo Listbox. Lo spazio dei nomi contiene anche classi che non vengono visualizzate nella pagina Web dopo il rendering ma che supportano operazioni sui dati, ad esempio le classi SqlDataSource e ObjectDataSource. Altri controlli, quali Gridview e DetailsView, supportano la visualizzazione e la modifica dei dati. La classe WebControl funge da classe base per molte classi dello spazio dei nomi System.Web.UI.WebControls -System.Configuration; Rappresenta un file di configurazione applicabile a un’applicazione, a una risorsa o a un computer specifico. La classe utilizzata nel nostro caso è: ConfigurationManager, utilizzata per la dichiarazione della stringa di connessione. 15
  • 16.  ARCHITETTURA DEL DATABASE Una fase importante nella costruzione del database è la sua progettazione che è stata effettuata usando lo schema entità-relazione (E-R). Figura 2- Schema E-R 16
  • 17. Le entità presenti nello schema (E-R) sono: Dati studenti, rappresenta tutti i dati anagrafici dello studente come nome, cognome, data di nascita, e-mail. Come chiave primaria di questa entità è il numero della matricola. Corso di studi, composta dal codice del corso che è anche la chiave primaria e il suo nome. Dati docenti, fanno parte gli attributi nome e cognome docente e come identificativo ha il codice docente. Anno accademico, rappresenta l’anno in cui lo studente ha frequentato l’insegnamento. La relazione con maggior interesse nel nostro caso è Insegnamenti , dove vengono assegnati al docente i rispettivi insegnamenti. La tabella principale su cui vengono effettuate maggior parte delle operazioni è la tabella piano di studi, composta dai seguenti attributi: Figura 3-L’entità Piano Di Studi e i suoi attributi Questa entità verrà rappresentata nel interfaccia Piano Di Studi dove sarà possibile modificare l’esito di un insegnamento non verbalizzato appartenente al docente che ha effettuato l’accesso. 17
  • 18.  TEMI, STILI E SKIN Una pagina web è formata fondamentalmente da due elementi : i contenuti veri e propri e la formattazione, ovvero l’aspetto con cui i contenuti sono mostrati al utente. Figura 4-Composizione del file Style Un tema (o theme) definisce un’insieme di stili o attributi grafici e li associa ai vari elementi e controlli utilizzati. Ciascun tema è caratterizzato da un nome che lo identifica univocamente ed è composto da un insieme di file : i fogli di stile CSS, contenenti gli stili dei tag, gli skin dei controlli e le immagini. Per utilizzare i fogli di stile non è obbligatorio definire un tema che li contenga. I file CSS cosi come le immagini, sono elementi che possono essere aggiunti a un progetto web senza necessariamente dover definire un tema. 18
  • 19. Una utilissima funzione dei CSS è la possibilità di essere applicati solo sui dispositivi medi specificati dall’autore. La sintassi HTML utilizzata è: Figura 5-Sintassi HTML del foglio di stile Come si può vedere ad ogni interfaccia è associata il fogli di stile StyleSheet.css contenente anche le immagini contenute nel file Style. 19
  • 20. 3.2 PROGETTAZIONE FISICA  REALIZZAZIONE DEL DATABASE Come precedentemente evidenziato, il database sarà costituito dalle seguenti tabelle: Stud_Data Figura 6- Proprietà della tabella Stud_Data -Matricola, definita come chiave primaria e non può essere ammessa il valore NULL in quanto chiave primaria della tabella. -Nome, sarà definito di tipo nchar(30). Esso conterrà solamente il nome dello studente e non può essere ammesso il valore NULL. -Cognome, sarà definito di tipo nchar(30). Esso conterrà solamente il cognome dello studente e non può essere ammesso il valore NULL. -[E-mail], sarà definito di tipo nvarchar(50), contenente l’e-mail dello studente. L’inserimento del quale può essere opzionale . 20
  • 21. Doc_Data Figura 7- Proprietà della tabella Doc_Data -Codice_Doc, definita come chiave primaria e non potrà essere ammesso il valore NULL in quanto chiave primaria della tabella. -Nome, contenente il nome del docente è non potrà essere ammesso il valore NULL. -Cognome, contenente il cognome del docente è non potrà essere ammesso il valore NULL. Insegnamenti Figura 8- Proprietà della tabella Insegnamenti 21
  • 22. -Codice_Insegnamento, rappresenta la chiave primaria della tabella e identifica l’insegnamento associato al’docente il quale non può ammettere valore NULL. -Nome, definisce il nome dell’insegnamento associato al docente. -ID_Doc, rappresenta il codice identificativo del docente che sarà una chiave esterna e non può assumere valore NULL. A.A Figura 9- Proprietà della tabella A.A -ID, sarà di tipo int e non può assumere valore NULL essendo chiave primaria della tabella. -Anno Accademico, sarà di tipo int e rappresenta l’anno che lo studente ha frequentato il corso. Corso_di_studio Figura 10- Proprietà della tabella Corso_di_studio 22
  • 23. -Codice_corso, sarà definita di tipo int e non può assumere valore NULL essendo la chiave primaria della tabella. -Nome_corso, rappresenta il nome del corso. Piano Di Studi Figura 11- Proprietà della tabella Piano Di Studi -Matricola, Corso_ID, Codice_Insegnamento e Anno di Frequenza saranno chiavi esterne perché sarà applicata l’integrità referenziale e non potranno assumere valore NULL. -Anno di Frequenza, sarà definito di tipo int e può essere ammesso il valore NULL nell’caso lo studente non abbia frequentato ancora l’insegnamento . -Data Esame, sarà definito di tipo date e può essere ammesso il valore NULL nell’caso lo studente non abbia ancora sostenuto l’esame. -Voto, sarà definito di tipo nvarchar(10) e può essere ammesso il valore NULL nell’caso lo studente non abbia ancora sostenuto l’esame. 23
  • 24. VERBALE Figura 12- Proprietà della tabella VERBALE -Matricola, Codice_Insegnamento e Nome_Insegnamento avranno valori predefiniti una volta arrivati nell’interfaccia Verbalizzazione.aspx. -Data_esame,Voto, Note e Anno avranno valori che saranno assegnati durante la compilazione del modulo nell’interfaccia Verbalizzazioni.aspx. 24
  • 25. Infine vengono effettuate le varie relazioni fra le tabelle, dove la tabella con più chiavi esterne sarà Piano Di Studi. Figura 13- Diagramma del database SQL 25
  • 26.  INTERFACCIA E FUNZIONALITÀ Avviato il prototipo ci si troverà davanti alla pagina d’accesso: Figura 14- Pagina di accesso La pagina d’accesso e composta da due textbox o caselle di testo e un pulsante che ha il compito di autenticare le credenziali del utente. 26
  • 27. -Convalida dell’input: i Validator Control Sono i controlli più utili, proprio perché rendono automatica la validazione del contenuto di un campo. Nel caso in cui l’utente non inserisce le credenziali o ne dimentica una e preme il pulsante Accedi , allora viene avviato il controllo RequiredFieldValidator che verifica che sia presente del teso nella casella. Figura 15- RequiredFieldValidator in codice HTML Nella finestra proprietà del RequiredFieldValidator è stato impostato il campo assegnato al validator control e il messaggio di errore che esce quando ciò si verifica. Nella fase di autenticazione viene fatto un semplice controllo nella tabella Dati_Docenti, dove il nome utente corrisponde al cognome del docente e il password al identificatore della tabella. Tutto questo perché durante l’autenticazione reale si hanno misure di sicurezza più rigide e complesse. -Connessione a una sorgente dati Ciascun data provider ADO.NET implementa la classe astratta DbConnection in base alle caratteristiche peculiari della sorgente dati di riferimento. Questa classe include alcuni membri di utilità generale e, in particolare, il metodo di apertura Open, il metodo di chiusura Close e la 27
  • 28. proprietà ConnectionString, che rappresenta la stringa di contenente le informazioni di configurazione della connessione. Nel nostro caso nella pagina Accesso.aspx.cs la connessione con il database SQL è stata effettuata dentro il metodo bool check() . Inizialmente dopo aver aperto una nuova connessione SQL e definendo dentro il metodo check() la stringa di connessione è stato usato il metodo Open() per aprire la connessione con il database SQL. Dopodiché è stato utilizzato l’oggetto DataTable e DataSet, dove DataTable rappresenta una tabella di dati in memoria e DataSet la cache di dati in memoria. Il DataSet include le collezioni Tables e Relations, che rappresentano l’insieme delle tabelle e delle relazioni in esso contenute. Ogni DataTable include, a sua volta le collezioni Rows, Columns e 28
  • 29. Constraits, che rappresentano l’insieme delle righe, delle colonne e dei vincoli. Mediante queste collezioni dove nel nostro caso è stato usato Rows è possibile accedere ai dati contenuti in un Dataset o in una DataTable, semplicemente specificando la “posizione” dell’elemento ricercato nell’ambito della struttura interna dell’oggetto contenitore. Per riempire il container di dati DataTable è stata usata la classe SqlDataAdapter contenente anche il query SQL, specificando in questo modo la tabella dove il metodo check() controllerà le credenziali. Se nel caso le credenziali sono quelle giuste il metodo ritorna true se no ritorna false. Quando si preme il pulsante Accedi, viene controllato se il metodo check() è vero e l’utente viene reindirizzato nella pagina Insegnamenti se no verrà visualizzato un messaggio di errore. È stata usata la proprietà session per creare una nuova sessione Codice_ID che servirà nelle query fatte in seguito. 29
  • 30.  MOSTRARE DATI IN GRIGLIA: GRIDVIEW Per mostrare i dati contenuti nel database SQL è stata utilizzato il controllo Gridview che visualizza i valori di una origine dati in una tabella in cui ogni colonna rappresenta un campo e ogni riga rappresenta un record. Il controllo Gridview consente la selezione, l’ordinamento e la modifica degli elementi. La connessione della nostra Gridview con il database SQL è stata fatta selezionando la stringa di connessione dal design del Gridview. Figura 16- Connessione della Gridview con il database SQL 30
  • 31. La tabella del database collegata con il Gridview è la tabella nominata Insegnamenti. Lo scopo è di visualizzare solo le unità didattiche relative al docente, ecco perché dopo aver selezionato i record da visualizzare nella Gridview è stata inserita una query. La query seleziona solo i record dove il codice docente associato a ciascun insegnamento è uguale alla sessione Codice_ID. Quindi il query seleziona solo i record appartenenti al docente. Figura 17- Il codice SQL all’interno del Gridview nella pagina Insegnamenti Oltre alla visualizzazione delle unità didattiche appartenenti al docente, nella pagina Insegnamenti viene visualizzato anche il nome e il cognome del docente che ha effettuato l’accesso. Tutto questo è stato fatto aggiungendo delle etichette chiamate Label e modificando il loro valore in 31
  • 32. base alla sessione che viene creata. Espresso in code-behind nella pagina Insegnamenti.aspx.cs si ha: Dal database SQL è stato scelto la tabella Doc_data che rappresenta i dati relativi al docente come nome, cognome e il codice che lo identifica. In questo modo solo quando l’identificatore del docente sarà uguale alla sessione Codice_ID, la prima etichetta rappresenterà il nome e la seconda il cognome del docente. Il docente potrà selezionare uno dei insegnamenti corrispondenti e vedere le verbalizzazioni effettuate da parte sua solo per l’insegnamento selezionato nella pagina Verbalizzati.aspx . Anche in questo caso i dati saranno visibili usando la Gridview, dove durante la selezione dell’insegnamento viene creata una sessione che lo identifica. 32
  • 33. Nella pagina Insegnamenti il docente dovrà essere in grado di inserire la matricola dello studente interessato in una casella di testo per visualizzare il piano di studi appartenente allo studente. In questo modo se la matricola è inserita correttamente e si trova nel database SQL l’utente sarà reindirizzato nella pagina successiva se no viene mostrato un messaggio di errore. Per controllare se la matricola si trova nel database SQL è stato usata il metodo check_matricola(): 33
  • 34. Il metodo check_matricola() ritorna true se la matricola si trova ne database SQL e se no ritorna false. Accanto alla casella di testo è stato aggiunto un pulsante nominato Cerca. Il pulsante quando viene azionato controlla se il metodo check_matricola() è vero e ha il compito di reindirizzare l’utente nella interfaccia Piano Di Studi, se non è vero verrà mostrato un messaggio di errore. 34
  • 35. Nella pagina Piano Di Studi.aspx vengono visualizzati solo gli insegnamenti corrispondenti al numero di matricola inserito precedentemente. Il docente ha la possibilità di modificare l’esito solo per gli insegnamenti appartenenti a lui e che non sono stati verbalizzati in passato. Figura 18-Piano di studi È stato inserito un campo Templatefield il quale rappresenta un campo in cui viene visualizzato il contenuto personalizzato nella Gridview.All’interno del Templatefield è stato inserito un pulsante che viene visualizzato solo quando è verificata la condizione. Per far ciò è stato usato l’evento RowDataBound. 35
  • 36. RowDataBound viene generato quando una riga di dati, rappresentata da un oggetto GridviewRow, viene associata a dati nel controllo Gridview. Una volta premuto il pulsante il docente viene reindirizzato nella pagina Verbalizzazione.aspx. Durante l’operazione dalla Gridview viene creata una sessione appartenente al codice del insegnamento. 36
  • 37.  VERBALIZZAZIONE La verbalizzazione dell’esame da parte del docente viene effettuata compilando il modulo nella pagina Verbalizzazione.aspx: Figura 19- Pagina Verbalizzazione La pagina è composta da tre caselle di testo e quattro dropdownlist, che rappresentano dei controlli che gli consentono al docente di selezionare un singolo elemento da un elenco in discesa. 37
  • 38. Dopo aver aperto una connessione è stato usato la classe SqlComand per l’inserimento degli dati nel database. Tutti i dati inseriti nella pagina Verbalizzazione.aspx vengono inseriti nella tabella VERBALE. In questo modo, il docente dopo aver compilato il modulo e dopo aver premuto il pulsante “Salva” non può più modificare l’esito del esame corrispondente, perché è appena stato verbalizzato. 38
  • 39. CAPITOLO 4 CONCLUSIONI ____________________________________________ È possibile affermare, che i requisiti e le specifiche fissati all’inizio del progetto sono stati rispettati e gli obbiettivi prefissati sono stati raggiunti. Per quanto riguarda invece il lavoro svolto, gli elementi che hanno richiesto un maggiore attenzione e tempo sono state la fase di progettazione iniziale della struttura del prototipo e la progettazione fisica. Il progetto è stato realizzato nello stato di prototipo. Nonostante ciò l’architettura con il quale è stato realizzato, conferisce una struttura solida e la possibilità di ulteriori sviluppi. Nel complesso del lavoro svolto mi ritengo soddisfatto dei risultati ottenuti e di tutto ciò che ne è derivato. 39
  • 40. APPENDICE A ABBREVAZIONI USATE ____________________________________________________________ ASP Active Server Pages IDE Integrated Development Environment CSS Cascading Style Sheets ADO Active Data Objects SQL Structured Query Language APPENDICE B ELENCO DELLE IMMAGINI ____________________________________________________________ Figura 1- Interfacce del prototipo 12 Figura 2- Schema E-R 16 Figura 3-L’entità Piano Di Studi e i suoi attributi 17 40
  • 41. Figura 4-Composizione del file Style 18 Figura 5-Sintassi HTML del foglio di stile 19 Figura 6- Proprietà della tabella Stud_Data 20 Figura 7- Proprietà della tabella Doc_Data 21 Figura 8- Proprietà della tabella Insegnamenti 21 Figura 9- Proprietà della tabella A.A 22 Figura 10- Proprietà della tabella Corso_di_studio 22 Figura 11- Proprietà della tabella Piano Di Studi 23 Figura 12- Proprietà della tabella VERBALE 24 Figura 13- Diagramma del database SQL 25 Figura 14- Pagina di accesso 26 Figura 15- RequiredFieldValidator in codice HTML 27 Figura 16- Connessione della Gridview con il database SQL 30 Figura 17- Il codice SQL all’interno del Gridview nella pagina Insegnamenti 31 Figura 18-Piano di studi 35 Figura 19- Pagina Verbalizzazione 37 41
  • 42. APPENDICE C BIBLIOGRAFIA ____________________________________________________________ 1. http://www.microsoft.com/downloads/it- it/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7 NET.Framework 4.0. 2. http://it.wikipedia.org/wiki/C_sharp C# 3. http://it.wikipedia.org/wiki/Microsoft_Visual_Studio Visual Studio 2010 4. http://msdn.microsoft.com/it-it/library/e80y5yhx(v=vs.80).aspx ADO.NET. 5. http://msdn.microsoft.com/it- it/library/system.web.ui.webcontrols.gridview(v=vs.80).aspx GRIDVIEW. 6. http://msdn.microsoft.com/en-us/library/aa720677(v=vs.71).aspx I validator control. 7. http://msdn.microsoft.com/it- it/library/system.web.ui.webcontrols.gridview.rowdatabound(v=vs.80).aspx l’evento RowDataBound. 42