Critique of Disappointing Session at TechEd
I attended a session entitled "Object-Relational Mapping As a Foundation for ADO.NET Database Access" here at TechEd. The speaker was Terry Weiss, one of the Microsoft Regional Directors, which is kind of like being a super-MVP. Here's the description of the session as it was provided in the TechEd materials:
ADO.NET does not offer any cursors for data manipulation. Instead, data can easily be changed by loading it into a cache (DataSet), performing several manipulations and later persisting the changes en bloc to a data source. However, the ability to physically model logical data hierarchies in this cache does not just change the programming model for working with relational data. It also poses challenges for the underlying database design. Effective usage of ADO.NET is only possible if a relational database schema follows additional rules on top of the usual requirements for normalized databases. Learn the most important rules to successfully map object models to database designs in order to make their ADO.NET experience most pleasant.
So here goes my analysis of this session, probably showing my ignorance in the process. First, a lot of time was spent describing the object-relational problem itself. Now I think its fair to say that some time should be spent making sure everyone knows the issue, but most people would like to spend more time on the solution. Also, the problem is a real-world problem that developers face everyday, so its easily demonstrated with some code! However, the speaker instead chose to talk about theory, using terms that most of the audience did not understand. Next, the speaker gave three Visio diagrams to illustrate possible data models, and then failed to ever discuss them again. Questions about these possible models, some of which begged questions to be asked, were merely waved over by responding that this type of issue was why this was important. That would seem to imply that if we stuck it out we might eventually see the solution, but that was a mistaken assumption. Then we proceed to three possible solutions, but this was again high theory, and no connection was ever made to this again. Just when you think the real solution and code was about to follow -- no, lets not do that, lets digress into the speaker's favorite modeling technique: Object-Role Modeling. More Visio diagrams followed with more theory, and somehow these types of diagrams were supposed to be easier for users to understand -- not! Now that we're out of time, let's say that the solution is to use strongly typed datasets that you subclass to add the necessary behaviors. Lots of questions seemed to bubble up about this conclusion, but again they are waved off by simply saying this is the speaker's preference and you can do it other ways now that you understand the problem.
I am definitely just starting to recently learn about object-relational mapping, so maybe I was just out of my league. But I've seen real-world explanations of the issues and evaluated several real-world solutions, so I have a hard time agreeing that this was just my lacking. It also seemed that everyone else was leaving in disbelief, with lots of head shaking, and no one seemed to think this was what they expected. Now there are certainly times to talk about theory, or to stir up common beliefs, but this wasn't what was expected, and it wasn't successful in those lines either. The speaker promised a lot -- a solution to object-relational mapping that didn't require much code or maintenance, and we got a lot of theory instead. I was somehow expecting a discussion of various techniques that commercial O/R mapping tools use, or maybe even a comparison of some of those tools. In retrospect that wasn't promised, but neither was what I got, and I clearly wasn't alone in that impression. By the way, the one thing I did like was this line: "Comments are lines of code". This refers to the belief that they should be counted if you are counting lines, especially since maintaining comments is vital if you use them at all.