<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://code.msdn.microsoft.com/rss.xsl"?><rss version="2.0"><channel><title>SSDS REST Library</title><link>http://code.msdn.microsoft.com/ssdsrest/Project/ProjectRss.aspx</link><description>This library contains a simple model for working with data using the REST api against SQL Server Data Services &amp;#40;SSDS&amp;#41;.  It allows CRUD operations as well as provides support for a strongly typed qu...</description><item><title>NEW POST: Nice!</title><link>http://code.msdn.microsoft.com/ssdsrest/Thread/View.aspx?ThreadId=948</link><description>&lt;div class="wikidoc"&gt;
Fantastic work! Eagerly awaiting the version w/ join, orderby and take. Kinda hard to get started without them.&lt;br /&gt;
&lt;/div&gt;</description><author>mattiasj</author><pubDate>Fri, 14 Nov 2008 17:00:17 GMT</pubDate><guid isPermaLink="false">NEW POST: Nice! 20081114P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/ssdsrest/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Description
&lt;/h2&gt;This library uses the REST API against SQL Data Services and performs CRUD  &amp;amp; Query operations.  It features a powerful LINQ-based query and serialization model to make working with objects and SDS very simple.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Change Log:
&lt;/h2&gt; &lt;br /&gt;&lt;b&gt;20081011 Refresh Release&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Updated the serialization mechanism to run in partial trust.  This allows it to run inside Windows Azure projects.&lt;/li&gt;&lt;li&gt;Minor refactoring&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;20080904 Release&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;added support for blobs, concurrency, and parallelism&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;initial release&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;LINQ query syntax and strongly typed object support.&lt;/li&gt;&lt;li&gt;Simple predicates are translated to SQL Data Services Syntax automatically&lt;/li&gt;&lt;li&gt;Support for flexible properties in addition to strongly typed properties&lt;/li&gt;&lt;li&gt;Paging support&lt;/li&gt;&lt;li&gt;Support for multiple return types from query&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Future Features
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Add support for JOIN syntax, Take syntax, OrderBy syntax&lt;/li&gt;&lt;li&gt;Implement fully IQueryable model for the remaining features&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Sample Syntax
&lt;/h2&gt; &lt;br /&gt;&lt;pre&gt;
var container = Context.OpenContainer(&amp;quot;querytests&amp;quot;);
var foo = new Foo { IsPublic = false, Name = &amp;quot;MyFoo&amp;quot;, Size = 12 };
 
//insert it with unique id guid string
container.Insert(foo, Guid.NewGuid().ToString());
 
//notice the LINQ syntax on strong type &amp;quot;Foo&amp;quot;
var results = container.Query&amp;lt;Foo&amp;gt;(e =&amp;gt; e.Entity.Size &amp;gt; 2);
&lt;/pre&gt; &lt;br /&gt;This release also supports blobs via the SsdsBlobEntity both synchronously as well as async&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
MemoryStream mem = new MemoryStream();
//load memory stream
//...
//now upload it to service
using (SsdsBlobEntity blob = new SsdsBlobEntity(mem))
{
    blob.ContentDisposition = &amp;quot;violin.jpg&amp;quot;;
    blob.MimeType = @&amp;quot;image/jpeg&amp;quot;;
    blob.Id = Guid.NewGuid().ToString();
    var container = Context.OpenContainer(&amp;quot;blobtests&amp;quot;);
    container.Insert(blob);
}
&lt;/pre&gt; &lt;br /&gt;Concurrency using If-Match and If-None-Match headers is supported as well.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
var table = Context.OpenContainer(&amp;quot;foo&amp;quot;);
 
//create new foo
var foo = new Foo { IsPublic = false, Name = &amp;quot;Foo&amp;quot;, Size = 10 };
string id = Guid.NewGuid().ToString();
table.Insert(foo, id);
 
//update entity if none match (different version)
SsdsEntity&amp;lt;Foo&amp;gt; entity = new SsdsEntity&amp;lt;Foo&amp;gt;();
entity.Entity = foo;
entity.Id = id;            
entity.Entity.Name = &amp;quot;Foo2&amp;quot;;
 
table.Update(entity, ConcurrencyPattern.IfNoneMatch);
&lt;/pre&gt; &lt;br /&gt;This release also supports parallelism to the SSDS service using the Parallel Extensions.  This support is extensible to other techniques using extension methods.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
var container = Context.OpenContainer(&amp;quot;paging&amp;quot;);
 
List&amp;lt;SsdsEntity&amp;lt;Foo&amp;gt;&amp;gt; entities = new List&amp;lt;SsdsEntity&amp;lt;Foo&amp;gt;&amp;gt;();
 
for (int i = 0; i &amp;lt; 10; i++)
{
    var foo = new Foo
    {
        IsPublic = false,
        Name = &amp;quot;Foo&amp;quot; + i,
        Size = i
    };
 
    entities.Add(new SsdsEntity&amp;lt;Foo&amp;gt;() { Entity = foo, Id = foo.Name });
}
 
Exception ex = null;
 
container.Insert&amp;lt;Foo&amp;gt;(entities, (ent, excep) =&amp;gt;
{
    ex = excep;
    return false;
});
 
if (ex != null)
{
    throw ex;
}
&lt;/pre&gt; &lt;br /&gt;More information about this provider can be found in the related blog postings:&lt;br /&gt; &lt;br /&gt;&lt;a href="http://dunnry.com/blog/SerializationInSSDS.aspx" class="externalLink"&gt;Serialization in SSDS&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart1.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 1&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart2.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart3.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 3&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>dunnry</author><pubDate>Wed, 12 Nov 2008 02:35:19 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20081112A</guid></item><item><title>CREATED RELEASE: SDSRest - 20081011 Refresh (Nov 11, 2008)</title><link>http://code.msdn.microsoft.com/ssdsrest/Release/ProjectReleases.aspx?ReleaseId=1788</link><description></description><author></author><pubDate>Wed, 12 Nov 2008 02:25:59 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: SDSRest - 20081011 Refresh (Nov 11, 2008) 20081112A</guid></item><item><title>UPDATED RELEASE: SSDS REST Library 9-4 Release (Sep 04, 2008)</title><link>http://code.msdn.microsoft.com/ssdsrest/Release/ProjectReleases.aspx?ReleaseId=1250</link><description></description><author></author><pubDate>Thu, 04 Sep 2008 20:21:28 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: SSDS REST Library 9-4 Release (Sep 04, 2008) 20080904P</guid></item><item><title>RELEASED: SSDS REST Library 9-4 Release (Sep 04, 2008)</title><link>http://code.msdn.microsoft.com/ssdsrest/Release/ProjectReleases.aspx?ReleaseId=1250</link><description></description><author></author><pubDate>Thu, 04 Sep 2008 20:21:28 GMT</pubDate><guid isPermaLink="false">RELEASED: SSDS REST Library 9-4 Release (Sep 04, 2008) 20080904P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/ssdsrest/Wiki/View.aspx?title=Home&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
This library uses the REST api against SQL Server Data Services and performs CRUD  &amp;amp; Query operations.  It features a powerful LINQ-based query and serialization model to make working with objects and SSDS very simple.&lt;br /&gt; &lt;br /&gt;This updated release on 9/4 features new support for blobs, concurrency, and parallelism in addition the already powerful LINQ query support over strongly typed objects.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
var container = Context.OpenContainer(&amp;quot;querytests&amp;quot;);
var foo = new Foo { IsPublic = false, Name = &amp;quot;MyFoo&amp;quot;, Size = 12 };
 
//insert it with unique id guid string
container.Insert(foo, Guid.NewGuid().ToString());
 
//notice the LINQ syntax on strong type &amp;quot;Foo&amp;quot;
var results = container.Query&amp;lt;Foo&amp;gt;(e =&amp;gt; e.Entity.Size &amp;gt; 2);
&lt;/pre&gt; &lt;br /&gt;This release also supports blobs via the SsdsBlobEntity both synchronously as well as async&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
MemoryStream mem = new MemoryStream();
//load memory stream
//...
//now upload it to service
using (SsdsBlobEntity blob = new SsdsBlobEntity(mem))
{
    blob.ContentDisposition = &amp;quot;violin.jpg&amp;quot;;
    blob.MimeType = @&amp;quot;image/jpeg&amp;quot;;
    blob.Id = Guid.NewGuid().ToString();
    var container = Context.OpenContainer(&amp;quot;blobtests&amp;quot;);
    container.Insert(blob);
}
&lt;/pre&gt; &lt;br /&gt;Concurrency using If-Match and If-None-Match headers is supported as well.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
var table = Context.OpenContainer(&amp;quot;foo&amp;quot;);
 
//create new foo
var foo = new Foo { IsPublic = false, Name = &amp;quot;Foo&amp;quot;, Size = 10 };
string id = Guid.NewGuid().ToString();
table.Insert(foo, id);
 
//update entity if none match (different version)
SsdsEntity&amp;lt;Foo&amp;gt; entity = new SsdsEntity&amp;lt;Foo&amp;gt;();
entity.Entity = foo;
entity.Id = id;            
entity.Entity.Name = &amp;quot;Foo2&amp;quot;;
 
table.Update(entity, ConcurrencyPattern.IfNoneMatch);
&lt;/pre&gt; &lt;br /&gt;This release also supports parallelism to the SSDS service using the Parallel Extensions.  This support is extensible to other techniques using extension methods.&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
var container = Context.OpenContainer(&amp;quot;paging&amp;quot;);
 
List&amp;lt;SsdsEntity&amp;lt;Foo&amp;gt;&amp;gt; entities = new List&amp;lt;SsdsEntity&amp;lt;Foo&amp;gt;&amp;gt;();
 
for (int i = 0; i &amp;lt; 10; i++)
{
    var foo = new Foo
    {
        IsPublic = false,
        Name = &amp;quot;Foo&amp;quot; + i,
        Size = i
    };
 
    entities.Add(new SsdsEntity&amp;lt;Foo&amp;gt;() { Entity = foo, Id = foo.Name });
}
 
Exception ex = null;
 
container.Insert&amp;lt;Foo&amp;gt;(entities, (ent, excep) =&amp;gt;
{
    ex = excep;
    return false;
});
 
if (ex != null)
{
    throw ex;
}
&lt;/pre&gt; &lt;br /&gt;More information about this provider can be found in the related blog postings:&lt;br /&gt; &lt;br /&gt;&lt;a href="http://dunnry.com/blog/SerializationInSSDS.aspx" class="externalLink"&gt;Serialization in SSDS&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart1.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 1&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart2.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart3.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 3&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>dunnry</author><pubDate>Thu, 04 Sep 2008 20:20:38 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080904P</guid></item><item><title>UPDATED RELEASE: SSDS REST Library 9-4 Release (Jul 02, 2008)</title><link>http://code.msdn.microsoft.com/ssdsrest/Release/ProjectReleases.aspx?ReleaseId=1250</link><description></description><author></author><pubDate>Thu, 04 Sep 2008 20:01:13 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: SSDS REST Library 9-4 Release (Jul 02, 2008) 20080904P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/ssdsrest/Wiki/View.aspx?title=Home&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
This library uses the REST api against SQL Server Data Services and performs CRUD operations.  It features a powerful LINQ-based query and serialization model to make working with objects and SSDS very simple.  More information about this provider can be found in the related blog postings:&lt;br /&gt; &lt;br /&gt;&lt;a href="http://dunnry.com/blog/SerializationInSSDS.aspx" class="externalLink"&gt;Serialization in SSDS&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart1.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 1&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart2.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart3.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 3&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>dunnry</author><pubDate>Wed, 02 Jul 2008 23:49:03 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080702P</guid></item><item><title>CREATED RELEASE: SSDS REST Library (Jul 02, 2008)</title><link>http://code.msdn.microsoft.com/ssdsrest/Release/ProjectReleases.aspx?ReleaseId=1250</link><description></description><author></author><pubDate>Wed, 02 Jul 2008 23:46:43 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: SSDS REST Library (Jul 02, 2008) 20080702P</guid></item><item><title>CREATED RELEASE: SSDS REST Library (Jul 02, 2008)</title><link>http://code.msdn.microsoft.com/ssdsrest/Release/ProjectReleases.aspx?ReleaseId=1249</link><description></description><author></author><pubDate>Wed, 02 Jul 2008 23:42:06 GMT</pubDate><guid isPermaLink="false">CREATED RELEASE: SSDS REST Library (Jul 02, 2008) 20080702P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://code.msdn.microsoft.com/ssdsrest/Wiki/View.aspx?title=Home&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
This library uses the REST api against SQL Server Data Services and performs CRUD operations.  It features a powerful query and serialization model to make working with objects and SSDS very simple.  More information about this provider can be found in the related blog postings:&lt;br /&gt; &lt;br /&gt;&lt;a href="http://dunnry.com/blog/SerializationInSSDS.aspx" class="externalLink"&gt;Serialization in SSDS&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart1.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 1&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart2.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dunnry.com/blog/WorkingWithObjectsInSSDSPart3.aspx" class="externalLink"&gt;Working with Objects in SSDS Part 3&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>dunnry</author><pubDate>Wed, 02 Jul 2008 23:35:33 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080702P</guid></item></channel></rss>