EntityFramework und POCO’s Neuigkeiten

In verschiedenen Einträgen in diesem Blog habe ich über die Verwendung von POCO’s mit dem Entityframework berichtet. In seinem Buch “Applying Domain-Driven Design and Patterns: (Pearson Education, Inc., 2006)”, Jimmy Nilsson definiert POCO’s als "…ordinary classes where you focus on the business problem at hand without adding stuff for infrastructure-related reasons. ... The classes should focus on the business problem at hand. Nothing else should be in the classes in the Domain Model."

Mit der .NET Version 3.5 SP1 des Entityframeworks ist es nur indirekt möglich das Entityframework und POCO’s zu nutzen. In diesen Blog habe ich einige Möglichkeiten aufgezeigt, wie das aktuelle Entityframework und POCO’s zusammenarbeiten.

Nun gibt es auf dem Teamblock des ADO.NET Teams eine Ankündigung, dass in der .NET Version 4.0 ein Entityframework enthalten sein wird, welches POCO’s unterstützt. Dazu sollte man den Artikel “Sneak Preview: Persistence Ignorance and POCO in Entity Framework 4.0” lesen --> http://blogs.msdn.com/adonet/archive/2009/05/11/sneak-preview-persistence-ignorance-and-poco-in-entity-framework-4-0.aspx

Im Artikel selbst äussert sich der Autor auch zu den Vorteilen von POCO’s:

“… In Entity Framework 3.5 (.NET 3.5 SP1), there are more than a few restrictions that were imposed on entity classes. Entity classes in EF needed to either be sub classes of EntityObject, or had to implement a set of interfaces we collectively refer to as IPOCO – i.e. IEntityWithKey, IEntityWithChangeTracker and IEntityWithRelationships. These restrictions made it difficult if not downright impossible to build EF friendly domain classes that were truly independent of persistence concerns. It also meant that the testability of the domain classes was severely compromised. …”

GunnarD