ASP.NET Dynamic Data uues kuues
02.09.2008 | Gunnar
Möödunud aastal toimunud TechEd-il käisin kuulamas ettekannet ASP.NET Dynamic Data teemal. Tol hetkel veel nii toores ja uus tehnoloogia on tänaseks saanud valmis ning jõudnud kasutajateni .Net 3.5 ja Visual Studio 2008 SP1 kaudu. Vaatame siis peale, milline on lõpptulemus.
Alustuseks on vaja kahte asja: Visual Studio projekti, millel tüübiks Dynamic Data Entities Web Site ja andmebaasi, millest andmeid loetakse. Visual Studio soovitan selle katse jaoks käivitada administraatori õigustes, sest vastasel korral ei pruugi kõik töötada just selliselt nagu vaja. Vähemasti mul ei õnnestunud tavakasutaja õigustes päris paljusid asju teha.
Dynamic Data Web Site
Dünaamilise andmemajanduse jaoks on mitu templiiti. Mina valisin neist lihtsalt ühe välja. See ei tähenda, et teisi ei saaks kasutada. Saab küll, kuid kõike ma ometi korraga ju ei jõua - kaks kätt jääb puudu. Valida saab ka templiidi, mis on mõeldud LINQ to SQL jaoks, samuti saab valida templiidi, mis midagi spetsiifilist ei eelda.
Uue veebi loomisel saame tulemuseks midagi sellist nagu on näha paremal toodud pildil. Kõik vajalik andmete haldamise jaoks on olemas ja meie eest osaliselt ära tehtud. Mida aga hetkel pole, on andmed ja nüüd tuleb teha kaks liigutust seoses andmetega. Esiteks peame looma andmebaasi ja teiseks peame selle andmete haldamise süsteemile kättesaadavaks tegema.
Andmebaas
Järgmiseks loome lihtsa andmebaasi. Mina tegin andmebaasi SQL Serveri peale. Andmebaasi tegin sellise, nagu näha alloleval pildil.
Tegemist on lihtsa andmebaasiga, kuhu saab sisestada andmeid firmade ja arvete kohta. Ei midagi erilist.
NB! Ära kasuta tabeleid, mis on iseendaga seotud - see ajas ADO.NET Entity Data Modeli mul hiljem täiesti segi. Hierarhilisi tabeleid saab ka kasutada, aga selleks tuleb juba hulka rohkem vaeva näha, kui mu tänane õhtu lubab.
Enda andmebaasi võid vabalt teha sellise nagu heaks arvad, lihtsalt jälgi, et oleks ka mõned relatsioonid tabelite vahel olemas. Muidu jääb pool lõbust ära.
Andmemudel
Järgmiseks teeme andmebaasi dünaamiliste andmete mootorile söödavaks. Kes soovib, võib ka LINQ to SQL peal tegutseda. Siit edasi kuni antud punkti lõpuni on juttu sellest, kuidas ADO.NET Entity Data Model projektile lisada ja toimima saada. Lühidalt on sammud sellised.
- Lisa projekti App_Code kataloog.
- Kliki selle peal hiire paremat nuppu ja vali Add New Item...
- Vali uue elemendi tüübiks ADO.NET Entity Data Model ja vajuta nuppu Add.
- Sisesta andmebaasi ühendusega seotud parameetrid ning vajuta nuppu Finish.
- Kui kõik läks hästi, siis genereerib Visual Studio automaatselt valmis kõik vajaliku - nii mudeli enda kui ka seda kajastava koodi.
Ekraanile sain ma nende sammude järel ette sellise tulemuse, nagu on näha alltoodud pildil. Vaikimisi, nagu me näeme, on klassidel nimed samad, mis tabelitel. Omaduste nimed on samad, mis vastavate tabelite väljadel.

Muideks, selle sireda pildi saamiseks ei pidanud ma aktiivsest aknast ekraanpauku tegema. Visual Studio vastav disainer laseb diagrammi vajadusel pildina salvestada. Formaadid tundusid peale vaadates olevat enam-vähem samad, mida toetab mu vaieldamatu lemmik - MS Paint.
Mudeli sidumine dünaamiliste andmete mootoriga
Järgmiseks peame siis dünaamilist andmete haldust pakkuvale mootorile selgeks tegema, et meil on olemas selline mudel ja me tahame seda kasutada.
Veebiprojekti loomise käigus loodi lisaks kõigele muule Global.asax, mis sisaldab mõningat koodi ja tervet pikka jutustust kommentaari. Pahaks ei tasu panna, sest kommentaarid jagavad mõningaid juhiseid, mis võivad näiteks LINQ To SQL korral päris kasulikuks osutuda.
Global.asax failist leiame staatilise meetodi, millel nimeks RegisterRoutes(). Selle meetodi lõppu peame lisama sellised read.
myEntities on siinkohal eelmises punktis loodud mudeli klassi nimi. Sellega oleme kõik vajaliku eeltöö teinud. Nüüd võib korra projekti kompileerida, et kontrollida kas kõik läks hästi. Eduka kompileerimise korral võtame välja auhinna ning hakkame ilusaid pilte vaatama.
ASP.NET Dynamic Data uues kuues
Järgnevalt ülevaade eeltehtud töö viljadest. Kui projekti kompileerimine õnnestus, siis võime projekti käivitada ning vaadata tulemust.
![]()
Dynamic Data Site. Selline on tulemuseks saadud saidi
esilehekülg. Originaalsuuruses vaatamiseks kliki
pildil hiirega.
Dynamic Data Site. Selline on automaatselt genereeritud vorm
firmade sisestamiseks. Originaalsuuruses vaatamiseks
kliki pildil hiirega.
![]()
Dynamic Data Site. Selline on firmade loend. Originaalsuuruses
vaatamiseks kliki pildil hiirega.
![]()
Dynamic Data Site. Selline on arvete loend. Pane tähele filtreerimise
võimalust firmade järgi. Originaalsuuruses vaatamiseks kliki
pildil hiirega.
Märkusena olgu öeldud, et igasugused rippnimistud tekivad automaatselt, kui andmemudelis on seosed paigas. Lisaks sellele saab genereeritud loendeid kuvatavate väljade järgi sorteerida - selleks tuleb vaid hiirega vastava veeru päisel klikkida.
Lõpetuseks
Kokkuvõtvalt võib öelda, et tegemist on millegi päris kasulikuga. Lihtsamad andmete sisestamise keskkonnad saab Dynamic Data abil kenasti ära lahendada ja seda ilma suurema tegemiseta. Arendajad saavad Dynamic Data saite kasutada näiteks selleks, et sisestada testandmeid andmebaasidesse, mille klientkeskkonnad on alles ehitamisel. Ja kes sel kellaajal veel mõelda suudab leiab Dynamic Data jaoks kindlasti muidki kasulikke rakendusviise.
