240 likes | 412 Views
Entity Framework 4.0. Gunnar Peipman Developers Team. Kava. O/R-mapperid ja nende kasutamine Entity Framework 4.0 uuendused SQL Serveri projektid Praktiline näide Kokkuvõte. O/R-mapperid. Ülevaade. O/R-Mapperid. O/R-mapperid. Andmebaasi ja OO-rakenduste objektid on sarnased
E N D
Entity Framework 4.0 Gunnar Peipman Developers Team
Kava • O/R-mapperid ja nende kasutamine • Entity Framework 4.0 uuendused • SQL Serveri projektid • Praktiline näide • Kokkuvõte
O/R-mapperid Ülevaade
O/R-mapperid • Andmebaasi ja OO-rakenduste objektid on sarnased • Andmebaasi kasutatakse objektide andmete säilitamiseks • O/R-mapper tunneb nii andmebaasi kui ka objektmudelit ning suudab objekte luua ja salvestada
O/R-mapperid • Tuntuim .NET platvormil on NHibernate (kõige paindlikum) • Hea O/R-mapperi kirjutamine on keerukas, ajaliselt mahukas ja eeldab väga tugevaid programmeerimise oskusi • In-house raamistikud on tihti probleemsed ja jõudluselt halvad
O/R-mapperid • Hea O/R-mapper hoiab kokku aega ja raha • Professionaalid hindavad tööjõudluse kasvuks kuni 40% • Hea optimeerimise korral võib O/R-mapper anda parema jõudluse käsitsi kirjutatud koodist
Andmebaasi loomine mudeli põhjal • Model-first: andmebaas luuakse mudeli põhjal • Tulemusena genereeritakse baasi loomiseks vajalik SQL-script • Selle võib lasta Visual Studiost vastu andmebaasi käima ja registreerida rakenduse konfiguratsioonis
Demo Model-First
POCO tugi Plain Old CLR Object Plain Old WTF Class Atribuudid Omadused Meetodid Partial Class Partial Class (EF) Atribuudid Omadused Meetodid
POCO tugi • Muudatuste monitoorimine: • Vaikimisi salvestatakse objekti snapshot objekti loomisel ja seda võrreldakse hiljem salvestamisele saadetud objektiga • Võimalik on ka pidev muutuste monitoorimine • IPOCO liides (koosneb mitmest klassist, mis võimaldab monitoorimist)
Demo POCO tugi
Pärilusseoste tugi • Entity Framework 4.0 toetab kõiki olulisemaid pärilusseoseid: • Table per type • Table per concrete type • Table per hierarchy • Toetatud on ka hierarhilised tabelid
Demo Pärilusseosed
Meeldetuletus Tagasiside lehed ka :)
Deferred/Lazy loading • Lazy loading tugi on olemas nii POCO-de kui ka EF objektide jaoks • Töötab virtual memberitega ainult • Lazy loading korral kasutatakse dünaamilisi proxysid • Proxyle vastava objekti laadimine toimub EF kaudu
Demo Lazy Loading
Muud uuendused • T4 mallid • Kompleksete tüüpide tugi • Võõrvõtmete kaasamine mudelisse • Mudeli funktsioonide tugi • Senisest parem T-SQL • Table splitting
MSSQL projektid • Andmebaasiprojektid MSSQL 2005 ja MSSQL 2008 jaoks • Võimaldavad andmebaasi põhjalikult defineerida • Inkrementaalne uuendamine • Automaatne paigaldamine • Andmete genereerimine
Praktiline näide Dynamic Data
Demo Dynamic Data