sexy infrastruktura

Post on 16-Apr-2017

1.500 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related