Showing posts with label ObjectSpaces. Show all posts
Showing posts with label ObjectSpaces. Show all posts

Friday, May 23, 2008

Is the ADO.NET Team Abandoning LINQ to SQL?

Updated 5/23/2008 at the end of the post.

Danny Simmons' Why use the Entity Framework? post includes an "Entity Framework vs. LINQ to SQL" topic that lists the following advantages of Entity Framework (EF) over LINQ to SQL:

  • Full provider model with support for multiple RDBMSs, including SQL Server Compact.
  • Not tied to a one:one relationship between entities and database tables.
  • Support for Table per Class and Table per Concrete Class hierarchy models.
  • Support for entity-splitting and complex types (also called value types)

Missing from this list are, for starters:

  • Default support for serializing complete object graphs.
  • An out-of-the-box multi-tier story for SP1.
  • Support for SQL Server Compact 3.5 SP1 in the Object/Relational Designer.

I had expected LINQ to SQL SP1 to support bidirectional serialization for WCF service applications with SP1's updated DataContractSerializer. However, the Object/Relational Designer's Serialization property still has None and Unidirectional options only. This fix would have taken minimal development and test time. You can accomplish this yourself but refreshing the data model requires adding [DataMember] attributes by hand to Association classes that create cyclic references.

LINQ to SQL has a much lighter footprint than EF, which makes it a better match for applications that use SQL Server Compact (SSCE) 3.5 SP1 and later. Support for SSCE by SqlMetal.exe arrived just in time for VS 2008 RTM but not by the designer. Surely there was plenty of time between VS 2008 RTM and SP1 Beta to work out this fix.

I also was looking forward to an early version of the mini connectionless DataContext that Matt Warren promised, as noted in my Changes Coming to LINQ for SQL post of just less than a year ago.

Compare LINQ to SQL SP1's New Features with Other ADO.NET Members

According to the ADO.NET Team's What's New in the SP1 Beta for LINQ to SQL? post of May 14, 2008, the following tweaks are what's new:

Across the LINQ to SQL we have made numerous bug fixes, better SQL translation for queries comparing nullable columns in Visual Basic, and support both in the runtime and the designer for SQL Server 2008.

New SQL Server 2008 Support includes:

  • Support for connecting to SQL Server 2008 databases in Server Explorer
  • Drag & drop tables in SQL Server 2008 databases from Server Explorer
  • Support for the following new types: Date, Time, DateTime2, DateTimeOffset, Filestream

SqlClient class members contain the majority of SQL Server 2008 support modifications and the SqlClient update is required to deliver Katmai support for SqlDataReader 3.5 across the entire Microsoft product line.

EF and the Entity Data Model Designer received a raft of new and improved features, as did ADO.NET Data Services (Astoria), which turned into a framework between November 2007 and May 2008. Astoria currently is staffing up for v2, as evidenced by their Interested in working on the ADO.NET Data Services Framework (aka "Astoria") or XML? post of May 17, 2008.

It's obvious to me that only trivial resources were devoted to LINQ to SQL in the post-RTM period.

Is LINQ to SQL a Legacy Data Layer?

If Microsoft intends to end-of-life LINQ to SQL, the ADO.NET team should notify .NET developers. In the meantime, I'm adding the following caveat to my reasons to choose EF over LINQ to SQL:

  • Entity Framework is Microsoft's strategic data access layer. LINQ to SQL has [almost | already] gained legacy status due to lack of attention from the Data Programmability group.

Update May 23, 2008: Andres Aguiar agreed with my conclusion in his comment to this post, but stated:

The Data Programmability Team never owned LinQ to SQL, it was owned by the C# team. That's why we have two O/R mappers, both teams wanted to ship theirs.

The Data Programmability team gained ownership of LINQ to SQL from the C# team about the time that Tim Mallalieu of SQL-DP took over program management from Dinesh Kulkarni, as Dinesh mentioned in his October 15, 2007 LINQ to SQL: What is NOT in RTM (V1) swansong from the LINQ to SQL team. (That's the post containing the source of the no "out-of-the-box multi-tier story" quote above.)

Tim doesn't qualify as a "great communicator." The last post to his blog was Databinding with ADO.NET Entity Framework is dated November 11, 2006. According to his LinkedIn profile, he's still employed by Microsoft as a Lead Program Manager.

Julie Lerman's Demurrer

Julie disagrees in her Damien Guard joins the LINQ to SQL team as a developer post of May 23, 2008. She says, "I have even seen suggestions that LINQ to SQL was intentionally cobbled and done so for political, not technical reasons." Me, too.

Matt Warren, the outspoken architect of LINQ to SQL, says in his Mocks Nix - An Extensible LINQ to SQL DataContext post of May 4, 2008:

LINQ to SQL was actually designed to be host to more types of back-ends than just SQL server. It had a provider model targeted for RTM, but was disabled before the release. Don’t ask me why. Be satisfied to know that is was not a technical reason. Internally, it still behaves that way. The trick is to find out how to swap in a new one when everything from the language to the runtime wants to keep you from doing it. [Emphasis added.]

(Matt gained his reputation for "telling it like it is" with his The Origin of LINQ to SQL post of May 31, 2007 which recounted the demise of ObjectSpaces in the black hole of WinFS and described his three years after the event as a "political nightmare.")

Julie interprets the hiring of Damien Guard by the ADO.NET Team as "an indication that the product will continue to evolve." I'm not so sure; Damien might have been hired to replace a dev lost to turnover in the ranks. The real money's being spent on the Entity Framework and its chief client, ADO.NET Data Services.

My thanks go to Julie for describing the original version of this post as a "deeply analytical blog post." For whatever it's worth, IANAL (I am not a lawyer) nor do I have any interest in being (or imitating) one. ;-) Full disclosure: I was a draftee on a Federal Grand Jury for a year and a half some time ago. :-(.

Saturday, May 17, 2008

LINQ and Entity Framework Posts for 5/16/2008+

Note: This post is updated daily or more frequently, depending on the availability of new articles.

Danny Simmons on Why use the Entity Framework?

My Danny Simmons Answers the Frequently Asked Question: Why Use the Entity Framework? of May 18, 2008 analyzes Danny's answer and agrees with his conclusions, as do Jon Papa, Julie Lerman, and Jonathan Carter (so far).

Added: 5/18/2008

Location of Missing ADO.NET Data Services AJAX Client Library

My "Manipulate Data in the Cloud with ADO.NET [Data Services]" story for Visual Studio Magazine's May 2008 issue mentions the ADO.NET Data Services AJAX Client Library but doesn't give its location, which is ADO Data Service AJAX Client Library on CodePlex.

For a guided tour of using the AJAX Client library, try Jonathan Carter's ADO.NET Data Services Part 6: AJAX post.

Added: 5/18/2008

Mike Taulty Duplicates My Problems with VS 2008 SP1 Beta Installation

Mike Taulty had the same problem I encountered with my first installation of the VS 2008 SP1 Beta bits: Indication of a successful install followed by no templates for ADO.NET Entity Data Model or ADO.NET Data Services. (See the "VS 2008 SP1 Beta Didn't Install on My Primary Development Machine (but Said It Did)" topic below.)

Mike's VS 2008 Service Pack 1 - Docs and Installation post of May 18, 2008 tells the gory tale.

ADO.NET Program Manager Sanjay Nagamangalam has some suggestions for three problem scenarios in this VS2008 SP1 Beta fails to add "new item - ADO.NET Entity Data Model" Item Template thread in the Visual Studio 2008 SP1 (Beta) forum.

I decided, like Mike, to start over from scratch by removing my VS 2008 RTM installation and the entire Microsoft Visual Studio 9.0 folder. I also removed the previously unremovable KB949325 and KB945855 HotFixes manually by deleting all their Registry references. Reinstalling VS 2008 RTM and SP1 Beta proceeded without a hitch and ADO.NET Entity Data Model and ADO.NET Data Services templates and libraries appeared and worked as expected.

Added: 5/18/2008

Aghy Continues Her LINQ for SharePoint (LINQ4SP) Series

The LINQ4SP - Create new list item post of May 17, 2008 describes how to create a new SharePoint list item for an AdventureWorks Products list.

Quintin Clark and Jon Udell: WinFS Contributions to Entity Framework and SQL Server 2008

My Jon Udell Interviews Quintin Clark on WinFS's Downstream Effects: Entity Framework and SQL Server of May 16, 2008 contends that Entity Framework and LINQ to SQL descend from Object Spaces, not WinFS.

There's no question, however, the WinFS was the driving force behind SQL Server 2008's filestream and HierarchicalID datatypes.

Bill McCarthy Finally Gets VS 2008 SP-1 Beta to Install

Bill describes the agonizing process he used to get VS 2001 SP-1 Beta to install in his The trials and tribulations of installing VS 2008 SP1 post of May 16, 2008. I wasn't so lucky as the following post reports.

VS 2008 SP1 Beta Didn't Install on My Primary Development Machine (but Said It Did)

My Failed VS 2008 SP1 Beta Installation Indicates Success post of May 16, 2008 describes the trials and tribulations with an install that reported success but didn't install the DDLs and templates for ADO.NET Entity Framework or ADO.NET Data Services.

I filed a Connect bug report on May 14, 2008 and enclosed a rollup of all logs. As of May 17, 2008, all I've received is the standard "Dear John" letter:

Thanks for your feedback. We are escalating this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.

Thank you,
Visual Studio Product Team

Update: May 18, 2008

I fixed the problem by removing and reinstalling VS 2008 RTM and SP1 Beta bits. See the earlier "Mike Taulty Duplicates My Problems with VS 2008 SP1 Beta Installation" topic.

Jim Wooley Discovers an Anomaly in VB's Anonymous Type Property Ordering

His Anonymous Type property ordering in VB post of May 16, 2008 notes that VB orders anonymous types alphabetically, while C# orders them in the sequence of declaration.

Hadi Eskandari Uses LINQ to Enhance WPF INotifyPropertyChanged Implementations

Iranian developer Hadi Eskandari describes in his Enhanced INotifyPropertyChanged post of May 16, 2008 the use of the GetPropertySymbol extension method to extract member names from a lambda expression in a PropertyChangedEventHandler that implements INotifyPropertyChanged.

Hadi's approach is based on Jafar Husain's early Symbols in C# 3.0 post of March 2, 2007.

John Papa Posts a Teaser for His Forthcoming Data Access with Silverlight 2 Book

Silverlight Consuming REST Services of May 16, 2008 explains combining REST APIs with LINQ to XML:

So raw XML comes barreling into your Silverlight application asynchronously, LINQ to XML makes it fall in line, and its bound to where it needs to go via XAML.

Sending data back via REST is also very cool. I've got that working now too. ... Interacting with REST from Silverlight applications is just one piece of the data access puzzle, but its pretty cool.

How about a source code preview, John?

Bill Wagner Has a New C# Book in the Works

His Rough Cuts available for "More Effective C#" post of May 16, 2008 says:

I've been working quite a bit on my next book:  More Effective C#. It's getting closer, and it's now available on Rough Cuts.  Rough Cuts is a Safari Books Online service that provides you with pre-publication first access to upcoming books.  Chapters 1 & 2 are up right now. 

You can see more about the Rough Cuts program here: http://safari.informit.com/roughcuts

More Effective C# is here:  http://safari.informit.com/9780321580481

Alex James Explains the Pros and Cons of the Multiple EntitySets per Type (MEST) Model

Multiple EntitySets per Type is a model that few, if any, other object/relational management (O/RM) tools offer. In his MEST - What is it and how does it work? post of May 16, 2008, Alex describes how MEST works graphically by deriving GoodCustomer and BadCustomer entities from a base Customer entity.

He also describes the morass you enter when the GoodCustomers and BadCustomers EntitySets have two-way associations with Orders, OrderLines and Products EntitySets. Alex says:

    • The EntityFramework in V1 just can't handle this ambiguity.
    • Going forward we are trying to work out how to handle this situation gracefully.
    • Still today the only workaround is to duplicate the whole graph.

Bob Beauchemin Explains VS 2008 SP1's Enhancements to ADO.NET Sync Services for Change Tracking with SQL Server 2008.

Bob's SQL Server 2008 Change Tracking and Sync Services ARE made for each other... in VS2008 SP1 post of May 16, 2008 is a paen to a new feature of VS 2008's Sync Services Designer:

Visual Studio 2008 SP1 Beta contains direct support for using SQL Server 2008 Change Tracking. When you use ADO.NET 1.0 Sync Services with a SQL Server 2008 database, the Sync Services designer (that's Add/New Item/Local Database Data Cache) adds a checkbox that allows you simply to "Use SQL Server Change Tracking". No extra triggers, no tombstone tables, change tracking does it all for you. Visual Studio generates some scripts to enable change tracking at a database level and at a table level for the tables you select.

He then goes on to discuss generated code to warn users who don't resync frequently enough and SQL Server Books Online's recommendation to use Snapshot isolation with this feature.

This feature is likely to enhance SQL Server 2008's participation in Live Mesh projects.

Dinesh Kulkarni Continues his LINQ to SQL Server Tips Series

LINQ to SQL Tips 7: Using stored procs that return multiple results of May 16, 2008 is the latest episode. Following are links to earlier posts:

The mystery is where are Tips 5 and 6?

Om Malik Presenting Cloud Computing Conference June 25, 2008 in San Francisco

A Web technology isn't real until it has its own conference. Om's Structure 08 Conference subtitled "Put Cloud Computing to Work" will be held at San Francisco's new Mission Bay Conference Center of June 25, 2008.

Among the speakers will be Werner Vogels (Amazon VP, CTO and keynoter), Microsoft's Debra Chrapaty (Microsoft Corporate Vice President, Global Foundation Services), and Christophe Bisciglia (Google Sr. Software Engineer).

Why should we ‘Refresh the Net’? is a sidebar that purports to offer "more about the topics and issues at Structure 08 from community thought leaders."

Friday, May 16, 2008

Jon Udell Interviews Quintin Clark on WinFS's Downstream Effects: Entity Framework and SQL Server

An assignment with the WinFS team was a career-killer for many Microsoft folks, but Quintin Clark lived to tell the tale in his 54-minute Channel10 interview with Jon Udell: Where is WinFS now? Quintin's now a general manager of the SQL Server team.

WinFS and the ADO.NET Entity Framework

Quintin says the following (in part) about WinFS and ADO.NET Entity Framework (EF):

The WinFS APIs were a precursor to a more generalized set of object/relational APIs, which is now shipping as what we call entity framework in ADO.NET.

What's getting delivered as part of VS 2008 SP1 is an expression of that, which allows you to describe your business objects in an abstract way, using a fairly generalized entity/relationship model. In fact we got best paper at SIGMOD last year on the model, it's a very good piece of work.

So you describe your business entities in that way, with a particular formal language...

The true precursor to EF (and LINQ to SQL) was ObjectSpaces, which surfaced as a technical preview named "Orca" (for Object/relational component architecture?) at the 2003 PDC, as I recall the year. An Orca beta was scheduled for Whidbey (Visual Studio 2003 beta) but canceled, and included in Orcas (Visual Studio 2005) beta 1 but removed from beta 2 and later. Finally ObjectSpaces was subsumed by the "black hole of Object Spaces" to the chagrin of its management team, primarily Luca Bolognese and Matt Warren.

I discussed in my Matt Warren's "The Origin of LINQ to SQL" post of May 31, 2007 Matt's outspoken The Origin of LINQ to SQL post of May 31, 2007, as well as architect Michael Pizzo's long comment to my Defining the Direction of LINQ to Entities/EDM post of May 29, 2007, part of which reads as follows:

It’s an undeniable fact that Microsoft has fumbled the ball repeatedly when it comes to delivering an O/R solution. The biggest reason we didn’t ship ObjectSpaces was not technical, but rather a lack of recognition at a management level of the importance of providing such a solution. The only way for ObjectSpaces to gain traction was by aligning with something bigger (i.e., MBF or WinFS). The biggest thing that’s changed (thanks largely to the success of Hibernate) is that management now gets the importance of a good O/R solution. The support for LINQ, LINQ to SQL, and the Entity Framework at the executive level is what ObjectSpaces never enjoyed, and what gives me confidence that we will finally shed the albatross that’s been hanging around our neck since .NET Framework 1.0.

I also included a link to Dare Obasanjo's Surviving WinFS: How LINQ to SQL Came to Be post of the same date.

My lengthy June 26, 2006 Microsoft Bites the Bullet: WinFS Bites the Dust post delivers the grisly details of the deaths of WinFS, ObjectSpaces, Project Green, and the MBF.

SQL Server 2008's FileStream and HierarchyID Datatypes

Quintin says this about SQL Server 2008's filestream datatype, inter alia:

That approach was so good that we decided to generalize it for SQL Server 2008, as a feature called filestream. It's basically a new kind of blob support for the database. You configure a column for filestream, you can take a file and insert it as a record, you get back a file handle, you can stream things into that file handle. You can do queries and get back file handles, and get streaming API-level NTFS performance on the files you put in there.

and the HierarchyID datatype:

So hierarchical ID is a column type that teaches the optimizer about hierarchy, about path, so you can do queries that find all the things contained within this part of the path.

So we have that feature also shipping in 2008, and there are all sorts of different uses for it. For example, people use it for compliance. They'll create a hierarchy of different confidentialities and compliance levels. This thing is confidential, which is a superset of things that are executive-eyes-only. Hierarchies like that are just out there in the world.

The filestream and HierarchyID datatypes will be much more useful when the SQL Server team incorporates them in the same namespace, as Quintin promises for SQL Server vNext.

Update 3/16/2008: Tim Anderson's WinFS reborn: SQL Server as a file system of May 16, 2008 contains this interesting tidbit:

Put [filestream and HierarchicalID in the same namespace] together with the work Microsoft is doing on synchronization, and you get offline capability too - something more robust than offline files in Vista. Clark says SharePoint will also benefit from SQL Server’s file system features.

Note that Live Mesh does some of this too. I guess SQL Server is there in the Live Mesh back end, but it strikes me Microsoft is at risk of developing too many ways to do the same thing.

Tim had the foresight in his Tech Ed reflections post of November 8, 2007 to make the connection between SQL Server 2008's filestream datatype and SharePoint performance, as well as to recognize early on the potential of ADO.NET Data Services.

Thursday, May 31, 2007

Matt Warren's "The Origin of LINQ to SQL"

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

The first major event after the Microsoft Business Division (MBD) absorbed the Server and Tools Business (STB) unit was to deep-six this year's Professional Developer's Conference. What's next on MBD's chopping block?

  • LINQ to SQL?
  • LINQ to Entities, Entity Framework, and Entity Data Model?
  • LINQ itself?

Update: 6/2/2007: ADO.NET Architect Mike Pizzo states in a comment to my May 29, 2007 Defining the Direction of LINQ to Entities/EDM post's items #1 and #4:

The bottom line on Entity Framework and LINQ to SQL was that they are each designed around a different set of priorities; LINQ to SQL is designed around rapid development, with direct (1:1) mapping, while the Entity Framework is designed around exposing a rich conceptual model with flexible mappings to extended ADO.NET Data Providers. We considered not shipping one or the other of these to reduce confusion, but ultimately decided that neither stack fully addressed the customer commitments and expectations set by the other. So we will ship both; LINQ to SQL in Orcas and the Entity Framework in an update to .NET Framework 3.5 in first half 2008. Over time we will look to customers to help us decide whether it makes sense to continue to invest in enhancing both stacks or merging into a single stack over time.

It’s an undeniable fact that Microsoft has fumbled the ball repeatedly when it comes to delivering an O/R solution. The biggest reason we didn’t ship ObjectSpaces was not technical, but rather a lack of recognition at a management level of the importance of providing such a solution. The only way for ObjectSpaces to gain traction was by aligning with something bigger (i.e., MBF or WinFS). The biggest thing that’s changed (thanks largely to the success of Hibernate) is that management now gets the importance of a good O/R solution. The support for LINQ, LINQ to SQL, and the Entity Framework at the executive level is what ObjectSpaces never enjoyed, and what gives me confidence that we will finally shed the albatross that’s been hanging around our neck since .NET Framework 1.0.

I'd venture a guess from the tenor of his post that Matt's "political nightmare" of the last three years will be sweet dreams compared to the future under MBD's aegis.

Don't miss it.

Note: Dare Obasanjo ends his Surviving WinFS: How LINQ to SQL Came to Be post on this positive slant:

This takes me back. I had friends who worked on ObjectSpaces and it was quite heart breaking to see what internal politics can do to passionate folks who once believed that technologies stand based on merit and not who you know at Microsoft. At least this story had a happy ending. Passionate people figured out how to navigate the internal waters at Microsoft and are on track to shipping a really compelling addition to the developer landscape.

I'm a strong proponent of LINQ to SQL as an alternative to the delayed and overweight Entity Framework, so I hope Dare's right. I'm concerned, however, that LINQ to SQL, whose origins are in the C# team, might be sacrificed on the alter of the ADO.NET team's Entity Framework.

Backstories from the OakLeaf Blog

A Ribbon UI for Visual Studio Code Name Orcas?

SQL Server "Katmai" to Deliver Entity Data Platform and Support LINQ

Déjà Vu All Over Again: Entity Framework Cut from Orcas

Orcas December 2006 CTP Coming with New LINQ/EDM Bits

Thursday, March 29, 2007

Entity Framework Updates

Julie Lerman reports in her March 28, 2007 What to expect in next (and future) Orcas bits for Entity Framework post on Brian Dawson's two Entity Framework presentations in Orlando at DevConnections for the SQL Server track:

SMS309: Entity Framework: Part I – Code Past the Depths of ORM Let’s map objects to the database and find out what else awaits with the next generation of the Entity Framework. The Entity Framework provides more than just another ORM solution, although the Entity Framework does that pretty well. Come join a session which dives into lots of code for the sole purpose of making data access even easier. Also see how objects can become web services, and how inheritance works using the Entity Data Model (EDM).

SMS310: Entity Framework: Part II – Dive Even Deeper into Depths of the Entity Framework See how to program against the value layer and go through a more in depth look at navigating through the Entity Framework; see what CSDL, MSL, SSDL means and how LINQ works the new model. Also as a special addition, learn the business value or an answer to the question, “Why should I use the Entity Framework”, not just for programmers, but also for managers.

Brian is the author of the recent Object Services – Write less code post for the ADO.NET Team blog.


Danny Simmons has posted Change Tracking Mechanisms for the Entity Framework, which covers alternative approaches to change tracking. Change tracking is based on values designated as "concurrency tokens."

He also mentioned in A delay before I write more about persistence ignorance... that it might be a while before he responds to the issue of Persistence Ignorance in the Entity Framework.

Danny warns in the thread of my EDM Designer ETA Slipping Past Orcas RTM? thread in the ADO.NET Orcas forum not to use the Orcas March 2007 CTP as the guide to what's coming in the final product:

While it's certainly true that we are locking down, and I can't speak to this particular feature, folks should NOT use the March CTP as their guide for what's going to be in Orcas. The ADO.Net team has been working frantically to get a number of key features completed and in the product, and we already have a large list working that will show up in a future CTP or Beta (not Beta 1 because that's very close to what's in the March CTP, but after that). These features include things like referential integrity constraints, span, ipoco and others that you may have seen mentioned here or in blog postings. There's really quite a lot of great new things yet to come. Keep your eyes open.

Julie describes many of these new features, such as span and IPOCO (Interface to Plain Old CLR Objects) in her What to expect in next (and future) Orcas bits for Entity Framework.

Mark your calendars! .NET Rocks will feature "Daniel Simmons Tours the ADO.NET Entity Framework!" as the 4/5/2007 broadcast.


Julie's mention of the span parameter brought back memories of ObjectSpaces' OPath query language and Matt Warren's ten 2004 and one 2005 GotDotNet posts on the evolution and demise of that unfortunate project. Trade-offs of pre-fetching vs. demand-loading (eager versus lazy loading) of associated (related) entities has been a continuing issue for projects that query object graphs. Matt says in his ObjectSpaces: Spanning the Matrix post of three years ago:

That’s when I hit upon the solution. Like the dot, it was the graph stupid. Object queries needed that additional bit of information that would allow the user to specify exactly what reachable parts of the network should be pre-fetched together. So I took the OPath parser and added an additional context that would allow the specification of a list of properties, and sub-properties and so on that would form a tree of access paths. Anything touched along these paths would trigger a pre-fetch of that data. With a simple list of dot expressions you could easily specify what part of the matrix you wanted to span. ...

Luca [Bolognese] was a bit dubious of the idea at first, but I wore him down. Ever since then, ObjectSpaces has had the span parameter, and yes the name derives from my own ultra-nerdiness. It refers to the span of a space as used in linear algebra. Crack a book if you don’t believe me.

It seems like only yesterday that I was doing my best to learn the ins and outs of programming Orca (Object/Relational Component Architecture?), the code name for the first technical preview of Object Spaces introduced at PDC 2001. ObjectSpaces Microsoft's first (failed) attempt to deliver an O/R mapper; the project ultimately lost its way after being subsumed by long-gone WinFS.


Wednesday, March 28, 2007

Orcas EDM Wizard and Designer Previewed at VSLive! SFO

Last night the ADO.NET Team posted EDM Wizard and Designer Featured in VSLive! San Francisco Keynote, which briefly describes Britt Johnson's "Data Explosion: The Last and Next Decade in Data Management with the Microsoft Data Platform" keynote. Near the end of the presentation he demonstrated the Entity Data Model (EDM) Wizard and EDM Designer, neither of which made the Orcas March 2007 CTP cut, with a pair of screencasts.

See the 3/29/2007 and 5/21/2007 updates below.

A careful reading of this paragraph from the post:

Britt also featured 5 short videos or screencasts that demonstrated some of the work, specifically around Tools, that the Data Programmability team (including the ADO.NET) has been doing. These videos provide some great information and a preview of the new EDM Wizard coming in Orcas, as well as a sneak preview of a new EDM Designer that we can expect to see released after the upcoming Orcas release [Emphasis added].

indicates that the Orcas RTM bits won't include the EDM Designer. Frans Bouma and I have added questions about this to the post's comments. I also asked the same question in the ADO.NET Orcas forum.

A similar post in the Data Programmability Team blog has a slightly expanded list of new features and screencasts:

These videos provide some great information and a preview of the new XML Editor, XSLT Debugger, and EDM Wizard coming in Orcas, as well as a sneak preview of a new XSD Designer and EDM Designer that we can expect to see released after the upcoming Orcas release.

Elisa Johnson's VSLive Keynote - San Francisco post of the same date says:

During his presentation Britt talked a lot about Conceptual Data Programming and where Microsoft plans to focus on for future innovation in the Data Access space. He also gave a sneak peak at two tools that hadn't previously been seen... the much anticipated EDM Designer and the XSD Designer (you can expect to see more on these sometime after the upcoming Orcas release).

A working preview of the EDM Designer debuted in September 2006; my October 4, 2006 New Entity Data Model Graphic Designer Prototype post provided a walkthrough with the Northwind database.

Sanjay Nagamangalam, the ADO.NET Program Manger who presented the EDM Designer screencast, posted on March 3, 2007 the following message in the ADO.NET Orcas forum:

An EDM designer is foremost on our minds and we are looking to provide a tool for Beta 1. We don’t have a date yet though.

Of course, the message was accompanied by the usual "This posting is provided 'AS IS' with no warranties, and confers no rights" disclaimer.

Shades of ObjectSpaces. Déjà vu all over again. Please say it isn't so.

Update 3/28/2007: Visual Studio Magazine writer Lee Thé writes in his "Microsoft Moves DBMS into the VS Developer Mainstream" article that covered Britt Johnson's keynote:

The final demonstration featured an entity data models (EDM) Wizard that generates classes from the conceptual model. But the portion of this demo that roduced spontaneous applause from the audience was an EDM designer functionality that will not be available in the Orcas beta release. This hotly anticipated functionality is a database designer and an entity modeler. These features let you map a database to a model, keeping the model in sync. The project manager leading this demonstration created a user entity type from an users' table with drag-and-drop functionality, where glyphs showed mapping of entity type to table. Sophisticated graphical representations of entities and relationships enabled the user to work at the level of the business relationships rather than programming abstractions. [Emphasis added]

It remains to be seen if Lee's report is correct. Stay tuned for Microsoft's official confirmation or denial of the EDM Designer's disappearance from Orcas.

Note: Lee's report on VSLive!'s Monday keynote, "Windows Vista, the 2007 Office system, and ASP.NET AJAX" by Prashant Sridharan is here, and his coverage of K. D. Hallman's general session address, "Visual Studio Everywhere: Tools for Office, Office Business Applications, and Custom Application Extensibility," for Redmond Developer News is here. Click here to read the March 28, 2007 VSLive! Show Daily.

InfoWorld's Paul Krill mentions the EDM Designer in his March 27, 2007 "Microsoft maps data management plans" article without discussing the Designer's future availablity. He notes that the EDM Wizard, XSD Designer, and XSLT Debutter are slated for the Orcas Beta release in May. Elisa Johnson says that The XSD Designer will arrive post-Orcas.

Kevin Hoffman complains bitterly in his Microsoft finally shows off their EDM designer... but it won't ship with Orcas?!? post about the apparent demise of the EDM Designer.

Update 5/21/2007: The 1:04:00 video of Britt Johnson's keynote is available here. Click here for Prashant Sridharan's keynote video.

Update 3/29,2007: Julie Lerman—2,500 miles from San Francisco at the DevConnections conference in Florida—reports in What to expect in next (and future) Orcas bits for Entity Framework :

Britt Johnston did a keynote and showed [a video of] the latest prototype of the EDM Modeler and also let us know that it won't be ready for Orcas but they plan to release it shortly after Orcas. This is really frustrating, but it is just the reality and as developers we know the difficulties of designing tools... so it is what it is and until we have it, I will learn a LOT with the XML and personally hold off on doing any seriously complex modeling. [Emphasis added.]

Pending official word from Microsoft, I'm inclined to believe Julie's rendition, although telepathy might be involved. I'm still waiting for someone from the ADO.NET team to post an official response, either as a blog comment or an answer to my question in the ADO.NET Orcas forum.

Note: There's more from Julie's report on Brian Dawson's two Entity Framework presentations at DevCon in her post.

Saturday, November 25, 2006

Orcas December 2006 CTP Coming with New LINQ/EDM Bits

Visual Studio Orcas CTPs will replace ADO.NET vNext CTP drops starting with the Orcas December 2006 CTP. Charlie Calvert, Microsoft's Community Program Manager for the C# group, reports in his November 21, 2006 Community Convergence XII post:

The Orcas December CTP will contain new LINQ bits. The team has been churning out daily builds filled with new LINQ content. Over the next weeks it will all come together in a CTP that will be released to the public. This will be the first major update to the LINQ bits since the May CTP. The first Orcas beta is not due until 2007.
Charlie's post follows ADO.NET Technical Lead Pablo Castro's November 7, 2006 ADO.NET Orcas and Samples item:

As we make progress on the Orcas release of Visual Studio, the various teams—including ourselves—are working hard at integrating everything in a single product, Visual Studio Orcas. For the ADO.NET Entity Framework this means that you won’t see component-specific CTPs any more for Orcas, and instead you’ll see Orcas CTPs that have all these technologies incorporated. We may still do separate CTPs of related technologies if we see that it would help at some point in time.

Also, since the ADO.NET Entity Framework is in the Orcas builds, we don’t need the generic “vNext” token for it; from now on we’ll refer to it simply as ADO.NET Orcas, which will include the ADO.NET Entity Framework and LINQ to ADO.NET in its various flavors (LINQ to DataSet, LINQ to SQL and LINQ to Entities).

The December CTP release undoubtedly will integrate updated versions of the the ADO.NET Entity Framework from the October 2006 Orcas CTP and its sample code plus the the August 2006 ADO.NET vNext CTP's Entity Data Model (EDM) designer prototype.


Here's the latest (December 8, 2006) update on the Orcas December CTP 2006 release from the Visual C# Community Center:
The December Orcas CTP will be released soon. This CTP will be a regular install, and will not ship inside a Virtual Machine. It will co-exist with Visual Studio 2005. The main feature in the CTP will be the ability to work with LINQ. These will be the first new LINQ bits we have seen since the May CTP. The December CTP is a pre-beta release. The Orcas Beta is not expected until sometime in 2007. The team is also near the release of Service Pack 1 for Visual Studio 2005. Right now, I'm still exploring this issue, but I've heard that the order in which we install Service Pack 1 and the LINQ May CTP may be important. The reports I'm hearing at this time suggest that we should install the service pack first, and then the May CTP. I should have more information on this issue by the end of the week.

I believe Charlie meant "December CTP" where he mentions "May CTP" in the preceding paragraph.


Charlie has posted the first four five installments of The LINQ Farm, a series of articles for beginning LINQ C# programmers:

  1. LINQ for Beginners (10/29/2006)
  2. Query Expressions (10/31/2006)
  3. Query Operators (11/11/2006)
  4. Using Distinct and Avoiding Lambdas (11/19/2006)
  5. Focus on Grouping (12/2/2006)

He avoids deep discussions of lambdas, which makes the articles useful for VB developers also. Charlie points to a video and some recent articles of interest to LINQ and ADO.NET EF developers:

Here are a few links to recent Channel9 videos that might interest LINQ developers:

Updated: 12/7/2006 with Charlie Calvert's fifth episode of the LINQ Farm: Focus on Grouping. 12/8/2006 for potential Orcas issues with VS 2005 SP1.

Technorati Tags: Orcas, ADO.NET vNext, Entity Framework, Entity Data Model, LINQ, LINQ to Entities, LINQ to DataSets, LINQ to SQL, Entity SQL, eSQL, DLinq, XLinq, C# 3.0, VB 9.0, ObjectSpaces, Domain-Specific Languages, DSL, DSL Tools

Wednesday, November 01, 2006

Objectify Data with ADO.NET vNext

The "Objectify Data with ADO.NET vNext" article from the October 2006 issue of Visual Studio Magazine explains how the ADO.NET vNext August 2006 Community Technical Preview reincarnates ObjectSpaces’ object/relational mapping (O/RM) technology and OPath query language as the Entity Framework (EF), Entity Data Model (EDM), Entity SQL (eSQL), and LINQ to Entities for the Visual Studio “Orcas” release. Here's a screen capture of the article's VB 9.0 sample test harness: The article's AdventureWorks SalesPersons bonus project (AWv3TestApp.sln) invokes the AdventureWorksV3 EDM class library to populate a DataGridView with records for sales personnel who are eligible for bonuses—five years employment by AW for this example. Clicking the Add or Deduct buttons increcments or decrements bonuses, persists the changes, and refreshes the grid. If you're interested in learning more about the ADO.NET team's new approach to O/RM check out these previous OakLeaf posts:

Click here for a page of links to earlier posts about LINQ, LINQ to SQL (DLinq), and LINQ to XML (XLinq)

Technorati Tags: ADO.NET vNext, Entity Framework, Entity Data Model, LINQ, LINQ to Entities, LINQ to DataSets, LINQ to SQL, Entity SQL, eSQL, DLinq, XLinq, C# 3.0, VB 9.0, Orcas, ObjectSpaces, Domain-Specific Languages, DSL, DSL Tools

Saturday, August 26, 2006

ADO.NET vNext and Entity Framework Resources

This post contains links to resources for .NET developers who are interested in exploring ADO.NET vNext for Visual Studio vNext ("Orcas"). The link topics are the Entity Framework (EF), Entity Data Model (EDM), Entity SQL (eSQL), LINQ to Entities, LINQ to SQL (formerly DLinq), LINQ to DataSets, LINQ to XML (formerly XLinq), LINQ to Objects, and EF's erstwhile predecessor, ObjectSpaces. The last two sections of this post are devoted to Object/Relational Mapping (O/RM) in general and Domain-Specific Languages (DSLs).

Note: Unlike most blogs entries, this item is updated and republished periodically (see the end of this post for details.) Last update 4/11/2007.

ADO.NET vNext and LINQ CTP Downloads

The following CTPs have been superceded by the ADO.NET Entity Framework and LINQ implementation of the Orcas March 2007 Community Technical Preview. However, some features of the May and August 2006 LINQ CTPs are missing from this Orcas CTP -- most notably, the Entity Data Model (EDM) Designer, which will not be included in the final Orcas RTM version.

Microsoft Visual Studio Code Name “Orcas” Language-Integrated Query, May 2006 Community Technology Preview installer (LINQ Preview (May 2006).msi, 5/10/2006, required to install ADO.NET vNext CTP)

Use the Add/Remove Programs tool to remove previous versions (PDC 2005 or January 2006) of the LINQ CTP and review the C# Readme, VB Readme, or both before downloading and installing the LINQ May 2006 CTP (5/10/2006)

ADO.NET vNext CTP (Community Technology Preview) - August 2006 installer (ADONETVN.msi, 8/17/2006, requires LINQ May 2006 CTP, Visual Studio 2005 Standard Edition or higher, Visual Basic 2005 Express, or Visual C# 2005 Express; Visual Web Developer 2005 Express isn't supported.)

Visual Studio 2005 Web Application Projects add-in (WindowsApplicationProjectSetup.msi, 1.2MB) is required to run the WebForm's Visual Basic version that includes a WebAppSample.vbproj file.

White Papers and Backgrounders

Entity Framework (EF) and Entity SQL (eSQL)

Next-Generation Data Access: Making the Conceptual Level Real by José Blakeley, David Campbell, Jim Gray, S. Muralidhar, and Anil Nori (June 2006, HTML)

The ADO.NET Entity Framework Overview (June 2006, HTML)

ADO.NET Tech Preview: Entity Data Model (June 2006, HTML)

eSQL: An Entity SQL Language, ADO.NET Technical Preview (promised by the "Overview")

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 CTP)

Mapping-Driven Data Access, a position paper by Sergey Melnik about declarative mapping, bidirectional views, and view maintenance in the ADO.NET Entity Framework (8/23/06 draft, see also the Reusable Tools for Metadata Management - Pie in the Sky? presentation in the next section).

There Is No Impedance Mismatch: Language Integrated Query In Visual Basic 9, a brief paper to be presented by Microsoft Research's Eric Meijer at the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA 2006), October 22-26, Portland, Oregon. Queries in ADO.NET vNext, a detailed ADO.NET Team Blog post by S. Muralidhar, a.k.a, Murali (August 21, 2006)

The Weird World of Bi-Directional Programming slides about the University of Pennsylvania's Harmony, a universal data synchronizer, by Benjamin C. Pierce, Microsoft Research, Cambridge (on leave from the University of Pennsylvania, March 2006)

Integrating Programming Languages & Databases: What's the Problem? by William R. Cook and Ali H. Ibrahim, Department of Computer Sciences, University of Texas at Austin (October 2005 draft)

LINQ to DataSet

LINQ to DataSet for C# Developers (May 2006, Word DOC)

LINQ to DataSet for Visual Basic Developers (May 2006, Word DOC)

LINQ to SQL (formerly DLinq) 

LINQ to SQL: .NET Language-Integrated Query for Relational Data by Dinesh Kulkarni, Luca Bolognese, Matt Warren, Anders Hejlsberg, Kit George (updated March 2007)

DLinq Mapping Draft Specification (August 2006, Word DOC)

DLinq Data Types and Functions (August 2006, Word DOC)

DLinq Overview for C# Developers (May 2006, Word DOC)

DLinq Overview for Visual Basic Developers (May 2006, Word DOC)

DLinq Designer (May 2006, Word DOC). See also the Domain-Specific [Programming] Languages (DSL) section at the end of this post.

LINQ to XML (formerly XLinq)

.NET Language-Integrated Query for XML Data by Michael Champion (updated February 2007)

XLinq Overview (May 2006, Word DOC)

XML Support In Visual Basic by Erik Meijer and Brian Beckman (January 2006, PDF)

Generic LINQ, C# 3.0 and VB 9.0

LINQ: .NET Language-Integrated Query by Don Box and Anders Hejlsberg (updated February 2007)

The .NET Standard Query Operators by Anders Hejlsberg and Mads Torgersen (updated February 2007)

Overview of C# 3.0 by Anders Hejlsberg and Mads Torgersen (updated March 2007)

Overview of Visual Basic 9.0 by Erik Meijer, Amanda Silver and Paul Vick (September 2005)

C# Version 3.0 Specification (October 2005)

ObjectSpaces (abandoned)

A First Look at ObjectSpaces in Visual Studio 2005 by Dino Esposito (February 2004)

Getting Started with ObjectSpaces by Jan Teilens for MSDN Belgium/Luxembourg (February 2004, HTML)

Videos, Screencasts, Podcasts, and PowerPoint Presentations

Visual Studio: The .NET Language Integrated Query (LINQ) Framework Overview with Anders Hejlsberg from Tech*Ed Barcelona (November 2006)

C# 3.0: Future Directions in Language Innovation with Anders Hejlsberg from Tech*Ed Barcelona (November 2006)

Anders Hejlsberg on LINQ and Functional Programming interview with Charlie Calvert (January 26, 2007)

The LINQ Project with Anders Hejlsberg from the LANG.NET conference (August 2006)

ADO.NET Entity Framework: What. How. Why. Channel9 video with Pablo Castro, Michael Rizzo, and Britt Johnston (July 19, 2006)

Two ADO.NET vNext screencasts (C#): Part 1 and Part 2 (July 11, 2006)

Chatting about LINQ and ADO.NET Entities Channel9 video with Anders Hejlsberg and Sam Druker (June 9, 2006).

Slides from Reusable Tools for Metadata Management - Pie in the Sky, by Sergey Melnik, Microsoft Research, a keynote presentation about EDM in ADO.NET vNext and mapping-driven data access to the 18th International Conference on Scientific and Statistical Database Management (SSDBM 2006, July 3 - 5, 2006, Vienna University, Austria.

Slides and ASP.NET/LINQ to Everything sample code from Scott Guthrie's Building Data Driven ASP.NET Web Applications using LINQ presentation at Tech•Ed 2006 Australia and New Zealand.

InfoWorld analyst Jon Udell interviews Anders Hejlsberg about the LINQ and the May 2006 CTP (May 12, 2006)

Slides from Jim Gray's Database Activities and Trends Tech*Ed London 2006 presentation, which refers to Entity Sets as the "next step for DataSets in ADO.NET v3", and describes LINQ for SQL and LINQ for XML as "a BIG deal" (June 2, 2006)

Note: The following two Jim Gray papers don't relate directly to ADO.NET vNext or LINQ, but are the foundation for much of the preceding Tech*Ed 2006 presentation.

Jim Gray’s What’s Next for Database presentation to the SQL PASS 2005 Community Summit (September 2005, video). Related paper by David Campbell, Service Oriented Database Architecture: App Server-Lite? (ACM SIGMOD, June 2005, PDF).

Slides from Jim Gray's The Revolution in Database System Architecture presentation from Advances in Databases and Information Systems (ADBIS, March 2004), Budapest; Extended abstract, The Revolution in Database Architecture (ACM SIGMOD, September 2004, PDF).

Slides from Meta Data Management by Sergey Melnik and Phil Bernstein of Microsoft Research's Model Management Project, presented at the 20th International Conference on Data Engineering (ICDE 2004, March 30 - April 2, 2004). Phil Bernstein formerly was the architect of Microsoft Metadata Services.

Luca Bolognese’s seminal Developing Applications Using ADO.Net ObjectSpaces presentation to the Microsoft Professional Developers Conference, PDC 2003 (October, 2003)

Microsoft ADO.NET vNext and LINQ-Related Sites and Blogs

The LINQ Project (main MSDN LINQ site, but not kept up to date

New ADO.NET blog (emphasizes ADO.NET vNext)

Danny Simmons: system.data.objects dev guy (EF Object Services layer)

XML Team (covers LINQ to XML)

Data Programmability Team (general data topics)

Dinesh Kulkarni (LINQ to SQL, infrequent posts

Scott Guthrie (ASP.NET and LINQ)

Matt Warren (occasional posts about LINQ)

Dave Remy (formerly XLinq program manager and XML group program manager)

Andrew Conrad (posts about ObjectSpaces)

Soma Somasegar: LINQ and ADO.NET Innovations (LINQ naming conventions) and May LINQ CTP available now! (description of latest LINQ CTP)

Articles about ADO.NET vNext and LINQ from FTPOnline

Objectify Data with ADO.NET vNext by Roger Jennings for Visual Studio Magazine using the August 2006 CTP (October 30, 2006)

Generate Data-Based Web Sites With Blinq by Roger Jennings about an autogenerated ASP.NET Web site scaffolded with LINQ for SQL from the May 2006 CTP (June 26, 2006)

LINQ Takes Shape in May CTP by Roger Jennings about the May 2006 CTP from FTPOnline's Special Report on .NET (May 15, 2006)

Save Time With LINQ Queries by Bill Wagner, based on the January 2006 CTP, from FTPOnline's Special Report on SQL Server (May 1, 2006)

Test Drive VB9 and DLinq by Roger Jennings about the January 2006 CTP from Visual Studio Magazine (March 27, 2006)

Streamline Mapping With Orcas and LINQ by Roger Jennings about object-relational mapping (ORM) with the PDC 2005 version of LINQ from Visual Studio Magazine (November 7, 2005)

Microsoft Unveils .NET Data Futures at PDC 2001 by Roger Jennings about the first ObjectSpaces "Orca" Technical Preview (December 2001)

Note: Reading more than page 1 of the preceding articles or downloading sample code no longer requires free registration.

Microsoft Newsgroups for ADO.NET vNext and LINQ

ADO.NET Orcas Forum (for Entity Framework, LINQ to Entities, Object/Relational Mapping, and Entity Data Modeling)

LINQ Project General Forum (for LINQ to Objects, LINQ to SQL, LINQ to XML

OakLeaf Blog Entries about ADO.NET vNext, LINQ, and ObjectSpaces

See Yet Another Primer on New Language Features in Orcas (March 13, 2007, updated April 11, 2007) for serial posts about LINQ, LINQ flavors, and (primarily) C# 3.0.

Search Google for OakLeaf items about ADO.NET vNext, DLinq or LINQ to SQL, XLinq or LINQ to XML, and ObjectSpaces (Blogger search doesn't display items earlier than March 2006; these Google searches return all items.)

Other Third-Party ADO.NET vNext and LINQ Blogs

Andres Aguiar: Andres Aguiar's Weblog

Peter Gielens: ThoughtsService

Kevin Hoffman: The .NET Addict's Blog

Julie Lerman: The Data Farm and DevLife

Sahil Malik: blah.winmarts.com Blog

Fabrice Marguery: Fabrice's Weblog and The Mad Geek (articles in English and French.)

Bart de Smet: The B# Blog (IQueryable Tales - LINQ to LDAP)

Erwyn Van Der Meer: Blogging About Dot Net

Jim Wooley: Wooley' Wanderings

Note: Listed alphabetical by last name.

See Yet Another Primer on New Language Features in Orcas for links to Microsoft and third-party blogs about LINQ and the Entity Framework.

Object/Relational Mapping (O/RM) Resources

Entity/Relationship Model (Wikipedia)

Object/Relational Mapping definition (Wikipedia)

How-To-Select an Object-Relational Mapping Tool for .NET by Jason Mauss reviews 36 proprietary and open-source O/RM tools (undated)

Choosing an object-relational mapping tool (for .NET) by Fabrice Marguerie, also available in French (November/December 2004)

The Viet Nam of Computer Science by Ted Neward, an essay postulating that the U.S. military machine were and computer programmers now are "faced with a deadly form of the Law of Diminishing Returns (June 2006)

More coming soon.

Domain-Specific [Programming] Languages (DSLs)

Domain-Specific Programming Languages definition (Wikipedia)

Visual Studio 2005 Domain-Specific Language Tools site

Stuart Kent: Domain-Specific Software Development blog

Steve Cook: Steve Cook's Weblog (Microsoft DSL Tools team)

Updates: 9/2/2006: Added ADO.NET vNext related papers and presentations by Microsoft Research's Sergey Melnik and Phil Bernstein, who are members of the Database Group and direct the Model Management Program. 9/5/2006: Added links to Eric Meijer's VB 9.0 OOPSLA 2006 presentation and Scott Guthrie's Tech•Ed 2006 Australia and New Zealand LINQ session, plus Sahil Malik's Winsmarts.com blog. 9/8/2006: Added A First Look at ObjectSpaces in Visual Studio 2005 by Dino Esposito (February 2004), The Weird World of Bi-Directional Programming by Benjamin C. Pierce (March 2006), Integrating Programming Languages & Databases: What's the Problem? by William R. Cook and Ali H. Ibrahim, Department of Computer Sciences, University of Texas at Austin (October 2005 draft), The Viet Nam of Computer Science by Ted Neward, and several Wikipedia entries. 12/8/2006: Added reference to Chatting about LINQ and ADO.NET Entities video with Anders Hejlsberg and Sam Druker. 4/11/2007: Major update with additions of updated Microsoft white papers from Jim Wooley's LINQ articles on MSDN2 post of 4/11/2007 and LINQ to SQL white papers and LINQ videos from Charlie Calvert's February/March Orcas CTP Now Available post of 3/1/2007.

Technorati Tags: ADO.NET vNext, Entity Framework, Entity Data Model, LINQ, LINQ to Entities, LINQ to DataSets, LINQ to SQL, Entity SQL, eSQL, DLinq, XLinq, C# 3.0, VB 9.0, Orcas, ObjectSpaces, Domain-Specific Languages, DSL, DSL Tools