{"id":2103,"date":"2008-05-12T12:20:00","date_gmt":"2008-05-12T12:20:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/odatateam\/2008\/05\/12\/ado-net-data-services-framework-beta-1-is-live\/"},"modified":"2008-05-12T12:20:00","modified_gmt":"2008-05-12T12:20:00","slug":"ado-net-data-services-framework-beta-1-is-live","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/odata\/ado-net-data-services-framework-beta-1-is-live\/","title":{"rendered":"ADO.NET Data Services Framework Beta 1 is Live!"},"content":{"rendered":"<p><P>We are very excited to announce that <A href=\"https:\/\/go.microsoft.com\/fwlink\/?LinkId=115068\">.NET 3.5 SP1 Beta 1<\/A> and <A href=\"https:\/\/go.microsoft.com\/fwlink\/?LinkId=117351\">Visual Studio 2008&nbsp; SP1 Beta 1<\/A> are now available!&nbsp; \n<P>This beta marks the entry of the ADO.NET Data Services Framework as well as the ADO.NET Entity Framework as part of the overall .NET\/Visual Studio product and will be the final beta before the RTM of both technologies. \n<P>The remainder of this post will cover the changes and additions to the ADO.NET Data Services Framework since the last CTP in Dec 07.&nbsp; The \n<P>Since our last CTP in Dec 2007 along with the ASP.NET 3.5 Extensions Preview, there have been a number of changes and added features.&nbsp; I&#8217;ll try to summarize the changes and features below.&nbsp; We&#8217;ll follow up as we go with some more details on the changes and what to expect post Beta 1.&nbsp; \n<P><STRONG>Changes:<\/STRONG> \n<UL>\n<LI><STRONG>Assembly and namespace changes<\/STRONG>.&nbsp; Now that we are part of the .NET Framework we have changed our assembly, namespace and API names to reflect the standard .NET naming conventions.&nbsp; The main assembly and namespace changes are: \n<UL>\n<LI>All Microsoft.Data.*.dll assemblies have been renamed to System.Data.Services.dll (server) and System.Data.Services.Client.dll (client) \n<LI>Anything in Microsoft.Web.* namespaces have moved to System.Data.Services (server types) &amp; System.Data.Services.Client(client types) \n<LI>The assemblies are now installed to the standard location for .NET 3.5 assemblies<\/LI><\/UL>\n<LI><STRONG>API Name Changes<\/STRONG>. The main API name changes are: \n<UL>\n<LI>In general anything which was named WebData* has changed to DataService* \n<LI>In general anything with was named ResourceSet* or Resource* was changed to EntitySet* and Entity* \n<LI>WebDataService class changed to DataService \n<LI>IWebDataServiceConfiguration changed to IDataServiceConfiguration \n<LI>WebDataServiceContext class changed to DataServiceContext \n<LI>WebDataQuery class changed to DataServiceQuery \n<LI>ResourceActions enum changed to UpdateOperations&nbsp; <\/LI><\/UL>\n<LI><STRONG>Query Interceptor Changes<\/STRONG>.&nbsp; We changed the syntax of query interceptors to take 0 arguments and return a predicate (return type = Expression&lt;Func&lt;[EntityType],bool&gt;&gt;.&nbsp; An example interceptor that limits queries to all categories starting with the letter &#8220;B&#8221; now looks like:<\/LI><\/UL>\n<DIV class=\"csharpcode\"><PRE class=\"alt\"><SPAN class=\"lnum\">   1:  <\/SPAN>[QueryInterceptor(<SPAN class=\"str\">&#8220;ProductCategory&#8221;<\/SPAN>)]<\/PRE><PRE><SPAN class=\"lnum\">   2:  <\/SPAN><SPAN class=\"kwrd\">public<\/SPAN> Expression&lt;Func&lt;ProductCategory, <SPAN class=\"kwrd\">bool<\/SPAN>&gt;&gt; <\/PRE><PRE>                                    OnQueryProductCategory()<\/PRE><PRE class=\"alt\"><SPAN class=\"lnum\">   3:  <\/SPAN>{<\/PRE><PRE><SPAN class=\"lnum\">   4:  <\/SPAN>    <SPAN class=\"kwrd\">return<\/SPAN> (pc) =&gt; pc.Name.StartsWith(<SPAN class=\"str\">&#8220;B&#8221;<\/SPAN>);<\/PRE><PRE class=\"alt\"><SPAN class=\"lnum\">   5:  <\/SPAN>}<\/PRE><\/DIV>\n.csharpcode, .csharpcode pre\n{\n\tfont-size: small;\n\tcolor: black;\n\tfont-family: consolas, &#8220;Courier New&#8221;, courier, monospace;\n\tbackground-color: #ffffff;\n\t\/*white-space: pre;*\/\n}\n.csharpcode pre { margin: 0em; }\n.csharpcode .rem { color: #008000; }\n.csharpcode .kwrd { color: #0000ff; }\n.csharpcode .str { color: #006080; }\n.csharpcode .op { color: #0000c0; }\n.csharpcode .preproc { color: #cc6633; }\n.csharpcode .asp { background-color: #ffff00; }\n.csharpcode .html { color: #800000; }\n.csharpcode .attr { color: #ff0000; }\n.csharpcode .alt \n{\n\tbackground-color: #f4f4f4;\n\twidth: 100%;\n\tmargin: 0em;\n}\n.csharpcode .lnum { color: #606060; }<\/p>\n<p><UL>\n<LI><STRONG>Update Interceptor Changes.&nbsp; <\/STRONG>The ResourceActions enum changed name to UpdateOperations \n<LI><STRONG>AJAX\/Javascript Library<\/STRONG>. The Javascript library for data services which was part of the ASP.NET 3.5 Extensions preview is not part of this beta release.&nbsp; Instead, we will iterate in short intervals on this library, making intermediate drops available on <A href=\"http:\/\/codeplex\/\">http:\/\/codeplex<\/A>.&nbsp; The first drop which works with this Beta 1 release is available <A href=\"http:\/\/www.codeplex.com\/aspnet\/Wiki\/View.aspx?title=AJAX&amp;referringTitle=Home\">here<\/A>.&nbsp; \n<LI><STRONG>Command line tool changes<\/STRONG>.&nbsp; The command line tool to generate client side types for a data service (webdatagen.exe) has had a its name changed to datasvcutil.exe and its parameter list simplified.&nbsp; You can now find this tool in the \\Windows\\Microsoft.Net\\Framework\\V3.5 directory \n<LI><STRONG>A bunch of bug fixes \ud83d\ude42<\/STRONG> \n<LI><STRONG>Tweaks to the ATOM payload format.&nbsp; <\/STRONG>We&#8217;ve made a few tweaks to the payload format based on feedback from the ATOM community.&nbsp; We&#8217;ve got a bit more to do here so please expect a bit of churn to the payload formats post Beta 1.<\/LI><\/UL>\n<P><STRONG>Features:<\/STRONG>&nbsp; \n<UL>\n<LI><STRONG>Batching<\/STRONG>: data services now support the ability to group a set of requests into a &#8220;batch&#8221; to be sent to the server in a single HTTP request.&nbsp; The system supports the idea of an atomic group of operations as well as a loose group of operations without such guarantees.&nbsp; This release doesn&#8217;t quite have what we&#8217;re thinking in terms of a final design for this feature, but is quite representative of our thinking. An early write up of the feature is <A href=\"http:\/\/blogs.msdn.com\/astoriateam\/archive\/2008\/04\/06\/batching-data-service-requests.aspx\">here<\/A>.&nbsp; \n<LI><STRONG>Optimistic Concurrency<\/STRONG>: Data services now support the notion of optimistic concurrency by passing concurrency token values using HTTP ETags and making conditionals requests using HTTP If-* requests.&nbsp; Some notes on how this works are <A href=\"http:\/\/blogs.msdn.com\/astoriateam\/archive\/2008\/04\/22\/optimistic-concurrency-data-services.aspx\">here<\/A>.&nbsp; We&#8217;ll also likely extend support post this Beta release to include use of the &#8216;*&#8217; character in conditional requests. \n<LI><STRONG>New IUpdatable interface.&nbsp; <\/STRONG>As was the case in the last CTP, you can create a data service over relational databases using integration with the Entity Framework or you can expose any data source as a REST service that has an IQueryable provider.&nbsp; In the last CTP we had defined an IUpdatable interface which could be implemented to make such data sources r\/w at the service tier.&nbsp; We have significantly changed this interface to make it easier to use.&nbsp; I&#8217;ve put this &#8220;change&#8221; in the list of features as we redesigned the API based on our teams reviews and user feedback.&nbsp; A write up of the new interface is <A href=\"http:\/\/blogs.msdn.com\/astoriateam\/archive\/2008\/04\/10\/iupdatable-ado-net-data-services-framework.aspx\">here<\/A>.<\/LI><\/UL>\n<P>We look forward to your feedback&#8230;&nbsp; \n<P>-Mike Flasko \n<P>Program Manager, ADO.NET Data Service Framework <\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are very excited to announce that .NET 3.5 SP1 Beta 1 and Visual Studio 2008&nbsp; SP1 Beta 1 are now available!&nbsp; This beta marks the entry of the ADO.NET Data Services Framework as well as the ADO.NET Entity Framework as part of the overall .NET\/Visual Studio product and will be the final beta before [&hellip;]<\/p>\n","protected":false},"author":512,"featured_media":3253,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2103","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-odata"],"acf":[],"blog_post_summary":"<p>We are very excited to announce that .NET 3.5 SP1 Beta 1 and Visual Studio 2008&nbsp; SP1 Beta 1 are now available!&nbsp; This beta marks the entry of the ADO.NET Data Services Framework as well as the ADO.NET Entity Framework as part of the overall .NET\/Visual Studio product and will be the final beta before [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/posts\/2103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/users\/512"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/comments?post=2103"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/posts\/2103\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/media\/3253"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/media?parent=2103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/categories?post=2103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/odata\/wp-json\/wp\/v2\/tags?post=2103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}