© 2015 Profinit. All rights reserved. Entity Framework v enterprise aplikacích Tomáš Vichta28. 11. 2015.

Slides:



Advertisements
Podobné prezentace
Elektromagnetická slučitelnost. Název projektu: Nové ICT rozvíjí matematické a odborné kompetence Číslo projektu: CZ.1.07/1.5.00/ Název školy:
Advertisements

Strategické řízení školy s využitím sebehodnocení školy dle modelu CAF RNDr. Hana Žufanová.
© 2015 Profinit. All rights reserved. Entity Framework: Optimalizace a záludnosti Tomáš Vichta
Období vzniku: duben _inovace_FG.9.48 Autor : Vladimír TesaříkČlověk a svět práce, finanční gramotnost, nové auto.
NSK A SEKTOROVÉ DOHODY JAKO NÁSTROJE PRO PROVÁZÁNÍ POTŘEB ZAMĚSTNAVATELŮ A VZDĚLAVATELŮ Ilona Šimarová, Svaz průmyslu.
PŘEHLED ZAJÍMAVOSTÍ Z KONFERENCE INTERNET VE STÁTNÍ SPRÁVĚ A SAMOSPRÁVĚ 2013 Mgr. Tomáš Lechner, VŠE v Praze.
Elektronické učební materiály - II. stupeň Digitální technologie 9 Autor: Bc. Pavel Šiktanc Movie Maker uložení a sdílení filmů Co se všechno naučíme???
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Prostředí internetu Číslo DUM: III/2/VT/2/2/27 Vzdělávací předmět: Výpočetní technika Tematická oblast:
Přecházíme na WordPress Hynek Beran Správa ICT město Hořice
Návrh věcného záměru zákona o stavebních úřadech - co by bylo, kdyby… Ing. Jiří Štochel, VITA software s.r.o. 1.
NÁZEV ŠKOLY: Střední odborné učiliště a Základní škola AUTOR: Bc. Lucie Chojnová NÁZEV: VY_32_INOVACE_07_Význam a funkce rodiny TÉMA SADY: Občanská výchova.
Systém správy dokumentace akreditované zkušební laboratoře Bc. Jan Randl, 4912.
Programování v jazyce C++ Dědičnost a polymorfismus.
Základní škola a Mateřská škola, Liberec, Barvířská 38/6, příspěvková organizace Název : VY_32_inovace_18 Informatika - MS Excel – Typy grafů Autor: Pavlína.
MÁTE VE SVÝCH DATECH NEJVĚTŠÍ BOHATSTVÍ. Stávající datový sklad Pasivní homologace adresy Identifikátory subjektu IČ, jméno, příjmení, domácnost (první.
Software Licence a distribuce Karel Nymsa Dotkněte se inovací CZ.1.07/1.3.00/
Rozhodování. Podle typu rozhodovacího problému  za jistoty  za rizika (nejistoty)  za neurčitosti Kdo bude řešit  Skupina  Jednotlivec.
Počitačová bezpečnost - je obor informatiky, který se zabývá zabezpečením informací v počítačích (odhalení a zmenšení rizik spojených s používáním počítače).
Název školy ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu CZ.1.07/1.4.00/ Číslo a název klíčové aktivity 3.2 Inovace a zkvalitnění výuky prostřednictvím.
Univerzitní informační systém III., Lednice 2004 Vývoj a koncepce nového univerzitního webu Ondřej Kudlík
OneNote. Co to je?  OneNote patří k produktům Microsoftu, nyní je ke stažení zdarma  jde o aplikaci pro rychlou, snadnou a přehlednou správu různých.
Číslo projektu CZ.1.07/1.5.00/ Název školy Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64 Název materiálu VY_32_INOVACE_ZV_3_KRE_19_SPRAVNI_PRAVO.
Software =je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost. - Software je protiklad k hardwaru,
Jsou venkovské školy horší než městské?
Role dat v procesu rozhodování?
16.1 Dokument v digitální podobě
PŘIHLÁŠENÍ K ELEKTRONICKÉ EVIDENCI TRŽEB
Portál veřejné správy České republiky Empire, s. r. o
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu
Business Intelligence
Globální grant Operační program Rozvoj lidských zdrojů
Pracovní porada Pracovní list.
ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu
Pracovní porada Pracovní list.
Algoritmizace - opakování
Algoritmizace - opakování
Základní informace o poskytovateli
Číslo projektu Číslo materiálu název školy Autor Tématický celek
Pravěké megalitické stavby
SOFTWARE OSOBNÍHO POČÍTAČE
Kvalita-Inkluze-Poradenství-Rozvoj (KIPR)
Inf Ovládání operačního systému
Inf Tabulkový procesor - formátování
Název: Práce s tabulátory Autor: Hokr Jan
2. P marketingového mixu Cena. 2. P marketingového mixu Cena.
Rozpisy témat a odevzdávárny
Elektromagnetická slučitelnost
Digitální učební materiál
Vliv reklamy na společnost
Výzkum v malých a středních firmách
České školství v mezinárodním srovnání Stručné seznámení s vybranými ukazateli publikace OECD Education at a Glance 2010 Tisková konference 7.
Přídavná zařízení.
STŘEDNÍ ŠKOLA STAVEBNÍ A TECHNICKÁ Ústí nad Labem, Čelakovského 5, příspěvková organizace Páteřní škola Ústeckého kraje Podnik VY_32_INOVACE_40_811 Projekt.
Microsoft Office Access
Setkání kariérových poradců
Lotus Notes Lotus Notes Alena Málková
Materiál byl vytvořen v rámci projektu
Kraj Vysočina, CAF a cesta ke zlatu
Mistrovská zkouška Jednání Sektorové rady
A5M33IZS – Informační a znalostní systémy
Kooperace a kolaborace v online prostředí
Prodeji produktu nebo služby
Domy na půl cesty ve středočeském kraji
Ing. Stanislava Správková
10 pravidel, jak řídit správně e-shop
Martin VLASTNÍK, vedoucí oddělení politiky nerostných surovin
Jaké jsou obzory digitální Evropy?
Digitální učební materiál
Obrat V literatuře často užívaný výraz pro růst firem – jak roste obrat Obrat je širší pojem než tržby Obrat uvedený ve Výsledovce – poslední řádek.
Kód materiálu: VY_32_INOVACE_09_DEN_ZEME Název materiálu: Den Země
Transkript prezentace:

© 2015 Profinit. All rights reserved. Entity Framework v enterprise aplikacích Tomáš Vichta

© 2015 Profinit. All rights reserved. 2 Entity Framework v enterprise aplikacích o Design vzorové aplikace o Automapper o CRUD o DbContext

© 2015 Profinit. All rights reserved. 3 Entity Framework v enterprise aplikacích o Cílový projekt –Menší až střední datově orientovaná webová aplikace –Převážně atomické CRUD operace (Create, Read, Update, Delete) Konfigurační nástroje, reporty, jednoduché datové vazby –Zjednodušený CQRS pattern (Command Query Responsibility Segregation) a přizpůsobený pro použití s EF –Společné sdílené komponenty –Celkem silná vazba na EF může být nevýhoda šlo by vylepšit, ale za cenu vyšší složitosti –Logiku pro specifické operace (jiné než klasický CRUD/CQRS) může být vhodnější implementovat paralelně vedle, samostatně Je pak k diskuzi, zda komplikovat aplikaci 2 odlišnými přístupy pro práci s daty, nebo to celé navrhnout jinak a jednotně.

© 2015 Profinit. All rights reserved. Datové objekty a aplikační vrstvy

© 2015 Profinit. All rights reserved. AutoMapper o nuget balíček AutoMapper, o Automatické mapování mezi datovým objekty (Entity, Dto objekty, View models, …) o Podpora EF Linq, Expressions (AutoMapper.QueryableExtensions) o Lze integrovat s Dependency Injection frameworky o Podpora pokročilých funkcí (custom mapování) o Podpora mapování collections

© 2015 Profinit. All rights reserved. 6 CRUD Queries – zobrazení dat

© 2015 Profinit. All rights reserved. 7 CRUD Modifikace dat

© 2015 Profinit. All rights reserved. 8 Datové objekty o Datové objekty mají vždy primární klíč: Int32 Id –Toto omezení může někdy vadit, pro CRUD je to tak ale obvykle OK –Často to takto vyžadují GUI komponenty (např. Telerik Kendo grid) o EF entity, BusinessDto a ViewModel objekty –BusinessDto nebo i EF entitu lze poslat až na UI vrstvu –zanášíme tím ale závislost na nižších vrstvách –pro jednoduché scénáře lze akceptovat –správně – samostatné ViewModel objekty pro Create, Update, i Delete designově OK, ale přidělává to práci často se používá jediný objekt (přímo EF entita) pro celý CRUD – spíš nedoporučuji, ale záleží na typu a velikosti projektu

© 2015 Profinit. All rights reserved. 9 Design obecně o Create/Update/Delete operace –I Update by šel udělat genericky, ale takto je to bezpečnější –Nenačítáme entitu před update/delete, protože to není třeba Při editaci 1 entity by to typicky nevadilo, problém při editaci mnoha entit najednou o CrudFacade –Šlo by to i bez Facade, možná by to bylo i designově čistější o Dependency Injection –Standard a základ –Co nejméně kombinovat se singletony, statickými třídami a ručně vytvářenými objekty Problém obecně u Atributů, MVC - Razor helpery, atd. o Zapouzdření –pouze "hlavní" interfaces a datové objekty jsou public –Třídy v Business vrstvě internal –MVC Controllers a další MVC komponenty ve WebUI musí být public vlastnost MVC a.NET - např. runtime kompilace Views v samostatné app. doméně

© 2015 Profinit. All rights reserved. 10 DbContext o Lifecycle –Unit of work – ale jak velkou tu Unit of work uděláme? –PerWebRequest – častý kompromis –Alternativně lze doporučit menší scope: per-facade, per-operation –Pokud váháte, dělejte spíš menší scope, než větší – EF má problémy, když projde ChangeTrackerem stovky a více entit. o Dependency Injection –Objekt jako každý jiný – proč jej neřídit pomocí DI? –Umožní injectovat závislosti, viz. příklad: IDateTimeFacade Pro automatické nastavování CreatedAt, ModifiedAt, DeletedAt Pro testy složitých integrací – možnost uměle posunout čas pomocí testovací implementace Opatrně potom na používání času na DB serveru – GETDATE(), …. IAuthenticationService – pro automatické nastavování CreatedBy, ModifiedBy, DeletedBy o Definovat vlastní repository na DbContextem?

© 2015 Profinit. All rights reserved. Diskuze

© 2015 Profinit. All rights reserved. Díky za pozornost 1

© 2015 Profinit. All rights reserved. Profinit, s.r.o., Tychonova 2, Praha 6, , Společnost PROFINIT je členem nadnárodní skupiny New Frontier Group, která je leadrem v oblasti digitální transformace organizací a firem ve střední a východní Evropě. S více než 2000 zaměstnanci v 17 zemích patří mezi deset největších poskytovatelů ICT služeb v celém CEE regionu a řadí se ke špičce v oblasti vývoje software na zakázku, data managementu, datových skladů a business intelligence. PROFINIT má řadu významných zákazníků z finančního a telekomunikačního sektoru, utilit a státní správy. Společnost se primárně zaměřuje na konzultační služby v oblasti digitální transformace, technologické služby a outsourcing. Podle údajů IDC (2012) patří PROFINIT mezi 5 největších firem v oblasti vývoje software na zakázku v České Republice a je držitelem řady dalších ocenění. Shaping future, delivering results!