19
SEXY INFRASTRUKTURA Jak dostat z nástrojů maximum

Sexy infrastruktura

Embed Size (px)

Citation preview

Page 1: Sexy infrastruktura

SEXY INFRASTRUKTURAJak dostat z nástrojů maximum

Page 2: Sexy infrastruktura

Obsah Co je infrastruktura? Přístupy k datovému zdroji

O/RM nástroje Tvorba dotazů

Komponenty a konfigurace IoC kontejnery Konfigurační DSL

Page 3: Sexy infrastruktura

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!

Page 4: Sexy infrastruktura

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…

Page 5: Sexy infrastruktura

Přístup k databázi

O/R Mapování

Page 6: Sexy infrastruktura

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

Page 7: Sexy infrastruktura

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

Page 8: Sexy infrastruktura

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

Page 9: Sexy infrastruktura

Entity Framework vs. NHibernateADO.NET Entity Framework NHibernate

Page 10: Sexy infrastruktura

ActiveRecord vs. NHibernateActiveRecord NHibernate

Page 11: Sexy infrastruktura

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

Page 12: Sexy infrastruktura

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;

Page 13: Sexy infrastruktura

Komponenty a konfigurace

IoC kontejnery

Page 14: Sexy infrastruktura

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

Page 15: Sexy infrastruktura

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

Page 16: Sexy infrastruktura

Spring.net Port z Javy – Spring má silnou pozici Konfigurace v C# i XML

Page 17: Sexy infrastruktura

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

Page 18: Sexy infrastruktura

Binsor Konfigurace Windsor v Boo Síla skriptovacího jazyku bez nutnosti rekompilace

Page 19: Sexy infrastruktura

Diskuse a konec