Robert wants to know why everyone is building O/R Mapping tools...
Robert McLaws wants to why so many people are making O/R Mapping tools?
Certainly not for the money because nobody is charging all that much and getting into a business to sell a product that Microsoft is going to be giving away for free in the future would not be financially fruitful lest one could target themselves for acquisition. Seems the only company who might execute on such a strategy successfully is SourceGear (HINT TO MICROSOFT, Eric will not retire if you give him millions of dollars, he will just by a fancy car and take one of those famous “sabbaticals” to get rejuvenated!”)
Age old problem...Writing code is part art, therefore there is no "right" way to do many things. In most real world business apps a very large portion of the code deals with database IO thus this is also the place where there tends to be the most problems.
OOP lends to reuse and the natural progressions of things would dictate the redundant nature of DBIO calls would lend toward a reusable subset specifically tailored to the project needs. Since the refinement of this subset can raise overall quality by abstracting the common problematic code, and increase speed to market (common argument of reuse) this is a high value target for re-factoring.
Back to the art aspect; many people see other peoples code (written or generated) and cringe. They look and say, "too cluttered, I can make it prettier" or "why did they do X, I can do it using Y". Since the O/R mapping concept is relatively easy to understand, many devs embark on the creation of their own mapping tool because in their own mind, they can write "better" code; even though such a distinction is in many cases a subjective one at best.
My belief is that most people build code generators or O/R mapping tools for a specific project and refine it over time, since most OOP devs hate the idea of target specific coding (step-sister of hard coding), they tend to write their code as “generically” as their allotted time will permit them.
I have a tool I wrote that looks at a table and generates code to reflect against that table. Not really a O/R mapping tool and not really a great generator (even though I use the Code DOM and can generate in many different languages J ) but I can see where this type of tool can be the genesis of a mapping tool. I would be interested to hear from the likes of Frans and others who make commercial tools to know how they came to build them.
Dave Wanta of ASP.NET Email fame told me at the KyDotNET users group last month that he heard the ObjectSpaces team had been researching and developing for over 5 years; if this be true I think we can expect some truly innovative things when this hits true fruition.