<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Nick Berardi's Coder Journal</title>
	
	<link>http://coderjournal.com</link>
	<description>My journal.</description>
	<lastBuildDate>Tue, 15 May 2012 17:27:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/coderjournal" /><feedburner:info uri="coderjournal" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/coderjournal" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fcoderjournal" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Metro on Windows 8 – Illegal characters in path</title>
		<link>http://feedproxy.google.com/~r/coderjournal/~3/VvF_m6JJwEc/</link>
		<comments>http://coderjournal.com/2012/05/metro-on-windows-8-illegal-characters-in-path/#comments</comments>
		<pubDate>Tue, 15 May 2012 17:27:58 +0000</pubDate>
		<dc:creator>Nick Berardi</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Metro]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[WinJS]]></category>

		<guid isPermaLink="false">http://coderjournal.com/?p=1562</guid>
		<description><![CDATA[As I was developing my first Metro App today I came upon this weird error. Error 1 Error : DEP0600 : The following unexpected error occurred during deployment: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.IO.Path.Combine(String path1, String path2) at Microsoft.VisualStudio.ImmersiveProjectServices.Shared.AppxLayoutManager.CheckPackageLayoutState(DeployPackageName deployPackageName, String location) at Microsoft.VisualStudio.ImmersiveProjectServices.Shared.LocalDeployJob.GetLayoutState(DeployPackageName deployName, Boolean hasFrameworkDependencies) at Microsoft.VisualStudio.ImmersiveProjectServices.Shared.RegisterAppxLayout.Start(Boolean forceNewLayout, [...]]]></description>
			<content:encoded><![CDATA[<p>As I was developing my first Metro App today I came upon this weird error.  </p>
<pre class="brush: text">Error	1	Error : DEP0600 : The following unexpected error occurred during deployment:
Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
   at System.IO.Path.Combine(String path1, String path2)
   at Microsoft.VisualStudio.ImmersiveProjectServices.Shared.AppxLayoutManager.CheckPackageLayoutState(DeployPackageName deployPackageName, String location)
   at Microsoft.VisualStudio.ImmersiveProjectServices.Shared.LocalDeployJob.GetLayoutState(DeployPackageName deployName, Boolean hasFrameworkDependencies)
   at Microsoft.VisualStudio.ImmersiveProjectServices.Shared.RegisterAppxLayout.Start(Boolean forceNewLayout, Boolean forceRegistration, NetworkLoopbackState desiredNetworkLoopbackState, Boolean refreshLayoutOnly, String&#038; packageMoniker, String&#038; firstUserAppID, Exception&#038; deployException)</pre>
<p>Not knowing what to do, because the error is vague and cryptic. I decided to throw a hail mary pass and remove the application I was developing from the start menu.  And lo and behold this was the problem.  I know this is still a beta framework and everything, but can the Windows team please throw us a bone and put in exceptions that actually mean something.</p>
<h3>tl;dr</h3>
<p>Just uninstall the application you are developing from the start menu.</p>
<img src="http://feeds.feedburner.com/~r/coderjournal/~4/VvF_m6JJwEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coderjournal.com/2012/05/metro-on-windows-8-illegal-characters-in-path/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coderjournal.com/2012/05/metro-on-windows-8-illegal-characters-in-path/</feedburner:origLink></item>
		<item>
		<title>BigDecimal type in .NET</title>
		<link>http://feedproxy.google.com/~r/coderjournal/~3/f_8-3gr04WA/</link>
		<comments>http://coderjournal.com/2012/05/bigdecimal-type-in-net/#comments</comments>
		<pubDate>Mon, 14 May 2012 08:00:51 +0000</pubDate>
		<dc:creator>Nick Berardi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[BigDecimal]]></category>
		<category><![CDATA[BigInteger]]></category>
		<category><![CDATA[Fluent Cassandra]]></category>

		<guid isPermaLink="false">http://coderjournal.com/?p=1556</guid>
		<description><![CDATA[Similar to the situation I previously posted about in my last blog entry on ZLIB Compression in .NET. I needed to support a byte array coming from Java&#8217;s BigDecimal type. To understand why I can&#8217;t just use the decimal type in .NET you have to understand that BigDecimal is designed to scale way beyond typical [...]]]></description>
			<content:encoded><![CDATA[<p>Similar to the situation I previously posted about in my last blog entry on <a href="http://coderjournal.com/2012/05/zlib-compression-in-net/">ZLIB Compression in .NET</a>.  I needed to support a byte array coming from Java&#8217;s <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/math/BigDecimal.html">BigDecimal type</a>.  </p>
<p>To understand why I can&#8217;t just use the decimal type in .NET you have to understand that BigDecimal is designed to scale way beyond typical numbers that anybody would realistically use in their day to day programming.  And supporting one of these types as a standard type, would eat up much more memory than a typical programmer would want to use for a single number.  </p>
<p>Java&#8217;s BigDecimal can scale from a number that is as small as 1 byte to as many as 64 bytes.  When Java&#8217;s BigDecimal generates a byte array it can range from 5 bytes up to 68 bytes depending on the number being represented, with the last 4 bytes being an integer representing the number of decimal places in the number.</p>
<p>Here is what I came up with, which you can <a href="https://gist.github.com/2667136">also find on GitHub&#8217;s Gist</a>.</p>
<pre class="brush: csharp;">using System;
using System.Numerics;

///
<summary>
/// A crude implimentation of the essentials needed from Java's BigDecimal
/// </summary>

public struct BigDecimal
{
	private readonly BigInteger _unscaledValue;
	private readonly int _scale;

	public BigDecimal(byte[] value)
	{
		byte[] number = new byte[value.Length - 4];
		byte[] flags = new byte[4];

		Array.Copy(value, 0, number, 0, number.Length);
		Array.Copy(value, value.Length - 4, flags, 0, 4);

		_unscaledValue = new BigInteger(number);
		_scale = flags[0];
	}

	public static explicit operator decimal(BigDecimal value)
	{
		var scaleDivisor = BigInteger.Pow(new BigInteger(10), value._scale);
		var remainder = BigInteger.Remainder(value._unscaledValue, scaleDivisor);
		var scaledValue = BigInteger.Divide(value._unscaledValue, scaleDivisor);

		if (scaledValue > new BigInteger(Decimal.MaxValue))
			throw new ArgumentOutOfRangeException("value", "The value " + value._unscaledValue + " cannot fit into System.Decimal.");

		var leftOfDecimal = (decimal)scaledValue;
		var rightOfDecimal = ((decimal)remainder) / ((decimal)scaleDivisor);

		return leftOfDecimal + rightOfDecimal;
	}
}</pre>
<p>To understand why I had to create my own BigDecimal type, you have to understand that the .NET decimal type always generates a byte array of 16 bytes, the first 12 being the integer, and the last 4 being the number of decimal places or the scale.  And because .NET always generates 16 bytes it assumes you are always going to read in 16 bytes, which is a bad assumption, but it is what it is.  And because of this 16 byte logic it brings me my problem.  I was having trouble reading in any number that didn&#8217;t produce exactly 16 bytes for the decimal from Java&#8217;s BigDecimal.  So I decided to create a very crude representation of the BigDecimal type in .NET.</p>
<p>I am putting this code out there, so nobody else has to hunt to find a solution to read in BigDecimal type from Java. Also there is a ton of room for expansion of this type, so if you do modify please let me know so I can update the gist.</p>
<img src="http://feeds.feedburner.com/~r/coderjournal/~4/f_8-3gr04WA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coderjournal.com/2012/05/bigdecimal-type-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coderjournal.com/2012/05/bigdecimal-type-in-net/</feedburner:origLink></item>
		<item>
		<title>ZLIB Compression in .NET</title>
		<link>http://feedproxy.google.com/~r/coderjournal/~3/xB0HlwWCFNc/</link>
		<comments>http://coderjournal.com/2012/05/zlib-compression-in-net/#comments</comments>
		<pubDate>Sat, 12 May 2012 15:12:23 +0000</pubDate>
		<dc:creator>Nick Berardi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Fluent Cassandra]]></category>
		<category><![CDATA[GZip]]></category>
		<category><![CDATA[ZLIB]]></category>

		<guid isPermaLink="false">http://coderjournal.com/?p=1551</guid>
		<description><![CDATA[I recently encountered a situation where I needed to provide a compressed byte stream to Java&#8217;s Inflator class. This probably isn&#8217;t a situation that you run into a lot as a .NET developer, but to make a long story short, my FluentCassandra library had to send a compressed byte stream to the database server in [...]]]></description>
			<content:encoded><![CDATA[<p>I recently encountered a situation where I needed to provide a compressed byte stream to Java&#8217;s <a href="http://docs.oracle.com/javase/1.4.2/docs/api/java/util/zip/Inflater.html">Inflator class</a>. This probably isn&#8217;t a situation that you run into a lot as a .NET developer, but to make a long story short, my <a href="http://github.com/managedfusion/fluentcassandra">FluentCassandra library</a> had to send a compressed byte stream to the database server in order to execute a query.</p>
<p>The part that got me scratching my head is the fact that nothing in .NET Framework mentions ZLIB as a supportable compression type. So I had to start hunting down the specification and found that you can actually generate ZLIB compatible compression with the <a href="http://msdn.microsoft.com/en-us/library/system.io.compression.deflatestream.aspx">DeflateStream</a>. However the format that Java and other libraries expect has a header in the stream as well as an adler-32 checksum at the end.  </p>
<p>Here is the solution that I came up with that can be seen below and <a href="https://gist.github.com/2667051">also on GitHub&#8217;s Gist</a>.</p>
<pre class="brush: csharp;">public static byte[] ZlibCompress(byte[] data)
{
	using (MemoryStream outStream = new MemoryStream())
	{
		// zlib header
		outStream.WriteByte(0x58);
		outStream.WriteByte(0x85);

		// zlib body
		using (var compressor = new DeflateStream(outStream, CompressionMode.Compress, true))
			compressor.Write(data, 0, data.Length);

		// zlib checksum - a naive implementation of adler-32 checksum
		const uint A32Mod = 65521;
		uint s1 = 1, s2 = 0;
		foreach (byte b in data)
		{
			s1 = (s1 + b) % A32Mod;
			s2 = (s2 + s1) % A32Mod;
		}

		int adler32 = unchecked((int)((s2 << 16) + s1));
		outStream.Write(BitConverter.GetBytes(IPAddress.HostToNetworkOrder(adler32)), 0, sizeof(uint));

		// zlib compatible compressed query
		var bytes = outStream.ToArray();
		outStream.Close();

		return bytes;
	}
}</pre>
<p>I am putting this code out there, so nobody else has to hunt for hours trying to find a solution that should be built into .NET given the popularity of the ZLIB compression format.</p>
<img src="http://feeds.feedburner.com/~r/coderjournal/~4/xB0HlwWCFNc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coderjournal.com/2012/05/zlib-compression-in-net/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://coderjournal.com/2012/05/zlib-compression-in-net/</feedburner:origLink></item>
		<item>
		<title>JSON.NET Strong Naming And NuGet Woes</title>
		<link>http://feedproxy.google.com/~r/coderjournal/~3/Mv0CbPDBoPc/</link>
		<comments>http://coderjournal.com/2012/04/json-net-strong-naming-and-nuget-woes/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 03:33:23 +0000</pubDate>
		<dc:creator>Nick Berardi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[ASP.NET WebAPI]]></category>
		<category><![CDATA[CodePlex]]></category>
		<category><![CDATA[JSON.NET]]></category>
		<category><![CDATA[NuGet]]></category>

		<guid isPermaLink="false">http://coderjournal.com/?p=1531</guid>
		<description><![CDATA[This post requires a little understanding about how strong naming works. It&#8217;s complicated, but basically here is the jist: When you compile a library against a strong named assembly, only that specific version of the assembly can be used with the assembly that you are compiling with out resorting to heroics. You may say what [...]]]></description>
			<content:encoded><![CDATA[<p>This post requires a little understanding about how strong naming works. It&#8217;s complicated, but basically here is the jist:</p>
<blockquote><p>When you compile a library against a strong named assembly, only that specific version of the assembly can be used with the assembly that you are compiling with out resorting to heroics. You may say what is the big deal that is how all libraries are compiled and linked. But that isn&#8217;t true in .NET, if you don&#8217;t have a strongly named assembly, you have for better terms a weakly named assembly.  And with weakly named assemblies there is no enforcement of the version, just the library name.  So this makes it possible for developers to update a referenced library without actually recompiling the original library that referenced it.  This is very powerful in the right hands, and pretty much what makes services like <a href="http://nuget.org">NuGet </a>function with so many intermingling of references between projects.</p></blockquote>
<p>So once you understand that and it has sort of sunk in.  Now consider what kind of monkey wrench would be thrown in to the NuGet references process if libraries were strongly signed.  Now consider the project that is strongly named is also the 5th most popular project on NuGet with over 125,000 downloads and is one of if not the most interreferenced library in NuGet.  That is a monkey wrench of epic proportions that can cause some real damage isn&#8217;t it.</p>
<p>Well you have probably guessed that this isn&#8217;t some hypothetical problem by the name of my post. <strong>This is an actual problem in NuGet and is causing the community great pains</strong> against the ever popular and wonderful library called <a href="http://json.codeplex.com/">JSON.NET</a> by <a href="http://james.newtonking.com/">James Newton-King</a>. You all have probably heard of it and used it in the past, here is a brief description of it if you haven&#8217;t:</p>
<blockquote><p>Json.NET is a popular high-performance JSON framework for .NET</p>
<h4>Features</h4>
<ul>
<li>Flexible JSON serializer for converting between .NET objects and JSON</li>
<li>LINQ to JSON for manually reading and writing JSON</li>
<li>High performance, faster than .NET&#8217;s built-in JSON serializers</li>
<li>Write indented, easy to read JSON</li>
<li>Convert JSON to and from XML</li>
<li>Supports .NET 2, .NET 3.5, .NET 4, Silverlight, Windows Phone and Windows 8 Metro.</li>
</ul>
</blockquote>
<p>Now that you understand the scope of the problem and the library involved, consider the fact that the <a href="http://aspnetwebstack.codeplex.com/">ASP.NET Web Stack</a> is also going to be using this library, so every developer that is going to be using ASP.NET MVC, Web API, or Web Pages is going to be taking on a reference to JSON.NET in the next release of the framework.</p>
<p>I hope you are starting to realize the boondoggle that is being created here.  Because there are some popular libraries that are slow to update because of their development cycles and the maintainers can&#8217;t jump on every JSON.NET release every month, and sometimes daily as happened in January 2012.</p>
<p><a href="http://nuget.org/packages/Newtonsoft.Json"><img class="alignnone size-full wp-image-1532" title="Untitled" src="http://coderjournal.com/uploads/2012/04/Untitled1.png" alt="" width="496" height="300" /></a></p>
<p>These monthly releases create undue pressure on the community as a whole especially when this library is one of the most referenced libraries on NuGet. And with the ASP.NET and many other teams in Microsoft moving to NuGet as distribution model, <strong>this problem is only going to get worse</strong>. And what are the chances that Microsoft is going to want to update the ASP.NET framework monthly and sometimes daily, based on James continuous release cycles.</p>
<p><img class="alignright" title="Support-a-cause-Its-all-in-the-wrist-P4LL587-x-large" src="http://coderjournal.com/uploads/2012/04/Support-a-cause-Its-all-in-the-wrist-P4LL587-x-large.jpg" alt="" width="50%" height="50%" />Don&#8217;t get me wrong, I love it when developers are constantly updating their libraries, but because of<strong> the scope of JSON.NET&#8217;s use, it is creating a burden on the ecosystem as a whole</strong>. I am not advocating that James stop updating JSON.NET monthly and daily if he sees fit, <strong>what I am advocating is dropping the strong naming of libraries pushed to NuGet</strong>. That is why I am writing this blog post and that is why I am hoping you will support me and my effort to get James to stop signing NuGet assemblies.</p>
<p><strong>Please support me and the community as a whole by voting up this request for JSON.NET to stop being signed on NuGet assemblies.</strong></p>
<p><a style="font-size: 1.8em;" href="http://json.codeplex.com/workitem/22458">Work Item 22458 : Don&#8217;t Strong Name NuGet Assemblies</a></p>
<p>All that you have to do if you support this effort is to click the vote button on the work item. And leave a comment of support if you have anything to add to what I have said.</p>
<p>Thanks for the help and support.</p>
<img src="http://feeds.feedburner.com/~r/coderjournal/~4/Mv0CbPDBoPc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coderjournal.com/2012/04/json-net-strong-naming-and-nuget-woes/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://coderjournal.com/2012/04/json-net-strong-naming-and-nuget-woes/</feedburner:origLink></item>
		<item>
		<title>Mash This Episode 5: ASP.NET Web API and Open Source with Brad Wilson</title>
		<link>http://feedproxy.google.com/~r/coderjournal/~3/w0uhPZsGvoo/</link>
		<comments>http://coderjournal.com/2012/04/mash-this-episode-5-aspnet-webapi-brad-wilson/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 20:26:32 +0000</pubDate>
		<dc:creator>Nick Berardi</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[MashThis]]></category>

		<guid isPermaLink="false">http://coderjournal.com/?p=1525</guid>
		<description><![CDATA[In case everybody wasn&#8217;t aware, and to be honest it is really my fault for not announcing this, but I started a podcast with Lee Dumond, Dustin Davis, and Keyvan Nayyeri called the Mash This Podcast which can be found here and on iTunes. We just released our 5th episode in which we talked with Brad Wilson of Microsoft about his work [...]]]></description>
			<content:encoded><![CDATA[<p><em>In case everybody wasn&#8217;t aware, and to be honest it is really my fault for not announcing this, but I started a podcast with <a href="http://leedumond.com/">Lee Dumond</a>, <a href="http://www.programmers-unlimited.com/">Dustin Davis</a>, and <a href="http://keyvan.io/">Keyvan Nayyeri</a> called the <strong>Mash This Podcast</strong> which can be <a href="http://mashthis.io/">found here</a> and on <a href="http://mashthis.io/itunes">iTunes</a>.</em></p>
<p>We just released our 5th episode in which we talked with <a href="http://bradwilson.typepad.com/">Brad Wilson</a> of Microsoft about his work on the ASP.NET MVC and Web API team now commonly referred to as the ASP.NET Web Stack team.  Our conversation started with us focusing on Microsoft&#8217;s major announcement that happened last week regarding the <a href="http://weblogs.asp.net/scottgu/archive/2012/03/27/asp-net-mvc-web-api-razor-and-open-source.aspx">open sourcing and accepting public contributions to the ASP.NET Web Stack</a>. The announcement surrounded the fact that were going to make the process of developing the web stack open source, under the Apache open source license, instead of just releasing the source at major release points like they have done in the past. The difference may be lost on some people, but this means the direction of the framework is now influenced by the community instead of just a select few Microsoft employees and ASPInsiders.</p>
<p>Brad talked to us about what drove this decision with in Microsoft and some of the hurdles they had to over come legally and technically in order to allow people to contribute this source code. I think we are the first podcast to actually talk with a team member on the Web Stack team after the announcement was made, so that was pretty exciting for us. Even I got in on the action and <a href="http://aspnetwebstack.codeplex.com/SourceControl/changeset/changes/6e7594781f71">contributed a small patch to ASP.NET MVC</a> that has bugged me since ASP.NET MVC 2.</p>
<p>The patch can be seen here:</p>
<p><a href="http://aspnetwebstack.codeplex.com/SourceControl/changeset/changes/6e7594781f71"><img class="alignnone size-full wp-image-1528" title="Untitled" src="http://coderjournal.com/uploads/2012/04/Untitled.png" alt="" width="709" height="163" /></a></p>
<p>And the announcement of the accept request can be seen here by Marcin Dobosz:</p>
<p><a href="https://twitter.com/#!/marcind/status/187028192366829568"><img class="alignnone size-full wp-image-1526" title="Twitter - @marcind- Just accepted the first co ..." src="http://coderjournal.com/uploads/2012/04/Twitter-@marcind-Just-accepted-the-first-co-....png" alt="" width="652" height="320" /></a></p>
<p>After talking about the open sourcing of the Web Stack we dove in to the new ASP.NET Web API, which is a &#8220;newish&#8221; technology. The Web API was previously known as WCF, but it has been refactored and modernized into what is now called ASP.NET Web API.  The Web API has been designed to be first stop and best framework for creating web based API&#8217;s using a RESTful style. We had many questions relating to this new framework and Brad was able to answer them all and gave us many technical details about the design and process that the new Web API adheres to. Listening to Brad talk about the technology behind Web API is going to be very helpful for any .NET RESTful developers out there that will be starting new project soon, so if you have the time I highly recommend this podcast.</p>
<p>This podcast can be downloaded from our <a href="http://mashthis.io/asp-net-web-api-and-open-source-with-brad-wilson">episode 5 page</a>. If you’re interested to follow the Mash This Podcast, you can subscribe to our <a href="http://mashthis.io/rss">RSS feed</a> or <a href="http://mashthis.io/itunes">Apple iTunes</a>.</p>
<img src="http://feeds.feedburner.com/~r/coderjournal/~4/w0uhPZsGvoo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coderjournal.com/2012/04/mash-this-episode-5-aspnet-webapi-brad-wilson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coderjournal.com/2012/04/mash-this-episode-5-aspnet-webapi-brad-wilson/</feedburner:origLink></item>
	</channel>
</rss>

