Saturday, June 02, 2007

Entity Framework Updates

It's been a busy week for the Entity Framework (EF) and its components. If you're on your way to or at Tech*Ed 2007, you might find the information below useful when attending any of these LINQ and EF-related sessions:

Session Description
DAT04-TLC ADO.NET Entity Framework: Provider Model and Integration with Third-Party Databases
DAT318 Applied ADO.NET Entities: How to Leverage the Entity Framework in Your Application
DAT319 ADO.NET Entity Framework 1: Introduction
WEB308 Building a Complete Web Application Using ASP.NET "Orcas" and Microsoft Visual Studio Code Name "Orcas" (Part 2 of 2)
DEV319 LINQ and XML for the Microsoft Visual Basic Developer
DEV324 The .NET Language Integrated Query (LINQ) Framework
DEV332 XAML As a Better Microsoft Visual C# (Includes LINQ content)
DEV348 Using the .NET Language Integrated Query (LINQ) Framework with Relational Data
  Hands-On Labs
DAT06-HOL Understanding the ADO.NET Entity Framework
DEV19-HOL Introduction to LINQ
DEV20-HOL Mapping Your Objects to Database Tables with LINQ to SQL

6/3/2007: LINQ to Streams (SLinq) and LINQ to Expressions (MetaLinq) added to Third-Party LINQ Providers Post

An "appalling lack of documentation," as Oren Eini calls it, hasn't thwarted the work of third-party LINQ providers for specialized data domains. There now are 10 third-party LINQ providers and one helper (indexing) class listed on the Third-Party LINQ Providers page. A search of the CodePlex site on LINQ returned 15 projects as of 6/3/2007.

6/2/2007: The ADO.NET Team's Response to Defining the Direction of LINQ to Entities/EDM

ADO.NET architect Mike Pizzo responded in detail to my in absentia feedback for the Tech*Ed "focus group on LINQ/EDM ... to help define the direction of LINQ to Entities" in this long comment to my May 29, 2007 post. It's a great read for EF enthusiasts (and doubters)!

6/2/2007: Danny Simmons Now Groks Persistence Ignorance

One of my requests in my LINQ to Entities/EDM feedback was to "Respond formally to the concerns about lack of persistence ignorance and other issues voiced by the "O/RM Mafia" at the last MVP Summit in Redmond. Both Mike and Danny Simmons responded on the same day. Mike said:

The “O/RM Mafia” has been extremely effective in influencing our Object Services Dev Lead. I’m not sure what they have over him, but he’s totally bought into the idea of persistence ignorance (he’s said more than once that if only he’d “gotten” it a year ago, we would have gone a very different direction). Though I can’t say we’ll reach full persistence ignorance for V1, we are actively working on removing dependencies on domain classes in our remaining milestones.

Danny Simmons posted Persistence Ignorance: OK, I think I get it now early this morning (but not as early as Mike's comment), as promised in his March 28, 2007 A delay before I write more about persistence ignorance... post (shortly after the MVP summit ruckus.) Here's the takeaway:

So, to sum it all up, message received: persistence ignorance is needed, and we're now working to deliver it.  The first release of the entity framework likely will not have full support for it (there's just not enough time), but we will work to get into the first release the key changes which could not be made later so that the stage is set for the next release.

EF v1 might be a somewhat leaky abstraction but subsequent releases should deliver "'pure POCO', persistence ignorant domain models" to the agile-programming and domain-driven-design crowd, hopefully without a crippling performance hit.

Update 6/3/2007: Fixed Danny Simmons' name. Sorry about that, Danny.

6/1/2007: IBM, Oracle, and MySQL Will Support the Entity Framework

IBM's interest in LINQ and writing a EntityClient provider has been known since the last Entity Data Model "ProviderFest" but, in the words of Christian Shay, Oracle's Product Manager in the .NET and Windows group, "I think Oracle is keeping their level of support secret."

Oracle will be one of the presenters at Tech*Ed's DAT04-TLC: "ADO.NET Entity Framework: Provider Model and Integration with Third-Party Databases" chalk talk on Friday, June 8 from 1:00 PM to 2:15 PM in Blue Theater 12. Mike Pizzo says in reply to my point 13 on Oracle:

We have had two “ProviderFests” where vendors have come to Redmond for a week at a time to extend and test their providers with the latest Entity Framework bits and give us feedback. SQLite has already posted a version of their provider that works with the Entity Framework beta, and IBM, DataDirect, Oracle and MySQL will all join me for a chalk talk at TechEd on Friday to discuss their experiences extending their providers for the Entity Framework. [Emphasis added.]

Hopefully, the MySQL representative will demonstrate their EntityClient provider. David Sceppa's new blog contains updates to the status of third-party EF data providers.

Update 6/15/2007: David Sceppa reports in his TechEd: Provider Writers Talk About the Entity Framework post that IBM "demonstrated an early build of their provider working with the 101 LINQ to Entities samples." MySQL missed the session "due to scheduling problems but they are still very much involved."

Update 6/16/2007: Mike Pizzo expands on David Sceppa's report with brief details of DAT04-TLC presentations by DataDirect Technologies, Sybase, Oracle, and VistaDB in his Database Vendors Discuss the Entity Framework and LINQ at TechEd post of 6/15/2007 in the ADO.NET blog. As far as I can determine, this is the first mention of Sybase as participant in the EntityClient provider program. Mike also confirmed IBM's intention to add EntityClient and LINQ support to their Informix ADO.NET Data Provider.

5/31/2007: Matt Warren Writes "The Origin of LINQ to SQL" with a Dash of ObjectSpaces and WinFS Spice

The father of LINQ to SQL tells the inside story of how LINQ to SQL and LINQ itself came to be, describes how ObjectSpaces was drawn into the black hole of WinFS, and discloses that Microsoft's second attempt to productize an object/relational mapping (O/RM) tool started "the political nightmare that became [his] life for the next three years."

I'm sure all of us in the LINQ camp would enjoy more details on the three-year "political nightmare."

I had to make a few changes in my post about Matt's article as a result of Mike Pizzo's comment. 

Update 6/8/2007: Matt added a detailed LINQ to SQL: The Mapping Engine post on 6/6/2007 and the IQueryable’s Deep Dark Secret exposé on 6/1/2007.

5/31/2007: .NET Rocks Presents Frans Bouma on LLBLGen

Frans Bouma is the lead developer of LLBLGen Pro, a popular commercial object/relational mapping (O/RM) tool for .NET and one of about 40 O/RM apps listed in the Object-Relational-Mappers category of Fabrice Marguerie's SharpTools directory. Frans has been critical of the Entity Data Model and its Object Services layer's design since Microsoft first announced the EF. The interview with Frans starts at about 14:30. (Start there to learn what LLBL abbreviates.)

Frans was worried about "the effect of the EF on his business initially" (24:30), "If they [Microsoft] pull this off, I'm really in trouble." However, he concluded that EF "is a persistence solution, not an entity solution" (38:17) and decided "there's room for more than one [O/RM] tool" (39:10).

5/30/2007: An Entity SQL Primer

Microsoft promised an eSQL: An Entity SQL Language, ADO.NET Technical Preview document in the The ADO.NET Entity Framework Overview (June 2006) whitepapers, which appeared briefly in May 2006 and then vanished for about three weeks. As far as I've been able to determine, the ADO.NET team never published this document. 

There is an Entity SQL Quick Reference Guide (June 2006, a Word DOC in your C:\Program Files\Microsoft SDKs\ADO.NET vNext CTP\Docs folder after installing the Orcas March 2007 CTP), but it's not comprehensive and lacks syntax examples.

Mark Shields and Fabio Valbuena posted in the ADO.NET Team blog a much more detailed tutorial for Entity SQL (eSQL) on May 30, 2007. The post includes syntax examples using the Northwind sample database (what else?) and has the following sections

  • Types
  • Expressions
  • Query Expressions
  • SELECT VALUE and SELECT ROW
  • OFTYPE, ISOF, and TREAT
  • Paging
  • Relationship Navigation
  • Multi(set) Operations

If you're attempting to query the EDM with anything more complex than SELECT VALUE, you need to create a reference copy of this post.

5/29/2007: First Entity Framework CTP Scheduled for June

I reported that ADO.NET's Zlatko Michailov said on May 21, 2007, "The CTP is scheduled for June" in this ADO.NET Orcas forum thread in my Defining the Direction of LINQ to Entities/EDM post. However, you might not have seen this note if you didn't make it to the end of my list.

Mike Pizzo confirms in his comment that:

The first CTP of the Entity Framework outside of Orcas will be in June, and we will have CTPs/betas aligned with each of the Orcas Betas & RTM.

Good news. Let's hope the CTP has the new graphical EDM Designer.