DOC

Tutorial pratico - Creare un sito Asp Net 2

By Chad Peterson,2014-09-25 01:15
7 views 0
Tutorial pratico - Creare un sito Asp Net 2

    SVILUPPARE UN SITO WEB ASP.NET

    Tutorial pratico

    Domenico De Cerbo 2008/2009

    domenico@decerbo.it

    I contenuti del presente Tutorial possono essere utilizzati

    liberamente, con l’obbligo della citazione dell’autore

Note

    ; Il tutorial è sviluppato nel Visual Web Developer (VWD) di Visual Studio 2008 Express Edition,

    con .NET Framework 3.5 (che ha lo stesso motore della versione 2.0); gli assembly sono sviluppati con

    Visual Studio 2005 Standard Edition.

    ; Se si lavora con con versioni di .NET Framework precedenti alla versione 2.0 alcuni elementi di codice

    dovranno essere modificati.

    ; Si presuppone la conoscenza quanto meno degli elementi di base di (X)HTML e CCS, che qui

    verranno utilizzati senza fornire spiegazioni, in quanto il Tutorial è incentrato su ASP.Net 2; in internet

    si possono reperire numerose guide e risorse su questi argomenti, se ne indicano alcune:

    http://xhtml.html.it/ http://www.morpheusweb.it/html/manua

    li/css.asp http://css.html.it/

    http://www.webmasterpoint.org/webdesihttp://aspnet.html.it/ gn/css/home.asp http://www.web-link.it/

    http://www.morpheusweb.it/html/manua

    li/xhtml.asp

    ; Per quanto riguarda le tecnologie ASP.Net le fonti principali ed al contempo più attendibili (cui per

    l’Appendice si è fatto abbondante ricorso) sono:

    http://msdn.microsoft.com/it-it/asp.net/default.aspx

    http://quickstarts.asp.net/QuickStartv20/aspnet/ (in lingua inglese)

    http://www.aspitalia.com/

    ; Sull’installazione e configurazione dei provider per Microsoft Access in luogo di quelli predefiniti per

    SQL Server consultare il seguente articolo, molto esaustivo:

    http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=404 (in lingua inglese)

    ; I risultati che si perseguiranno attraverso molte delle procedure mostrate potrebbero essere ottenuti

    anche più rapidamente cambiando l’ordine delle operazioni ed avvalendosi maggiormente degli

    automatismi messi a disposizione da VWD: si è però ritenuto di seguire procedure più lunghe e con

    ampi interventi manuali, in modo da consentire una maggiore comprensione dei meccanismi che

    stanno a fondamento dell’interazione fra i singoli oggetti, e con ciò fornire al lettore gli strumenti di

    base per andare oltre a quanto forma oggetto del presente Tutorial.

    ; In Appendice sono riportati tutti i listati, sia dei form web che dei codici sottostanti, cui far

    riferimento durante la lettura.

    SOMMARIO

    SOMMARIO ....................................................................................................................... 3 INTRODUZIONE ................................................................................................................. 7 SVILUPPO ......................................................................................................................... 7 1. CREAZIONE DI UN SITO DENOMINATO SITOPROVE IN VISUAL WEB DEVELOPER (VWD) DI VISUAL STUDIO 2008 EXPRESS EDITION.................................................................................................................... 7 Operazione preliminare: progettazione del sito ........................................................................ 7 Creazione del sito ............................................................................................................ 8 2. CONFIGURAZIONE DELLA APPLICAZIONE ASP.NET SITOPROVE IN IIS 7.0 ....................................... 12 3. IMPOSTARE LE RISORSE PRINCIPALI .................................................................................. 14 4. IMPOSTAZIONE DELLA SICUREZZA .................................................................................... 15 Installazione e configurazione dei provider per MS Access ......................................................... 15

    Esame ed integrazione del database ASPNetDB.mdb di MS Access .................................................... 18

    Inserimento di Ruoli ed Utenti .................................................................................................... 22

    Memo Password ................................................................................................................. 23

    Definizione delle Regole di Accesso ............................................................................................. 24

    web.config della root del sito ................................................................................................. 24

    web.config della cartella /private .......................................................................................... 24

    web.config della cartella /admin ............................................................................................ 24 1. AREA PUBBLICA ....................................................................................................... 25 Default.aspx: la home page ............................................................................................. 25 2. AREA AMMINISTRATORE .............................................................................................. 27 amministra.aspx: la home page dell’area amministrazione........................................................ 27

    Menu di navigazione ............................................................................................................ 27

    Controllo Calendario ............................................................................................................ 29

    Prospetto Iscritti abilitati all’accesso .......................................................................................... 31 Autorizzazioni.aspx e Pannello.aspx: le pagine per la gestione degli Iscritti ................................. 35

    Autorizzazioni.aspx ................................................................................................................ 35

    Registrazione utente Informazioni di base ................................................................................. 35

    Registrazione utente Attribuzione ad un Ruolo ........................................................................... 37

    Registrazione utente Informazioni aggiuntive ............................................................................. 38

    Creazione di un nuovo Ruolo / Eliminazione di un ruolo esistente ....................................................... 41

    Pannello.aspx ...................................................................................................................... 42

    Sezione Modifica dati Utenti ................................................................................................... 43

    Sezione Eliminazione Utenti ................................................................................................... 48

    Sezione Modifica assegnazione ruoli ......................................................................................... 49 3. AREA ISCRITTI ......................................................................................................... 51 CREARE LA PAGINA MASTER .................................................................................................. 52 Inseriamo il menu .......................................................................................................... 53 LE PAGINE DEI CONTENUTI (.ASPX) ........................................................................................... 54 Pagine a tre colonne ...................................................................................................... 54 Pagine a due colonne ..................................................................................................... 55

    Gestione di documenti Excel ..................................................................................................... 55

    Creazione del documento Excel ............................................................................................... 55

    Visualizzazione del documento completo .................................................................................... 56

    Visualizzazione di dati estratti dal documento .............................................................................. 57

    Collegamenti a documenti Word ................................................................................................ 59 CONCLUSIONE ................................................................................................................ 60 APPENDICI DI RIFERIMENTO .............................................................................................. 61 I File *.Config ............................................................................................................ 61 Path relative .............................................................................................................. 61

    In (X)HTML ....................................................................................................................... 61

    SVILUPPARE UN SITO WEB ASP.NET

    In ASP.Net ....................................................................................................................... 61 Percorso assoluto .............................................................................................................. 62 Altre soluzioni ................................................................................................................... 62 Operazioni su file e Stringhe Esempi ......................................................................... 62 Conta ................................................................................................................................ 62 Elenca File ......................................................................................................................... 62 Elenca cartelle di sistema ........................................................................................................ 62 Estrae parte di una stringa ....................................................................................................... 62 Connessioni a Database e fonti esterne ........................................................................ 63 Stringhe di connessione .......................................................................................................... 63 MS Access ....................................................................................................................... 63 SQL Server ...................................................................................................................... 63 mySQL ........................................................................................................................... 63 Excel .............................................................................................................................. 64 Oggetto connessione ............................................................................................................. 64 Classe OleDbConnection ...................................................................................................... 64 Definizione dei dati da elaborare ................................................................................................ 66 Metodo di elaborazione classe OleDbCommand .......................................................................... 66 Costruttori........................................................................................................................ 66 Metodi (più frequenti)........................................................................................................... 66 Proprietà (più frequenti) ........................................................................................................ 67 Pagine Master ......................................................................................................... 69 Pagina Master ................................................................................................................... 69 Pagina Content.................................................................................................................. 69 Master annidati .................................................................................................................. 70 Tipi di Controlli ........................................................................................................ 71 HTML Controls .................................................................................................................. 71 Server Controls ................................................................................................................. 71 Espressioni utilizzate nel sito: ................................................................................................. 77 Esempi trovati in Internet ...................................................................................................... 78 User Controls .................................................................................................................... 79 Direttiva @Master ....................................................................................................... 79 Attributi ............................................................................................................................. 79 AutoEventWireup............................................................................................................ 79 ClassName ..................................................................................................................... 79 CodeFile ....................................................................................................................... 80 CompilationMode............................................................................................................ 80 CompilerOptions............................................................................................................ 80 Debug ............................................................................................................................ 80 Description .................................................................................................................. 80 EnableTheming ............................................................................................................... 80 EnableViewState............................................................................................................ 80 Explicit ....................................................................................................................... 80 Inherits ....................................................................................................................... 80 Language ....................................................................................................................... 80 LinePragmas .................................................................................................................. 80 MasterPageFile ............................................................................................................. 80 Src ............................................................................................................................... 80 Strict .......................................................................................................................... 81 WarningLevel ................................................................................................................ 81 Direttiva @Page .......................................................................................................... 81 Attributi ............................................................................................................................. 81 Async ............................................................................................................................ 81 AsyncTimeOut ................................................................................................................ 81 AspCompat ..................................................................................................................... 81 AutoEventWireup............................................................................................................ 81 Buffer .......................................................................................................................... 81 ClassName ..................................................................................................................... 81 ClientTarget ................................................................................................................ 82 CodeBehind .................................................................................................................... 82 CodeFile ....................................................................................................................... 82

    domenica 25 settembre 2011 Pag. 4 / 154

    SVILUPPARE UN SITO WEB ASP.NET

    CodeFileBaseClass ......................................................................................................... 82

    CodePage ........................................................................................................................ 82

    CompilationMode ............................................................................................................ 82

    CompilerOptions ............................................................................................................ 82

    ContentType ................................................................................................................... 83

    Culture ......................................................................................................................... 83

    Debug............................................................................................................................. 83

    Description ................................................................................................................... 83

    EnableEventValidation .................................................................................................. 83

    EnableSessionState ....................................................................................................... 83

    EnableTheming ............................................................................................................... 83

    EnableViewState ............................................................................................................ 83

    EnableViewStateMac ....................................................................................................... 83

    ErrorPage ...................................................................................................................... 84

    Explicit ........................................................................................................................ 84

    Inherits ........................................................................................................................ 84

    Language ........................................................................................................................ 84

    LCID .............................................................................................................................. 84

    LinePragmas ................................................................................................................... 84

    MaintainScrollPositionOnPostback ................................................................................ 84

    MasterPageFile .............................................................................................................. 85

    ResponseEncoding .......................................................................................................... 85

    SmartNavigation ............................................................................................................ 85

    Src ................................................................................................................................ 85

    Strict ........................................................................................................................... 85

    StyleSheetTheme ............................................................................................................ 85

    TargetSchema ................................................................................................................. 85

    Theme............................................................................................................................. 85

    Title............................................................................................................................. 86

    Trace............................................................................................................................. 86

    TraceMode ...................................................................................................................... 86

    Transaction ................................................................................................................... 86

    UICulture ...................................................................................................................... 86

    ValidateRequest ............................................................................................................ 86

    ViewStateEncryptionMode ............................................................................................... 86

    WarningLevel ................................................................................................................. 86 Proprietà AutoPostback ................................................................................................ 86 Postback ............................................................................................................................ 86 Viewstate ............................................................................................................................ 87 AutoPostBack ...................................................................................................................... 87 IsPostBack .......................................................................................................................... 88 Controllo ContentPlaceHolder .................................................................................... 88 Controllo ContentPlaceHolderID ................................................................................. 88 Controllo Calendar ...................................................................................................... 88 Controllo Literal .......................................................................................................... 88 Controllo AccessDataSource ......................................................................................... 89 Controllo GridView ..................................................................................................... 90 Controllo DetailsView ................................................................................................ 91 Controllo MultiView ................................................................................................... 91 Controllo LoginView .................................................................................................. 92 Oggetto ObjectDataSource ......................................................................................... 92 Classe TemplateField ................................................................................................ 92 Classe CommandField .................................................................................................. 92 Classe Content .......................................................................................................... 93 Classe Menu ................................................................................................................ 93 Classe SiteMapPath .................................................................................................... 93 Classe Membership ...................................................................................................... 93 Metodi ............................................................................................................................... 93 Proprietà ............................................................................................................................ 94

    domenica 25 settembre 2011 Pag. 5 / 154

    SVILUPPARE UN SITO WEB ASP.NET

    Eventi ............................................................................................................................... 95 Classe MembershipUser ................................................................................................ 95 Costruttori .......................................................................................................................... 95

    Costruttore MembershipUser (String, String, Object, String, String, String, Boolean, Boolean, DateTime,

    DateTime, DateTime, DateTime, DateTime) .................................................................................... 95 Metodi ............................................................................................................................... 96 Proprietà ............................................................................................................................ 96 Classe MembershipCreateStatus ..................................................................................... 97 Membri .............................................................................................................................. 97 Classe MembershipCreateUserException .......................................................................... 98 Classe StatusCode ....................................................................................................... 98 Esempi .............................................................................................................................. 98 Classe Roles .............................................................................................................. 103 Metodi ..............................................................................................................................103 Proprietà ...........................................................................................................................104

    LISTATI ........................................................................................................................ 106 web.config ................................................................................................................. 106 webAdmin.sitemap ....................................................................................................... 107 webIscritti.sitemap ........................................................................................................ 108 fissi.css ..................................................................................................................... 108 Default.aspx ............................................................................................................... 110 Default.aspx.vb............................................................................................................ 112 admin\web.config ......................................................................................................... 112 admin\admin.css .......................................................................................................... 112 admin\amministra.aspx .................................................................................................. 114

     admin\amministra.aspx.vb .............................................................................................. 118

    admin\autorizzazioni.aspx ............................................................................................... 120 admin\autorizzazioni.aspx.vb ........................................................................................... 128 admin\pannello.aspx ..................................................................................................... 131 admin\pannello.aspx.vb .................................................................................................. 139 private\web.config ........................................................................................................ 142 private\base.css ........................................................................................................... 143 private\Prim_Iscritti.master .............................................................................................. 145 private\Prim_Iscritti.master.vb .......................................................................................... 146 private\iscritti_home.aspx ............................................................................................... 147 private\iscritti_home.aspx.vb ............................................................................................ 147 private\Pag1.aspx ........................................................................................................ 147 private\Pag1.aspx.vb ..................................................................................................... 147 private\PagExcel.aspx ................................................................................................... 148 private\PagExcel.aspx.vb ............................................................................................... 149 private\PagWord.aspx ................................................................................................... 151 private\PagWord.aspx.vb ................................................................................................ 152

    domenica 25 settembre 2011 Pag. 6 / 154

    SVILUPPARE UN SITO WEB ASP.NET

    INTRODUZIONE

    L‟obiettivo che ci siamo posto consiste nel realizzare in ASP.Net un sito completo abbastanza semplice, ma perfettamente funzionale, che così com‟è – può essere utilizzato per siti personali o di piccole realtà, come associazioni, condomini etc.

    Questo tutorial non si rivolge agli sviluppatori esperti, ma a coloro che, come me, si impegnano allo sviluppo di un sito quando ne abbiano un‟esigenza specifica, e quindi si trovano a dover risolvere problema per

    problema con affannose ricerche, attraverso le quali il più delle volte ottengono risultati abbastanza criptici per lo sviluppatore neofita od occasionale.

    Pertanto l‟approccio è essenzialmente pratico: nel contesto vengono spiegati sommariamente, ma [spero]

    in modo abbastanza chiarificatore i singoli passi, mentre per gli approfondimenti si rimanda all‟Appendice o a link su Internet.

    SVILUPPO

    1. CREAZIONE DI UN SITO DENOMINATO SITOPROVE IN VISUAL WEB DEVELOPER (VWD)

    DI VISUAL STUDIO 2008 EXPRESS EDITION

    OPERAZIONE PRELIMINARE: PROGETTAZIONE DEL SITO

    Prevediamo per (quasi) tutte le pagine del sito un layout simile al seguente:

Tutte le aree verranno impostate con elementi

in base a codice CSS sottostante (file fissi.css,

    situato nella directory principale del sito, admin.css nella cartella /admin e base.css, nella cartella /private).

    Il sito dovrà avere:

    ; una pagina iniziale, Default.aspx, pubblica, nella root

    domenica 25 settembre 2011 Pag. 7 / 154

    SVILUPPARE UN SITO WEB ASP.NET

    ; tre pagine riservate all‟Amministratore di sistema, amministra.aspx, autorizzazioni.aspx e

    pannello.aspx, nella cartella /admin

    ; diverse pagine di contenuti riservati agli iscritti, nella cartella /private, di cui la prima denominata

    iscritti_home.aspx

    Saranno inoltre create altri oggetti in relazione alle esigenze ed alle fasi dello sviluppo. La pagina pubblica e quelle dell‟Amministratore avranno layout specifici, pur in linea di massima rispondenti a quello dello schema di cui sopra; tutte le pagine dell‟area degli iscritti avranno un identico layout definito attraverso coppie di pagine master/content (per il concetto di pagine master vedere in seguito a pag.69), organizzate come segue:

    ; Intestazione1 con il nome del sito ed un logo, ed una sottointestazione

    ; Intestazione2 con una barra di menu

    ; CorpoSx, CorpoCentro, CorpoDx con i contenuti specifici delle singole pagine

    ; Piede con contenuti comuni a tutte le pagine

    CREAZIONE DEL SITO

    1. Dal menu File di Visual Web Developer (VWD per il seguito) scegliamo New Web Site. Appare la seguente

    schermata:

    ; Nel riquadro Modelli selezioniamo ASP.NET Web Site.

    ; In Percorso selezioniamo File system: in tal modo la cartella con tutti i files del sito verrà

    salvata in un percorso locale; successivamente con IIS si farà in modo che il sito possa

    essere testato in locale nel browser anche al di fuori dell‟ambiente VWD (v. pag.12).

    ; Nella casella adiacente immettiamo il percorso locale in cui i files del progetto dovranno

    essere salvati: F:\Siti Web in elaborazione\SitoProve.

    ; Nella casella Linguaggio selezioniamo il linguaggio di programmazione che si intende

    utilizzare prevalentemente (in questo caso abbiamo scelto Visual Basic perché ha una

    sintassi più verbosa ma anche più autoesplicativa e maggiormente conosciuta di C#),

    tenendo presente che ASP.NET consente la coabitazione di più linguaggi di programmazione,

    per cui per specifiche esigenze in qualunque punto del progetto si potranno introdurre

    routine in C#, Javascript, etc.

    domenica 25 settembre 2011 Pag. 8 / 154

    SVILUPPARE UN SITO WEB ASP.NET

    2. Scegliendo OK verrà creato un nuovo progetto Web Form nella directory specificata:

    Avendo selezionato File system si può lavorare in locale e per il momento è possibile testare il sito in costruzione solo con il web server interno (denominato Cassini 2) di VWD.

    Nel momento che imposta il sito, il programma crea anche la prima pagina (o web form), Default.aspx,

    che di default è la home page, ed il file web.config (Appendice pag.61), che contiene le configurazioni specifiche del sito.

    Ogni pagina Web Form, in base all‟impostazione predefinita che si chiama code-behind, che adottiamo,

    consiste di due file separati:

    ; Il file *.aspx, contenente il testo HTML e i controlli necessari per creare l'interfaccia utente della pagina. ; Un secondo file, *.aspx.vb (se invece di Visual Basic fosse stato scelto C# sarebbe stato *.aspx.cs)

    contenente il codice della pagina, ovvero il file di classe della pagina o file del codice sottostante.

    Ci troviamo così nell'ambiente di lavoro:

Nella parte destra, in alto, si trova il pannello Esplora Soluzioni che mostra tutti i file e le cartelle del

    sito.

    Come si vede, VWD ha aggiunto anche la cartella App_Data, che ha la caratteristica di consentire

    l‟accesso dalle pagine del sito che ne richiamano i dati, ma non non è raggiungibile via browser; è deputata ad ospitare i file dei database SQL (peraltro in questo progetto noi utilizzeremo un database MS Access, per il quale in seguito creeremo una cartella specifica) ed anche altri file dati (*.txt etc). Nel pannello centrale si vede la Default.aspx aperta in modalità Origine: con le linguette in basso

    possiamo passare alla modalità Progettazione.

    domenica 25 settembre 2011 Pag. 9 / 154

    SVILUPPARE UN SITO WEB ASP.NET

    ; Nella visualizzazione Progettazione il file viene visualizzato come WYSIWYG ed è possibile trascinare i controlli e configurarli utilizzando la finestra degli strumenti, che si apre a scomparsa facendo click sulle linguette a sinistra.

    ; Nella visualizzazione Origine viene visualizzato il codice HTML della pagina.

    Passando da una modalità all'altra, ogni visualizzazione viene aggiornata con le modifiche apportate. Codice generato automaticamente da VWD quando si aggiunge una pagina:

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

    DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>title> head> <body> <form id="form1" runat="server"> <div> div> form> body> html>

    La prima riga è una direttiva @Page (v. pag.81) che specifica:

    ; Language il linguaggio utilizzato (VB o C#)

    ; CodeFile il nome del file code-behind appartenente alla pagina (Default.aspx.vb)

    ; Inherits il nome della classe da cui ereditare (specificata all‟interno dell‟.aspx.vb)

    ; AutoEventWireup, Indica se gli eventi della pagina vengono connessi automaticamente. True

    indica che è attivata la connessione automatica degli eventi al caricamento della pagina gestito

    dal metodo Page_Load, con false invece occorre gestire gli eventi nel codice con la parola

    chiave handles. La disattivazione di questa proprietà consente maggiore velocità di

    elaborazione, che però nel nostro caso, date le dimensioni, è irrilevante, per cui in genere

    metteremo true nelle pagine che creeremo.

    Il DOCTYPE dichiara il documento come XHTML 1.0 Transitional.

    La riga <html xmlns= indica un URI che identifica i nomi dei tag e degli attributi che possono essere utilizzati all'interno del documento XML.

    Gli attributi <head runat="server"> e <form id="form1" runat="server"> consentono al codice di

    elaborare in modalità server-side i tag HTML head e form.

    L‟id, che sostituisce il vecchio attributo Html name, attribuisce al form un nome univoco per un eventuale richiamo da parte di altri elementi o del codice.

    3. Nel codice modifichiamo il nome del form, sostituendo

    <form id="form1" runat="server"> con <form id="pag_iniziale" runat="server">

    4. Fra i tag <div> e div> inseriamo un testo qualunque (p.e. Questa è la pagina iniziale

    del sito) per poter fare il primo test. Infatti premendo Ctrl-F5 si apre il browser con la seguente schermata:

    domenica 25 settembre 2011 Pag. 10 / 154

Report this document

For any questions or suggestions please email
cust-service@docsford.com