A Short History of the Evolution of Microsoft Data Access APIs
Earlier this year I read Joel Spolsky's 'Joel on Software'. It's a collection of his blog posts bundled up into a real-world book on topics ranging from tips on code development, to advice on managing programmers, to strategies on running a successful small software business. As an ex-Microsoft employee (he was a program manager on the Excel product team), Spolsky's criticisms of Microsoft practices and strategy can be insightful, if not entertaining...
Now, I started reading the book soon after I joined the Data Programmability team to focus on our community efforts, so you could see why the following paragraph from his Fire and Motion blog post / essay made me sit up and pay attention:
"Think of the history of data access strategies to come out of Microsoft. ODBC, RDO, DAO, ADO, OLEDB, now ADO.NET - All New! Are these technological imperatives? The result of an incompetent design group that needs to reinvent data access every goddamn year? (That's probably it, actually.)"
Hey!! He was talking about my team here and the technologies my team is responsible for. And not only that, he was doing so in a well read book (amongst software developers at least), accusing us (at least with some tongue in cheek) of incompetence!!
I asked around our team: why is the history of data access technologies at Microsoft the way it is? How did we get to where we are today? As a newbie to team I wanted to know the history and to somehow get our own historical perspective out there.
So I asked Mike Pizzo, a Microsoft veteran who has been a member of the team responsible for the 'alphabet soup' of data access technologies at Microsoft for the last 15 years (yes, fifteen) if he would blog something on this topic. To my delight, he agreed.
Today, Mike published Part I – The Early Years, the first blog post in a great series of four documenting the history of data access at Microsoft. I think it's a classic. Enjoy.
"Following is a short history of the evolution of Microsoft Data Access APIs in four parts (so far…)
- Part I – The Early Years (ODBC, DAO, RDO, ODBCDirect)
- Part II – Componentizing Data Access (OLE DB)
- Part III – Disconnected Programming in a Managed Environment (ADO.NET)
- Part IV – Programming at the Conceptual Model (ADO.NET Entities and LINQ)
My goal is to describe the industry trends, platform shifts, and usage scenarios that shaped our API landscape over the past 15 years (and, in the retelling, perhaps receive some absolution for my sins…)"