Neden Poco?

Thursday, June 09, 2011 12:00 PM

Geçen hafta okumaktan zevk aldığım ALT.NET guruba bir başlık açmıştım. Neden poco? Gökhan ERCAN arkadaşımızın verdiği cevap konuyu gayet iyi anlatan bir cevap olmuştu.

 

POCO entity'leri mevcut kullanılan ORM'ye ya da diğer bir dış sisteme ait referans barındırmadığı için sistemdeki mevcut komponent'lerin hepsinden soyutlanmış olacaktır. Bu da üretilen entity'lerin daha kolay test edilmesi, daha saf olarak serialize edilmesi, daha az yer kaplaması ve hiçbir kütüphaneye bağımlılığı olmadan farklı sistemler arasında dağıtılabilmesi gibi avantajlar getirecektir. İleride ORM değiştirebilmek ve aynı entity'lerin farklı ORM kullanan sistemler arasında sorunsuz paylaşabilmesi gibi avantajları olacaktır. 

 

Dezavantaj olarak ise; mimarinin her katmanında temel data kontratları olarak kullanılan entity'lerin direk olarak veriyi ilgilendiren ChangeTracking, LazyLoading, Datatype Validation, Serialization, Databinding gibi konularda tamamen bilgisiz olması ve bu konuda kendiliğinden bir destek verememesidir. Bu özellikleri dış servislerden dinamik ya da statik proxy'ler üreterek çözmek mümkün ama her entity kullanımında 1-2 satırlık ekstra kod getirecek ve dinamik çağrımlar yapacağı için belirli bir oranda performansı düşürebilecektir.. Ayrıca POCO'ya dinamik proxy'ler ile servisler sağlarken tüm property'lerin public, virtual olması, ctor almaması, abstract olmaması gibi kısıtlamalar gelecektir. Bunlar da dezavantaj sayılabilir. "

Etiketler Poco Orm

ORM li $iir

Wednesday, March 11, 2009 10:45 AM

Belkide dünyada bir ilk:)  Google gorupta tartışırken herhalde arkadaş çığrından çıktı ve bu satırlar dilinden döküldü:)


L2S, seni nasil sevmi$tim oysa ki
Ama artik EF kullanmam gerek.
Belki POCO icin 2.0 i beklemem gerek,
Belki Canonical Model bi antipattern demek,
Bir suru iyi prensibi
EF icin ihlal ediyorum bebek...
Ihlal ediyorum!
LoD, Interface Seggragation vs i
Ve sevmek zorundayim, o iki mapping layer i
$imdi hayatimiz, bir XML cehennemi olsa da
Bir zehir olsa da ayni anda 2 ki$inin o designer da cali$masi,
Acik havada designer xml lerini merge etmemeyi oneriyordu radyolar...
Ve ben $imdi,
EntityObject kar$isinda yitirirken sabrimi,
L2S ile yazdigim, domain driven application lari du$unuyorum
Gozlerim kapali...

Etiketler Orm L2S Poco EF LoD