Guest Opinion

A Vote for Transparency

Roger weighs in on the reasons behind the controversy surrounding Entity Framework.

Microsoft's traditional design process for Visual Studio has been tailored to a few beta releases, usually followed by a release candidate or two. VS 2008 added community technology previews (CTPs). CTPs are incremental technical releases between betas, which the SQL Server Group pioneered for SQL Server 2005, code-named "Yukon."

There was little or no opportunity for most VS and .NET users to participate in the design phase of .NET 3.0 and 3.5 or VS 2008 by suggesting new or improved features. Instead, betas and CTPs arrived with new or enhanced capabilities cast in concrete and offered for testing only. Recommendations for feature additions or modifications were met in Microsoft Connect posts with off-putting lines such as: "Your suggestion will be considered for a future version."

About a year ago, Pablo Castro, architect for the ADO.NET Data Services team, introduced the concept of "transparency in the design process" for Project "Astoria" in a July 20, 2007, blog post. The primary objective of transparent design, according to Castro, is to enable developers "to follow the design topics as we discuss them, and have the opportunity to provide feedback right during the time where we are actively discussing a certain aspect and haven't made a decision yet." Castro explained that the team would make its design process visible through blog posts, including "meeting notes from our design meetings." For the most part, the team followed its transparency mandate to interested parties' satisfaction, and Astoria will release to manufacturing with high marks for the design of a version 1 product.

Entity Framework (EF) version 1's design process followed the traditional pattern; its team developed the EF and Entity Data Model (EDM) architecture without early input from independent object/relational mapping (O/RM) tool users. This resulted in an initial confrontation at the March 2007 MVP Global Summit in Seattle with several high-visibility MVPs, who were proponents of the NHibernate O/RM tool. The primary issue was disregarding domain-driven design, test-driven development, and "persistence ignorance" principles. Despite the added development time contributed by moving EF v1's delivery vehicle from VS 2008 to Service Pack 1, EF v1 didn't overcome any of the alleged design deficiencies pointed out previously.

Program Manager Tim Mallalieu announced a transparent design exercise for ADO.NET EF v2 on June 23, 2008, along with a list of its high-priority features for v2, which included most of the MVPs' desires, and a copy-and-paste version of Castro's blog post. (This was Mallalieu's first post after taking over EF's project management in fall 2007.) An earlier post by the team's primary spokesperson, Daniel Simmons, announced the appointment of domain-architecture mavens Eric Evans, Stephen Forte, Martin Fowler, Pavel Hruby, and Jimmy Nilsson to a DP Advisory Council. EF Community Program Manager Elisa Flasko says that minutes of council meetings will be published in the EF Design blog.

On the same date as Mallalieu's post, an "ADO.NET Entity Framework Vote of No-Confidence" manifesto appeared on the Web citing a similar, but not identical, list of alleged deficiencies. It quickly garnered more than 400 signatories, was the subject of widespread commentary by .NET bloggers, and tarnished EF's credentials among VS developers. Mallalieu's reasoned reply the next day on his personal blog addressed most of the manifesto's points, but didn't calm the controversy. If the EF team had started its design process as a transparent design exercise, it probably would've assigned more resources to the issues initially raised by the MVPs, and corrected most -- if not all -- of the deficiencies.

SQL Server Data Services (SSDS) is in the early design stages now, and its team is holding the design cards for pre-release improvements close to its collective chest. It would behoove the SSDS team to take full advantage of its EF counterparts' experiences and commit to an equally transparent design exercise.

About the Author

Roger Jennings is an independent XML Web services and database developer and writer. His latest books include "Special Edition Using Microsoft Office Access 2007" (QUE Books, 2007) and "Expert One-on-One Visual Basic 2005 Database Programming" (WROX/Wiley, 2005). He’s also a VSM contributing editor and online columnist and manages the OakLeaf Systems blog. Jennings’ Code of Federal Regulations Web services won Microsoft’s 2002 .NET Best Horizontal Solution Award. Reach him at [email protected].

comments powered by Disqus


  • Vendors Update Controls for .NET Core 3.1, Blazor

    This week saw two third-party vendors of dev tools -- UX and UI toolkits and controls -- release new offerings that include support for two of Microsoft's main open source frameworks, the cross-platform .NET Core 3.1 and Blazor, which allows for creating browser-based web applications with C# instead of JavaScript.

  • C++ Is Focus of New Visual Studio 2019 v16.7 Preview 2

    C++ development is a focus point of the new Visual Studio 2019 v16.7 Preview 2, featuring a slew of tweaks and improvements touching upon remote SSH connections, IntelliSense support and more.

  • Clustering Non-Numeric Data Using C#

    Clustering non-numeric -- or categorial -- data is surprisingly difficult, but it's explained here by resident data scientist Dr. James McCaffrey of Microsoft Research, who provides all the code you need for a complete system using an algorithm based on a metric called category utility (CU), a measure how much information you gain by clustering.

  • So What's Up with Microsoft's (and Everyone Else's) Love of Rust?

    Microsoft already stewards several popular programming languages -- C#, TypeScript, F# -- so what's up with its love of Rust, along with the rest of the world?

  • C# Steps Up Programming Language Popularity Ladder

    Microsoft's C# programming language climbed a year-over-year notch on the TIOBE Index, which measures popularity among developers.

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events