True to his word, Tim Mallalieu posted on June 24, 2008, an Initial POCO Design 1-Pager which was intended to be an “Initial POCO Feater 1-Pager.”

The post starts with a Part 1 Overview that lists Jimmie Nilsson’s six requirements/assumptions that are verboten in a persistence ignorant design.

Part 2 Context reiterates that POCO support in v2 would require abandoning the IEntityWithRelationships and IEntityWithChangeTracking interfaces and POCOs can’t use attributes to map object members to the conceptual schema.

Part 3 Design shows classes for Customer and Order entities with a 1:many relationship between them.

O-Space to C-Space mapping is done by convention – i.e. the CLR types of the entities below map to the corresponding entities already defined in the Conceptual Model.

Code for the POCO partial classes for such entities is shown, together with a sample query and addition of a pair of entities. So far, it looks like POCO to me.

Update 6/25/2008: Mary Jo’s column hit Techmeme on 6/24/2008 at 4:45 PM. My favorite comment to her column: “I'm not a tester: I've never installed nor tested an Entity Framework beta, but I signed the vote of no confidence” by odenni.

The process is a bit different for Web apps because you use Project Explorer’s Add Reference feature to add the System.ComponentModel.DataAnnotations, System.Web.Abstractions, and System.Web.DynamicData and System.Web.Routing namespaces.

Scott notes that you also must conform namespaces in the Dynamic Data code-behind files you add.

Most Canonical Functions required by Entity Framework have been implemented using Oracle's built-in functions. In some cases it required some query rewriting, such as when handling Right() canonical function which has no direct Oracle translation and SUBSTR() must be used instead.

I should stress that this is a sample not an official supported Oracle provider from Microsoft, but it is designed to help provider writers learn more about building providers for the EF, as well as to highlight some of the particular challenges encountered in briding between the EF's view of the world and that of Oracle, to fully demonstrate the provider-agnostic nature of the EF, etc.

Justin Etheredge Starts Two-Part Series about LINQ Expression Trees

Tree modification before execution - You can actually modify the tree before it is compiled. You could join operations or simplify the tree before compiling it.

Combining trees: This is in line with number 1, but you can take multiple expression trees and combine them using new Expression tree nodes. (Yes, you can manually generate these, and we will get into those later on)

Alternate Execution: You can take an expression tree and interpret it and execute it in your own manner. This is precisely what LINQ To SQL does. It takes an expression tree and interprets it, then turns it into SQL instead of runnable MSIL

Few sites that use ASP.NET Dynamic Data will consist solely of scaffolded pages. Scott’s How to add Dynamic Data to an Existing Web Site post of June 23, 2008 provides detailed, step-by-step instructions for integrating scaffolded pages into an existing ASP.NET site. The process involves:

Creating a dummy ASP.NET Dynamic Data Web site and copying the DynamicData folder as well as Site.css and Site.master files to the existing project.

Copying the Global.asax file to the existing site or add the model registration and routes to an existing Global.asax file.

We hope to add a tooling gesture to Visual Studio in the future to automatically do these steps. Once these steps are complete you can start taking advantage of Dynamic Data functionality in your existing applications.

A Wizard dialog to handle the preceding steps sounds like a good idea to me.

Bart De Smet Continues His LINQ to MSI Implementation by Adding “Fluent Classes”

The dual Web role application has been running in Microsoft's South Central US (San Antonio) data center since September 2009. I believe it is the oldest continuously running Windows Azure application.

About Me

I'm a Windows Azure Insider, a retired Windows Azure MVP, the principal developer for OakLeaf Systems and the author of 30+ books on Microsoft software. The books have more than 1.25 million English copies in print and have been translated into 20+ languages.

Full disclosure: I make part of my livelihood by writing about Microsoft products in books and for magazines. I regularly receive free evaluation software from Microsoft and press credentials for Microsoft Tech•Ed and PDC. I'm also a member of the Microsoft Partner Network.