E N D
Data Access Layer TitoloPresentazione / Data / Confidenziale / Elaborazione di ...
Un data access layer (DAL) è un layer di un programma (unostrato software, in OOP potrebbeessere un insiemediclassi) aventeilcompitodisemplificarel’accessoaidaticontenuti in uno storage (un contenitore) diqualchetipo, come ad esempio un database relazionale • In unalogica MVC, permettedirealizzareildisaccoppiamentotraquellichesonoi layers di un programmaatti a esposizionedeidati/ controllo del flussoapplicativo ( View/Controller) dauna parte edappunto, il layer per l’accessoaidatidall’altro • Un DAL nascedall’astrazione cui vienenaturalmentesottoposta la funzionalitàdiaccessoaidati, nellasuavestereale, in quantocomponente largamente ripetuta in seno ad unosviluppo software • Nellospecificodellapiattaforma ASP.NET, esempidi data access layers standard vengonofornitidall’Entity framework e daiDataSets. La piattaformametteinoltre a disposizionestrumentidisempliceutilizzo per l’integrazionedei Data Consumers standard con DALs custom Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
ObjectDataSource • Il controlloObjectDataSourcepermettel’integrazionedichiarativatraiData Consumers standard e DALs custom; esempiodi data access layer custom è unaclasse C# esponentemetodi per l’accessoaidati • L’ObjectDataSourcemappaimetodi del DataAccessLayer e puòessererichiamatoda un Consumer standard TitoloPresentazione / Data / Confidenziale / Elaborazione di ...
ObjectDataSource • Esempiodi Consumer detailsView e del relativocontrolloObjectDataSourcedi cui fruisce TitoloPresentazione / Data / Confidenziale / Elaborazione di ...
ObjectDataSource • Esempiodi Consumer GridViewchefruiscedi un controlloObjectDataSource TitoloPresentazione / Data / Confidenziale / Elaborazione di ...
ADO.NetEntityFramework TitoloPresentazione / Data / Confidenziale / Elaborazione di ...
L’ Entity Framework fa parte diquellafamigliaditecnologie per l’accessoaidati nota con ilnomedi ADO.NET • E’ un framework afferenteallafamigliadeicosiddetti Object Relational Mapper (ORM) cheaiutaglisviluppatori .NET nell’operazionedisnellimentodiquelloche è ilcodice per realizzarel’accessoaidati (codicechespesso e volentieririsultaessereabbondante e ridondante). • Permette la creazionedi un cosiddetto Entity Data Model (EDM. Un Entity Data Model mappastrutturedati e relazionitraesseintercorrenti; ilmotoredell’ORMgestiscegenericheoperazionidiaccessoaidaticonformementeallestrutturemappate in senoall’EDMstesso. • Permetteildisaccoppiamentotra lo stratodiaccessoaidatiedilcosiddettostratodi presentation • L’ambientedisviluppo Visual Studio 2010 espone tools per ilsupportoallacreazione e modellizzazionedell’EDM, riducendoulteriormentequanto ad oneredellosviluppatore/analista Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
Entity Data Model Creare un Entity Data Model con Visual Studio • Si puòutilizzareil wizard ADO.NET Entity Data Model • generazionedi un file [MyModel].edmx • generazionedi un file [MyModel.designer.cs] • aggiuntadiriferimenti (Es: System.Data.Entity) • Modificavisuale dell Entity Data Model • apertura in Visual Studio del file [MyModel].edmxedutilizzodeglioggettidella toolbox Entity Framework • apertura in Visual Studio del file [MyModel].edmxe modifica del modello a partireda un database esistente Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
Entity Data Model Generazione Entity Data Model da database • Modellodi un intero database: tabelle (comprensivedivincoli, chiavi e relazioni), viste, stored procedures • Modellocomprensivodisingolioggetti del data base • A frontedioggettiqualitabelle/vistevengono generate entitànel Data Model; le entitàmappano le corrispondentistrutturesulla base dati TitoloPresentazione / Data / Confidenziale / Elaborazione di ...
Entity Data Model • Qualoraglioggettidella base datisianotralororelazionati, le relazionivengonomappate in seno al Data Model attraverso apposite entitàdirelazione TitoloPresentazione / Data / Confidenziale / Elaborazione di ...
Entity Data Model Modifica del modello in modalitàvisuale con editor di Visual Studio • Comportal’automatizzazionedellemodificheaisorgenti del modello[MyModel].edmx e [MyModel.designer.cs] • [MyModel].edmxfile xml descrittore del modello: ne espone la strutturaattraversounaseriedi tags xml (definitidaunaopportunagrammatica) • [MyModel.designer.cs] file dicodice C#, esponemetodi del Data Access Layer • I files edmx e designer.csvengonoutilizzatidalmotoredell’EF per la gestionedelleoperazionidiaccessoaidati Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
.edmx • Un file .edmx è un file XML chedefinisce un modelloconcettuale, uno storage model, edunamappatrai due. • Un file .edmxcontieneancheinformazionichesonousatedall’ADO.NET Entity Data Model Designer (Entity Designer) per renderizzaregraficamenteilmodello. • La best-practice dicreazionedi un file .edmxprevedel’uso del già citato Entity Data Model Wizard • Contenutodi un file .edmx • RuntimeContent (edmx:Runtime) • edmx:StorageModels • edmx:ConceptualModels • edmx:Mappings • Designer Content (edmx:Designer) • edmx:Connection • edmx:Options • edmx:Diagrams Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
.edmx • RuntimeContent (edmx:Runtime) : questasezionecontieneinformazionichesonousate per generareilmodello e mapparei file delleapplicazionicheutilizzanol’entity Framework • edmx:StorageModels:questasezionedescrive lo schema(la struttura) del database target ed è scritta in linguaggio SSDL (Storage Schema Definition Language) • edmx:ConceptualModels: Questa sezionedefinisceentitàedassociazionitraentitàneldominioapplicativo. Questa sezione è scritta in linguaggio CSDL (Conceptual Storage definition Language) • edmx:Mappings: Questa sezionedescriveil mapping trailmodelloconcettualeedil database target ed è scritto in linguaggio MSL (Mapping Specification Language) • Designer Content (edmx:Designer): questa sezionecontieneinformazioniutilizzatedall’ Entity Designer per renderizzare un modelloconcettualegraficamente • edmx:Connection: questasezionedescrive le proprietà del modelloconcettualechesiriflettonosullastringadiconnessione • edmx:Options: questa sezione descrive proprietà opzionali del modello concettuale • edmx:Diagrams:questasezionecontieneinformazioniusatedall’ Entity Designer per renderizzaregraficamenteilmodelloconcettuale Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
.edmx • Un esempiodi file .edmx (estratto) Titolo Presentazione / Data / Confidenziale / Elaborazione di ...
EntityDataSource • Per richiamareilDataModel e funzionalità ad esso associate, in un documento .aspx è possibileutilizzareilcontrolloEntityDataSource • Simile al controllo SqlDataSource, è specificatamente pensato per interagire con una sorgente dati gestita attraverso l’EntityFramework • Puòessereespostodichiarativamente in un documento .aspxattraverso un tag • <asp:EntityDataSource> e fungere da intermediario tra il DAL (rappresentato dall’EntityFramework) e i controlli di esposizione dati (layerView) • Puòessererichiamatoda un qualsiasicontrollo “consumer “, siaesso ad esempiounaGridView o unaDatalist Titolo Presentazione / Data / Confidenziale / Elaborazione di ...