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

  • Full Stack Hands-On Development with .NET

    In the fast-paced realm of modern software development, proficiency across a full stack of technologies is not just beneficial, it's essential. Microsoft has an entire stack of open source development components in its .NET platform (formerly known as .NET Core) that can be used to build an end-to-end set of applications.

  • .NET-Centric Uno Platform Debuts 'Single Project' for 9 Targets

    "We've reduced the complexity of project files and eliminated the need for explicit NuGet package references, separate project libraries, or 'shared' projects."

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

Subscribe on YouTube