<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DK Development</title>
	<atom:link href="http://dkdevelopment.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://dkdevelopment.net</link>
	<description>The Code behind the man.</description>
	<lastBuildDate>Sat, 28 Jan 2012 12:37:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JabbrPhone: It&#8217;s like JabbR on your Phone</title>
		<link>http://dkdevelopment.net/2012/01/23/jabbrphone-its-like-jabbr-on-your-phone/</link>
		<comments>http://dkdevelopment.net/2012/01/23/jabbrphone-its-like-jabbr-on-your-phone/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 06:24:19 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Jabbr]]></category>
		<category><![CDATA[singalR]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/?p=387</guid>
		<description><![CDATA[I like development, working with new technologies and Windows Phone and over the past few weeks I have been working on a project that combines all of these. I call it JabbrPhone, its a Windows Phone client for Jabbr (the &#8230; <a href="http://dkdevelopment.net/2012/01/23/jabbrphone-its-like-jabbr-on-your-phone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I like development, working with new technologies and Windows Phone and over the past few weeks I have been working on a project that combines all of these. I call it JabbrPhone, its a Windows Phone client for Jabbr (the signalR based developer chat site).</p>
<p>So why did I want to make a phone app for JabbR? Well simply, for fun and to try something new that I haven’t done before (in this instance its signalR).</p>
<p>For those who don’t know what signalR is:</p>
<blockquote><p><em>Async signaling library for .NET to help build real-time, multi-user interactive web applications.</em></p>
</blockquote>
<p>It really is an awesome library. The JabbR project is also based on this and open sourced on Github which was great for me to get started.</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2012/01/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dkdevelopment.net/wp-content/uploads/2012/01/image_thumb.png" width="263" height="500" /></a><a href="http://dkdevelopment.net/wp-content/uploads/2012/01/image1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dkdevelopment.net/wp-content/uploads/2012/01/image_thumb1.png" width="262" height="500" /></a><a href="http://dkdevelopment.net/wp-content/uploads/2012/01/image2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dkdevelopment.net/wp-content/uploads/2012/01/image_thumb2.png" width="262" height="500" /></a><a href="http://dkdevelopment.net/wp-content/uploads/2012/01/image3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dkdevelopment.net/wp-content/uploads/2012/01/image_thumb3.png" width="262" height="500" /></a></p>
<p>The app isn’t too far off at the moment, still a bit to do before its officially released. Current functionality:</p>
<ul>
<li><font color="#333333">Login/Create user (/nick)</font> </li>
<li><font color="#333333">List rooms</font> </li>
<li><font color="#333333">Join a room</font> </li>
<li><font color="#333333">send messages to a room (and get responses)</font> </li>
<li><font color="#333333">List users in a room</font> </li>
</ul>
<p>Things left to do:</p>
<ul>
<li><font color="#333333">Lobby functions</font> </li>
<li><font color="#333333">User Actions</font></li>
<li><font color="#333333">Handle links in messages better</font> </li>
<li><font color="#333333">support for private rooms</font> </li>
</ul>
<p>&#160;</p>
<p>The source is available on github: <a href="https://github.com/dkarzon/JabbrPhone">https://github.com/dkarzon/JabbrPhone</a></p>
<p>Or download the xap from here: <a title="http://bit.ly/zTsCpu " href="http://bit.ly/zTsCpu ">http://bit.ly/zTsCpu </a></p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2012/01/23/jabbrphone-its-like-jabbr-on-your-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>abSee &#8216;ay be see&#8217; &#8211; A/B Test library</title>
		<link>http://dkdevelopment.net/2011/12/13/absee-ay-be-see-ab-test-library/</link>
		<comments>http://dkdevelopment.net/2011/12/13/absee-ay-be-see-ab-test-library/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 05:52:50 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[.NET4]]></category>
		<category><![CDATA[Nuget]]></category>
		<category><![CDATA[open-source]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/2011/12/13/absee-ay-be-see-ab-test-library/</guid>
		<description><![CDATA[I have often wondered “What if” when it comes design aspects of a website. What if this button was green instead of blue? What if I call it an upgrade instead of a purchase? What if the background wasn’t as &#8230; <a href="http://dkdevelopment.net/2011/12/13/absee-ay-be-see-ab-test-library/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have often wondered “What if” when it comes design aspects of a website.</p>
<ul>
<li>What if this button was green instead of blue? </li>
<li>What if I call it an upgrade instead of a purchase? </li>
<li>What if the background wasn’t as dark? </li>
<li>What if I make that notification flashing red instead of dark yellow? </li>
</ul>
<p>You get the point…</p>
<p>So I’ve been working on an A/B testing library with the 1 goal of making it simple to insert tests into my web applications, thus abSee was born!</p>
<p>abSee is in <a href="https://nuget.org/packages/abSee">NuGet</a> so its pretty easy to install. (hurray!)</p>
<p>Its usage is simple enough also:</p>
<p>Firstly fire up an instance of the Tester, do so by calling the Start function. Or you could filter out certain users here to only show tests for them. (non-Admins etc.)</p>
<pre class="brush: csharp;">protected void Application_BeginRequest()
{
    ABTester.Start();
}</pre>
<p>From there we can fire off tests to the User where ever we like by calling the Test function. Now to make a test we need to give it a name, this will be used to identify what we are testing in this specific instance. Then you give the function the different options and it will randomly select 1 for you as the output and save the result.</p>
<pre class="brush: csharp;">var output = ABTester.Test(&quot;MyTest1&quot;, &quot;A&quot;, &quot;B&quot;);</pre>
<p>After running the test we then need to let the Tester know if it was successful or not so we can track conversions of the different options. We do this by calling the Convert function with the test name from the test we ran before. abSee will then store that result for us as converted.</p>
<pre class="brush: csharp;">ABTester.Convert(&quot;MyTest1&quot;);</pre>
<p>So now we are running tests, how do I see the results?</p>
<p>You can get results for a given test using the GetResults function, this function returns a list of ABSeeResult which contains a few details about the test instance as well as the option that was selected and if it was converted or not.</p>
<pre class="brush: csharp;">var results = abSee.ABTester.GetResults(&quot;MyTest1&quot;);</pre>
<p>&#160;</p>
<p>More detailed documentation is coming soon with details on implementing custom storage and user identification.</p>
<p>Feel free to leave me some feedback about abSee or even fork it on <a href="https://github.com/Tboda/abSee">Github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/12/13/absee-ay-be-see-ab-test-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BoxShot v2.0: Mango, Logo, Pictures hub and more</title>
		<link>http://dkdevelopment.net/2011/11/23/boxshot-v2-0-mango-logo-pictures-hub-and-more/</link>
		<comments>http://dkdevelopment.net/2011/11/23/boxshot-v2-0-mango-logo-pictures-hub-and-more/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 12:59:13 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[boxshot]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[DropNet]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/?p=353</guid>
		<description><![CDATA[So I got a fair bit of feedback from the old BoxShot logo and how most of my users disliked it (some even called it offensive). Now that I’ve had my fun I decided to put together a serious update &#8230; <a href="http://dkdevelopment.net/2011/11/23/boxshot-v2-0-mango-logo-pictures-hub-and-more/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I got a fair bit of feedback from the old BoxShot logo and how most of my users disliked it (some even called it offensive). Now that I’ve had my fun I decided to put together a serious update for the app, here is what this new update (that I am calling v2.0) includes:</p>
<p><strong><a href="http://dkdevelopment.net/wp-content/uploads/2011/11/Icon173.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Icon173" border="0" alt="Icon173" align="left" src="http://dkdevelopment.net/wp-content/uploads/2011/11/Icon173_thumb.png" width="177" height="177" /></a></strong></p>
<h3>NEW LOGO! </h3>
<p>As mentioned before I have changed the logo, this gives the app a more professional look and fits in much better with the Metro UI of Windows Phone. Hope you all like it.</p>
<p>&#160;</p>
<p>&#160;</p>
<h3>Its now Mango…</h3>
<p>This version is build for Mango so it takes advantage of fast app switching and general Mango goodness.</p>
<h3>Picture Hub Integration</h3>
<p>BoxShot now integrates into the Pictures Hub, so you can share your photos through BoxShot to your dropbox folder.</p>
<h3>New Dropbox API</h3>
<p>Dropbox have recently updated their API to be more secure. For a user this pretty much means the login process has changed, so now instead of giving the app the Email and Password you login to the dropbox mobile site and give permission to BoxShot.<a href="http://dkdevelopment.net/wp-content/uploads/2011/11/Tile-Copy.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 0px 0px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Tile - Copy" border="0" alt="Tile - Copy" align="right" src="http://dkdevelopment.net/wp-content/uploads/2011/11/Tile-Copy_thumb.png" width="177" height="177" /></a></p>
<h3>Background Live Tile</h3>
<p>The Live Tiles are now generated on the phone itself with a background agent, this makes them much more stable.</p>
<p><strong></strong></p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/11/EmulatorContentsWhite.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 15px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="EmulatorContentsWhite" border="0" alt="EmulatorContentsWhite" align="left" src="http://dkdevelopment.net/wp-content/uploads/2011/11/EmulatorContentsWhite_thumb.png" width="215" height="390" /></a><strong></strong></p>
<h3>Referrals</h3>
<p>BoxShot now lets you send out referral links to email or social networks so you can get that extra free space!</p>
<h3>Others?</h3>
<ul>
<li>Some UI fixes (better following the metro style guide) </li>
<li>Few bug fixes (to do with ads and the tile colour picker) </li>
<li>Picture view now rotates and can pinch to zoom </li>
</ul>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p><strong>Download it now from the Windows Phone Marketplace!</strong></p>
<p>Ad-Free Version:</p>
<p><a href="http://www.windowsphone.com/en-AU/apps/1abb6e8c-d1ca-4209-a7b8-c2d657ffc9b4"><img src="http://dkdevelopment.net/wp-content/uploads/2011/02/wp7_English_480x80_blue_thumb.png" /></a></p>
<p><strong>Free</strong> Version:</p>
<p><a href="http://windowsphone.com/s?appid=0be109c4-08be-4ac3-a96b-70ef2b0580e3"><img src="http://dkdevelopment.net/wp-content/uploads/2011/02/wp7_English_480x80_blue_thumb.png" /></a></p>
<div style="clear: both"></div>
<p>&#160;</p>
<p><strong>Future Versions</strong></p>
<p>I’m always open to feedback about what new features users would like to see but heres a list of whats on the roadmap.</p>
<ul>
<li>Pin Folders to start screen (maybe files as well) </li>
<li>Thumbnails for pictures </li>
<li>Fix bug when uploading files with international characters </li>
</ul>
<h3><font color="#ff0000">Update:</font></h3>
<p>All of the above features have now been implemented in v2.2 (Thumbnails and international characters fixed in v2.1)</p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/11/23/boxshot-v2-0-mango-logo-pictures-hub-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PurpleSmoke: Ecommerce for SkyPoint</title>
		<link>http://dkdevelopment.net/2011/09/15/purplesmoke-ecommerce-for-skypoint/</link>
		<comments>http://dkdevelopment.net/2011/09/15/purplesmoke-ecommerce-for-skypoint/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 02:12:48 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/?p=276</guid>
		<description><![CDATA[So in my day job I work for a company called Ardent Leisure, and lately I have been working on a massive project to build an integrated ecommerce engine for SkyPoint, Dreamworld and WhiteWater World. I thought I might take &#8230; <a href="http://dkdevelopment.net/2011/09/15/purplesmoke-ecommerce-for-skypoint/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So in my day job I work for a company called Ardent Leisure, and lately I have been working on a massive project to build an integrated ecommerce engine for SkyPoint, Dreamworld and WhiteWater World. I thought I might take some time to talk about the technologies used here, being a .NET developer I kept pretty close to the Microsoft Stack, with a few open source libraries in the mix.</p>
<table border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="200">framework</td>
<td valign="top" width="200"><a href="http://en.wikipedia.org/wiki/ASP.NET" target="_blank">Microsoft ASP.NET</a></td>
</tr>
<tr>
<td valign="top" width="200">language</td>
<td valign="top" width="200"><a href="http://en.wikipedia.org/wiki/C_Sharp_(programming_language)" target="_blank">C#</a> (<a href="http://www.microsoft.com/net/" target="_blank">.NET v4.0</a>)</td>
</tr>
<tr>
<td valign="top" width="200">development environment</td>
<td valign="top" width="200"><a href="http://msdn.microsoft.com/en-us/vstudio/default.aspx" target="_blank">Visual Studio 2010</a></td>
</tr>
<tr>
<td valign="top" width="200">web frameworks</td>
<td valign="top" width="200"><a href="http://www.asp.net/mvc" target="_blank">ASP.NET MVC3</a></td>
</tr>
<tr>
<td valign="top" width="200">client side framework</td>
<td valign="top" width="200"><a href="http://jquery.com/" target="_blank">JQuery</a> (+ <a href="http://jqueryui.com/" target="_blank">UI</a> and <a href="http://api.jquery.com/tmpl/" target="_blank">tmpl</a>)           <br /><a href="http://knockoutjs.com/" target="_blank">Knockout</a></td>
</tr>
<tr>
<td valign="top" width="200">web service layer</td>
<td valign="top" width="200"><a href="http://msdn.microsoft.com/en-us/netframework/aa663324" target="_blank">Windows Communication Framework</a></td>
</tr>
<tr>
<td valign="top" width="200">database</td>
<td valign="top" width="200"><a href="http://msdn.microsoft.com/en-us/sqlserver/default.aspx" target="_blank">SQL Server 2008 R2</a></td>
</tr>
<tr>
<td valign="top" width="200">data access layer</td>
<td valign="top" width="200"><a href="http://msdn.microsoft.com/en-us/library/bb425822.aspx" target="_blank">LINQ to SQL</a></td>
</tr>
<tr>
<td valign="top" width="200">source control</td>
<td valign="top" width="200"><a href="http://msdn.microsoft.com/en-us/vstudio/ff637362" target="_blank">Team Foundation Server 2010</a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>3rd Party Tools:</h3>
<ul>
<li><a href="http://restsharp.org/" target="_blank">RestSharp</a> </li>
<li><a href="http://james.newtonking.com/pages/json-net.aspx" target="_blank">Newtonsoft JSON.NET</a> </li>
<li><a href="http://code.google.com/p/mvc-mini-profiler/" target="_blank">MvcMiniProfiler</a> </li>
<li><a href="http://code.google.com/p/dapper-dot-net/" target="_blank">Dapper.Net</a> </li>
<li><a href="https://github.com/jetheredge/SquishIt" target="_blank">SquishIt</a> </li>
<li><a href="https://github.com/lukencode/FluentEmail" target="_blank">FluentEmail</a> </li>
</ul>
<p>&nbsp;</p>
<h3>Winning Combinations:</h3>
<p>For me their are a few winning combinations here:</p>
<h4>1. RestSharp + Newtonsoft JSON.NET + WCF.</h4>
<p>Now my love for RestSharp has been <a href="http://dkdevelopment.net/tag/restsharp/" target="_blank">widely documented</a> but I cant say it enough, this is an awesome library and using it with a WCF web service was great. However this combination is not without its flaws, mianly DateTimes in WCF. But I was able to get around this “Feature” by creating my own <a href="https://gist.github.com/1052894" target="_blank">WCFDate</a> Class which serialises to and from a formatted string. This was quite a hack but its working pretty well for us at the moment.</p>
<h4>2. Knockout + Jquery + tmpl.</h4>
<p>This was the first project that I have actually used Knockout for and it did take some time to get up to speed on how it all works together but now I couldn&#8217;t imagine doing this project without it. It gave us the flexibility we needed to display the data we needed where ever we wanted.</p>
<p>&nbsp;</p>
<p>You can find PurpleSmoke lurking among the CMS Pages at <a href="http://www.skypoint.com.au">www.skypoint.com.au</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/09/15/purplesmoke-ecommerce-for-skypoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From TFS to Private NuGet</title>
		<link>http://dkdevelopment.net/2011/08/19/from-tfs-to-private-nuget/</link>
		<comments>http://dkdevelopment.net/2011/08/19/from-tfs-to-private-nuget/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 11:35:23 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Nuget]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/?p=330</guid>
		<description><![CDATA[Let me start by saying this: I love NuGet, its straight up awesome! This post is about how I created a TFS CI Build to create NuGet packages and push them to a private NuGet server hosted on site. I &#8230; <a href="http://dkdevelopment.net/2011/08/19/from-tfs-to-private-nuget/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Let me start by saying this: I love NuGet, its straight up awesome!</p>
<p>This post is about how I created a TFS CI Build to create NuGet packages and push them to a private NuGet server hosted on site.</p>
<p>I have been playing around with the TFS Build server, mainly for a Continuous Integration (CI) build on some of our projects and I wanted a way for me to be able to update a core library and have it propagated to all of the projects that use that library without them all needing to be in the same solution.</p>
<p>The answer was a private NuGet server with a CI build that automatically packaged my library.</p>
<p>I started by setting up a private NuGet server, reading <a href="http://haacked.com/archive/2011/03/31/hosting-simple-nuget-package-feed.aspx">Phil Haack’s post about hosting a simple package feed</a>. Once that was done I could start pumping out packages!</p>
<p>Now that I have my NuGet server I need to setup the build. I created an Ardent.CommonBuild.proj for my build config and tasks. I found its easier to manage as a separate file to the actual project file, this file has to be a .sln or .*proj file for the TFS Build server to be able to run it.</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dkdevelopment.net/wp-content/uploads/2011/08/image_thumb.png" width="448" height="153" /></a></p>
<p>Now I also wanted to control the version numbers of the packages being pushed out (both manually and automatic). So I set a major and minor version property at the top.</p>
<pre class="brush: xml;">&lt;PropertyGroup&gt;
    &lt;VersionMajor&gt;0&lt;/VersionMajor&gt;
    &lt;VersionMinor&gt;1&lt;/VersionMinor&gt;
&lt;/PropertyGroup&gt;</pre>
<p>I then wanted to include the TFS Changeset number as the 3rd part of the version. So I kicked off a TfsVersion task which outputs the changeset number of a specific path (Set this to the project root to get all changes).</p>
<pre class="brush: xml;">&lt;TfsVersion
  TfsLibraryLocation=&quot;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0&quot;
  LocalPath=&quot;$(MSBuildProjectDirectory)&quot;&gt;
  &lt;Output TaskParameter=&quot;Changeset&quot; PropertyName=&quot;ChangesetNumber&quot;/&gt;
&lt;/TfsVersion&gt;</pre>
<p>From there I build the Project, normally the TFS build outputs the dlls to a binaries folder in the build output folder, but I decided to skip the nuspec file step but pointing NuGet at the project file directly. However you could create a nuspec file and point that to the built dlls, your choice. I also set the version number here for the build.</p>
<pre class="brush: xml;">&lt;MSBuild Projects=&quot;$(MSBuildProjectDirectory)\Ardent.Common\Ardent.Common.csproj&quot;
    Targets=&quot;Build&quot;
    Properties=&quot;Configuration=Debug;
      OutDir=$(MSBuildProjectDirectory)\Ardent.Common\Bin\Debug\;
    ApplicationVersion=$(VersionMajor).$(VersionMinor).$(ChangesetNumber)&quot; /&gt;</pre>
<p>So now we have built our project and we have the version we want so lets create the package. Using the Exec function I then run the NuGet.exe pack command on my project file using the –Version flag to set the version of the package. I also cheated a bit here by setting the –OutputDirectory flag and pointing that to the packages folder on the NuGet server I created. This will populate the feed now with the new package.</p>
<pre class="brush: xml;">&lt;Exec Command=&quot;C:\NuGet\NuGet.exe pack $(MSBuildProjectDirectory)\Ardent.Common\Ardent.Common.csproj -Version $(VersionMajor).$(VersionMinor).$(ChangesetNumber) -OutputDirectory \\grp-dev02\f$\Websites\Ardent.NuGet\Packages&quot;&gt;&lt;/Exec&gt;</pre>
<p>The only thing left to do is create a TFS build definition under that points to my Ardent.CommonBuild.proj file in source control set the definition to CI mode. Done!</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/08/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dkdevelopment.net/wp-content/uploads/2011/08/image_thumb1.png" width="673" height="308" /></a></p>
<p>Now for every check-in to that project in TFS I get a new package created with the updated code then NuGet handles the updates in all of my other projects.</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/08/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://dkdevelopment.net/wp-content/uploads/2011/08/image_thumb2.png" width="776" height="438" /></a></p>
<p><strong>Life is good…</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/08/19/from-tfs-to-private-nuget/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BoxShot gets a live tile!</title>
		<link>http://dkdevelopment.net/2011/08/15/boxshot-gets-a-live-tile/</link>
		<comments>http://dkdevelopment.net/2011/08/15/boxshot-gets-a-live-tile/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 07:48:54 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[boxshot]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[DropNet]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/2011/08/15/boxshot-gets-a-live-tile/</guid>
		<description><![CDATA[Following the recent release of my Windows Phone 7 app BoxShot, I have implemented a live tile displaying your dropbox.com quota info. Boring old tile Fancy new tile Another fancy new tile &#160; Also, you can customise the colour of &#8230; <a href="http://dkdevelopment.net/2011/08/15/boxshot-gets-a-live-tile/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Following the recent release of my Windows Phone 7 app <a href="http://dkdevelopment.net/2011/07/23/boxshot-its-like-dropbox-on-your-phone/">BoxShot</a>, I have implemented a live tile displaying your <a href="http://dropbox.com">dropbox.com</a> quota info.</p>
<table border="0" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="182"><strong>Boring old tile</strong></td>
<td valign="top" width="183"><strong>Fancy new tile</strong></td>
<td valign="top" width="33"><strong>Another fancy new tile</strong></td>
</tr>
<tr>
<td valign="top" width="182"><a href="http://dkdevelopment.net/wp-content/uploads/2011/08/Default.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 12px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Default" border="0" alt="Default" src="http://dkdevelopment.net/wp-content/uploads/2011/08/Default_thumb.png" width="177" height="177" /></a></td>
<td valign="top" width="183"><a href="http://dkdevelopment.net/wp-content/uploads/2011/08/Blue.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 12px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Blue" border="0" alt="Blue" src="http://dkdevelopment.net/wp-content/uploads/2011/08/Blue_thumb.png" width="177" height="177" /></a></td>
<td valign="top" width="39"><a href="http://dkdevelopment.net/wp-content/uploads/2011/08/Pink.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 12px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Pink" border="0" alt="Pink" src="http://dkdevelopment.net/wp-content/uploads/2011/08/Pink_thumb.png" width="177" height="177" /></a></td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/08/Screen3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 12px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="Screen3" border="0" alt="Screen3" align="left" src="http://dkdevelopment.net/wp-content/uploads/2011/08/Screen3_thumb.png" width="249" height="412" /></a>Also, you can customise the colour of the tile from the settings screen.</p>
<p>Thats pretty much it for now, be sure to leave feedback for any new features you want!</p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/08/15/boxshot-gets-a-live-tile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BoxShot &#8211; Its like Dropbox on your phone&#8230;</title>
		<link>http://dkdevelopment.net/2011/07/23/boxshot-its-like-dropbox-on-your-phone/</link>
		<comments>http://dkdevelopment.net/2011/07/23/boxshot-its-like-dropbox-on-your-phone/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 00:41:14 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[DropNet]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/2011/07/23/boxshotits-like-dropbox-on-your-phone/</guid>
		<description><![CDATA[BoxShot is a dropbox app for Windows Phone 7. Features: Open files from your Dropbox using their default apps (Office files, PDFs, etc.) View/Edit text files within BoxShot with the built in editor View Image files within BoxShot and save &#8230; <a href="http://dkdevelopment.net/2011/07/23/boxshot-its-like-dropbox-on-your-phone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/07/BoxShotPanoramaPhone1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="BoxShotPanoramaPhone" border="0" alt="BoxShotPanoramaPhone" src="http://dkdevelopment.net/wp-content/uploads/2011/07/BoxShotPanoramaPhone_thumb1.png" width="700" height="432" /></a></p>
<p>BoxShot is a dropbox app for Windows Phone 7.</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/07/Screen1.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 15px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen1" border="0" alt="Screen1" align="left" src="http://dkdevelopment.net/wp-content/uploads/2011/07/Screen1_thumb.png" width="268" height="444" /></a></p>
<p><strong></strong></p>
<p><strong>Features:</strong></p>
<ul>
<li>Open files from your Dropbox using their default apps (Office files, PDFs, etc.) </li>
<li>View/Edit text files within BoxShot with the built in editor </li>
<li>View Image files within BoxShot and save them to your library </li>
<li>Copy/Move files or folders within your dropbox folder </li>
<li>Delete files or folder from your Dropbox folder </li>
<li>Rename files or folders in your Dropbox folder </li>
<li>Email a public file link </li>
<li>View Account usage information </li>
</ul>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/07/Screen2.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Screen2" border="0" alt="Screen2" align="left" src="http://dkdevelopment.net/wp-content/uploads/2011/07/Screen2_thumb.png" width="268" height="444" /></a>BoxShot also lets you add your frequently used folder to a favourites list which are displayed on the main Panorama.</p>
<p>Premium Version:</p>
<p><a href="http://windowsphone.com/s?appid=0be109c4-08be-4ac3-a96b-70ef2b0580e3"><img src="http://dkdevelopment.net/wp-content/uploads/2011/02/wp7_English_480x80_blue_thumb.png" /></a></p>
<p>Free Version:</p>
<p><a href="http://windowsphone.com/s?appid=0be109c4-08be-4ac3-a96b-70ef2b0580e3"><img src="http://dkdevelopment.net/wp-content/uploads/2011/02/wp7_English_480x80_blue_thumb.png" /></a></p>
<div style="clear: both"></div>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/07/23/boxshot-its-like-dropbox-on-your-phone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DateTime + WCF: How I tamed the beast</title>
		<link>http://dkdevelopment.net/2011/06/29/datetime-wcf-how-i-tamed-the-beast/</link>
		<comments>http://dkdevelopment.net/2011/06/29/datetime-wcf-how-i-tamed-the-beast/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 03:30:55 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/2011/06/29/datetime-wcf-how-i-tamed-the-beast/</guid>
		<description><![CDATA[I have been working a bit with WCF lately and like everyone else use Json with WCF I ran into some issues with DateTime formats. I kept trying to find a valid solution to this where it outputted a readable &#8230; <a href="http://dkdevelopment.net/2011/06/29/datetime-wcf-how-i-tamed-the-beast/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have been working a bit with WCF lately and like <a href="http://www.google.com.au/search?sourceid=chrome&amp;ie=UTF-8&amp;q=WCF+DateTime+format" target="_blank">everyone else use Json with WCF</a> I ran into some issues with DateTime formats. I kept trying to find a valid solution to this where it outputted a readable value.</p>
<p>Eventually I started outputting the DateTime as a formatted string and this worked, but it meant I have to create new string variables in all of my classes instead of the DateTimes that I already had and was using, but then I still needed the variable in its DateTime form.</p>
<p>So I came up with the WCFDate class, at its heart this class outputs a string in a set format, this allows it to be easily read by what ever needs to. I could then replace all of my DateTimes with WCFDate and all was good in the world.</p>
<pre class="brush: csharp;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

/// &lt;summary&gt;
/// Class to help get around the craziness of WCF DateTime formats (Use this class instead of DateTime for WebService Models)
/// &lt;/summary&gt;
public class WCFDate
{

    public static string DateTimeFormat = &quot;yyyy-MM-dd hh:mm:ss zz&quot;;

    /// &lt;summary&gt;
    /// The Date as a formatted string
    /// &lt;/summary&gt;
    public string Data { get; set; }

    /// &lt;summary&gt;
    /// Basic constructor (with no value)
    /// &lt;/summary&gt;
    public WCFDate() { }
    /// &lt;summary&gt;
    /// String constructor setting a Formatted string for the DateTime
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;data&quot;&gt;&lt;/param&gt;
    public WCFDate(string data)
    {
        Data = data;
    }
    /// &lt;summary&gt;
    /// DateTime constructor, sets the Data to the formatted String from the DateTime
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;date&quot;&gt;&lt;/param&gt;
    public WCFDate(DateTime date)
    {
        Data = date.ToString(DateTimeFormat);
    }

    /// &lt;summary&gt;
    /// DateTime constructor, sets the Data to the formatted String from the DateTime
    /// &lt;/summary&gt;
    /// &lt;param name=&quot;date&quot;&gt;&lt;/param&gt;
    public WCFDate(DateTime? date)
    {
        if (date.HasValue)
        {
            Data = date.Value.ToString(DateTimeFormat);
        }
    }

    /// &lt;summary&gt;
    /// Check if the class is holding a Date or not
    /// &lt;/summary&gt;
    public bool HasDate
    {
        get
        {
            return !string.IsNullOrWhiteSpace(Data);
        }
    }

    /// &lt;summary&gt;
    /// Gets the DateTime the class represents
    /// &lt;/summary&gt;
    /// &lt;returns&gt;&lt;/returns&gt;
    public DateTime GetDate()
    {
        try
        {
            return DateTime.ParseExact(Data, DateTimeFormat, CultureInfo.CurrentCulture);
        }
        catch
        {
            return new DateTime();
        }
    }
}</pre>
<p><a href="https://gist.github.com/1052894" target="_blank">Follow the Gist</a> of this class or feel free to add to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/06/29/datetime-wcf-how-i-tamed-the-beast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppEvents &#8211; Do stuff when things happen (WP7)</title>
		<link>http://dkdevelopment.net/2011/04/29/appevents-do-stuff-when-things-happen-wp7/</link>
		<comments>http://dkdevelopment.net/2011/04/29/appevents-do-stuff-when-things-happen-wp7/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 11:47:10 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/?p=224</guid>
		<description><![CDATA[Ever wanted an easy way for apps to track certain events then run code based off what events the user has triggered? Well now you can with AppEvents! So AppEvents is a Windows Phone 7 library to manage events for &#8230; <a href="http://dkdevelopment.net/2011/04/29/appevents-do-stuff-when-things-happen-wp7/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ever wanted an easy way for apps to track certain events then run code based off what events the user has triggered? Well now you can with AppEvents!</p>
<p>So AppEvents is a Windows Phone 7 library to manage events for a user across multiple sessions. In this example I will use it with CodeTrack to prompt the user to rate the app after they have added 3 repos.</p>
<p>Lets get started, App.xaml.cs (this code can be put anywhere in the app but I felt this was better to be done at the start of the app)</p>
<pre class="brush: csharp;">public App()
{
    ...
    EventClient.New()
        .Add(RuleSet.When(&quot;rate-app&quot;,
            el =&gt; el.Any(e =&gt; e.Name == &quot;addrepo&quot; &amp;&amp; e.Occurrrences.Count &gt; 2))
            .Do(r =&gt; AskToRate())
        );
}</pre>
<p>Now lets break that down, first we have the New() function being called, this creates the instance (and sets the Current singleton in the EventClient class). It also uses the default JsonEventStorageProvider to store the EventStore data, this can be overwritten with a type parameter on the new function:</p>
<pre class="brush: csharp;">EventClient.New&lt;MyCustomEventStoreage&gt;()</pre>
<p>Now this is where the RuleSets are added to the client using RuleSet.When() The first parameter of this function is a name of the rule. This is mainly to keep track of the rule and make sure we don’t run it twice. The second parameter is a Func&lt;UserEventList, bool&gt; which means we can create lamba expressions to be run agains the UserEventList object, this expression tells the RuleSet when it should fire its Do Action.</p>
<pre class="brush: csharp;">    .Add(RuleSet.When(&quot;rate-app&quot;,
        el =&gt; el.Any(e =&gt; e.Name == &quot;addrepo&quot; &amp;&amp; e.Occurrrences.Count &gt; 2))
        .Do(r =&gt; AskToRate())
    );</pre>
<p>So where do I get it?</p>
<p>The last part to this is firing off the events this part is very simple.</p>
<pre class="brush: csharp;">    EventClient.Current.Fire(&quot;addrepo&quot;);</pre>
<p>And thats pretty much it, the library then does the rest</p>
<p>The library also allows for manual checking of events if for instance you fire an event on a page but want the RuleSet to be executed on a different page. To do this we simply add a false optional parameter to the Fire method to stop it running the RuleSets with the event. We can also manually run rules, either singly by the RuleSet name or all the rules in the list. We can also set the EventClient to not save the EventStore using the provider each time (and just have it saved later for performance).</p>
<pre class="brush: csharp;">EventClient.Current.Fire(&quot;addrepo&quot;, false);
EventClient.Current.Fire(&quot;addrepo&quot;, false, false);
EventClient.Current.RunRule(&quot;rate-app&quot;);
EventClient.Current.RunRules();
EventClient.Current.SaveEventStore();</pre>
<p><strong>So where do I get it?</strong></p>
<p>The project if on GitHub for your forking, issues and discussions.<a href="https://github.com/dkarzon/AppEvents" target="_blank">AppEvents on Github.</a></p>
<p><strong>Windows Mobile 6: Legacy</strong></p>
<p>I have also made a Windows Mobile 6 version of this library but haven&#8217;t actively tested it too much, if you feel like giving it a go be sure to let me know how you go.</p>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/04/29/appevents-do-stuff-when-things-happen-wp7/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Dropbox on Windows Phone 7 with DropNet</title>
		<link>http://dkdevelopment.net/2011/04/01/dropbox-on-windows-phone-7-with-dropnet/</link>
		<comments>http://dkdevelopment.net/2011/04/01/dropbox-on-windows-phone-7-with-dropnet/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 11:42:27 +0000</pubDate>
		<dc:creator>Damian Karzon</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[DropNet]]></category>
		<category><![CDATA[Windows Phone 7]]></category>

		<guid isPermaLink="false">http://dkdevelopment.net/?p=210</guid>
		<description><![CDATA[So I have been working on an open source Dropbox client library for a while now called DropNet. I have recently put this project into NuGet so its super easy to add Dropbox support to your Windows Phone 7 apps. &#8230; <a href="http://dkdevelopment.net/2011/04/01/dropbox-on-windows-phone-7-with-dropnet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So I have been working on an open source Dropbox client library for a while now called DropNet. I have recently put this project into NuGet so its super easy to add Dropbox support to your Windows Phone 7 apps.</p>
<p><strong>Update:</strong> The source for this sample project is available here: <a title="http://bit.ly/dYjRnW" href="http://bit.ly/dYjRnW">http://bit.ly/dYjRnW</a></p>
<p><strong>Update:</strong> The DropNet and DropNet-WP NuGet packages have been merged and allow for both Project Types.</p>
<p>I’ll start with a File -&gt; New Project, creating a sample Windows Phone Application.</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/04/FileNew2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="FileNew2" border="0" alt="FileNew2" src="http://dkdevelopment.net/wp-content/uploads/2011/04/FileNew2_thumb.png" width="725" height="503" /></a></p>
<p>First thing to do is install the DropNet package, NuGet will automatically detect the type of project you are using and add the DropNet reference for that project type (eg. DropNet.WindowsPhone for Windows Phone 7 projects.)</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/04/DropNetNuGet.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DropNetNuGet" border="0" alt="DropNetNuGet" src="http://dkdevelopment.net/wp-content/uploads/2011/04/DropNetNuGet_thumb.png" width="723" height="85" /></a></p>
<p>Ok, now we can start with the App, for starters I created a global variable for my DropNetClient instance.</p>
<pre class="brush: csharp;">GlobalClient = new DropNetClient(&quot;API KEY&quot;, &quot;API SECRET&quot;);</pre>
<p>Now from that we will need to let the user login so my main page has a basic login form, 2 textboxes for Email and Password and a button to make it work.</p>
<pre class="brush: csharp;">private void Login_Click(object sender, RoutedEventArgs e)
{
    //try login
    App.GlobalClient.LoginAsync(_model.Email, _model.Password,
        (response) =&gt;
        {
            if (response.Data != null)
            {
                //DropNet automatically sets the result token inside the client
                NavigationService.Navigate(new Uri(&quot;/FilesPage.xaml&quot;, UriKind.Relative));
            }
        });
}</pre>
<p>DropNets Login function automatically saves the user Token and Secret to its client instance so we dont have to set it. Then I just navigate to a new page where we will attempt to browse our Dropbox Folder.</p>
<p>This page has a basic view model with 1 property for the folders content.</p>
<pre class="brush: csharp;">private ObservableCollection&lt;MetaData&gt; _contents;
public ObservableCollection&lt;MetaData&gt; Contents
{
    get { return _contents; }
    set
    {
        _contents = value;
        NotifyPropertyChanged(&quot;Contents&quot;);
    }
}</pre>
<p>Pretty easy, the page itself simply binds this collection to a listbox displaying the Name and an icon if its a folder.</p>
<p>Ok, now to actually get the data from Dropbox… We do this by calling our DropNetClient’s GetMetaDataAsync method. This method takes a path parameter so we can tell it which folder to get the metadata for.</p>
<pre class="brush: csharp;">App.GlobalClient.GetMetaDataAsync(&quot;/&quot;,
    (response) =&gt;
    {
        foreach (var c in response.Data.Contents.OrderBy(f =&gt; f.Name).OrderByDescending(f =&gt; f.Is_Dir))
        {
            _model.Contents.Add(c);
        }
    });</pre>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/04/Browse1.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" border="0" alt="Browse1" src="http://dkdevelopment.net/wp-content/uploads/2011/04/Browse1_thumb.png" width="254" height="459" /></a></p>
<p>After getting the MetaData I then order it, folders first then alphabetically.</p>
<p><em><font size="3">Wait, really? Thats it?</font></em></p>
<p><strong>Yep!</strong> Thats my Dropbox folder.</p>
<p>Now to make it even better we can handle the listbox’s selection change event and if the selected item was a folder we can show its contents.</p>
<pre class="brush: csharp;">private void ListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
    if (e.AddedItems.Count &gt; 0)
    {
        var selected = (e.AddedItems[0] as MetaData);

        //if its a folder browse to it
        if (selected.Is_Dir)
        {
            _model.Contents = new ObservableCollection&lt;MetaData&gt;();
            App.GlobalClient.GetMetaDataAsync(selected.Path,
            (response) =&gt;
            {
                foreach (var c in response.Data.Contents.OrderBy(f =&gt; f.Name).OrderByDescending(f =&gt; f.Is_Dir))
                {
                    _model.Contents.Add(c);
                }
            });
        }
    }
}</pre>
<p>&#160;</p>
<p>There we go, thats the basis for a Dropbox app using DropNet, lets see what we can come up with!</p>
<p>DropNet Implements most of the API’s functions, including :</p>
<ul>
<li>Uploading files </li>
<li>Downloading files </li>
<li>Creating folders </li>
<li>Creating an account </li>
<li>Getting account info </li>
<li>Deleting files/folders </li>
<li>Data usage counter </li>
</ul>
<p>I’m always updating the project over at GitHub, drop by and let me know what you think or if you have any feature requests/bugs. <a href="https://github.com/dkarzon/DropNet" target="_blank">GitHub Project.</a></p>
<p>Or check out the <a href="http://nuget.org/List/Packages/DropNet" target="_blank">NuGet Package here</a>.</p>
<p><a href="http://dkdevelopment.net/wp-content/uploads/2011/04/Browse3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Browse3" border="0" alt="Browse3" align="left" src="http://dkdevelopment.net/wp-content/uploads/2011/04/Browse3_thumb.png" width="254" height="459" /></a><a href="http://dkdevelopment.net/wp-content/uploads/2011/04/Browse2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px; padding-top: 0px" title="Browse2" border="0" alt="Browse2" align="right" src="http://dkdevelopment.net/wp-content/uploads/2011/04/Browse2_thumb.png" width="254" height="459" /></a></p>
<div style="clear: both"></div>
]]></content:encoded>
			<wfw:commentRss>http://dkdevelopment.net/2011/04/01/dropbox-on-windows-phone-7-with-dropnet/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
	</channel>
</rss>

