<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://alexbarnett.net/blog/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Alex Barnett blog : ADO.NET</title><link>http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx</link><description>Tags: ADO.NET</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>Why OData Matters (IMHO)</title><link>http://alexbarnett.net/blog/archive/2010/03/19/why-odata-matters-imho.aspx</link><pubDate>Fri, 19 Mar 2010 15:24:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:44845</guid><dc:creator>alexbarnett</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=44845</wfw:comment><comments>http://alexbarnett.net/blog/archive/2010/03/19/why-odata-matters-imho.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Earlier this week I was in the MIX10 crowd as Douglas Purdy announced the &lt;A href="http://www.odata.org/" mce_href="http://www.odata.org/"&gt;Open Data Protocol&lt;/A&gt; (it was a great presentation - &lt;A href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx" mce_href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx"&gt;summarized here&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;I want to share with you why I think OData could be a very big deal…But before we go there...let's start with the basics...&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.odata.org/images/OData-logo.png" mce_src="http://www.odata.org/images/OData-logo.png"&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is OData? Where Did OData Come From?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To understand the history of how OData came to be, you need to understand how project "Astoria" came to be...&lt;A href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx" mce_href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx"&gt;I won't go over that again&lt;/A&gt; as this is already pretty &lt;A href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx"&gt;well documented&lt;/A&gt;. &lt;STRIKE&gt;Astoria&lt;/STRIKE&gt; OData has come a long way since.&lt;/P&gt;
&lt;P&gt;In a nutshell: Today, OData builds on a few conventions, popularized by AtomPub (see &lt;A href="http://www.odata.org/developers/protocols/atom-format" mce_href="http://www.odata.org/developers/protocols/atom-format"&gt;OData AtomPub Format&lt;/A&gt;), to using REST-based data services. These services allow resources, identified using Uniform Resource Identifiers (URIs) and defined in an abstract data model (see &lt;A href="http://www.odata.org/developers/protocols/uri-conventions" mce_href="http://www.odata.org/developers/protocols/uri-conventions"&gt;OData URI Conventions&lt;/A&gt;, to be &lt;B&gt;read&lt;/B&gt; and &lt;B&gt;edited&lt;/B&gt; by web clients using simple HTTP messages (see &lt;A href="http://www.odata.org/developers/protocols/operations" mce_href="http://www.odata.org/developers/protocols/operations"&gt;OData Operations&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;An Open Data Protocol for the Web&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;OData offers a standardized way for &lt;EM&gt;programmable &lt;/EM&gt;data to be made available across the web and in turn allowing "consumers" of that data to rely on a set of conventions to be followed that in turn allows many interesting things to happen if widely adopted...&lt;/P&gt;
&lt;P&gt;...And to this end:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx" mce_href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx"&gt;As announced&lt;/A&gt;, OData has been released by Microsoft under the Open Specification Promise (&lt;A href="http://www.microsoft.com/Interop/osp/default.mspx" mce_href="http://www.microsoft.com/Interop/osp/default.mspx"&gt;OSP&lt;/A&gt;) "to allow anyone to freely interoperate with OData implementations" . Since then, the &lt;A href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html" mce_href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html"&gt;W3C has invited&lt;/A&gt; the OData team to Bring OData to a W3C Incubator (I haven't seen a public response yet but I urge the team to do so.).&lt;/LI&gt;
&lt;LI&gt;OData is not a Microsoft-only thing and it won’t succeed if it is. The originating philosophy was about &lt;A href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx" mce_href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx"&gt;transparency&lt;/A&gt; in the design process, with an Open end-point as the goal - not a .NET lock-in play (“agree on standards and compete on implementation”). This approach has &lt;A href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx" mce_href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx"&gt;already&lt;/A&gt; yielded an initial set of clients, servers, services, and tools. &lt;EM&gt;Today&lt;/EM&gt;, a number of &lt;A href="http://www.odata.org/developers/odata-sdk" mce_href="http://www.odata.org/developers/odata-sdk"&gt;OData SDKs and libraries&lt;/A&gt; are available for .NET, Java, PHP, iPhone (Objective-C) and more – and there’ll be more coming.&lt;/LI&gt;
&lt;LI&gt;There is a small but growing ecosystem of non-Microsoft "producers" and "consumers" - (where&amp;nbsp; OData "&lt;A href="http://www.odata.org/producers" mce_href="http://www.odata.org/producers"&gt;producers&lt;/A&gt;" include &lt;A href="http://developer.netflix.com/docs/oData_Catalog" mce_href="http://developer.netflix.com/docs/oData_Catalog"&gt;Netflix’s catalog as OData&lt;/A&gt; and the VanGuide (a social map of Vancouver Open Data) and Public data from the city of &lt;A href="http://data.edmonton.ca/Developers.aspx" mce_href="http://data.edmonton.ca/Developers.aspx"&gt;Edmonton as OData&lt;/A&gt;) and OData “&lt;A href="http://www.odata.org/consumers" mce_href="http://www.odata.org/consumers"&gt;consumers&lt;/A&gt;”&amp;nbsp; - standard web browsers, RIA "data explorers" – such as &lt;A href="http://metasapiens.com/sesame/data-browser/preview/" mce_href="http://metasapiens.com/sesame/data-browser/preview/"&gt;Sesame OData Browser&lt;/A&gt;, and the client libraries mentioned above – p.s. somebody build a javascript-only data browser please!) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Where can OData take us?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The clue is in the OData icon (next to the RSS feed icon. Can you see the similarities?&lt;/P&gt;
&lt;P&gt;&lt;IMG alt="odata icon" src="http://farm5.static.flickr.com/4024/4444628827_0d08302f14_o.jpg" width=56 height=57 mce_src="http://farm5.static.flickr.com/4024/4444628827_0d08302f14_o.jpg"&gt; &lt;IMG alt="rss icon" src="http://farm5.static.flickr.com/4063/4444623305_4ef69e3398_o.jpg" width=58 height=58 mce_src="http://farm5.static.flickr.com/4063/4444623305_4ef69e3398_o.jpg"&gt;&lt;/P&gt;
&lt;P&gt;The big idea here is that in the same way we have the "RSS" feed icon, we'll get used to seeing the "OData" icon on commercial and non-commercial websites everywhere (especially for government-related data). So in the same way you know today that the RSS icon means "get an XML feed for this content", the "OData" icon means "get this web data" - you'll know (and your client will know) what to expect in terms of how to read in, and &lt;EM&gt;navigate&lt;/EM&gt; through and &lt;EM&gt;query &lt;/EM&gt;structured web data sets - and in many cases write against them - using a common syntax.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q: Right, But So What?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A1:&lt;/STRONG&gt; Open Government OData. From &lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;Open Government Data Principles&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;The Internet is the public space of the modern world, and through it governments now have the opportunity to better understand the needs of their citizens and citizens may participate more fully in their government. Information becomes more valuable as it is shared, less valuable as it is hoarded. Open data promotes increased civil discourse, improved public welfare, and a more efficient use of public resources.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That’s great, but it needs to be practicable…And number 5 of the &lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;8 Principles of Open Government Data&lt;/A&gt; sensibly states that the data should be (via &lt;A href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/" mce_href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/"&gt;David Eaves&lt;/A&gt;):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;5. &lt;/EM&gt;&lt;A href="http://wiki.opengovdata.org/index.php/Talk:OpenDataPrinciples/machine_processable" mce_href="http://wiki.opengovdata.org/index.php/Talk:OpenDataPrinciples/machine_processable"&gt;&lt;EM&gt;Machine processable&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Data is reasonably structured to allow automated processing.&lt;/EM&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It'll be down to each government agency (and local government) as to how they decide to implement this principle, but wouldn't it be great if they agreed to a standard (and a powerfully simple, web-oriented one at that)? This is what Jon Udell &lt;A href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/" mce_href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/"&gt;concluded here&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"The open data movement, in government and elsewhere, aims to help people engage with and participate in processes represented by the data. When you publish data in a fully articulated way, you build a framework for engagement, a trellis for participation. This is a huge opportunity, and it’s what most excites me about OData" &lt;/EM&gt;&lt;/P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;A2:&lt;/STRONG&gt; To ODatarize your data is to RESTify your data. &lt;/P&gt;
&lt;P&gt;As more data-oriented web APIs come online, each team responsible for the design of each web API is confronted by the same kinds of questions, and each team answers these in their own particular way. Increasingly, “RESTful” is a design goal of web APIs. Great…&lt;EM&gt;but what does that mean&lt;/EM&gt;? &lt;EM&gt;How&lt;/EM&gt; do you expose the data, &lt;EM&gt;the relationships&lt;/EM&gt; between the entities inside the model, and what should the querying syntax look like? Unfortunately, there are as many answers to these questions as there are RESTful web APIs. And there needn’t be. &lt;/P&gt;
&lt;P&gt;For to ODatarize your data is to RESTify your data. &lt;EM&gt;Do&lt;/EM&gt; spend the time at the value layer - figure out the way your developers / consumers want to see the data and expose it that way. &lt;EM&gt;Do&lt;/EM&gt; make it easy for devs / consumers to learn / navigate about the data and use it. &lt;EM&gt;Do not&lt;/EM&gt; make them learn about the unique idiosyncrasies you’ve built into your API (or those that leak out of your originating store) :-)&lt;/P&gt;
&lt;P&gt;From a developer’s standpoint, OData is ultimately about&amp;nbsp; productivity. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;For the OData “Production Developer”: Point at your data store – define your entity model and map it to the data model you already have (so your developers consume / program against the data that makes most sense to them – effectively &lt;A href="http://en.wikipedia.org/wiki/Object-relational_mapping" mce_href="http://en.wikipedia.org/wiki/Object-relational_mapping"&gt;ORM&lt;/A&gt;’ing) and expose as an OData service, inheriting: all the REST characteristics; entity relationship self-discovery; and querying goodness.&lt;/LI&gt;
&lt;LI&gt;For the OData “Consuming Developer”: If you know the web API is OData…great! Pick up a client library, get to the API end-point (data.foo.org/blah.svc). Point and Shoot: Traverse the data model, query it (and bookmark as needed – it’s a URI)…play!&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(see links at the bottom of this post to technical content that provides details on all this)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A3:&lt;/STRONG&gt; Since the announcement, I’ve seen quite a bit of excitement around the web (&lt;A href="http://www.google.com/search?q=odata&amp;amp;hl=en&amp;amp;safe=off&amp;amp;sa=X&amp;amp;tbo=1&amp;amp;tbs=mbl:1,mbl_sv:0&amp;amp;ei=gYSjS_jNMJLysQPUjZ29BA&amp;amp;oi=tool&amp;amp;resnum=0&amp;amp;ct=tlink&amp;amp;ved=0CBcQpwU" mce_href="http://www.google.com/search?q=odata&amp;amp;hl=en&amp;amp;safe=off&amp;amp;sa=X&amp;amp;tbo=1&amp;amp;tbs=mbl:1,mbl_sv:0&amp;amp;ei=gYSjS_jNMJLysQPUjZ29BA&amp;amp;oi=tool&amp;amp;resnum=0&amp;amp;ct=tlink&amp;amp;ved=0CBcQpwU"&gt;especially Twitter&lt;/A&gt;) by developers who see the potential here…there is plenty of experimentation going on. At Intuit, my team is also experimenting with ODatarizing some of our data services, exploring how it might be applied across a number of our cloud based data services. And when our team’s &lt;A href="http://twitter.com/jcollins21/status/10621450099" mce_href="http://twitter.com/jcollins21/status/10621450099"&gt;architect Tweets&lt;/A&gt; that “Looks like &lt;A href="http://twitter.com/search?q=%23odata" mce_href="http://twitter.com/search?q=%23odata"&gt;#odata&lt;/A&gt; is going to be a good fit for our data services”, I know there’s something interesting going on here…&lt;/P&gt;
&lt;P&gt;So I encourage you to find out more about &lt;A href="http://www.odata.org/" mce_href="http://www.odata.org/"&gt;OData&lt;/A&gt; and get involved. &lt;/P&gt;
&lt;P&gt;&lt;A title=OData.org href="http://odata.org/" mce_href="http://odata.org/"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 src="http://www.odata.org/images/OData-logo.png" mce_src="http://www.odata.org/images/OData-logo.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;More Resources&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.stephenforte.net/PermaLink,guid,36354241-a64d-4413-a68f-79e30b20cb20.aspx" mce_href="http://www.stephenforte.net/PermaLink,guid,36354241-a64d-4413-a68f-79e30b20cb20.aspx"&gt;An easy way to set up an OData feed from your SQL Azure database&lt;/A&gt; - Stephen Forte&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx" mce_href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx"&gt;OData interoperability with .NET, Java, PHP, iPhone and more&lt;/A&gt; - MSFT Interop team&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html" mce_href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html"&gt;Microsoft, Bring OData to a W3C Incubator&lt;/A&gt; - W3C blog - &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/brada/archive/2010/03/16/silverlight-4-ria-services-ready-for-business-exposing-odata-services.aspx" mce_href="http://blogs.msdn.com/brada/archive/2010/03/16/silverlight-4-ria-services-ready-for-business-exposing-odata-services.aspx"&gt;Silverlight 4 + RIA Services - Ready for Business: Exposing OData Services-4-ria-services-ready-for-business-exposing-odata-services.aspx&lt;/A&gt; - Brad Abrams (MSFT)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx" mce_href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx"&gt;Open Data for the Open Web&lt;/A&gt; - Douglas Purdy (MSFT)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blog.jonudell.net/2010/02/09/producing-and-consuming-odata-feeds-an-end-to-end-example/" mce_href="http://blog.jonudell.net/2010/02/09/producing-and-consuming-odata-feeds-an-end-to-end-example/"&gt;Producing and consuming OData feeds: An end-to-end example&lt;/A&gt; - Jon Udell (MSFT)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/" mce_href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/"&gt;OData for collaborative sense-making&lt;/A&gt; - Jon Udell&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/" mce_href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/"&gt;The three laws of open government data&lt;/A&gt; – David Eaves&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;8 Open Government Data Principles&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.hanselminutes.com/default.aspx?ShowID=223" mce_href="http://www.hanselminutes.com/default.aspx?ShowID=223"&gt;Open Data Protocol (OData) with Pablo Castro&lt;/A&gt; - Hanselminutes podcast interview with Pablo Castro (MSFT – Architect for OData)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://andytson.com/blog/2010/03/odata-a-restful-contender-for-your-api/" mce_href="http://andytson.com/blog/2010/03/odata-a-restful-contender-for-your-api/"&gt;OData, a RESTful contender for your API&lt;/A&gt; - Andy Thompson&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://weblogs.asp.net/fmarguerie/archive/2010/03/17/announcing-sesame-data-browser.aspx" mce_href="http://weblogs.asp.net/fmarguerie/archive/2010/03/17/announcing-sesame-data-browser.aspx"&gt;Announcing Sesame Data Browser&lt;/A&gt; - Fabrice Marguerie&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/brian_swan/archive/2010/03/18/using-the-odata-sdk-for-php.aspx" mce_href="http://blogs.msdn.com/brian_swan/archive/2010/03/18/using-the-odata-sdk-for-php.aspx"&gt;Retrieving Data with the OData SDK for PHP&lt;/A&gt; - Brian Swann&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.odata.org/blog/2010/3/18/got-sql-azure-then-you've-got-odata" mce_href="http://www.odata.org/blog/2010/3/18/got-sql-azure-then-you've-got-odata"&gt;Got SQL Azure? Then you've got OData&lt;/A&gt; - OData blog&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/pablo/archive/2010/01/26/implementing-only-certain-aspects-of-odata.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2010/01/26/implementing-only-certain-aspects-of-odata.aspx"&gt;Implementing only certain aspects of OData-only-certain-aspects-of-odata.aspx&lt;/A&gt; - Pablo Castro&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx"&gt;Every SharePoint 2010 server is a Data Services server&lt;/A&gt; - Pablo Castro&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.cmswire.com/cms/web-cms/microsoft-creates-new-odataorg-website-for-open-data-protocol-007006.php" mce_href="http://www.cmswire.com/cms/web-cms/microsoft-creates-new-odataorg-website-for-open-data-protocol-007006.php"&gt;Microsoft Creates New OData.org Website for Open Data Protocol&lt;/A&gt; – CMS Wire&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.zdnet.com/microsoft/?p=5582" mce_href="http://blogs.zdnet.com/microsoft/?p=5582"&gt;Microsoft delivers updates on OData, Houston, Dallas&lt;/A&gt; - ZDNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx"&gt;Timeline of Project Astoria&lt;/A&gt; - Pablo Castro&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx" mce_href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx"&gt;How ADO.NET Data Services came to be (formerly known as Project Astoria)&lt;/A&gt; - Alex Barnett&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx" mce_href="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx"&gt;previous Astoria / OData posts&lt;/A&gt; - Alex Barnett&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=44845" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Intuit/default.aspx">Intuit</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/OData/default.aspx">OData</category><category domain="http://alexbarnett.net/blog/archive/tags/OpenSource/default.aspx">OpenSource</category><category domain="http://alexbarnett.net/blog/archive/tags/platforms/default.aspx">platforms</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/RIA/default.aspx">RIA</category><category domain="http://alexbarnett.net/blog/archive/tags/ROA/default.aspx">ROA</category><category domain="http://alexbarnett.net/blog/archive/tags/RSS/default.aspx">RSS</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/semanticweb/default.aspx">semanticweb</category><category domain="http://alexbarnett.net/blog/archive/tags/SOA/default.aspx">SOA</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category><category domain="http://alexbarnett.net/blog/archive/tags/XML/default.aspx">XML</category></item><item><title>How ADO.NET Data Services came to be (formerly known as Project Astoria)</title><link>http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx</link><pubDate>Thu, 21 Aug 2008 02:16:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:42218</guid><dc:creator>alexbarnett</dc:creator><slash:comments>3</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=42218</wfw:comment><comments>http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx#comments</comments><description>&lt;p&gt;Pablo Castro has &lt;a href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx"&gt;recounted some of his timelined memories&lt;/a&gt; about how "Project Astoria" evolved from a lunch time conversation to bits in &lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx" mce_href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;.NET 3.5 SP1 and Visual Studio 2008 SP1&lt;/a&gt; now known as &lt;a href="http://msdn.microsoft.com/en-us/data/bb931106.aspx" mce_href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;ADO.NET Data Services Framework&lt;/a&gt;). Nice write up.&lt;/p&gt;  &lt;p&gt;Three memories of my own to add to the story: &lt;/p&gt;  &lt;p&gt;1. I was reading up on the whole REST thing in the summer of 2006 - its origins, philosophy and design patterns. I knew there was something interesting going on and some potential dots to join, but I wasn't sure which dots...So I collated and circulated a bunch of research / links to the team, &lt;a href="http://blogs.msdn.com/alexbarn/archive/2006/07/21/674395.aspx" mce_href="http://blogs.msdn.com/alexbarn/archive/2006/07/21/674395.aspx"&gt;then blogged the links&lt;/a&gt; (I liked &lt;a href="http://naeblis.cx/rtomayko/2004/12/12/rest-to-my-wife" mce_href="http://naeblis.cx/rtomayko/2004/12/12/rest-to-my-wife"&gt;How I explained REST to my wife&lt;/a&gt;. More recently see &lt;a href="http://www.25hoursaday.com/weblog/2008/08/17/ExplainingRESTToDamienKatz.aspx" mce_href="http://www.25hoursaday.com/weblog/2008/08/17/ExplainingRESTToDamienKatz.aspx"&gt;Explaining REST to Damien Katz&lt;/a&gt;). I got a few proverbial (and some literal) blank stares as I shared my enthusiasm for REST, asking how we could apply the ideas to the various projects we were working on. It was Pablo, and (as Pablo attests) Britt Johnston (now a PUM for SQL Business) who were able to develop the initial conceptual leaps into something more concrete like &lt;a href="http://www.eweek.com/c/a/Windows/What-Is-Bill-Gates-Thinking/" mce_href="http://www.eweek.com/c/a/Windows/What-Is-Bill-Gates-Thinking/"&gt;a Think Week Paper&lt;/a&gt; and a prototype demo. &lt;/p&gt;  &lt;p&gt;2. When it came to brainstorming the code name, the team agreed on a&amp;nbsp; "cloud" theme. A number of proposals were floated around along with their rationales, including "cumulus" and "cirrus". We were then advised that city and town code names were legal-safe. So there we were, struggling to agree on some city or town name we all liked (or at least not hate nor be confused by..."how about &lt;a href="http://www.amusingfacts.com/cgi-bin/surf/surf_pass.cgi?template=weird.html&amp;amp;cfile=nameless.html" mce_href="http://www.amusingfacts.com/cgi-bin/surf/surf_pass.cgi?template=weird.html&amp;amp;cfile=nameless.html"&gt;Nameless&lt;/a&gt;?"...), and then &lt;a href="http://blogs.msdn.com/data/archive/2006/12/05/data-access-api-of-the-day-part-i.aspx" mce_href="http://blogs.msdn.com/data/archive/2006/12/05/data-access-api-of-the-day-part-i.aspx"&gt;Mike Pizzo's&lt;/a&gt; proposal came in: "Astoria - hey, it's the cloudiest city in the USA!" (&lt;a href="http://www.farmersalmanac.com/weather_chatter/2006/10/06/the-10-worst-weather-cities/" mce_href="http://www.farmersalmanac.com/weather_chatter/2006/10/06/the-10-worst-weather-cities/"&gt;at least it was in 2006&lt;/a&gt;). Sold.&lt;/p&gt;  &lt;p&gt;3. I think my favorite memory of all is the reaction &lt;a href="http://flakenstein.net/" mce_href="http://flakenstein.net/"&gt;Gary Flake&lt;/a&gt; provided (of Microsoft's &lt;a href="http://livelabs.com" mce_href="http://livelabs.com"&gt;Live Labs&lt;/a&gt;) to the prototype Pablo demo'd at one of the pitch meetings: "As God himself would have designed it!" Dr Flake exclaimed..."Cool", I thought to myself - "but does that mean no REST for the wicked?"&lt;/p&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=42218" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/platforms/default.aspx">platforms</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/ROA/default.aspx">ROA</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/Web/default.aspx">Web</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category><category domain="http://alexbarnett.net/blog/archive/tags/XML/default.aspx">XML</category></item><item><title>Astoria at MIX08 (REST in Vegas)</title><link>http://alexbarnett.net/blog/archive/2008/03/04/astoria-at-mix08-rest-in-vegas.aspx</link><pubDate>Wed, 05 Mar 2008 02:11:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40802</guid><dc:creator>alexbarnett</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40802</wfw:comment><comments>http://alexbarnett.net/blog/archive/2008/03/04/astoria-at-mix08-rest-in-vegas.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;As much as I'd love to make&amp;nbsp;it to MIX08 this week, time will not&amp;nbsp;allow me...But if I were, then I'd be going to &lt;A class="" href="http://blogs.msdn.com/astoriateam/archive/2008/02/29/mix08-is-almost-here.aspx" mce_href="http://blogs.msdn.com/astoriateam/archive/2008/02/29/mix08-is-almost-here.aspx"&gt;the following three sessions&lt;/A&gt; related to the &lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Project Formerly Known as Astoria&lt;/A&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Wed, March 5th - RESTful Data Services with the ADO.NET Data Services Framework&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;Fri, March 7th - Accessing Windows Live Services via AtomPub&lt;/LI&gt;
&lt;LI&gt;Fri, March 7th - Building RESTful Real World Applications with the ADO.NET Data Services Framework&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40802" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Atom/default.aspx">Atom</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Mashup/default.aspx">Mashup</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/ROA/default.aspx">ROA</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/SOA/default.aspx">SOA</category><category domain="http://alexbarnett.net/blog/archive/tags/SQL/default.aspx">SQL</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category><category domain="http://alexbarnett.net/blog/archive/tags/WindowsLive/default.aspx">WindowsLive</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category><category domain="http://alexbarnett.net/blog/archive/tags/XML/default.aspx">XML</category></item><item><title>ADO.NET Entity Framework video- 1 year later</title><link>http://alexbarnett.net/blog/archive/2007/08/30/ado-net-entity-framework-video-1-year-later.aspx</link><pubDate>Thu, 30 Aug 2007 14:04:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40381</guid><dc:creator>alexbarnett</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40381</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/08/30/ado-net-entity-framework-video-1-year-later.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Some old &lt;A class="" href="http://msdn2.microsoft.com/data/default.aspx" mce_href="http://msdn2.microsoft.com/data/default.aspx"&gt;Data Programmability&lt;/A&gt;&amp;nbsp;teammates of mine, Britt Johnston, &lt;A class="" href="http://blogs.msdn.com/pablo/" mce_href="http://blogs.msdn.com/pablo/"&gt;Pablo Castro&lt;/A&gt; and Mike Pizzo (well, Mike's not &lt;EM&gt;that&lt;/EM&gt; old), are interviewed by Charles Torre &lt;A class="" href="http://channel9.msdn.com/showpost.aspx?postid=338257" mce_href="http://channel9.msdn.com/showpost.aspx?postid=338257"&gt;in this Channel 9 video&lt;/A&gt; to discuss their progress, challenges and customer feedback in the last year since announcing &lt;A class="" href="http://blogs.msdn.com/adonet/archive/2006/08/15/701479.aspx" mce_href="http://blogs.msdn.com/adonet/archive/2006/08/15/701479.aspx"&gt;the first&amp;nbsp;ADO.NET Entity Framework CTP&lt;/A&gt;, including some details on project &lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Astoria&lt;/A&gt;&amp;nbsp;and &lt;A class="" href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/08/03/9558.aspx" mce_href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/08/03/9558.aspx"&gt;LINQ to Entities&lt;/A&gt; support, &lt;A class="" href="http://blogs.msdn.com/adonet/archive/2007/08/27/entity-framework-beta-2-the-1st-entity-framework-tools-ctp-released.aspx" mce_href="http://blogs.msdn.com/adonet/archive/2007/08/27/entity-framework-beta-2-the-1st-entity-framework-tools-ctp-released.aspx"&gt;details on the Beta 2 and Tools CTP&lt;/A&gt;&amp;nbsp;released earlier this week (the entity model designer is v.cool), plus&amp;nbsp;the future of the &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx"&gt;Entity Framework&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;P.S. Michael -&amp;nbsp;in case you're&amp;nbsp;reading: reconsider the shorts for the next interview :-P&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40381" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Dev/default.aspx">Dev</category><category domain="http://alexbarnett.net/blog/archive/tags/DP/default.aspx">DP</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>Dr. Peter Chen - the ER Model and ADO.NET Entity Framework - Podcast</title><link>http://alexbarnett.net/blog/archive/2007/02/20/Dr.-Peter-Chen-_2D00_-the-ER-Model-and-ADO.NET-Entity-Framework-_2D00_-Podcast.aspx</link><pubDate>Tue, 20 Feb 2007 21:49:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:26169</guid><dc:creator>alexbarnett</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=26169</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/02/20/Dr.-Peter-Chen-_2D00_-the-ER-Model-and-ADO.NET-Entity-Framework-_2D00_-Podcast.aspx#comments</comments><description>&lt;p&gt;A couple of weeks ago&amp;nbsp;&lt;a href="http://bit.csc.lsu.edu/~chen/chen.html"&gt;Dr Peter Chen&lt;/a&gt;,&amp;nbsp;inventor of the &lt;a href="http://en.wikipedia.org/wiki/Entity-relationship_model"&gt;Entity-Relationship model&lt;/a&gt;&amp;nbsp;(ER model), visited the Microsoft Campus to provide a lecture sharing his thoughts on the &lt;a href="http://msdn2.microsoft.com/en-us/data/aa937723.aspx"&gt;ADO.NET Entity Framework&lt;/a&gt;. As we were planning his visit, he was very keen to make sure that his views could be shared&amp;nbsp;with a&amp;nbsp;wider audience&amp;nbsp;beyond&amp;nbsp;Microsoft employees, so we agree to record some sessions while on campus.&lt;/p&gt;&lt;p&gt;His &lt;a href="http://portal.acm.org/citation.cfm?id=320440"&gt;original paper on the Entity-Relationship model (ER model)&lt;/a&gt;, published in 1976 is one of the most cited papers in the computer software field. I was fortunate enough to have dinner with him, Sam Druker, Jose Blakeley, Britt Johnston, Erik Meijer, Pedro Cellis&amp;nbsp;where&amp;nbsp;we heard how his ideas on the ER model were formulated some&amp;nbsp;30 years ago. Lot&amp;#39;s more fascinating conversation all about this history of databases, and their future too...&lt;/p&gt;&lt;p&gt;The next morning, I picked up Dr Chen from the hotel and drove him&amp;nbsp;to the recording studio to meet with Britt, Jose and Brian Beckman&amp;nbsp;where they got talking for an hour with the microphone on. Here&amp;#39;s the &lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=284267"&gt;podcast, hosted on Channel 9&lt;/a&gt;&amp;nbsp;(.&lt;a href="http://channel9.msdn.com/rss.aspx?threadID=284267&amp;amp;format=mp3"&gt;mp3 here&lt;/a&gt;) It is&amp;nbsp;superb. I mean it. If you&amp;#39;re into &amp;#39;data&amp;#39;, you&amp;#39;ll love it.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&amp;quot;Beckman interviews Dr. Chen along with Jose Blakeley, Software Architect, SQL Server, and Britt Johnston, Director of Program Management, Data Programmability.&amp;nbsp;Join as we discuss the ideas behind Dr. Chen&amp;#39;s&amp;nbsp;original paper, how these concepts have subsequently influenced&amp;nbsp;the software industry and database technologies, and&amp;nbsp;how the &lt;/em&gt;&lt;a href="http://msdn2.microsoft.com/en-us/data/aa937723.aspx"&gt;&lt;em&gt;ADO.NET Entity Framework&lt;/em&gt;&lt;/a&gt;&lt;em&gt; is an execution runtime for the ER model.&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=26169" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Dev/default.aspx">Dev</category><category domain="http://alexbarnett.net/blog/archive/tags/DP/default.aspx">DP</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/SQL/default.aspx">SQL</category><category domain="http://alexbarnett.net/blog/archive/tags/SQLServer/default.aspx">SQLServer</category><category domain="http://alexbarnett.net/blog/archive/tags/Tech/default.aspx">Tech</category></item><item><title>A Short History of the Evolution of Microsoft Data Access APIs</title><link>http://alexbarnett.net/blog/archive/2006/12/05/A-Short-History-of-the-Evolution-of-Microsoft-Data-Access-APIs.aspx</link><pubDate>Wed, 06 Dec 2006 02:28:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:9267</guid><dc:creator>alexbarnett</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=9267</wfw:comment><comments>http://alexbarnett.net/blog/archive/2006/12/05/A-Short-History-of-the-Evolution-of-Microsoft-Data-Access-APIs.aspx#comments</comments><description>&lt;p&gt;Earlier this year I read Joel Spolsky&amp;#39;s &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/1590593898"&gt;&amp;#39;Joel on Software&amp;#39;&lt;/a&gt;. It&amp;#39;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),&amp;nbsp;Spolsky&amp;#39;s criticisms of&amp;nbsp;Microsoft practices and strategy&amp;nbsp;can&amp;nbsp;be insightful, if not&amp;nbsp;entertaining...&lt;/p&gt;&lt;p&gt;Now, I started reading the book soon after&amp;nbsp;I joined the&amp;nbsp;Data Programmability team&amp;nbsp;to focus&amp;nbsp;on our community efforts, so you could see why the following paragraph from his &lt;a href="http://www.joelonsoftware.com/articles/fog0000000339.html"&gt;&lt;font color="#0065e2"&gt;Fire and Motion blog post / essay&lt;/font&gt;&lt;/a&gt;&amp;nbsp;made me sit up and pay attention:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&amp;quot;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&amp;#39;s probably it, actually.)&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Hey!!&amp;nbsp;He was talking&amp;nbsp;about&amp;nbsp;&lt;em&gt;my team&lt;/em&gt;&amp;nbsp;here and the technologies &lt;em&gt;my team&lt;/em&gt; is responsible for. And&amp;nbsp;not only that,&amp;nbsp;he was&amp;nbsp;doing so in a well read book (amongst software developers&amp;nbsp;at least),&amp;nbsp;accusing us (at least with some&amp;nbsp;tongue in cheek) of incompetence!! &lt;/p&gt;&lt;p&gt;I asked around our team: why is the history of data access technologies at Microsoft the way it is? How did we get to &lt;a href="http://blogs.msdn.com/data/archive/2006/07/14/665780.aspx"&gt;&lt;font color="#0065e2"&gt;where we are today&lt;/font&gt;&lt;/a&gt;? As a newbie to team I wanted to know the history and to somehow get our own&amp;nbsp;historical&amp;nbsp;perspective out there.&lt;/p&gt;&lt;p&gt;So I asked&amp;nbsp;Mike Pizzo, a Microsoft veteran who has been a member of the team responsible for the &amp;#39;alphabet soup&amp;#39; of data access technologies at Microsoft for the last 15 years (yes, &lt;em&gt;fifteen&lt;/em&gt;) if he would blog something on this topic. To my delight, he agreed.&lt;/p&gt;&lt;p&gt;Today,&amp;nbsp;Mike published &lt;em&gt;&lt;a href="http://blogs.msdn.com/data/archive/2006/12/05/data-access-api-of-the-day-part-i.aspx"&gt;&lt;font color="#0065e2"&gt;Part I &amp;ndash; The Early Years&lt;/font&gt;&lt;/a&gt;,&lt;/em&gt;&amp;nbsp;the first blog post in a great series of four&amp;nbsp;documenting the history of data access at Microsoft. I think it&amp;#39;s a classic. Enjoy.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&amp;quot;Following is a short history of the evolution of Microsoft Data Access APIs in four parts (so far&amp;hellip;) &lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Part I &amp;ndash; The Early Years (ODBC, DAO, RDO, ODBCDirect) &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Part II &amp;ndash; Componentizing Data Access (OLE DB) &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Part III &amp;ndash; Disconnected Programming in a Managed Environment (ADO.NET) &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Part IV &amp;ndash; Programming at the Conceptual Model (ADO.NET Entities and LINQ) &lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;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&amp;hellip;)&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=9267" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/DP/default.aspx">DP</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/Programming/default.aspx">Programming</category><category domain="http://alexbarnett.net/blog/archive/tags/SQL/default.aspx">SQL</category></item><item><title>Live Search OPML Generator</title><link>http://alexbarnett.net/blog/archive/2006/10/11/Live-Search-OPML-Generator.aspx</link><pubDate>Thu, 12 Oct 2006 05:06:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:519</guid><dc:creator>alexbarnett</dc:creator><slash:comments>3</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=519</wfw:comment><comments>http://alexbarnett.net/blog/archive/2006/10/11/Live-Search-OPML-Generator.aspx#comments</comments><description>&lt;p&gt;Andy Edmonds &lt;a href="http://blogs.msdn.com/andyed/archive/2006/10/12/live-search-opml-generator-bootstrap-your-blogosphere-engagement.aspx"&gt;has&amp;nbsp;posted&lt;/a&gt; about the all new&amp;nbsp;&lt;a href="http://surfmind.com/lab/msn/opml/"&gt;Live Search OPML Generator&lt;/a&gt;...&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;&amp;quot;&lt;strong&gt;What does it do?&lt;/strong&gt;: This app runs your query against the Live Search API with the feed: &lt;/em&gt;&lt;a href="http://search.msn.com/docs/help.aspx?t=SEARCH_REF_AdvSrchOperators.htm"&gt;&lt;em&gt;syntax&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, returning RSS feeds, and assembles an OPML file. You&amp;#39;ll get the chance to choose from the results before generating the subscription list.&amp;quot;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;As an example, here&amp;#39;s the search results on the query &lt;a href="http://surfmind.com/lab/msn/opml/?q=ADO.NET&amp;amp;q=+language%3Aen+&amp;amp;q=+-intitle%3Acomments+-inurl%3Acomment&amp;amp;market=en%2Cus"&gt;&amp;quot;ADO.NET&amp;quot;&lt;/a&gt;. Some great feeds come back: The &lt;a href="http://blogs.msdn.com/adonet/rss.xml"&gt;ADO.NET team&amp;nbsp;blog feed&lt;/a&gt;, David Hayden&amp;#39;s blog posts &lt;a href="http://davidhayden.com/blog/dave/category/26.aspx/rss"&gt;as a feed with category &amp;#39;ADO.NET&amp;#39;&lt;/a&gt;, Sahil Malik&amp;#39;s &lt;a href="http://sahilmalik.wordpress.com/tag/articles/rss2"&gt;feed&lt;/a&gt; that includes a number of ADO.NET posts, the ADO.NET Technology Preview MSDN Forum &lt;a href="http://forums.microsoft.com/MSDN/rss.aspx?ForumID=533&amp;amp;Mode=0&amp;amp;SiteID=1"&gt;feed&lt;/a&gt;&amp;nbsp;and plenty more.&lt;/p&gt;&lt;p&gt;What&amp;#39;s great is that&amp;nbsp;once you&amp;#39;ve decided which feeds you want to subscribe to, you select those and an OPML file is generated for you to wack into your feedreader. Alternatively, you could select all, then add the OPML file to your reader and then delete those that you don&amp;#39;t want to keep. Or just add them as feeds to read within the &lt;a href="http://www.live.com"&gt;Live.com reader&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Another nice thing&amp;nbsp;Andy has pointed out&amp;nbsp;is&amp;nbsp;the potential to create&amp;nbsp;&lt;a href="http://www.techcrunch.com/2005/10/16/my-thoughts-on-reading-lists/"&gt;Reading Lists&lt;/a&gt; from a search query.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=519" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/Atom/default.aspx">Atom</category><category domain="http://alexbarnett.net/blog/archive/tags/OPML/default.aspx">OPML</category><category domain="http://alexbarnett.net/blog/archive/tags/RSS/default.aspx">RSS</category></item><item><title>Astrophysicist-turned-Programming-Language-Designer</title><link>http://alexbarnett.net/blog/archive/2006/09/03/Astrophysicist_2D00_turned_2D00_Programming_2D00_Language_2D00_Designer.aspx</link><pubDate>Sun, 03 Sep 2006 09:27:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:66</guid><dc:creator>admin</dc:creator><slash:comments>2</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=66</wfw:comment><comments>http://alexbarnett.net/blog/archive/2006/09/03/Astrophysicist_2D00_turned_2D00_Programming_2D00_Language_2D00_Designer.aspx#comments</comments><description>&lt;p&gt;In&amp;nbsp;my first week with the Data Programmability team, my new manager suggested I set up a bunch of introductory meetings with some of the team members. One of the very first of these meetings was with Software Architect &lt;a href="http://weblogs.asp.net/brianbec"&gt;Brian Beckman&lt;/a&gt;. I spent an hour with him and was totally blown away.&lt;/p&gt;&lt;p&gt;This is Brian, holding a copy of the &lt;a href="http://research.microsoft.com/towards2020science/background_overview.htm"&gt;&amp;#39;Towards 2020&amp;quot; report&lt;/a&gt; published by Microsoft Research that he contributed to this year:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;img height="192" src="http://static.flickr.com/92/232480334_a233264a23_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;As I was sitting and&amp;nbsp;listening to Brian&amp;#39;s stream of consciousness I felt like I was watching a live 3D version of a Channel 9 video. At the end of our chat I asked him if he wouldn&amp;#39;t mind me asking&amp;nbsp;&lt;a href="http://channel9.msdn.com/Niners/Charles"&gt;Charles Torre&lt;/a&gt; of Channel 9 to interview him. I really wanted others to have the chance to hear him talk. He happily agreed and the end result is &lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=230438"&gt;now up for downloading on Channel 9&lt;/a&gt;. It&amp;#39;s a large download but worth it - you&amp;#39;ll be thoroughly entertained.&lt;/p&gt;&lt;p&gt;Brian is a cosmologist / astrophysicist&amp;nbsp; / quantum physicist / academic-turned-programming language designer (!). His bookshelf is one of the more unusual you&amp;#39;ll see around campus in terms of the mix (and is the only person I know other than me to own a Steve Wolfram book (I have &lt;a href="http://www.wolframscience.com/"&gt;A New Kind of Science&lt;/a&gt; - an extraordinary work).&lt;/p&gt;&lt;p&gt;&lt;img height="192" src="http://static.flickr.com/80/232478594_aced881981_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;img height="192" src="http://static.flickr.com/88/232478577_c0a7f45c29_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;img height="192" src="http://static.flickr.com/85/232478622_1e6200b307_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;/p&gt;&lt;p&gt;He spent his early career at NASA&amp;#39;s Jet Propulsion Lab (&lt;a href="ttp://www.jpl.nasa.gov/"&gt;JPL&lt;/a&gt;) researching nutty stuff such as the &lt;a href="http://portal.acm.org/citation.cfm?id=37508"&gt;Time Warp Operating System&lt;/a&gt; and virtual time theory, distributed computing - running the &lt;a href="http://en.wikipedia.org/wiki/Conway&amp;#39;s_Game_of_Life"&gt;Game of Life&lt;/a&gt; and virtual billiards on parallel processors, and developing &lt;a href="http://www.wired.com/news/technology/0,68591-0.html"&gt;War Game simulators&lt;/a&gt; for government (a little bit like the Game of Life, but more of a Game of Death involving large-scale nuclear warhead deployments and massive Soviet troop and tank maneuver scenarios: think of it as Sims Massively-Accelerated-Anti-Evolution Edition)...&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a class="internal" href="http://en.wikipedia.org/wiki/Conway&amp;#39;s_Game_of_Life" title="Gosper&amp;#39;s Glider Gun creating &amp;quot;gliders&amp;quot;."&gt;&lt;img alt="Gosper&amp;#39;s Glider Gun creating &amp;quot;gliders&amp;quot;." height="180" longdesc="http://en.wikipedia.org/wiki/Image:Gospers_glider_gun.gif" src="http://upload.wikimedia.org/wikipedia/commons/e/e5/Gospers_glider_gun.gif" width="250" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Brian joined the &lt;a href="http://research.microsoft.com/"&gt;Microsoft Research&lt;/a&gt; team years ago&amp;nbsp;(before it was known as MSR) and today leads&amp;nbsp;the&amp;nbsp;our&amp;nbsp;research and product incubation efforts in the &lt;a href="http://blogs.msdn.com/data/"&gt;Data Programmability team&lt;/a&gt;. He loves his functional programming languages: &lt;a href="http://en.wikipedia.org/wiki/Haskell_programming_language"&gt;Haskell&lt;/a&gt; (&lt;a href="http://blogs.msdn.com/alexbarn/archive/2006/08/17/704009.aspx"&gt;Erik Meijer&lt;/a&gt; is one of Haskell&amp;#39;s designers and is also in Brian&amp;#39;s team) and &lt;a href="http://www.cs.aau.dk/~normark/prog3-03/html/notes/theme-index.html"&gt;Scheme&lt;/a&gt;. And he loves his &lt;a href="http://www.idealliance.org/proceedings/xml05/ship/63/Monoids.HTML"&gt;Monads&lt;/a&gt;: Erik and Brian jointly wrote &amp;#39;&lt;a href="http://research.microsoft.com/~emeijer/Papers/XLinq%20XML%20Programming%20Refactored%20(The%20Return%20Of%20The%20Monoids).htm"&gt;The Return of the Monoids&lt;/a&gt;&amp;#39; (not a science-fiction horror script, but research paper). As an example of what Brian does today, he was involved in the development of the Entity Data Model (EDM) into ADO.NET. This technology recently saw the light of day in &lt;a href="http://blogs.msdn.com/adonet/archive/2006/08/15/701479.aspx"&gt;ADO.NET Entity Framework&lt;/a&gt; CTP), with Brian taking on the role of translating the theoretical and mathematical models of EDM developed by the research team into coded concepts the product teams could&amp;nbsp;interpret and then develop the technology for ADO.NET, SQL Server, and Visual Studio. In our first meeting we spent some time discussing the dynamic languages Ruby, Python and Perl - the great news for me was that he was very familiar with these and is actually quite a big fan of them although his day-to-day attention is focused on VB.NET as you can see &lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=230438"&gt;from the video&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Mr Beckman collects calculators. He showed me one I&amp;#39;ve never see before - the CURTA Calculator. (The &lt;a href="http://www.vcalc.net/cu-bckup.htm"&gt;story behind its invention&lt;/a&gt; is as amazing as the device itself.)&lt;/p&gt;&lt;p&gt;&lt;img height="192" src="http://static.flickr.com/98/232478671_fd3f5cc02d_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;img height="192" src="http://static.flickr.com/87/232478658_c4fe49b5eb_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;img height="192" src="http://static.flickr.com/79/232478648_aed4f4e950_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;/p&gt;&lt;p&gt;He also show me this:&lt;/p&gt;&lt;p&gt;&lt;img height="192" src="http://static.flickr.com/98/232478572_fc2e2b761d_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;/p&gt;&lt;p&gt;...which he has programmed to print out these:&lt;/p&gt;&lt;p&gt;&lt;img height="192" src="http://static.flickr.com/87/232478684_2411d5ac79_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;img height="192" src="http://static.flickr.com/85/232478700_db258cdc72_m.jpg" style="border: #ddd 1px solid" width="240" /&gt;&lt;/p&gt;&lt;p&gt;His desktop scientific print calculator simply crunches out prime numbers, all day long, every day and has done for years.&lt;/p&gt;&lt;p&gt;Each new prime takes a little longer to calculate than the previous prime. Currently it takes about 6 hours to work out the next prime number. Earlier this year our team ran an internal competition - ADO.NET Idol: it&amp;#39;s simple: the coolest app developed by a member the DP / SQL team using the ADO.NET vNext / EDM stack wins. Brian won it by developing an full-on emulator of the print calculator, GUI and all, programming each of the calculator&amp;#39;s functions into a virtual ADO.NET vNext calculator to calculate and print out the prime numbers (at a considerably faster rate than the real calculator of course...). For fun.&lt;/p&gt;&lt;p&gt;Anyway, along with Brian and Erik and loads of others on the team, I&amp;#39;ve always&amp;nbsp;plenty to learn each day around here...&lt;/p&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=66" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/DP/default.aspx">DP</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/MSR/default.aspx">MSR</category><category domain="http://alexbarnett.net/blog/archive/tags/Programming/default.aspx">Programming</category><category domain="http://alexbarnett.net/blog/archive/tags/SQLServer/default.aspx">SQLServer</category><category domain="http://alexbarnett.net/blog/archive/tags/Tech/default.aspx">Tech</category></item></channel></rss>