Posts Tagged ‘.NET’

EF Debate…

As the new VS2008 SP1 is coming out the door, Scott have a great post for all the improvements… One of the data development improvement is ADO.NET Entity Framework.

Danny Simmons, a Microsoft developer for ADO.NET Entity Framework project, has recently written a blog post comparing the Entity Framework with other data access solutions, which create a huge debate. I interest on how it compares with nHibernate. Here is an excerpt

The EF was specifically structured to separate the process of mapping queries/shaping results from building objects and tracking changes. This makes it easier to create a conceptual model which is how you want to think about your data and then reuse that conceptual model for a number of other services besides just building objects. Long-term we are working to build EDM awareness into a variety of other Microsoft products so that if you have an Entity Data Model, you should be able to automatically create REST-oriented web services over that model (ADO.Net Data Services aka Astoria), write reports against that model (Reporting Services), synchronize data between a server and an offline client store where the data is moved atomically as entities even if those entities draw from multiple database tables on the server, create workflows from entity-aware building blocks, etc. etc.

Dan admit that nHibernate is a rather full-featured ORM, and try to position EF to be more long team vision s for different layers or usages of the data. However, It seems that the EF team are strictly focused on data, the EF framework is very intrusive which made your application entity aware and bake its infrastructure directly into your business objects. NHibernate is not, it lets you use POCO in your business process.

I’d prefer a framework to be able to let me focus on business objects and problems, without data access infrastructure concerns bleeding into my business classes.

Greg Young, a Vancouver MVP, I met in Qcon last year, on his blog:

A single model cannot possibly be appropriate for all facets of your application including transactional behaviors, searching, and reporting. … Let me say for the 1000th time. If you are reporting off your transactional model you are seeking trouble!

I highly doubt a system like EF and what they suggest would work beyond trivial cases and is (as proposed) one small step up from using sprocs and linked servers as your integration model.

Jimmy Bogard, a senior consultant with Headspring Systems, had his reaction on his blog:

I think it’s a mistake to share a data model with anyone outside your bounded context (see Evans, Domain-Driven Design). It’s also a mistake to share a conceptual model or a EDM or whatever we’re calling this.

The EF goal is well beyond simple ORM. It’s an Object-Relational Mapper Mapper. You map your ORM to another conceptual map, which maps to the data model map, which maps to the database. The “just building objects” part tells me that EF is seriously discounting the idea of a rich domain model, which is where the heart of my business logic is.

There, and in stored procedures of course.

So far, it seems that there is lack of EF cheerleaders so far…


Read Full Post »

Not long ago (early April), P&P team just released the Unity as a lightweight, extensible dependency injection (DI) container, it facilitates building loosely coupled applications… CodePlex site is here http://codeplex.com/unity 

Last week, Microsoft’s .NET Framework program manager Krzysztof Cwalina announced that his team is working on a new framework for .NET — Managed Extensibility Framework (MEF) — designed to improve compatibility with third-party extensions. It seems that the .NET Framework group may take over the DI space from the P&P group… The followings are from K’s site: “The work we are doing builds on several existing Microsoft technologies (like the Unity framework) and with feedback from the DI community. The relationship with the Unity team is the regular relationship between the P&P group and the .NET Framework group where we trickle successful technologies and ideas from the P&P team into the .NET Framework after they have passed the test of time.”

MEF have much bigger scope than just he DI space, both Brad Adrams  and Krzysztof will blog more details about MEF in upcoming months, but here are some early details (subject to changes, of course): “MEF is a set of features referred in the academic community and in the industry as a Naming and Activation Service (returns an object given a “name”), Dependency Injection (DI) framework, and a Structural Type System (duck typing). These technologies (and other like System.AddIn) together are intended to enable the world of what we call Open and Dynamic Applications, i.e. make it easier and cheaper to build extensible applications and extensions.”

Read Full Post »

Framework Design Studio Released…

Krzysztof Cwalina and team released a Framework Design Studio that is a set of tools for framework and library developers to view, review, and compare versions of managed APIs.

It allows you to

  • List APIs exposed from a managed code assembly
  • Compare APIs in two versions of an assembly
  • Review APIs
  • Comment on API design
  • File bugs to a defect database (via plug-in)
  • Export Comments to a Microsoft Word document


Read Full Post »