First, read the announcement here.
Had that deja-vu yet? Me too . But let's not get into that right now, because I do think the Entity Framework situation is different from the WinFS/ObjectSpaces situation. So what's going on here?
Recently I replied to a post on Ayende's blog which I'll quote below:
In general lazy loading is more of a burden than a blessing.
The reason for this is that it leaks persistent storage access to different tiers via the lazy loadable associations. If you want to prevent your UI developers to utilize lazy loading, or are sending entities across the wire to a service, how are you preventing that lazy loading is called under the hood? We support 2 models, one has lazy loading, the other one doesn't (and is more geared towards disconnected environments).
You don't really miss lazy loading in the second model really, as long as you have prefetch paths to specify prefetching what you want (also into an existing graph) The thing is that the model then forces you to write more service oriented software: make the call to the data producer and tell the data producer (or repository, whatever you want to call it) what to get and you get the data and work with it. there's no leaky lazy loading under the hood bypassing the repository, you need to call the dataproducer to get the data, period.
I'll host a chalk & talk session at the upcoming Dutch CodeCamp on May 12th. The title is O/R mapping and Architecture, and as my session is the first of 3 sessions, the others are held by Alex Thissen and Paul Gielens, we will align our sessions so the whole track is actually one big session .
Recently, Andres Aguiar started a discussion between him and Udi Dahan about change tracking in the upcoming Entity Framework (EDM) from Microsoft. Basicly, Andres described why it was unfortunate that the EDM doesn't have change tracking inside the entity objects itself and gave some examples why that's unfortunate. Udi pulled the discussion into SOA land, and I think that was unfortunate as well, because there's a much wider used example which will illustrate why Andres is right and the rest is wrong: ASP.NET 2-way databinding. This article will be very technical, and it refers to stuff you won't run into most of the time, as it's functionality which is deep inside controls you just use. However to be able to use these controls and these features available to you in ASP.NET 2.0, they shouldn't force you to implement a lot of plumbing code yourself, as the sole reason you're using these controls is because they are the plumbing, they should take care of all that, why else bother using them?
Hurray! . Microsoft awarded me the MVP award for C# for the 4th time!. Congratulations to all the other fellow MVP renewals and new MVPs!