<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>fbasync - An Asynchronous Facebook API for .NET</title><link>http://www.codeplex.com/fbasync/Project/ProjectRss.aspx</link><description>fbasync is a fully asynchronous library for .NET designed to be scalable and performant, for those of us that want to build large scale Facebook applications. After developing software with the Fac...</description><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>Added all feed and notification send methods. Moved image args to Utility.</description><author>jconley</author><pubDate>Wed, 16 Apr 2008 01:09:18 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080416A</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>needed to add the nunit dll and update the project reference</description><author>mdroz8</author><pubDate>Tue, 15 Apr 2008 21:42:13 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080415P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>updating readme to provide overview of the fbasync unit tests</description><author>mdroz8</author><pubDate>Tue, 15 Apr 2008 19:04:09 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080415P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>nunit tests for Utility.cs</description><author>mdroz8</author><pubDate>Tue, 15 Apr 2008 18:35:07 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080415P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>Moved to using POST for SetProfile support.&amp;#13;&amp;#10;Added PublishTemplatizedAction -- not yet tested.</description><author>jconley</author><pubDate>Sun, 13 Apr 2008 01:27:12 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080413A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/fbasync/Wiki/View.aspx?title=Home&amp;version=13</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Like the title says, this is an asynchronous Facebook API for .NET. It's designed to be both easy to use and scalable/robust. It assumes a working knowledge of the &lt;a href="http://developers.facebook.com" class="externalLink"&gt;Facebook developer platform&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. If you're having scalability or performance issues with the &lt;a href="http://www.codeplex.com/FacebookToolkit" class="externalLink"&gt;Facebook Developer Toolkit&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; or are concerned with the scalability/performance of your Facebook application, this is the library for you.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Maximum scalability&lt;/li&gt;&lt;li&gt;High performance&lt;/li&gt;&lt;li&gt;Introduce developers to asynchronous development &amp;ndash; &lt;i&gt;It's not that hard!&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Scruples&lt;/b&gt;&lt;br /&gt;We &lt;i&gt;will not&lt;/i&gt; expose synchronous api's for anything that makes a call to the Facebook RESTful API. Synchronous API's to remote web services lead to nothing but heartache (frozen desktop applications, unresponsive web sites, and crashes). Asynchronous programming isn't as hard as you might think. Give it a shot. If you can do AJAX, you can use this library. Read &lt;a href="http://jdconley.com/blog/category/37.aspx" class="externalLink"&gt;JD's blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for details.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;TODO&lt;/b&gt;&lt;br /&gt;There is a large TODO list. This project is in its infancy and needs help! It works, but is not quite feature rich enough for a 1.0 release. Hopefully sometime soon we'll have something respectable to release. For now, grab the &lt;a href="http://www.codeplex.com/fbasync/Release/ProjectReleases.aspx?ReleaseId=8890"&gt;0.1&lt;/a&gt; release and have a go!&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Sat, 01 Mar 2008 21:03:42 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080301P</guid></item><item><title>NEW POST: Using the Worker Process' ThreadPool or not?</title><link>http://www.codeplex.com/fbasync/Thread/View.aspx?ThreadId=19131</link><description>&lt;div class="wikidoc"&gt;
The latest version in source control has the async fix I was talking about. Sorry I took so long to get to this. Finally had a reason to use this in the real world! The data is now streamed asynchronously from Facebook and buffered into a MemoryStream. The MemoryStream is then read to hydrate the objects. You should see a big improvement in the usage of IOCP threads.&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Sat, 16 Feb 2008 19:18:03 GMT</pubDate><guid isPermaLink="false">NEW POST: Using the Worker Process' ThreadPool or not? 20080216P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>New files for group and event support, and an error log.</description><author>jconley</author><pubDate>Fri, 15 Feb 2008 17:54:31 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080215P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>Removed last bit of synchronous code in FacebookConnection.&amp;#13;&amp;#10;Removed storage of connection in Session state.</description><author>jconley</author><pubDate>Fri, 15 Feb 2008 17:53:16 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080215P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>Group&amp;#47;Event photo functionality&amp;#33;</description><author>jconley</author><pubDate>Thu, 14 Feb 2008 07:29:41 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080214A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/fbasync/Wiki/View.aspx?title=Home&amp;version=12</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Like the title says, this is an asynchronous Facebook API for .NET. It's designed to be both easy to use and scalable/robust. It assumes a working knowledge of the &lt;a href="http://developers.facebook.com" class="externalLink"&gt;Facebook developer platform&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. If you're having scalability or performance issues with the &lt;a href="http://www.codeplex.com/FacebookToolkit" class="externalLink"&gt;Facebook Developer Toolkit&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; or are concerned with the scalability/performance of your Facebook application, this is the library for you.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Maximum scalability&lt;/li&gt;&lt;li&gt;High performance&lt;/li&gt;&lt;li&gt;Introduce developers to asynchronous development &amp;ndash; &lt;i&gt;It's not that hard!&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Scruples&lt;/b&gt;&lt;br /&gt;We &lt;i&gt;will not&lt;/i&gt; expose synchronous api's for anything that makes a call to the Facebook RESTful API. Synchronous API's to remote web services lead to nothing but heartache (frozen desktop applications, unresponsive web sites, and crashes). Asynchronous programming isn't as hard as you might think. Give it a shot. If you can do AJAX, you can use this library. Read &lt;a href="http://jdconley.com/blog/category/37.aspx" class="externalLink"&gt;JD's blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for details.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;TODO&lt;/b&gt;&lt;br /&gt;There is a large TODO list. This project is in its infancy and needs help! It works, but is not quite feature rich enough for a 1.0 release. Hopefully sometime in February, 2008 we'll have something respectable to release (that's the goal, anyway). For now, grab the &lt;a href="http://www.codeplex.com/fbasync/Release/ProjectReleases.aspx?ReleaseId=8890"&gt;0.1&lt;/a&gt; release and have a go!&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Tue, 05 Feb 2008 01:56:48 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080205A</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/fbasync/SourceControl/ListDownloadableCommits.aspx</link><description>Fixed serialization issue with FacebookEntity. Moved to long UID instead of string.</description><author>jconley</author><pubDate>Tue, 05 Feb 2008 01:54:38 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080205A</guid></item><item><title>NEW POST: Using the Worker Process' ThreadPool or not?</title><link>http://www.codeplex.com/fbasync/Thread/View.aspx?ThreadId=19131</link><description>&lt;div class="wikidoc"&gt;
Oh, to answer your question, using our own threadpool in this case would be a bad idea. Instead we should fix the design flaw and asynchronous read the response data.&lt;br /&gt; &lt;br /&gt;There are very few instances where using your own threadpool is a good idea. The major one is when you are performing tasks that will block on I/O and you have no control over them. For example, if you're making a lot of calls out to LDAP or using another library that does I/O without exposing asychronous interfaces, it might be a good idea to have a small threadpool of your own and queue requests through it.&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Wed, 19 Dec 2007 21:58:47 GMT</pubDate><guid isPermaLink="false">NEW POST: Using the Worker Process' ThreadPool or not? 20071219P</guid></item><item><title>NEW POST: Using the Worker Process' ThreadPool or not?</title><link>http://www.codeplex.com/fbasync/Thread/View.aspx?ThreadId=19131</link><description>&lt;div class="wikidoc"&gt;
I see your point. It was the intent of the library to never tie up a thread unless it was doing CPU intensive tasks. However, in real life, it appears there is one spot where that is not so.&lt;br /&gt; &lt;br /&gt;I think the effects of an early design decision (laziness) are popping up with the amount of time the IOCP thread is tied up. Right now, the initial request is asynchronous (so your worker threads exit immediately). However, the reading of the response is not. I am just shoving the response stream into a Xml reader, which is going to synchronously read. That is likely what is tying up your IOCP thread. What the library should be doing, to be fully asynchronous, is using BeginRead on the response stream and shoving chunks of the response at a time into a local MemoryStream. That way we would effectively never be blocking in an IOCP thread. I'll make this change soon. Or, if you're feeling adventurous have a look at the code and give it a whirl! :) If you have a look at the FacebookConnection.WebResponseCallback method you see that I'm just grabbing the response stream and marking the request as complete. Instead of setting the response complete there, we should kick off a BeginRead process on the response stream, and write the data into a MemoryStream. When we're done reading (asynchronously) from the response stream, the result should be set to the MemoryStream we created, instead of the Http response stream. This will eliminate the last of the blocking in the library and you should hardly ever see any IOCP threads in use.&lt;br /&gt; &lt;br /&gt;Here's a great article on the entire ASP.NET life-cycle, specifically related to threading and request processing: &lt;a href="http://blogs.msdn.com/nicd/archive/2007/04/16/dissection-of-an-asp-net-2-0-request-processing-flow.aspx" class="externalLink"&gt;http://blogs.msdn.com/nicd/archive/2007/04/16/dissection-of-an-asp-net-2-0-request-processing-flow.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; It's even up to date!&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Wed, 19 Dec 2007 21:54:13 GMT</pubDate><guid isPermaLink="false">NEW POST: Using the Worker Process' ThreadPool or not? 20071219P</guid></item><item><title>NEW POST: Using the Worker Process' ThreadPool or not?</title><link>http://www.codeplex.com/fbasync/Thread/View.aspx?ThreadId=19131</link><description>&lt;div class="wikidoc"&gt;
Hm, just to make sure we're talking about the same thing, I'm going to state alot of obvious things: The managed threadpool consists of worker threads and IOCP threads. According to MSDN, the default is 25 for both, multiplied by the number of CPUs. As long as BeginProcessRequest() in an asynchronous ASP.NET page is executing, 1 managed worker thread will be in use by the page (i.e. for a very short time). Also, as long as Facebook and the page are engaged in HTTP conversation, 1 managed IOCP thread will be in use (a few hundred milliseconds for me; it might be faster for someone who doesn't have to cross an ocean to reach the Facebook servers). A managed IOCP thread is used because BeginGetResponse() uses Winsock2 and IOCP internally, but if it were to, say, Queue a UserWorkItem, a managed worker thread would be used instead (on Mono, perhaps it will). This is what I mean by a thread being &amp;quot;tied up&amp;quot;. So if I'm not mistaken; for 25 managed IOCP threads, there can only be 25 (actually, I think it's 23, because of the contention safeguards) Facebook API calls in action simultaneously. Right? If I monitor the threadpool when using fbasync, I can verify all this. Or have I missed something?&lt;br /&gt; &lt;br /&gt;The point I was trying to raise is that using custom threads is more expensive but perhaps also more scalable. I was wondering whether you had given any thought to that, and if so, what conclusions you had reached. =]&lt;br /&gt; &lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms979194.aspx" class="externalLink"&gt;http://msdn2.microsoft.com/en-us/library/ms979194.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>tomten</author><pubDate>Thu, 13 Dec 2007 23:23:24 GMT</pubDate><guid isPermaLink="false">NEW POST: Using the Worker Process' ThreadPool or not? 20071213P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/fbasync/Wiki/View.aspx?title=Home&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Like the title says, this is an asynchronous Facebook API for .NET. It's designed to be both easy to use and scalable/robust. It assumes a working knowledge of the &lt;a href="http://developers.facebook.com" class="externalLink"&gt;Facebook developer platform&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. If you're having scalability or performance issues with the &lt;a href="http://www.codeplex.com/FacebookToolkit" class="externalLink"&gt;Facebook Developer Toolkit&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; or are concerned with the scalability/performance of your Facebook application, this is the library for you.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Maximum scalability&lt;/li&gt;&lt;li&gt;High performance&lt;/li&gt;&lt;li&gt;Introduce developers to asynchronous development &amp;ndash; &lt;i&gt;It's not that hard!&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Scruples&lt;/b&gt;&lt;br /&gt;We &lt;i&gt;will not&lt;/i&gt; expose synchronous api's for anything that makes a call to the Facebook RESTful API. Synchronous API's to remote web services lead to nothing but heartache (frozen desktop applications, unresponsive web sites, and crashes). Asynchronous programming isn't as hard as you might think. Give it a shot. If you can do AJAX, you can use this library. Read &lt;a href="http://jdconley.com/blog/category/37.aspx" class="externalLink"&gt;JD's blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for details.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;TODO&lt;/b&gt;&lt;br /&gt;There is a large TODO list. This project is in its infancy and needs help! It works, but is not quite feature rich enough for a 1.0 release. Hopefully by February, 2008 we'll have something respectable to release (that's the goal, anyway). For now, grab the &lt;a href="http://www.codeplex.com/fbasync/Release/ProjectReleases.aspx?ReleaseId=8890"&gt;0.1&lt;/a&gt; release and have a go!&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Thu, 13 Dec 2007 21:19:18 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071213P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/fbasync/Wiki/View.aspx?title=Home&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Like the title says, this is an asynchronous Facebook API for .NET. It's designed to be both easy to use and scalable/robust. It assumes a working knowledge of the &lt;a href="http://developers.facebook.com" class="externalLink"&gt;Facebook developer platform&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;. If you're having scalability or performance issues with the &lt;a href="http://www.codeplex.com/FacebookToolkit" class="externalLink"&gt;Facebook Developer Toolkit&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; or are concerned with the scalability/performance of your Facebook application, this is the library for you.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Goals&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Maximum scalability&lt;/li&gt;&lt;li&gt;High performance&lt;/li&gt;&lt;li&gt;Introduce developers to asynchronous development &amp;ndash; &lt;i&gt;It's not that hard!&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Scruples&lt;/b&gt;&lt;br /&gt;We &lt;i&gt;will not&lt;/i&gt; expose synchronous api's for anything that makes a call to the Facebook RESTful API. Synchronous API's to remote web services lead to nothing but heartache (frozen desktop applications, unresponsive web sites, and crashes). Asynchronous programming isn't as hard as you might think. Give it a shot. If you can do AJAX, you can use this library. Read &lt;a href="http://jdconley.com/blog/category/37.aspx" class="externalLink"&gt;JD's blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for details.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;TODO&lt;/b&gt;&lt;br /&gt;There is a large TODO list. This project is in its infancy and needs help! It works, but is not quite feature rich enough for a 1.0 release. Hopefully by February, 2008 we'll have something respectable to release (that's the goal, anyway). For now, grab the &lt;a href="http://www.codeplex.com/fbasync/Release/ProjectReleases.aspx?ReleaseId=8890"&gt;0.1&lt;/a&gt; release and have a go!&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Thu, 13 Dec 2007 21:18:45 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071213P</guid></item><item><title>NEW POST: Using the Worker Process' ThreadPool or not?</title><link>http://www.codeplex.com/fbasync/Thread/View.aspx?ThreadId=19131</link><description>&lt;div class="wikidoc"&gt;
I'm fairly certain it will end up back in the ASP.NET worker threadpool through the synchronization context, but I don't know for certain either. It's definitely unclear in the documentation. In either case, there is one thing not quite right about your statement above: &amp;quot;isn't that a bit long to be tying up a threadpool thread?&amp;quot;. There is in fact &lt;i&gt;never&lt;/i&gt; a thread tied up. That's the whole point of the asynchronous patterns. :) Notice in the sample code (and way down deep in the source) it is never waiting for a request to return. We delegate that responsibility all the way down to the Windows socket layer which uses shared I/O, IOCP, and other magic to fire a callback when data has been received on the socket. Nothing is every tying up a thread.&lt;br /&gt; &lt;br /&gt;Oh, and Facebook calls don't typically take 250ms in my experience, though I have seen that happen on occasion. Just like any big service, they, or the internet, can have slowdowns.&lt;br /&gt;
&lt;/div&gt;</description><author>jconley</author><pubDate>Thu, 13 Dec 2007 20:59:45 GMT</pubDate><guid isPermaLink="false">NEW POST: Using the Worker Process' ThreadPool or not? 20071213P</guid></item><item><title>NEW POST: Using the Worker Process' ThreadPool or not?</title><link>http://www.codeplex.com/fbasync/Thread/View.aspx?ThreadId=19131</link><description>&lt;div class="wikidoc"&gt;
According to MSDN (see below), some Fx BCL functions used by fbasync use the managed threadpool internally. Wouldn't it be better to use a custom threadpool to avoid ASP.NET worker process threadpool contention? Web requests to Facebook usually take between 250 and 500(?) ms; isn't that a bit long to be tying up a threadpool thread?&lt;br /&gt; &lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse.aspx" class="externalLink"&gt;http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;EDIT:&lt;/b&gt; Actually, after reading up on the subject, I can't find a verifiable source as to whether or not (e.g.) BeginGetResponse() uses the same managed threadpool available to ASP.NET. It seems to vary with at least the IIS version and the Windows version. I'm assuming that on Windows Server 2003 and its IIS, BeginGetResponse() uses an IOCP thread outside of the worker process. Could you point me somewhere that has hard facts on this?&lt;br /&gt;
&lt;/div&gt;</description><author>tomten</author><pubDate>Thu, 13 Dec 2007 19:15:12 GMT</pubDate><guid isPermaLink="false">NEW POST: Using the Worker Process' ThreadPool or not? 20071213P</guid></item><item><title>UPDATED RELEASE: 0.1 (Dec 11, 2007)</title><link>http://www.codeplex.com/fbasync/Release/ProjectReleases.aspx?ReleaseId=8890</link><description>&amp;#42;fbasync 0.1&amp;#42;&lt;br /&gt;The features that are here are reliable enough to be used in production code, but we&amp;#39;re a ways from a feature complete 1.0. The public API is also still subject &amp;#40;and likely&amp;#41; to change. The source download is currently the only one available. It contains the source code and a sample application.&lt;br /&gt;&lt;br /&gt;&amp;#42;What it has&amp;#42;&lt;br /&gt;&amp;#42; Asynchronous I&amp;#47;O for Facebook RESTful API requests.&lt;br /&gt;&amp;#42; FQL support.&lt;br /&gt;&amp;#42; Profile update support.&lt;br /&gt;&amp;#42; Strongly typed Photo&amp;#47;Album&amp;#47;User read support.&lt;br /&gt;&amp;#42; Base page class in ASP.NET for easy usage.&lt;br /&gt;&amp;#42; Photo album browser application example.&lt;br /&gt;&lt;br /&gt;&amp;#42;What it is missing&amp;#42;&lt;br /&gt;&amp;#42; Tests&lt;br /&gt;&amp;#42; Most of the RESTful api calls are not implemented.&lt;br /&gt;&amp;#42; More examples.&lt;br /&gt;&amp;#42; A help file.&lt;br /&gt;&amp;#42; Visual Studio templates.&lt;br /&gt;&amp;#42; An installation package.&lt;br /&gt;&amp;#42; Lots of controls and things that haven&amp;#39;t been thought of yet.&lt;br /&gt;&amp;#42; Easy to use components for web and desktop.&lt;br /&gt;&amp;#42; ASP.NET MVC helpers.</description><author></author><pubDate>Wed, 12 Dec 2007 06:40:06 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: 0.1 (Dec 11, 2007) 20071212A</guid></item></channel></rss>