Skip navigation

Entity Framework, PI

The latest installment the Entity Framework hullabaloo comes from Danny Simmons and looks like a step in the right direction. He says, “when so many people give such passionate feedback it was clear that I needed to investigate more before I could claim to have any sort of an informed opinion.” I see this as a great example of how participation from the ALT-minded Agilists and OSS folks are leading to change in something that’s likely to get a lot of attention and adoption from the .NET developers in the large.

Jeremy has a list of why he’d want Persistence Ignorance support in an ORM. In addition to the usual suspects of testability and single responsibility I’d need to add the oft-overlooked issue of aesthetics and elegance.

In a truly maintainable system, the code should read as clearly, cleanly, and concisely as possible. Ideally you’d have tests as a prologue (though I find most TDD type tests end up being design artifacts and slightly overhyped as eliminating the need for documentation, more on that later), but the code itself should flow like poetry and be layer cohesive.

By “layer cohesive” I mean if I’m in the a Domain Model project I want the model language — not programming language, the syntax I’m creating out of the general purpose language – to adhere the Ubiquitous Language of the domain I’ve modeled. If I’m in a Services layer project of my app I can afford a few attributes; they become readable as I’ve context-switched into that layer and know what to expect. Danny makes mention of this in supposing they’ll remove the requirement for attribute-based mappings:

At some point we will add an alternative mechanism for specifying metadata about the entity objects (thus freeing us from the hard requirement for attributes).

You know C# is a fine language for OO development (IMHO, the finest though I still want IronRuby for glue and Internal DSLs). As this is the default style of work I’m bringing to bear on problems I’m happy to see Microsoft finally leveraging it in their own frameworks/tools. Sure OO is hard, but I see Astoria as another example of consideration being given to alternative and emerging work styles (RESTful, mashups, etc.). I think the ADO.NET team should be given a great deal of credit engaging with the community and channeling the feedback into deliverable.  

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*