Procedura dettagliata: associazione ai dati a un oggetto business personalizzato
Aggiornamento: novembre 2007
Molte applicazioni Web vengono generate utilizzando più livelli, con uno o più componenti di livello intermedio per fornire l'accesso ai dati. Microsoft Visual Web Developer include una procedura guidata che consente di creare un componente di dati da utilizzare come oggetto dati di livello intermedio come descritto in Procedura dettagliata: pagine Web con associazione ai dati a un componente dati di Visual Studio.
È anche possibile, tuttavia, generare un oggetto business personalizzato, piuttosto che basarsi sul componente di dati creato dalla procedura guidata. La creazione di un oggetto business personalizzato consente di implementare la logica aziendale. In questa procedura dettagliata viene descritto come creare un oggetto business di base da utilizzare come origine dati per le pagine Web ASP.NET.
In particolare, vengono illustrate le seguenti operazioni:
Creazione di un componente che può restituire dati a una pagina Web e che utilizza un file XML per i propri dati.
Riferimento all'oggetto business come origine dati in una pagina Web.
Associazione di un controllo ai dati restituiti dall'oggetto business.
Lettura e scrittura di dati utilizzando l'oggetto business.
Prerequisiti
Per completare questa procedura dettagliata è necessario:
Visual Web Developer (Visual Studio).
.NET Framework.
Per questa procedura dettagliata si presuppone una conoscenza generale dell'utilizzo di Visual Web Developer.
Creazione del sito Web
Se è stato già creato un sito Web in Visual Web Developer (ad esempio, seguendo le procedure di Procedura dettagliata: creazione di una pagina Web di base in Visual Web Developer), è possibile utilizzare quel sito Web e passare alla sezione successiva, "Creazione di un file XML per i dati aziendali". In caso contrario, creare un sito e una pagina Web nuovi attenendosi alla procedura riportata di seguito.
Per creare un sito Web di file system
Aprire Visual Web Developer.
Scegliere Nuovosito Web dal menu File.
Viene visualizzata la finestra di dialogo Nuovo sito Web.
In Modelli Visual Studio installati, fare clic su Sito Web ASP.NET.
Nella casella Percorso, immettere il nome della cartella in cui salvare le pagine del sito Web.
Digitare, ad esempio, il nome cartella C:\WebSites.
Nell'elenco Linguaggio scegliere il linguaggio di programmazione con lui lavorare.
Scegliere OK.
In Visual Web Developer vengono create la cartella e una nuova pagina denominata Default.aspx.
Creazione di un file XML per i dati aziendali
Nella procedura riportata di seguito, verrà creata un file XML per i dati dei componenti business.
Per creare il file XML
In Esplora soluzioni, fare clic con il pulsante destro del mouse su App_Data, quindi scegliere Aggiunginuovo elemento.
Nota: Accertarsi che il file XML venga creato all'interno della cartella App_Data. La cartella App_Data dispone di un set di autorizzazioni che consentono alla pagina Web di leggere e scrivere dati nel file XML.
In Modelli Visual Studio installati fare clic su File XML.
Nella casella Nome, digitare Authors.xml.
Fare clic su Add.
Viene creato un nuovo file XML contenente solo la direttiva XML.
Copiare i dati XML riportati di seguito e incollarli nel file sovrascrivendo il contenuto presente nel file.
Nel file XML sono presenti le informazioni relative allo schema che identificano la struttura del database dei dati, incluso un vincolo PRIMARY KEY per la chiave.
Nota: I componenti business possono utilizzare i dati in qualsiasi modo valido per l'applicazione. Questa procedura dettagliata utilizza un file XML.
<?xml version="1.0" standalone="yes"?> <dsPubs xmlns="http://www.tempuri.org/dsPubs.xsd"> <xs:schema id="dsPubs" targetNamespace="http://www.tempuri.org/dsPubs.xsd" xmlns:mstns="http://www.tempuri.org/dsPubs.xsd" xmlns="http://www.tempuri.org/dsPubs.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="dsPubs" msdata:IsDataSet="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="authors"> <xs:complexType> <xs:sequence> <xs:element name="au_id" type="xs:string" /> <xs:element name="au_lname" type="xs:string" /> <xs:element name="au_fname" type="xs:string" /> <xs:element name="au_phone" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> <xs:unique name="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:authors" /> <xs:field xpath="mstns:au_id" /> </xs:unique> </xs:element> </xs:schema> <authors> <au_id>172-32-1176</au_id> <au_lname>West</au_lname> <au_fname>Paul</au_fname> <au_phone>408 555-0123</au_phone> </authors> <authors> <au_id>213-46-8915</au_id> <au_lname>Gray</au_lname> <au_fname>Chris</au_fname> <au_phone>415 555-0120</au_phone> </authors> </dsPubs>
Salvare il file Authors.xml e chiuderlo.
Creazione di un componente
Il passaggio successivo prevede la creazione di una classe per avere funzione di un componente business. Il componente verrà mantenuto nella cartella App_Code del sito Web. In un'applicazione reale è possibile registrare il componente in qualsiasi archivio adeguato, incluso la Global Assembly Cache. Se il sito Web non dispone già di una directory denominata App_Code, occorre crearla.
Per creare una cartella App_Code
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del sito Web, scegliere Aggiungi cartella ASP.NET, quindi App_Code.
Nota: Non è possibile scegliere un nome diverso da App_Code.
A questo punto è possibile aggiungere il componente al sito.
Per creare il componente business
In Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella App_Code, quindi scegliere Aggiungi nuovo elemento.
Nota: Accertarsi che il nuovo elemento venga creato all'interno della cartella App_Code.
Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento.
In Modelli Visual Studio installati fare clic su Classe.
Nella casella Linguaggio scegliere il linguaggio di programmazione preferito.
Nella casella Nome digitare BusinessObject.
Fare clic su Add.
In Visual Web Developer viene creato il nuovo file di classe e viene aperto l'editor di codice.
Copiare il codice riportato di seguito e incollarlo nel file sovrascrivendo il contenuto presente nel file.
Imports Microsoft.VisualBasic Imports System Imports System.Web Imports System.Data Namespace PubsClasses Public Class AuthorClass Private dsAuthors As DataSet = _ New System.Data.DataSet("ds1") Private filePath As String = _ HttpContext.Current.Server.MapPath _ ("~/App_Data/authors.xml") Public Sub New() dsAuthors.ReadXml(filePath, Data.XmlReadMode.ReadSchema) End Sub Public Function GetAuthors() As DataSet Return dsAuthors End Function End Class End Namespace
using System; using System.Web; using System.Data; namespace PubsClasses { public class AuthorClass { private DataSet dsAuthors = new DataSet("ds1"); private String filePath = HttpContext.Current.Server.MapPath ("~/App_Data/Authors.xml"); public AuthorClass() { dsAuthors.ReadXml (filePath, XmlReadMode.ReadSchema); } public DataSet GetAuthors () { return dsAuthors; } } }
Nota: Assicurarsi che il valore della variabile filePath faccia riferimento al nome del file XML creato in precedenza.
Una volta creata un'istanza della classe è possibile leggere il file XML e convertirlo in un dataset. Il metodo GetAuthors della classe restituisce il dataset.
Salvare il file. Per un funzionamento corretto occorre salvare il file per la sezione successiva.
Visualizzazione dei dati tramite il componente business
È ora possibile richiamare il componente business in una pagina Web e visualizzarne i dati. Per fare riferimento al componente, utilizzare un controllo ObjectDataSource progettato in modo specifico per gli oggetti.
Per creare un controllo ObjectDataSource che fa riferimento al componente
Passare alla pagina Default.aspx oppure aprirla.
Nota: Se non si dispone di una pagina Default.aspx, è possibile utilizzare una pagina diversa. In alternativa, è possibile aggiungere una nuova pagina al sito Web. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del sito Web e scegliereAggiungi nuovo elemento, quindi aggiungere un Web Form.
Passare alla visualizzazione Progettazione.
Trascinare un controllo ObjectDataSource dalla cartella Dati della Casella degli strumenti alla pagina.
Nella finestra Proprietà impostare ID su AuthorsObjectDataSource.
Fare clic con il pulsante destro del mouse sul controllo ObjectDataSource, quindi scegliere lo smart tag per visualizzare il menu Attività ObjectDataSource.
Dal menu Attività ObjectDataSource, scegliere Configura origine dati.
Viene visualizzata la procedura guidata Configura origine dati.
Scegliere PubsClasses.AuthorClass dall'elenco Selezionare un oggetto business.
Fare clic su Avanti.
Scegliere GetAuthors(), returns Dataset, dall'elenco Selezionare un metodo della scheda Seleziona.
Il metodo GetAuthors viene definito nella classe business creata in precedenza e restituisce un dataset contenente i dati del file Authors.xml.
Fare clic su Fine.
Le informazioni sulla configurazione che sono state immesse specificano che per ottenere i dati dal componente, è necessario chiamare il metodo GetAuthors del componente.
A questo punto è possibile ottenere i dati dal componente utilizzando il controllo ObjectDataSource. Verranno visualizzati i dati in un controllo GridView della pagina.
Per visualizzare i dati dal componente
Trascinare un controllo GridView dalla cartella Dati della Casella degli strumenti alla pagina.
Fare clic con il pulsante destro del mouse sul controllo GridView, quindi scegliere lo smart tag se il menu Attività comuni GridView non viene visualizzato.
Dal menu Attività comuni GridView nella casella Scegli origine dati, fare clic su AuthorsObjectDataSource.
Premere CTRL+F5 per eseguire la pagina.
Il controllo GridView viene visualizzato con i dati XML contenuti all'interno.
Inserimento dei dati tramite il componente business
Analogamente ad altri controlli di origine dati, ad esempio il controllo SqlDataSource, il controllo ObjectDataSource supporta l'aggiornamento (inserimento, aggiornamento ed eliminazione). In questa sezione verrà modificato il componente business con un metodo che consente l'inserimento di un record autore. Successivamente verrà modificata la pagina in modo da consentire agli utenti di digitare nuove informazioni sull'autore e modificare il controllo ObjectDataSource per eseguire l'inserimento.
Nota: |
---|
Nel corso di questa parte della procedura dettagliata verrà aggiornato il file Authors.xml creato in precedenza. È importante che l'applicazione disponga dell'autorizzazione per scrivere nel file in fase di esecuzione, in caso contrario, quando si tenta di aggiornare il file, verrà visualizzato un errore nella pagina Web. Se il file Authors.xml file è stato creato nella cartella App_Data, le autorizzazioni vengono impostate automaticamente. |
Per modificare il componente business in modo da consentire gli inserimenti
Passare al file BusinessObject.
Aggiungere il metodo riportato di seguito come membro Final di AuthorClass.
Public Sub InsertAuthor(ByVal au_id As String, _ ByVal au_lname As String, _ ByVal au_fname As String, ByVal au_phone As String) Dim workRow As DataRow = dsAuthors.Tables(0).NewRow workRow.BeginEdit() workRow(0) = au_id workRow(1) = au_lname workRow(2) = au_fname workRow(3) = au_phone workRow.EndEdit() dsAuthors.Tables(0).Rows.Add(workRow) dsAuthors.WriteXml(filePath, Data.XmlWriteMode.WriteSchema) End Sub
public void InsertAuthor (String au_id, String au_lname, String au_fname, String au_phone) { DataRow workRow = dsAuthors.Tables[0].NewRow (); workRow.BeginEdit (); workRow[0] = au_id; workRow[1] = au_lname; workRow[2] = au_fname; workRow[3] = au_phone; workRow.EndEdit (); dsAuthors.Tables[0].Rows.Add (workRow); dsAuthors.WriteXml (filePath, XmlWriteMode.WriteSchema); }
Nota: Prestare particolare attenzione ai nomi delle variabili utilizzate per passare informazioni sull'autore al metodo (au_id, au_lname, au_fname e au_phone). Devono corrispondere ai nomi delle colonne definiti nello schema del file XML creato in precedenza.
Il nuovo metodo accetta quattro valori da inserire, che verranno forniti nella pagina come parametri, e crea una nuova riga nel dataset, quindi consente di riscrivere il dataset aggiornato come un file XML.
Salvare il file.
Il passaggio successivo consiste nella modifica della pagina in modo da consentire agli utenti di immettere nuove informazioni sull'autore. Nella procedura riportata di seguito, verrà utilizzato il controllo DetailsView.
Per aggiungere un controllo relativo all'inserimento dei dati
Passare alla pagina Default.aspx oppure aprirla.
Passare alla visualizzazione Progettazione.
Trascinare un controllo DetailsView dalla cartella Dati della Casella degli strumenti alla pagina.
Nota: Il layout esatto della pagina non è importante.
Dal menu Attività DetailsView nella casella Scegli origine dati, fare clic su AuthorsObjectDataSource.
Nota: Se il menu Attività DetailsView non è visibile, scegliere lo smart tag.
Nella finestra Proprietà impostare AutoGenerateInsertButton su true.
In tal modo si consente al controllo DetailsView di eseguire il rendering di un pulsante Nuovo che gli utenti possono selezionare per impostare il controllo in modalità di immissione dati.
Occorre, infine, configurare il controllo ObjectDataSource per specificare l'azione che il controllo deve eseguire per inserire i dati.
Per configurare il controllo origine dati relativo all'inserimento dei dati
Fare clic con il pulsante destro del mouse su AuthorsObjectDataSource, scegliere Proprietà, quindi impostare InsertMethod su InsertAuthor.
Si tratta del nome del metodo aggiunto al componente business.
È possibile ora inserire nuovi autori nel file XML.
Per verificare l'inserimento
Premere CTRL+F5 per eseguire la pagina Default.aspx.
Nel controllo DetailsView scegliere il pulsante Nuovo.
La griglia verrà visualizzata nuovamente con le caselle di testo.
Immettere nuove informazioni sull'autore, quindi scegliere Inserisci.
Le nuove informazioni sull'autore verranno aggiunte al file XML. Il controllo GridView consente di riflettere immediatamente il nuovo record.
Passaggi successivi
In questa procedura dettagliata viene illustrato come utilizzare un componente di dati. È possibile sperimentare ulteriori funzionalità di spostamento. Può, ad esempio, essere necessario:
Aggiungere, aggiornare ed eliminare i record. A tal fine, è necessario aggiungere metodi al componente seguendo una logica di inserimento: occorre aggiungere un metodo al componente, configurare il controllo di origine dati per richiamare il metodo del componente, aggiungere i parametri appropriati, aggiungere una riga di codice per chiamare i metodi Update e Delete del controllo di origine dati. Per informazioni dettagliate, vedere Walkthrough: Editing and Inserting Data in Web Pages with the DetailsView Web Server Control
Modificare il componente business per utilizzare i dati del database invece che un file XML. Non è necessario apportare modifiche ai controlli della pagina.
Limitare gli utenti che possono apportare modifiche ai dati. Un metodo spesso utilizzato consiste nell'aggiungere appartenenze e ruoli al sito Web e, successivamente, stabilire regole che il componente business può controllare prima di consentire la modifica dei dati. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di un sito Web con appartenenza e accesso utente e Procedura dettagliata: gestione degli utenti di siti Web tramite i ruoli.
Vedere anche
Attività
Procedura dettagliata: pagine Web con associazione ai dati a un componente dati di Visual Studio
Procedura dettagliata: utilizzo di codice condiviso nei siti Web in Visual Web Developer
Procedura dettagliata: creazione di una pagina Web di base in Visual Web Developer