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

Featured

  • Cloud-Focused .NET Aspire 9.1 Released

    Along with .NET 10 Preview 1, Microsoft released.NET Aspire 9.1, the latest update to its opinionated, cloud-ready stack for building resilient, observable, and configurable cloud-native applications with .NET.

  • Microsoft Ships First .NET 10 Preview

    Microsoft shipped .NET 10 Preview 1, introducing a raft of improvements and fixes across performance, libraries, and the developer experience.

  • C# Dev Kit Previews .NET Aspire Orchestration

    Microsoft's dev team has been busy updating the C# Dev Kit, a Visual Studio Code extension that enhances the C# development experience by providing tools for managing, debugging, and editing C# projects.

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

  • Naive Bayes Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the naive Bayes regression technique, where the goal is to predict a single numeric value. Compared to other machine learning regression techniques, naive Bayes regression is usually less accurate, but is simple, easy to implement and customize, works on both large and small datasets, is highly interpretable, and doesn't require tuning any hyperparameters.

Subscribe on YouTube

Upcoming Training Events