<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>ADO.NET Data Services Team Blog : Design Video</title><link>http://blogs.msdn.com/astoriateam/archive/tags/Design+Video/default.aspx</link><description>Tags: Design Video</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Design Notes: Row Count</title><link>http://blogs.msdn.com/astoriateam/archive/2008/12/15/design-notes-row-count.aspx</link><pubDate>Tue, 16 Dec 2008 00:18:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9222501</guid><dc:creator>dpblogs</dc:creator><slash:comments>27</slash:comments><comments>http://blogs.msdn.com/astoriateam/comments/9222501.aspx</comments><wfw:commentRss>http://blogs.msdn.com/astoriateam/commentrss.aspx?PostID=9222501</wfw:commentRss><description>&lt;p&gt;One of the scenarios we have heard feedback around is the ability for the a client of a data service to determine the total number of entities in a set without having to retrieve them all. The following video discusses this scenario in more detail and some of our thoughts regarding how to make the experience better.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;iframe src="http://channel9.msdn.com/posts/Andrew+Conrad/434694/player/" frameborder="0" width="320" scrolling="no" height="325"&gt;&lt;/iframe&gt;  &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Andrew+Conrad/Astoria-Design-Walkthrough-Introducing-count-as-an-URI-query-option/"&gt;Astoria Design Walkthrough: Introducing $count as an URI query option&lt;/a&gt;   &lt;br /&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Additional design details&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;- The count value would be calculated after $filter expressions are applied.&amp;#160; For example /Customers?$filter=City eq 'London' would return a count value made up of &lt;strong&gt;only&lt;/strong&gt; the customers living in London and not all the customers.&lt;/p&gt;  &lt;p&gt;- If a query included $top, $skip or $orderby, the count value would be unaffected.&amp;#160; For example /Customers?$top=1&amp;amp;$skip=2&amp;amp;$orderby=Name would return the total number of customers stored by the service.&lt;/p&gt;  &lt;p&gt;- If a query includes a $expand, then the count applies to the outer entity set.&amp;#160; For example /Customers?$expand=Orders would return the number of customers stored by the service&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What do you think?&amp;#160; Would this be useful in your data services applications?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Mike Flasko&lt;/p&gt;  &lt;p&gt;ADO.NET Data Services, Program Manager&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This post is part of the transparent design exercise in the Astoria Team. To understand how it works and how your feedback will be used please look at &lt;a href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx"&gt;this post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9222501" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Notes/default.aspx">Design Notes</category><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Video/default.aspx">Design Video</category></item><item><title>Alpha preview of Project Codename &amp;amp;quot;Astoria Offline&amp;amp;quot; coming soon</title><link>http://blogs.msdn.com/astoriateam/archive/2008/11/03/alpha-preview-of-project-codename-astoria-offline-coming-soon.aspx</link><pubDate>Tue, 04 Nov 2008 02:01:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9035676</guid><dc:creator>dpblogs</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/astoriateam/comments/9035676.aspx</comments><wfw:commentRss>http://blogs.msdn.com/astoriateam/commentrss.aspx?PostID=9035676</wfw:commentRss><description>&lt;p&gt;As we already discussed in a &lt;a href="http://blogs.msdn.com/astoriateam/archive/2008/10/22/astoria-futures-offline-enabled-data-services.aspx"&gt;previous blog post&lt;/a&gt;, one of the problem spaces related to data services we&amp;#8217;d like to take on is synchronization-capable services, enabling offline scenarios. We&amp;#8217;re still in the early stages of the project, where direction can be adjusted and good feedback can be very influential.&lt;/p&gt;  &lt;p&gt;Giving good feedback without actually having something to look at it&amp;#8217;s tricky, so we want to ship bits. Earlier at &lt;a href="http://channel9.msdn.com/pdc2008/TL08/"&gt;the PDC talk that showed this technology end-to-end for the first time&lt;/a&gt; we announced that we&amp;#8217;ll be shipping a very early release of the bits that extend our entity platform, including the Entity Framework and ADO.NET Data Services, with synchronization capabilities through integration with the Microsoft Sync Framework and a nice toolset that makes development of offline-capable applications reasonably straightforward.&lt;/p&gt;  &lt;p&gt;Here is a brief video with Waseem and myself discussing the release. Waseem was probably the most involved developer so far in this effort and has been dealing with a lot of the challenges that we hit as we put all the pieces together and build new ones on top.&lt;/p&gt;  &lt;p&gt;&lt;iframe src="http://channel9.msdn.com/posts/Andrew+Conrad/437013/player/" frameborder="0" width="320" scrolling="no" height="325"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Andrew+Conrad/Astoria-Design-Walkthrough-Alpha-preview-of-Project-Codename-Astoria-Offline-coming-very-soon/"&gt;Astoria Design Walkthrough: Alpha preview of Project Codename &amp;quot;Astoria Offline&amp;quot; coming soon&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Just like the first release of &amp;#8220;Astoria&amp;#8221; almost two years ago, the goal if this alpha release is to paint the picture of what we want to build, what scenarios we consider interesting and how we want to approach the tooling around it. It&amp;#8217;s definitely not a goal to ship something that&amp;#8217;s usable in production or even something that can be used to start writing real applications now. Things will change substantially as we hear feedback from all of you.&lt;/p&gt;  &lt;p&gt;You can expect the release to ship before the end of this year, and to include both runtime and tool components for the whole thing. If you care about synchronization and offline applications, giving this release a try and sending us your thoughts, comments and suggestions would help build the right technology in this space.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/pablo"&gt;Pablo Castro&lt;/a&gt;     &lt;br /&gt;Software Architect     &lt;br /&gt;Microsoft Corporation&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This post is part of the transparent design exercise in the Astoria Team. To understand how it works and how your feedback will be used please look at &lt;a href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx"&gt;this post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9035676" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Notes/default.aspx">Design Notes</category><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Video/default.aspx">Design Video</category></item><item><title>Astoria futures: offline-enabled data services</title><link>http://blogs.msdn.com/astoriateam/archive/2008/10/22/astoria-futures-offline-enabled-data-services.aspx</link><pubDate>Thu, 23 Oct 2008 04:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9012111</guid><dc:creator>dpblogs</dc:creator><slash:comments>17</slash:comments><comments>http://blogs.msdn.com/astoriateam/comments/9012111.aspx</comments><wfw:commentRss>http://blogs.msdn.com/astoriateam/commentrss.aspx?PostID=9012111</wfw:commentRss><description>&lt;p&gt;We mentioned that we were doing some early thinking of &amp;#8220;Astoria Offline&amp;#8221; back in Mix 2008, where we even demo&amp;#8217;ed an early proof of concept. Now we&amp;#8217;ve been working on various design aspects of Data Services for its future versions, and synchronization/offline support is one of them. It&amp;#8217;s still an experimental thing with no official home or release vehicle, so this is the best time to follow the design process if you find the scenario interesting, as this is when it&amp;#8217;s easiest to influence the direction we&amp;#8217;ll go for.&lt;/p&gt;  &lt;p&gt;A short way of describing this can be: &amp;#8220;imagine you can point Visual Studio to a data service and say &amp;#8216;take it offline&amp;#8217;, and things just happen&amp;#8221;.&lt;/p&gt;  &lt;p&gt;Of course, the real world is more complicated than that :-)&lt;/p&gt; &lt;iframe src="http://channel9.msdn.com/posts/Andrew+Conrad/434554/player/" frameborder="0" width="320" scrolling="no" height="325"&gt;&lt;/iframe&gt;  &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Andrew+Conrad/Astoria-Design-Walkthrough-Thinking-of-a-future-with-sync--offline2/"&gt;Astoria Design Walkthrough: Thinking of a future with sync &amp;amp; offline&lt;/a&gt;   &lt;br /&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In this first note I&amp;#8217;ll just touch on the scenarios we want to hit and go over a few guiding principles. In future posts I&amp;#8217;ll elaborate more on the details.&lt;/p&gt;  &lt;p&gt;We have many scenarios in mind for this infrastructure. The ones we&amp;#8217;re thinking of tackling first:&lt;/p&gt;  &lt;p&gt;&amp;#183; Outlook type of apps: I&amp;#8217;m sure there is a fancier way of saying this, but anyone that has used Microsoft Outlook knows what I mean. The application is basically a 1-tier app that interacts with a local (embedded) database. In the background -and independent from UI activity- 2-way synchronization with a data service (e.g. a Microsoft Exchange server) happens. Often sync&amp;#8217;ing against a database is not quite what you want&amp;#8230;&amp;#8221;Astoria Offline&amp;#8221; will let you sync against your data-service layer, where the usual business logic/validation/etc will run just like in the online path.&lt;/p&gt;  &lt;p&gt;&amp;#183; The description above sort of implies that server and client are built in collaboration, perhaps as part of the same development team. That&amp;#8217;s certainly an scenario and we can do some things easier when that&amp;#8217;s the case. But the other scenario we want to tackle is when client and server in a synchronization relationship are independent from each other (e.g. sync a service that&amp;#8217;s just available for sync on the web). &lt;/p&gt;  &lt;p&gt;&amp;#183; Local replicas of cloud-stored data: as more online services offer structured storage capabilities, and more of them use the Data Services REST interface, it becomes more interesting to be able to synchronize that data locally either for latency reduction, offline operation or other reasons.&lt;/p&gt;  &lt;p&gt;&amp;#183; Data consolidation: if you have multiple data services that expose data from a variety of sources (some databases, some online/&amp;#8221;cloud&amp;#8221; stores, some custom repositories), you may want to synchronize a slice of data of each store to a local database, and then work with the data locally.&lt;/p&gt;  &lt;p&gt;A couple of guiding principles:&lt;/p&gt;  &lt;p&gt;&amp;#183; We will stick to a simple and open interface. What that means is that while we will definitely build a nice end-to-end integrated story for Visual Studio, it will be on top of a well-documented underlying data exchange using just HTTP and known formats. Anybody with an HTTP client and enough knowledge of our sync strategy should be able to synchronize with a data service.&lt;/p&gt;  &lt;p&gt;&amp;#183; Data independence will remain there for sync as it is already for online access. Today when you access a data service the interface is the same regardless of whether the service is backed by a database, a cloud store, some custom application or whatever. With sync, the same applies. If the data service is sync-enabled you can sync with it, no matter what backs it.&lt;/p&gt;  &lt;p&gt;&amp;#183; We are targeting data services for structured stores and business applications. That implies certain level of sophistication in the shape of data, such as assuming cross-item dependencies, store-level and application-level constraints that dictate consistent states of data, the need for making partial progress during synchronization, etc. Such support does come with some extra complexity, but we think it&amp;#8217;s the right target.&lt;/p&gt;  &lt;p&gt;We&amp;#8217;re just taking on this space, so any feedback you may have is good. Are our initial scenarios interesting? Do you need this thing at all? Does the initial direction we&amp;#8217;re looking at sound reasonable?&lt;/p&gt;  &lt;p&gt;btw &amp;#8211; if you are going to be at PDC, we have a &lt;a href="http://channel9.msdn.com/pdc2008/TL08/"&gt;full talk on this&lt;/a&gt; at the event.&lt;/p&gt;  &lt;p&gt;I hope this &amp;#8220;short video&amp;#8221; format that &lt;a href="http://blogs.msdn.com/aconrad/"&gt;Andy&lt;/a&gt; wants to do for our design notes adds a good little twist and makes them more interesting.&lt;/p&gt;  &lt;p&gt;Pablo Castro    &lt;br /&gt;Software Architect     &lt;br /&gt;Microsoft Corporation     &lt;br /&gt;&lt;a href="http://blogs.msdn.com/pablo"&gt;http://blogs.msdn.com/pablo&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This post is part of the transparent design exercise in the Astoria Team. To understand how it works and how your feedback will be used please look at &lt;a href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx"&gt;this post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9012111" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Project+Codename+_2600_quot_3B00_Astoria_2600_quot_3B00_/default.aspx">Project Codename &amp;quot;Astoria&amp;quot;</category><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Notes/default.aspx">Design Notes</category><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Video/default.aspx">Design Video</category></item><item><title>Making Feeds Friendly</title><link>http://blogs.msdn.com/astoriateam/archive/2008/09/28/making-feeds-friendly.aspx</link><pubDate>Mon, 29 Sep 2008 01:17:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8968222</guid><dc:creator>dpblogs</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/astoriateam/comments/8968222.aspx</comments><wfw:commentRss>http://blogs.msdn.com/astoriateam/commentrss.aspx?PostID=8968222</wfw:commentRss><description>&lt;p&gt;The goal of Astoria in V1 is to easily expose a data source using the REST approach to the web (with support for concurrency, versioning, auth, etc).&amp;#160; In general, the way we think about serialization formats (ie. how we represent entites on the wire) is that they are a tool and an application will select the best tool (ie. serialization format) for the job.&amp;#160; For example, AJAX developers will likely opt to interact with Astoria services using our JSON serialization format while .NET developers may choose AtomPub since our .NET client library uses that format under the covers.&amp;#160;&amp;#160; In V1, Astoria supports using the AtomPub and JSON formats as a general purpose data exchange representation and has fixed requirements regarding how an entity is to be represented using the formats.&amp;#160;&amp;#160; While this works well for a number of app scenarios, we&amp;#8217;ve received feedback regarding use cases (one example being mashups) where an app/tool/etc is written to consume general Atom feeds and can then make assumptions about the data given (ie. what the title is, who was the author, etc).&amp;#160; This area of thinking/exploration (uses of feeds in the wild and how to make Astoria&amp;#8217;s feeds just work in certain scenarios) has been dubbed by our team as &amp;#8220;Friendly Feeds&amp;#8221;. &lt;/p&gt;  &lt;p&gt;One of the specific scenarios we&amp;#8217;ve discussed is a mapping site (ie. virtual earth, etc) which accepts feeds as an input and then displays the feed information on the appropriate spots on the map.&amp;#160; In this scenario the mapping site would pull metadata from the well known Atom elements (title, author, content, etc), but also needs to locate geo information to be able to determine where on the map to place the data.&amp;#160; For this we&amp;#8217;ve seen some feeds start to embed micro formats in feeds such as &lt;a href="http://www.georss.org/"&gt;georss&lt;/a&gt;.&amp;#160; To make this more concrete, imagine being able to drive &lt;a href="http://blogs.msdn.com/keithkin/archive/2007/04/28/virtual-earth-api-georss-layers.aspx"&gt;the example shown here&lt;/a&gt; via an Astoria feed.&amp;#160; &lt;/p&gt;  &lt;p&gt;We are still thinking about this space, but right now the high level goals we see as necessary for such a feature are listed below.&amp;#160; What do you think? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Goals:&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;&amp;#183; Enable feeds to be easily customized such that a generic feed viewer can render an Astoria feed &lt;/p&gt;  &lt;p&gt;&amp;#183; The feed customization approach could be applied to feed-based formats other than Atom.&amp;#160; JSON serialization will not support this type of &amp;#8220;Friendliness&amp;#8221; &lt;/p&gt;  &lt;p&gt;&amp;#183; Enable entity properties to be serialized as microformats within a feed &lt;/p&gt;  &lt;p&gt;&amp;#183; Serialization customizations &amp;#8220;just work&amp;#8221; with V1 data service client libraries wherever possible.&amp;#160; Changes that require a protocol version number increase should be explicit and off by default &lt;/p&gt;  &lt;p&gt;&amp;#183; The ADO.NET Data Services client library (for .NET Fx and Silverlight) would be able to roundtrip a &amp;#8220;Friendly Feed&amp;#8221; in the same way the client roundtrips data in Astoria V1.&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#183; We would also teach our code generation tools to understand such &amp;#8220;Friendly Feeds&amp;#8221; and generate the appropriate clients. &lt;/p&gt;  &lt;p&gt;&amp;#183; It is NOT a goal to make ADO.NET Data Services into a blog server -- there are better domain-specific tools for that&amp;#160; &lt;/p&gt;  &lt;p&gt;Oh, I almost forgot&amp;#8230;&amp;#8230;a nice benefit is that with this feature Astoria Atom feeds could likely be made directly viewable in IE.&amp;#160; Folks who have inspected AtomPub-based feeds in web browsers today &lt;a href="http://blogs.msdn.com/astoriateam/archive/2007/12/10/viewing-data-services-responses-using-atom-serialization-in-internet-explorer.aspx"&gt;know what I&amp;#8217;m referring to&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Below is a short video we recorded that discussed this area as well.&amp;#160; Andy (Astoria Dev Lead) got a new camera and came up with the idea of adding these videos. &lt;strong&gt;Let us know what you think of having short video snippets such as this to accompany our design notes as we blog them&lt;/strong&gt;....    &lt;br /&gt;    &lt;br /&gt;&lt;iframe src="http://channel9.msdn.com/posts/Andrew+Conrad/429881/player/" frameborder="0" width="320" scrolling="no" height="325"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/Andrew+Conrad/Astoria-Design-Walkthrough-Friendly-Feeds-Part-1/"&gt;Astoria Design Walkthrough: Friendly Feeds Part 1&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;In a future post, I'll include some specific examples to show how we will enable this in our server runtime and client libraries. &lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Cheers,   &lt;br /&gt;Mike Flasko &lt;/p&gt;  &lt;p&gt;ADO.NET Data Services, Program Manager&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This post is part of the transparent design exercise in the Astoria Team. To understand how it works and how your feedback will be used please look at &lt;a href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx"&gt;this post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8968222" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Notes/default.aspx">Design Notes</category><category domain="http://blogs.msdn.com/astoriateam/archive/tags/Design+Video/default.aspx">Design Video</category></item></channel></rss>