Upload
ales-roubicek
View
1.508
Download
0
Embed Size (px)
Citation preview
SEXY INFRASTRUKTURAJak dostat z nástrojů maximum
Obsah Co je infrastruktura? Přístupy k datovému zdroji
O/RM nástroje Tvorba dotazů
Komponenty a konfigurace IoC kontejnery Konfigurační DSL
Co je infrastruktura? Přístup k datovým zdrojům
Databáze XML Webové služby
Konfigurace komponent Pro aplikaci je důležitá, ale neměly
bychom s ní ztrácet čas - měla by nám práci usnadňovat, ne ztěžovat!
Přístup k datovému zdroji Obecně nás nezajímá kam a jak se data
ukládají IRepository, IQueryable
IRepository hraje důležitou roli v modelu domény
Konkrétní implementace je už věc infrastruktury
ARRepository, SqlRepository, WSRepository…
Přístup k databázi
O/R Mapování
NHibernate Opensource se silnou komunitou Abstrakce dotazování do databazí
Dialekty Různé druhy Connection
Mapování přes XML Práce v Session Virtuální vlastnosti
ADO.NET Entity Framework Součást SP1 pro 3.5 framework Abstrakce databázového dotazování Silné užití LINQ Různé drivery connection Visuální nástroj ve VS 2008 SP1
ActiveRecord Staví nad NHibernate OpenSource opět silná komunita (Castle
Project) Convention over configuration Užití atributů k mapování
Vše na jednom místě Nepotřebuješ se učit další XML schéma
Entity Framework vs. NHibernateADO.NET Entity Framework NHibernate
ActiveRecord vs. NHibernateActiveRecord NHibernate
Dotazování NHibernate Criteria
SQL like, stringy Integrální soušást
NHibernate Query Generator Fluent interface pro tvorbu silně typových
dotazů LINQ 2 NHibernate
Implementace IQeryable pro NH a AR
Ukázka kódu datazu Criteria
var users = session.CreateCriteria(typeof(User)).Add(Expression.Like("Name", "Fritz%")). List();
Query generatorvar users = User.FindAll(Where.User.Name.StartsWith("Fritz"));
LINQvar users = from user in Users where user.Name.StartsWith("Fritz") select user;
Komponenty a konfigurace
IoC kontejnery
IoC a Dependency Injection Jiný způsob myšlení (obráceně) Slabá vazba mezi komponentami
(rozhranní) Jednoduchá rozšiřitelnost Snadná výměna komponent
Windsor Součást projektu Castle – silná komunita Konfigurace komponent v C#
Fluent interface Nutnost rekompilace
Konfigurace komponent v XML Stačí jen restart aplikace Další XML
Spring.net Port z Javy – Spring má silnou pozici Konfigurace v C# i XML
Další Ninject Unity
P&P od Microsoftu MEF
budoucí součást .net frameworku Od září na něm bude pracovat také autor
Windsoru Konfigurace pomocí atributů
Provider pattern Známý z ASP.NET
Binsor Konfigurace Windsor v Boo Síla skriptovacího jazyku bez nutnosti rekompilace
Diskuse a konec