<?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.codemonkeylabs.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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Code Monkey Labs</title>
	
	<link>http://codemonkeylabs.com</link>
	<description />
	<lastBuildDate>Wed, 09 Mar 2011 18:15:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.codemonkeylabs.com/codemonkeylabs" /><feedburner:info uri="codemonkeylabs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Introducing Flxt.it, Powered By Twilio &amp; AppHarbor</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/bS13whNcXz4/</link>
		<comments>http://codemonkeylabs.com/2011/02/15/introducing-flxt-it-powered-by-twilio-and-appharbor/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 19:31:08 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/?p=177</guid>
		<description><![CDATA[A few weeks ago a challenge came across my Twitter stream – build an application that combines Twilio, a cloud communication platform, with AppHarbor, the easiest way to deploy and host .NET applications. This seemed like the perfect fit for &#8230; <a href="http://codemonkeylabs.com/2011/02/15/introducing-flxt-it-powered-by-twilio-and-appharbor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://flxt.it/" target="_blank"><img style="background-image: none; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border-width: 0px;" title="flxt512" src="http://codemonkeylabs.com/wp-content/uploads/2011/02/flxt512.jpg" border="0" alt="flxt512" width="240" height="240" align="left" /></a></p>
<p>A few weeks ago a <a href="http://contests.twilio.com/2011/01/new-developer-contest-use-twilio-appharbor-for-chance-to-win-samsung-focus.html" target="_blank">challenge</a> came across my Twitter stream – build an application that combines <a href="http://www.twilio.com/" target="_blank">Twilio</a>, a cloud communication platform, with <a href="https://appharbor.com/" target="_blank">AppHarbor</a>, the easiest way to deploy and host .NET applications. This seemed like the perfect fit for an idea that’d been bouncing around in my head for some time. Five days later,  long after the Super Bowl ended, I submitted my entry.</p>
<p>Yesterday morning another <a href="http://twitter.com/#!/Twilio/status/37202557134831616" target="_blank">tweet</a> popped up on my desktop&#8230;my entry <a href="http://blog.twilio.com/2011/02/flxtit-wins-our-twilioappharbor-contest.html" target="_blank">won</a>!</p>
<p>And now&#8230;I&#8217;m proud to introduce <a href="http://flxt.it/" target="_blank">Flxt.it</a> &#8211; a simple tool to manage your Netflix queue.</p>
<h3>The Idea</h3>
<p>How many times have you been away from a computer and thought of a movie you don’t want to miss? This is where Flxt.it comes in &#8211; if you can send a text message, you can add movies to your Netflix queue. There are existing applications to accomplish this, but sending a text message is faster, and you don&#8217;t need a smart phone.</p>
<h3>The Implementation</h3>
<p>When you sign up for Flxt.it, your Netflix account is linked to your cell phone, and you’re given a phone number to send movie titles to. This number is provided by Twilio and it’s where the magic begins.</p>
<p style="text-align: center;"><span style="text-align:center; display: block;"><a href="http://codemonkeylabs.com/2011/02/15/introducing-flxt-it-powered-by-twilio-and-appharbor/"><img src="http://img.youtube.com/vi/e3xkK00M0RQ/2.jpg" alt="" /></a></span></p>
<p>When Twilio receives a text message, it sends the information on to the web application, which is running ASP.NET MVC 3. In Flxt.it there is a single endpoint that receives the message, looks up your Netflix account information, takes care of business, and responds with a text message to let you know the movie was added to your queue.</p>
<pre class="brush: csharp; title: ; notranslate">
public class Message
{
	public string AccountSid { get; set; }
	public string Body { get; set; }
	public string From { get; set; }
	public string FromCity { get; set; }
	public string FromCountry { get; set; }
	public string FromState { get; set; }
	public string FromZip { get; set; }
	public string SmsSid { get; set; }
	public string To { get; set; }
	public string ToCity { get; set; }
	public string ToCountry { get; set; }
	public string ToState { get; set; }
	public string ToZip { get; set; }
}

[ValidateTwilioSignature(&quot;YourTwilioAuthToken&quot;)]
public class SmsController : TwilioController
{
	[HttpPost]
	public ActionResult Search(Message message)
	{
		var user = db.Single&lt;User&gt;(u =&gt; u.PhoneHash == message.From.NormalizeAndHash());
		var movie = netflix.Search(message.Body, user.NetflixApiToken);
		if (netflix.AddToQueue(movie, user.NetflixApiToken))
			return Sms(&quot;{0} has been added to your queue!&quot;, movie.Title);

		return Sms(&quot;Unable to add to your queue.&quot;);
	}

	protected override void OnException(ExceptionContext filterContext)
	{
		Log.Write(filterContext.Exception);
		filterContext.Result = Sms(&quot;Whoops! Something went wrong. Please try again later.&quot;);
		filterContext.ExceptionHandled = true;
	}
}
</pre>
<p>MVC&#8217;s model binding turns all the <a href="http://www.twilio.com/docs/api/2010-04-01/twiml/sms/twilio_request" target="_blank">parameters</a> Twilio sends into an easy to use class. To <a href="http://www.twilio.com/docs/api/2010-04-01/twiml/sms/your_response" target="_blank">respond</a> to the incoming message there are two options &#8211; TwiML or REST. The former is the only option if you want to do more than one action, like send multiple SMS messages and redirect to another TwiML document. The later is the easier option when you just want to send a response &#8211; set your response&#8217;s content type to text/plain and Twilio will send the response body to the sender as an SMS message!</p>
<p>This was the approach used by Flxt.it. A custom SmsResult sets the content type and makes sure that the message doesn&#8217;t exceed 160 characters. If you don&#8217;t want to send a reply message simply send an empty response.</p>
<p>It&#8217;s also important to handle any errors properly so that Twilio always gets a valid response from your application. MVC makes this crazy easy without needing to wrap your entire action in a try/catch. By either overloading the OnException method or providing a custom filter to the action or controller you can return an SmsResult no matter what happens during the action.</p>
<h3>Security &amp; Privacy</h3>
<p>We are all concerned about privacy, so handling phone numbers should not be taken lightly. Even in a simple application like this I want to take every precaution to keep users&#8217; phone numbers safe.</p>
<p>The first, and most effective, precaution is Flxt.it does not store the full phone numbers. Because Flxt.it will always be responding to incoming messages, it will store a hash of the phone number and the last four digits and still be able to link your Netflix account to your incoming movie request.</p>
<p>The second way to protect the Twilio endpoint is to ensure that Flxt.it will respond to requests from Twilio and nobody else. In every request, Twilio will sign the request using your secret authentication token and send it in a HTTP header. To validate it you perform the same <a href="http://www.twilio.com/docs/security-reliability/security" target="_blank">operation</a> and if the request is valid you will get the exact same value.</p>
<p>The following is an example of how you can create an action filter in MVC to easily validate an action or every action in a controller. It&#8217;s based on John Sheehan&#8217;s most excellent <a href="http://channel9.msdn.com/Series/mvcConf/mvcConf-2-John-Sheehan-Intro-to-Building-Twilio-Apps-with-ASPNET-MVC" target="_blank">presentation</a> at mvcConf last week.</p>
<pre class="brush: csharp; title: ; notranslate">
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method)]
public class ValidateTwilioSignatureAttribute : ActionFilterAttribute
{
    public ValidateTwilioSignatureAttribute(string authToken)
    {
        authToken.ThrowIfNullOrEmpty(&quot;authToken&quot;);

        AuthToken = authToken;
    }

    public string AuthToken { get; private set; }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var request = filterContext.HttpContext.Request;

        var fullUrl = String.Format(&quot;http://{0}{1}&quot;, request.Url.Host, request.Url.PathAndQuery);
        var valueToHash = new StringBuilder(fullUrl);

        if (request.HttpMethod == &quot;POST&quot;)
        {
            var sortedParams = request.Form.AllKeys.OrderBy(p =&gt; p).ToList();
            foreach (var param in sortedParams)
            {
                valueToHash.Append(param);
                valueToHash.Append(request.Form[param]);
            }
        }

        var sha1 = new HMACSHA1(Encoding.UTF8.GetBytes(AuthToken));
        var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(valueToHash.ToString()));

        var encodedHash = Convert.ToBase64String(hash);

        var twilioSignature = request.Headers[&quot;X-Twilio-Signature&quot;];

        if (encodedHash != twilioSignature)
            filterContext.Result = new HttpForbiddenResult();
    }
}
</pre>
<p>One thing to note here is that when you are in a load-balanced environment like AppHarbor the web server your request is being served by is likely not the exact address that Twilio calls from the outside. Since it is part of the signature we need to be sure to use the host header value and not the raw URL as seen by ASP.NET.</p>
<h3>Couldn&#8217;t Be Easier</h3>
<p>In Flxt.it I&#8217;m barely scratching the surface of Twilio&#8217;s capabilities. In addition to sending and receiving SMS messages, they have an incredibly powerful platform for making and receiving phone calls. Best of all it&#8217;s available on a <a href="http://www.twilio.com/pricing-signup/" target="_blank">pay as you go</a> basis &#8211; no contracts! You no longer need to be a Twitter-sized company to be able to add phone and SMS capabilities to your application.</p>
<p>Go ahead and <a href="https://www.twilio.com/try-twilio" target="_blank">try it out</a> for yourself &#8211; you get $30 worth of credits just for signing up!</p>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/bS13whNcXz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2011/02/15/introducing-flxt-it-powered-by-twilio-and-appharbor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2011/02/15/introducing-flxt-it-powered-by-twilio-and-appharbor/</feedburner:origLink></item>
		<item>
		<title>Moving On Up To The Cloud</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/Kpinun0YYBI/</link>
		<comments>http://codemonkeylabs.com/2010/03/20/moving-on-up-to-the-cloud/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 03:27:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/blog/moving-on-up-to-the-cloud/</guid>
		<description><![CDATA[For the last year I&#8217;ve been hosting this site on a server running in my basement. While it&#8217;s been a much better experience than the $6/month, &#8216;everything included&#8217;, shared hosting plan I was on before, this setup has had its &#8230; <a href="http://codemonkeylabs.com/2010/03/20/moving-on-up-to-the-cloud/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the last year I&#8217;ve been hosting this site on a server running in my basement. While it&#8217;s been a much better experience than the $6/month, &#8216;everything included&#8217;, shared hosting plan I was on before, this setup has had its own set of problems. For starters, cable internet is <em>not</em> a viable way to host web sites. Even with a commercial grade, unshared, 10/1Mbps connection the response time to my site was quite high and fluctuated wildly. To make matters worse, we apparently live in a neighborhood that doesn&#8217;t have much redundancy on the local power grid &#8211; we&#8217;ve have numerous power outages in the year we&#8217;ve lived here.</p>
<p>While this might be acceptable for a simple blog, I recently started hosting a few sites for others, including our local <a href="http://billingsusersgroup.com/" target="_blank">.NET Users Group</a> and a neighbor&#8217;s business site, and the performance and uptime bar needed to be cranked up a bit. I needed something that was on a good, solid internet connection, gave me plenty of control, and was priced low enough to address the wife acceptance factor.</p>
<h3>My new home: The Rackspace Cloud</h3>
<p>After considering a variety of options, I finally settled on <a href="http://www.rackspacecloud.com/cloud_hosting_products/servers" target="_blank">Rackspace&#8217;s Cloud Servers</a>. I&#8217;d been tinkering with their services for some time and had been very impressed not only by the performance and capabilities, but by the price. For as little as $11 per month you can run your very own virtual Linux server with 256MB of RAM and 10GB of disk space. Need Windows servers? They start at about $29 per month for 512MB of RAM and 20GB of disk space. Need some short-term servers to handle capacity? You pay by the hour and there are no minimums or commitments! Their control panel is incredibly easy to use, and for more advanced scenarios there&#8217;s even an API for automatically scaling up and down. I could go on, but instead I&#8217;m going to recommend an <a href="http://socialcloudnow.com/cloud-computing/rackspace-cloud-servers-review" target="_blank">excellent review</a> at Social Cloud Now.</p>
<p>For my little setup I went with 2 Ubuntu servers and 1 Windows server &#8211; total damage is just over $50/month. This gives me an Apache web server, an IIS web server, and keep the database on its own machine. How does it perform? I think my Pingdom response time report says it all.</p>
<p><a href="http://codemonkeylabs.com/wp-content/uploads/2010/03/Pingdom_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Pingdom" border="0" alt="Pingdom" src="http://codemonkeylabs.com/wp-content/uploads/2010/03/Pingdom_thumb.jpg" width="454" height="225" /></a>&#160;</p>
<p>Moving up to the Rackspace cloud has cut my response time in half! Before the move my response time averaged close to 800ms, after it&#8217;s under 400ms (the brief spike was after I had migrated the database to the cloud but before I had migrated the web server). Those are the worldwide numbers &#8211; the US average is only 170ms!</p>
<h3>A perfect fit</h3>
<p>I couldn&#8217;t be happier with my move to the Rackspace cloud. Having great performance and availability, being easy to use, and affordably priced makes Rackspace my cloud provider of choice.</p>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/Kpinun0YYBI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2010/03/20/moving-on-up-to-the-cloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2010/03/20/moving-on-up-to-the-cloud/</feedburner:origLink></item>
		<item>
		<title>Weekly Web Nuggets #84</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/pYGrRWv3xU8/</link>
		<comments>http://codemonkeylabs.com/2010/01/26/weekly-web-nuggets-84/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 22:42:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Weekly Web Nuggets]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/weekly-web-nuggets/84/</guid>
		<description><![CDATA[Pick of the week: Why Do Big Companies Suck? General SQL Server 2008 R2 &#8211; What Is StreamInsight Used For: Greg Low shares a simple explanation of what the upcoming StreamInsight product is. Lazy(T, TMetadata) Class in System.ComponentModel.Composition: David Hayden &#8230; <a href="http://codemonkeylabs.com/2010/01/26/weekly-web-nuggets-84/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pick of the week: <a target="_blank" href="http://www.scottberkun.com/blog/2010/why-do-big-companies-suck/">Why Do Big Companies Suck?</a></p>
<p><strong><u>General</u></strong></p>
<ul>
<li><strong><a target="_blank" href="http://sqlblog.com/blogs/greg_low/archive/2010/01/11/sql-server-2008-r2-what-is-streaminsight-used-for.aspx">SQL Server 2008 R2 &#8211; What Is StreamInsight Used For</a>:</strong> Greg Low shares a simple explanation of what the upcoming StreamInsight product is.</li>
<li><strong><a target="_blank" href="http://www.davidhayden.me/2010/01/lazyt-tmetadata-class-in-systemcomponentmodelcomposition.html">Lazy(T, TMetadata) Class in System.ComponentModel.Composition</a>:</strong> David Hayden looks at how you can include metadata along with your lazily-loaded types.</li>
<li><strong><a target="_blank" href="http://www.codethinked.com/post/2010/01/05/Overloading-Dynamic.aspx">Overloading Dynamic</a>:</strong> Justin Etheredge takes a close look at the behavior of the dynamic types in C# 4.0.</li>
<li><strong><a target="_blank" href="http://about.digg.com/blog/database-capabilities-high-volume-environment">Database Capabilities in a High-Volume Environment</a>:</strong> Tim Ellis at <a target="_blank" href="http://digg.com/">Digg.com</a> explains the different types of databases available today and what makes each unique. A great reference of the different technologies and the needs they address.</li>
<li><strong><a target="_blank" href="http://ayende.com/Blog/archive/2010/01/14/my-java-experience.aspx">My Java Experience</a>:</strong> Oren Eini writes about his experience of learning Java for the sake of learning Java.</li>
<li><strong><a target="_blank" href="http://invalidlogic.com/life/expressing-your-passion/">Expressing Your Passion</a>:</strong> Reinvigorated from CodeMash 2010, Ken Robertson shares how a developer&#8217;s passion can be their strongest quality.</li>
</ul>
<p><strong><u>Web Development</u></strong></p>
<ul>
<li><strong><a target="_blank" href="http://www.hanselman.com/blog/HowSparkFunAnd800comAndSmallCommerceOrStartupWebsitesCanScale.aspx">How SparkFun (and 800.com) and Small Commerce or Startup Websites Can Scale</a>:</strong> Scott Hanselman lists some of the fundamental techniques for scaling any website.</li>
<li><strong><a target="_blank" href="http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx">ASP.NET MVC 2 &#8211; Strongly Typed Html Helpers</a>:</strong> Scott Guthrie highlights the new strongly typed helpers that have been added to ASP.NET MVC 2. I sure hope they&#8217;ve addressed the <a target="_blank" href="http://www.chadmoran.com/blog/2009/4/21/optimizing-url-generation-in-aspnet-mvc-part-1.html">performance issues</a> now that it is in the core product.</li>
<li><strong><a target="_blank" href="http://www.smashingmagazine.com/2010/01/14/web-security-primer-are-you-part-of-the-problem/">Web Security &#8211; Are You Part of the Problem</a>:</strong> Christian Heilmann details the top vulnerabilities on the web and how to address them. A must read for any web developer!</li>
<li><strong><a target="_blank" href="http://jquery14.com/day-01/jquery-14">jQuery 1.4 Released</a>:</strong> Kicking off the 14 Days of jQuery is none other than the official release of 1.4!</li>
<li><strong><a target="_blank" href="http://bradwilson.typepad.com/blog/2010/01/required-doesnt-mean-what-you-think-it-does.html">[Required] Doesn&#8217;t Mean What You Think It Does</a>:</strong> On the surface this is a good explanation of what exactly the [Required] attribute does in ASP.NET MVC, but be sure to read the comments where a great design discussion is brewing.</li>
<li><strong><a href="http://haacked.com/archive/2010/01/17/editable-routes.aspx">Editable Routes</a>:</strong> Phil Haack shows how you can easily change your routes without recompiling the application.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/pYGrRWv3xU8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2010/01/26/weekly-web-nuggets-84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2010/01/26/weekly-web-nuggets-84/</feedburner:origLink></item>
		<item>
		<title>Weekly Web Nuggets #83</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/6qL6ERLTHpc/</link>
		<comments>http://codemonkeylabs.com/2010/01/06/weekly-web-nuggets-83/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 14:33:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Weekly Web Nuggets]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/weekly-web-nuggets/83/</guid>
		<description><![CDATA[Pick of the week: Responsible Open Source Code Parenting General Micro Optimization Decision Process: Oren Eini walks us through his process of identifying and addressing micro optimizations. Thoughts On EF vs. NHibernate Redux: Rob Conery shares his thoughts on the &#8230; <a href="http://codemonkeylabs.com/2010/01/06/weekly-web-nuggets-83/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pick of the week: <a href="http://www.codinghorror.com/blog/archives/001317.html" target="_blank">Responsible Open Source Code Parenting</a></p>
<p><strong><u>General</u></strong></p>
<ul>
<li><strong><a href="http://ayende.com/Blog/archive/2010/01/01/micro-optimization-decision-process.aspx" target="_blank">Micro Optimization Decision Process</a>:</strong> Oren Eini walks us through his process of identifying and addressing <a href="http://ayende.com/Blog/archive/2009/12/30/when-mini-benchmarks-are-important.aspx" target="_blank">micro optimizations</a>. </li>
<li><strong><a href="http://blog.wekeroad.com/2009/12/26/thoughts-on-ef-vs-nhibernate-redux" target="_blank">Thoughts On EF vs. NHibernate Redux</a>:</strong> Rob Conery shares his thoughts on the ongoing debate of which flavor ORM is better. (hint: it doesn&#8217;t matter!) </li>
<li><strong><a href="http://codebetter.com/blogs/howard.dierking/archive/2009/12/11/understanding-perceived-performance.aspx" target="_blank">Understanding Perceived Performance</a>:</strong> Howard Dierking writes about users&#8217; perceived performance, which can be more critical than if you can squeak another 10ms off your response time. </li>
<li><strong><a href="http://natishalom.typepad.com/nati_shaloms_blog/2009/12/the-common-principles-behind-the-nosql-alternatives.html" target="_blank">The Common Principles Behind The NOSQL Alternatives</a>:</strong> Nati Shalom discusses the common patterns behind the various NOSQL options available and shows how they address specific issues of database scalability. </li>
<li><strong><a href="http://devlicio.us/blogs/casey/archive/2009/12/18/what-is-the-difference-between-an-ioc-container-and-mef.aspx" target="_blank">What Is The Difference Between An IoC Container And MEF</a>:</strong> Jak Charlton explains the fundamental differences between an IoC container and MEF. </li>
<li><strong><a href="http://james.newtonking.com/archive/2010/01/01/net-serialization-performance-comparison.aspx" target="_blank">.NET Serialization Performance Comparison</a>:</strong> James Newton-King posts the results of some performance testing from the development of <a href="http://james.newtonking.com/projects/json-net.aspx" target="_blank">Json.NET</a> &#8211; the results are quite impressive! </li>
<li><strong><a href="http://highscalability.com/blog/2010/1/4/11-strategies-to-rock-your-startups-scalability-in-2010.html" target="_blank">11 Strategies To Rock Your Startup&#8217;s Scalability In 2010</a>:</strong> 11 fantastic tips on how to scale your application this year.</li>
</ul>
<p><strong><u>Web Development</u></strong></p>
<ul>
<li><strong><a href="http://haacked.com/archive/2009/12/19/aspnetmvc-2-and-vs2010.aspx" target="_blank">ASP.NET MVC 2 and Visual Studio 2010</a>:</strong> Phil Haack explains why ASP.NET MVC 2 and Visual Studio 2010 have continued to be out of sync. </li>
<li><strong><a href="http://west-wind.com/weblog/posts/132081.aspx" target="_blank">Making Sense of ASP.NET Paths</a>:</strong> Rick Strahl has posted a fantastic reference of all the path information available in the current request. </li>
<li><strong><a href="http://devlicio.us/blogs/hadi_hariri/archive/2009/12/30/dynamic-types-and-asp-net-mvc.aspx" target="_blank">Dynamic Types and ASP.NET MVC</a>:</strong> Hadi Hariri has a quick and dirty walkthrough on how to use dynamic types as your view model in ASP.NET MVC. </li>
<li><strong><a href="http://2010wave.blogspot.com/2010/01/walkthrough-using-autofac-as-your-ioc.html" target="_blank">Walkthrough Using Autofac As Your IoC Container In An ASP.NET MVC Application</a>:</strong> Darren Neimke shows how easy it is to use Autofac as an IoC container in you ASP.NET MVC application. </li>
</ul>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/6qL6ERLTHpc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2010/01/06/weekly-web-nuggets-83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2010/01/06/weekly-web-nuggets-83/</feedburner:origLink></item>
		<item>
		<title>Speed Up The ASP.NET Development Server</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/0-BiCdAyVF0/</link>
		<comments>http://codemonkeylabs.com/2010/01/01/speed-up-the-asp-net-development-server/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 20:20:03 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/blog/speed-up-the-asp-net-development-server/</guid>
		<description><![CDATA[Visual Studio has had a built-in web server for years, but I&#8217;m apparently one of the few developers that still prefers IIS. Why? It&#8217;s certainly not more convenient &#8211; you have to setup a virtual directory, file system permissions, and &#8230; <a href="http://codemonkeylabs.com/2010/01/01/speed-up-the-asp-net-development-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Visual Studio has had a built-in web server for years, but I&#8217;m apparently one of the few developers that still prefers IIS. Why? It&#8217;s certainly not more convenient &#8211; you have to setup a virtual directory, file system permissions, and change the debugging options. It&#8217;s because on a modern Windows OS (Vista or newer) it is so slooooooooow! </p>
<p>Take a look at the following Firebug stats:</p>
<p><a href="http://codemonkeylabs.com/wp-content/uploads/2010/01/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Sloooooooooow" border="0" alt="Sloooooooooow" src="http://codemonkeylabs.com/wp-content/uploads/2010/01/image_thumb_1.png" width="640" height="121" /></a></p>
<p>There is literally no content on this page yet. I&#8217;ve got two <em>static</em> resources coming from the site, and I&#8217;m using the <a href="http://code.google.com/apis/ajax/documentation/" target="_blank">Google AJAX loader</a> to pull in jQuery and the Maps API. Yet while even the slowest resource from Google takes a scant 144ms to load, the page and resources I&#8217;m pulling from my local machine are each taking just over a second! </p>
<p>Further testing showed that where Firefox and Chrome both exhibit this behavior, IE8 did not (or at least not by my seat-of-the-pants testing &#8211; the IE developer tools still don&#8217;t have a network profiler). Even stranger is that if I connect using 127.0.0.1 or localhost. (notice the trailing .) things improved!</p>
<p>Something isn&#8217;t right here.</p>
<h3>The Culprit: IPv6 and DNS</h3>
<p>With Windows Vista, Microsoft included the IPv6 networking stack by default. Under Windows 7 (and probably Vista) they&#8217;ve apparently left resolution of localhost up to DNS. As far as I can tell the slowness isn&#8217;t the browsers&#8217; fault, but rather the system trying to resolve localhost using IPv6.</p>
<p>Fortunately the fix is easy. Fire up Notepad (or your text editor of choice) <strong>as an Administrator</strong>, and open up your system&#8217;s hosts file (typically C:\Windows\System32\drivers\etc\hosts). You should see that all entries are commented out. Simply uncomment (remove the #) from the <strong>IPv4</strong> localhost entry only, save the file, and restart your browser.</p>
<p><a href="http://codemonkeylabs.com/wp-content/uploads/2010/01/image_8.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="hosts" border="0" alt="hosts" src="http://codemonkeylabs.com/wp-content/uploads/2010/01/image_thumb_3.png" width="600" height="354" /></a> </p>
<p>Once this is done, things look much, much better when using Visual Studio&#8217;s development server. As we&#8217;d expect, the local resources are significantly faster than the external ones.</p>
<p><a href="http://codemonkeylabs.com/wp-content/uploads/2010/01/image_12.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Fast" border="0" alt="Fast" src="http://codemonkeylabs.com/wp-content/uploads/2010/01/image_thumb_5.png" width="640" height="121" /></a></p>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/0-BiCdAyVF0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2010/01/01/speed-up-the-asp-net-development-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2010/01/01/speed-up-the-asp-net-development-server/</feedburner:origLink></item>
		<item>
		<title>Weekly Web Nuggets #82</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/47jXkDjAtDo/</link>
		<comments>http://codemonkeylabs.com/2009/12/12/weekly-web-nuggets-82/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:37:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Weekly Web Nuggets]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/weekly-web-nuggets/82/</guid>
		<description><![CDATA[Pick of the week: Version 1 Sucks, But Ship It Anyway General Disk Based Data Structures: Mikael Svenson writes about utilizing memory-mapped files to access extremely large data structures. Lessons Learned (Part 2: Performance Testing and Garbage Collection): Patric Fornasier &#8230; <a href="http://codemonkeylabs.com/2009/12/12/weekly-web-nuggets-82/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pick of the week: <a href="http://www.codinghorror.com/blog/archives/001313.html" target="_blank">Version 1 Sucks, But Ship It Anyway</a></p>
<p><strong><u>General</u></strong></p>
<ul>
<li><strong><a href="http://techmikael.blogspot.com/2009/11/disk-based-data-structures.html">Disk Based Data Structures</a>:</strong> Mikael Svenson writes about utilizing memory-mapped files to access extremely large data structures. </li>
<li><strong><a href="http://patforna.blogspot.com/2009/11/lessons-learned-part-2-performance.html">Lessons Learned (Part 2: Performance Testing and Garbage Collection)</a>:</strong> Patric Fornasier continues his series of posts about performance tuning with a good nugget about garbage collection. </li>
<li><strong><a href="http://blogs.windwardreports.com/davidt/2009/11/what-every-developer-should-know-about-character-encoding.html">What Every Developer Should Know About Character Encoding</a>:</strong> David T. explains the essential details of character encoding. </li>
<li><strong><a href="http://microsoftpdc.com/Videos">PDC 2009 Videos</a>:</strong> Didn&#8217;t make it to PDC this year? No problem.the sessions are available to download or viewing online! </li>
<li><strong><a href="http://ayende.com/Blog/archive/2009/12/06/resharper-is-amazing-take-n.aspx" target="_blank">ReSharper Is Amazing, Take N</a>:</strong> Ayende Rahien found a slick feature in the upcoming ReSharper 5.0.automatic pulling in the .NET Framework source code!</li>
<li><strong><a href="http://codebetter.com/blogs/david_laribee/archive/2009/11/17/the-high-cost-of-losing-a-developer.aspx" target="_blank">The High Cost Of Losing a Developer</a>:</strong> Dave Laribee points out how expensive it is to loose your best talent.</li>
<li><strong><a href="http://devlicio.us/blogs/tim_barcz/archive/2009/11/29/i-just-cloned-why-did-git-change-my-files.aspx" target="_blank">I Just Cloned, Why Did Git Change My Files</a>:</strong> Tim Barcz explains an important, but subtle, concept in Git that can be frustrating if you aren&#8217;t aware of it.</li>
<li><strong><a href="http://telligent.com/company/news/b/teamblog/archive/2009/12/11/graffiti-cms-is-now-open-source.aspx" target="_blank">Graffiti CMS Is Now Open Source</a>:</strong> Telligent has done the right thing and Open Sourced Graffiti CMS!</li>
<li><strong><a href="http://www.lostechies.com/blogs/jagregory/archive/2009/11/25/git-s-guts-branches-head-and-fast-forwards.aspx" target="_blank">Git&#8217;s Guts &#8211; Branches, HEAD, and Fast-Forwards</a>:</strong> James Gregory takes an in-depth look at branches in Git and how they are different from other popular VCS systems. He follows up with another post about <a href="http://www.lostechies.com/blogs/jagregory/archive/2009/11/27/git-guts-merging-and-rebasing.aspx" target="_blank">merging and rebasing</a>.</li>
</ul>
<p><strong><u>Web Development</u></strong></p>
<ul>
<li><strong><a href="http://haacked.com/archive/2009/11/17/asp.net-mvc-2-beta-released.aspx">ASP.NET MVC 2 Beta Released</a>:</strong> Phil Haack announces the release of ASP.NET MVC 2 beta. It&#8217;s loaded with a bunch of new features and a go-live license, but unfortunately isn&#8217;t compatible with Visual Studio 2010 Beta 2 (curses!). </li>
<li><strong><a href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx">Silverlight 4 Beta &#8211; A Guide To The New Features</a>:</strong> Tim Heuer has a massive post covering the major new features of Silverlight 4 (didn&#8217;t we just get Silverlight 3?). </li>
<li><strong><a href="http://blogs.msdn.com/endpoint/archive/2009/11/17/developing-and-managing-services-with-windows-server-appfabric.aspx">Developing and Managing Services with Windows Server AppFabric</a>:</strong> Cliff Simpkins outlines some details of AppFabric, which offers technologies to help your IIS-based applications scale. </li>
<li><strong><a href="http://www.hanselman.com/blog/PDC09ASPNETMVC2NinjasStillOnFireBlackBeltTips.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+ScottHanselman+(Scott+Hanselman+-+ComputerZen.com)&amp;utm_content=Google+Reader" target="_blank">PDC09 &#8211; ASP.NET MVC 2 &#8211; Ninjas Still On Fire Black Belt Tips</a>:</strong> Watch Scott Hanselman&#8217;s presentation from PDC on ASP.NET MVC. He also links to some solutions to automate downloading all of the available PDC session videos! </li>
<li><strong><a href="http://woorkup.com/2009/11/16/useful-tips-every-web-designer-should-know-about-seo/" target="_blank">Useful Tips Every Web Designer Should Know About SEO</a>:</strong> A great list of SEO tips from Antonio Fullone.</li>
<li><strong><a href="http://odetocode.com/Blogs/scott/archive/2009/11/28/whatrsquos-the-first-thing-to-learn-about-asp-net-mvc.aspx" target="_blank">What&#8217;s The First Thing To Learn About ASP.NET MVC</a>:</strong> If you&#8217;re just now making the switch to MVC from WebForms, K. Scott Allen highly recommends the simple, but powerful, HTML form.</li>
<li><strong><a href="http://googleblog.blogspot.com/2009/12/faster-apps-for-faster-web-introducing.html" target="_blank">Faster Apps For A Faster Web &#8211; Introducing Speed Tracer</a>:</strong> A sweet new tool from Google that gives you insight into how your web sites appear and perform as seen through the eyes of your browser.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/47jXkDjAtDo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2009/12/12/weekly-web-nuggets-82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2009/12/12/weekly-web-nuggets-82/</feedburner:origLink></item>
		<item>
		<title>Weekly Web Nuggets #81</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/mbXa4bH9SPw/</link>
		<comments>http://codemonkeylabs.com/2009/11/22/weekly-web-nuggets-81/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 20:51:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Weekly Web Nuggets]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/weekly-web-nuggets/81/</guid>
		<description><![CDATA[Pick of the week: Figuring Out What Your Company Is All About General Hello Tekpub: Rob Conery announces TekPub.com, a new site he&#8217;s launched with James Avery providing screencasts with content provided by the topic experts themselves. WPF 4 (VS &#8230; <a href="http://codemonkeylabs.com/2009/11/22/weekly-web-nuggets-81/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pick of the week: <a href="http://www.joelonsoftware.com/items/2009/11/01.html" target="_blank">Figuring Out What Your Company Is All About</a></p>
<p><strong><u>General</u></strong></p>
<ul>
<li><strong><a href="http://blog.wekeroad.com/tekpub/hello-tekpub/">Hello Tekpub</a>:</strong> Rob Conery announces <a href="http://tekpub.com/">TekPub.com</a>, a new site he&#8217;s launched with <a href="http://averyblog.com/">James Avery</a> providing screencasts with content provided by the topic experts themselves. </li>
<li><strong><a href="http://weblogs.asp.net/scottgu/archive/2009/10/26/wpf-4-vs-2010-and-net-4-0-series.aspx">WPF 4 (VS 2010 and .NET 4.0 Series)</a>:</strong> Scott Guthrie shows off a bunch of new enhancements and features coming to WPF in .NET 4.0. </li>
<li><strong><a href="http://blog.codeville.net/2009/11/04/selective-unit-testing-costs-and-benefits/">Selective Unit Testing &#8211; Costs and Benefits</a>:</strong> Steve Sanderson examines the different kinds of code that benefit from unit tests and the costs involved in unit testing. </li>
<li><strong><a href="http://devlicio.us/blogs/hadi_hariri/archive/2009/10/29/it-s-all-about-the-delivery.aspx" target="_blank">It&#8217;s All About The Delivery</a>:</strong> Hadi Hariri breaks down dependency injection to the bare essentials. </li>
<li><strong><a href="http://www.codethinked.com/post/2009/11/05/Ite28099s-Okay-To-Write-Unit-Tests.aspx" target="_blank">It&#8217;s Okay To Write Unit Tests</a>:</strong> Justin Etheredge shares seven steps to writing better unit tests. </li>
</ul>
<p><strong><u>Web Development</u></strong></p>
<ul>
<li><strong><a href="http://west-wind.com/Weblog/posts/54760.aspx">ClientIDMode in ASP.NET 4.0</a>:</strong> Rick Strahl explains the new ClientIDMode in ASP.NET 4.0 that lets you give your WebForm controls fixed IDs rather than the default munged ones. </li>
<li><strong><a href="http://www.codinghorror.com/blog/archives/001307.html">Revisiting &quot;The Fold&quot;</a>:</strong> Jeff Atwood questions whether the age old rule about keeping content above the fold is still valid. </li>
<li><strong><a href="http://blogs.msdn.com/jnak/archive/2009/11/06/couple-neat-windows-azure-storage-related-announcements.aspx">Couple Neat Windows Azure Storage Related Announcements</a>:</strong> Jim Nakashima passes along two Azure announcements &#8211; the Windows Azure CDN and custom storage domain names. </li>
<li><strong><a href="http://geekswithblogs.net/thomasweller/archive/2009/11/02/unit-testing-asp.net-mvc-routes.aspx" target="_blank">Unit Testing ASP.NET MVC Routes</a>:</strong> Thomas Weller demonstrates a way to unit test your ASP.NET MVC routes. </li>
<li><strong><a href="http://jeffreypalermo.com/blog/asp-net-mvc-wins-with-simplicity-not-features/" target="_blank">ASP.NET MVC Wins With Simplicity, Not Features</a>:</strong> Jeffrey Palermo concludes that ASP.NET MVC&#8217;s simplicity is why users, not Microsoft, are shouting its praises from the mountain tops &#8211; and as a user, I couldn&#8217;t agree more! </li>
</ul>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/mbXa4bH9SPw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2009/11/22/weekly-web-nuggets-81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2009/11/22/weekly-web-nuggets-81/</feedburner:origLink></item>
		<item>
		<title>Weekly Web Nuggets #80</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/0iGMwGSeltk/</link>
		<comments>http://codemonkeylabs.com/2009/11/01/weekly-web-nuggets-80/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 21:50:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Weekly Web Nuggets]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/weekly-web-nuggets/80/</guid>
		<description><![CDATA[Pick of the week: Understanding Public Clouds: IaaS, Paas, &#38; SaaS General VS 2010 and .NET 4.0 Beta 2: Scott Guthrie announces the highly anticipated Beta 2 of Visual Studio 2010 and .NET 4.0. In additional to all the great &#8230; <a href="http://codemonkeylabs.com/2009/11/01/weekly-web-nuggets-80/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pick of the week: <a href="http://www.keithpij.com/Home/tabid/36/EntryID/27/Default.aspx" target="_blank">Understanding Public Clouds: IaaS, Paas, &amp; SaaS</a></p>
<p><strong><u>General</u></strong></p>
<ul>
<li><strong><a href="http://weblogs.asp.net/scottgu/archive/2009/10/19/vs-2010-and-net-4-0-beta-2.aspx">VS 2010 and .NET 4.0 Beta 2</a>:</strong> Scott Guthrie announces the highly anticipated Beta 2 of Visual Studio 2010 and .NET 4.0. In additional to all the great new stuff coming in 4.0, Beta 2 includes a go-live license! </li>
<li><strong><a href="http://elegantcode.com/2009/10/16/mapping-from-idatareaderidatarecord-with-automapper/" target="_blank">Mapping From IDataReader/IDataRecord with AutoMapper</a>:</strong> Jan Van Ryswyck shows how you can use <a href="http://automapper.codeplex.com/" target="_blank">AutoMapper</a> to help alleviate a lot of the tedious, repetitive code typically needed with straight ADO.NET. </li>
<li><strong><a href="http://www.codinghorror.com/blog/archives/001306.html" target="_blank">Treating User Myopia</a>:</strong> Jeff Atwood offers some excellent UI design advice about how your users more than likely see your application. </li>
<li><strong><a href="http://blogs.msdn.com/jasonall/archive/2009/10/27/linqlite.aspx" target="_blank">LinqLite</a>:</strong> Jason Allor has put together a library to help with writing your own Linq providers. </li>
<li><strong><a href="http://microserf.wordpress.com/2009/10/30/using-a-personal-kanban-board/" target="_blank">Using a Personal Kanban Board</a>:</strong> Peter Microserf tells us how using a personal kanban board has helped him get organized and get things done. </li>
</ul>
<p><strong><u>Web Development</u></strong></p>
<ul>
<li><strong><a href="http://haacked.com/archive/2009/10/20/vs10beta2-and-aspnetmvc.aspx">VS 2010 Beta 2 From an ASP.NET MVC Perspective</a>:</strong> Phil Haack focuses on what VS 2010 means to ASP.NET MVC developers. </li>
<li><strong><a href="http://timheuer.com/blog/archive/2009/10/22/can-i-use-vs2010-for-silverlight-3-development.aspx">Using Visual Studio 2010 for Silverlight Development</a>:</strong> Tim Heuer writes about how to develop Silverlight applications using Visual Studio 2010. </li>
<li><strong><a href="http://www.hanselman.com/blog/TheMinutesOn9Channel9VideoInterviewsWithTheASPNET4Team.aspx">The Minutes On 9 &#8211; Channel 9 Video Interviews with the ASP.NET 4 Team</a>:</strong> Scott Hanselman interviews a bunch of ASP.NET team members about what&#8217;s awesome in ASP.NET 4. </li>
<li><strong><a href="http://stephenwalther.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx" target="_blank">Using the New Microsoft Ajax Minifier</a>:</strong> Stephen Walther demonstrates how to make use of the <a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488" target="_blank">Microsoft Ajax Minifier</a>. </li>
<li><strong><a href="http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx" target="_blank">ASP.NET MVC View Model Patterns</a>:</strong> Steve Michelotti shares the pros and cons of the various ways you can build your view models. </li>
<li><strong><a href="http://odetocode.com/Blogs/scott/archive/2009/10/19/mvc-2-areas-and-containers.aspx" target="_blank">MVC 2 Areas and Containers</a>:</strong> K. Scott Allen shows an effective way of combining your favorite IoC container with the default controller factory in ASP.NET MVC 2. </li>
<li><strong><a href="http://www.smashingmagazine.com/2009/10/26/modern-css-layouts-the-essential-characteristics/" target="_blank">Modern CSS Layouts &#8211; The Essential Characteristics</a>:</strong> Smashing Magazine examines key concepts for creating successful CSS layouts using the latest technologies, like CSS 3 and HTML 5, that are starting to be more and more supported by browsers. </li>
<li><strong><a href="http://west-wind.com/weblog/posts/54760.aspx" target="_blank">ClientIDMode in ASP.NET 4.0</a>:</strong> Rick Strahl gets into the nitty-gritty details on what the new client ID mode is in ASP.NET 4.0 and how to use it. </li>
<li><strong><a href="http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/10/27/mvc-web-testing-strategies-verifying-content.aspx" target="_blank">MVC Web Testing Strategies &#8211; Verifying Content</a>:</strong> Jimmy Bogard investigates the challenges of testing rendered content and shows one possible approach. </li>
<li><strong><a href="http://www.secretgeek.net/html5_pilgrim.asp" target="_blank">HTML 5, A 3 Minute Guide</a>:</strong> Curious what all the fuss is over HTML 5? Check out this simple introduction to some key differences. </li>
</ul>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/0iGMwGSeltk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2009/11/01/weekly-web-nuggets-80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2009/11/01/weekly-web-nuggets-80/</feedburner:origLink></item>
		<item>
		<title>Weekly Web Nuggets #79</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/CgXIaiKq-NM/</link>
		<comments>http://codemonkeylabs.com/2009/10/18/weekly-web-nuggets-79/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 23:06:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Weekly Web Nuggets]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/weekly-web-nuggets/79/</guid>
		<description><![CDATA[Pick of the week: Software Externalities General Through the Eyes of Expression Blend: Check out these excellent step-by-step guides on using Expression Blend. Git# &#8211; First Public Release: Miguel de Icaza announces the first public release of Git#, a managed &#8230; <a href="http://codemonkeylabs.com/2009/10/18/weekly-web-nuggets-79/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pick of the week: <a href="http://haacked.com/archive/2009/10/13/software-externalities.aspx" target="_blank">Software Externalities</a></p>
<p><strong><u>General</u></strong></p>
<ul>
<li><strong><a href="http://visitmix.com/labs/rosetta/eyesofblend/" target="_blank">Through the Eyes of Expression Blend</a>:</strong> Check out these excellent step-by-step guides on using Expression Blend. </li>
<li><strong><a href="http://tirania.org/blog/archive/2009/Oct-12.html" target="_blank">Git# &#8211; First Public Release</a>:</strong> Miguel de Icaza announces the first public release of Git#, a managed library for working with Git repositories. </li>
<li><strong><a href="http://martinfowler.com/bliki/TechnicalDebtQuadrant.html" target="_blank">Technical Debt Quadrant</a>:</strong> Martin Fowler explains the subtle, but important, differences between the many things we often classify as technical debt.</li>
</ul>
<p><strong><u>Web Development</u></strong></p>
<ul>
<li><strong><a href="http://dotnetslackers.com/articles/aspnet/Implementing-RESTful-Routes-and-Controllers-in-ASP-NET-MVC-2-0.aspx" target="_blank">Implementing RESTful Routes &amp; Controllers in ASP.NET MVC 2.0</a>:</strong> Ben Scheirman shows how to easily implement RESTful APIs using the next version of ASP.NET MVC. </li>
<li><strong><a href="http://odetocode.com/Blogs/scott/archive/2009/10/13/asp-net-mvc2-preview-2-areas-and-routes.aspx" target="_blank">ASP.NET MVC 2.0 Preview 2 &#8211; Areas and Routes</a>:</strong> K. Scott Allen takes a look the ins and outs of the new areas functionality in ASP.NET MVC 2.0. </li>
<li><strong><a href="http://weblogs.asp.net/srkirkland/archive/2009/10/13/common-web-config-transformations-with-visual-studio-2010.aspx" target="_blank">Common Web.config Transformations with Visual Studio 2010</a>:</strong> Scott Kirkland shares some examples of the new web.config transformations in Visual Studio 2010. </li>
<li><strong><a href="http://www.smashingmagazine.com/2009/10/14/css-differences-in-internet-explorer-6-7-and-8/" target="_blank">CSS Differences in Internet Explorer 6, 7, and 8</a>:</strong> A good reference to all the quirks we have to deal with when targeting the browser we love to hate. </li>
<li><strong><a href="http://weblogs.asp.net/scottgu/archive/2009/10/15/announcing-microsoft-ajax-library-preview-6-and-the-microsoft-ajax-minifier.aspx" target="_blank">Announcing Microsoft Ajax Library (Preview 6) and the Microsoft Ajax Minifier</a>:</strong> Scott Guthrie rolls out the preview of some really neat new ASP.NET AJAX components, including a client script loader and a script minifier.</li>
<li><strong><a href="http://www.jamessenior.com/post/How-the-Script-Loader-in-the-Microsoft-Ajax-Library-will-make-your-life-wonderful.aspx" target="_blank">How the Script Loader in the Microsoft Ajax Library Will Make Your Life Wonderful</a>:</strong> James Senior reveals much more awesomeness than I had originally expected in the new Script Loader. </li>
<li><strong><a href="http://www.ronaldwidha.net/2009/10/18/10-features-why-asp-net-4-is-better-for-public-website/" target="_blank">10 Features Why ASP.NET 4.0 is Better For Public Website</a>:</strong> Ronald Widha lists 10 new features that make ASP.NET 4.0 a great platform for public sites. </li>
</ul>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/CgXIaiKq-NM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2009/10/18/weekly-web-nuggets-79/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2009/10/18/weekly-web-nuggets-79/</feedburner:origLink></item>
		<item>
		<title>Weekly Web Nuggets #78</title>
		<link>http://feeds.codemonkeylabs.com/~r/codemonkeylabs/~3/VfQ6xAPci5I/</link>
		<comments>http://codemonkeylabs.com/2009/10/05/weekly-web-nuggets-78/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 10:51:45 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Weekly Web Nuggets]]></category>

		<guid isPermaLink="false">http://codemonkeylabs.com/weekly-web-nuggets/78/</guid>
		<description><![CDATA[Pick of the week: An Engineer&#8217;s Guide to Bandwidth General Prefer Dependency Injection to Service Location: Steven Harman explains the difference between two common practices for using Inversion of Control containers and shares his opinion why one is better than &#8230; <a href="http://codemonkeylabs.com/2009/10/05/weekly-web-nuggets-78/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pick of the week: <a href="http://developer.yahoo.net/blog/archives/2009/10/a_engineers_gui.html">An Engineer&#8217;s Guide to Bandwidth</a></p>
<p><strong><u>General</u></strong></p>
<ul>
<li><strong><a href="http://stevenharman.net/blog/archive/2009/09/25/prefer-dependency-injection-to-service-location.aspx" target="_blank">Prefer Dependency Injection to Service Location</a>:</strong> Steven Harman explains the difference between two common practices for using Inversion of Control containers and shares his opinion why one is better than the other. </li>
<li><strong><a href="http://blog.wekeroad.com/blog/make-bdd-your-bff-2/" target="_blank">Make BDD Your BFF</a>:</strong> Rob Conery has a great step-by-step guide to understanding Behavior Driven Design. </li>
<li><strong><a href="http://devlicio.us/blogs/casey/archive/2009/09/21/make-it-easy-to-refactor.aspx" target="_blank">Make It Easy to Refactor</a>:</strong> Jak Charlton shares some thoughts on making your code easy to refactor. </li>
<li><strong><a href="http://www.olegsych.com/2009/09/t4-preprocessed-text-templates/" target="_blank">Understanding T4 &#8211; Preprocessed Text Templates</a>:</strong> Oleg Sych explains T4 templates. </li>
<li><strong><a href="http://srtsolutions.com/blogs/billwagner/archive/2009/09/30/lazy-lt-t-gt-on-demand-construction-in-net-4-0.aspx">Lazy&lt;T&gt; &#8211; On Demand Construction in .NET 4.0</a>:</strong> Bill Wagner shows off lazy object instantiation in .NET 4.0; not only is it easy to use, it&#8217;s also dead simple to make thread safe. </li>
<li><strong><a href="http://blog.goyello.com/2009/10/06/how-to-code-better-using-automapper/">How to Code Better using AutoMapper</a>:</strong> Maciej Gren demonstrates how <a href="http://automapper.codeplex.com/">AutoMapper</a> can be a huge help when coding by automagically translating values between classes. </li>
</ul>
<p><strong><u>Web Development</u></strong></p>
<ul>
<li><strong><a href="http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx" target="_blank">HTML Encoding Code Blocks With ASP.NET 4.0</a>:</strong> Phil Haack highlights a great new feature coming in ASP.NET 4.0 &#8211; a new code block syntax for automatically HTML encoding output. </li>
<li><strong><a href="http://weblogs.asp.net/scottgu/archive/2009/09/24/announcing-the-websitespark-program.aspx" target="_blank">Announcing the WebsiteSpark Program</a>:</strong> Scott Guthrie announces WebsiteSpark, a new program for web development professionals that includes a lot of software to get up and running. </li>
<li><strong><a href="http://www.hanselman.com/blog/MultiBrowserOrCrossBrowserTestingAndDeconstructingMicrosoftExpressionWebSuperPreview.aspx" target="_blank">Mutli-Browser or Cross-Browser Testing and Deconstructing Microsoft Expression Web SuperPreview</a>:</strong> Scott Hanselman compares different ways to test your site in various browsers and shows off some really cool stuff you can do using Expression Web SuperPreview. </li>
<li><strong><a href="http://haacked.com/archive/2009/10/01/asp.net-mvc-preview-2-released.aspx" target="_blank">ASP.NET MVC 2.0 Preview 2</a>:</strong> Phil Haack announces the release of the second preview of ASP.NET MVC 2.0 and highlights a few of the major changes. </li>
<li><strong><a href="http://blogs.iis.net/msdeploy/archive/2009/09/24/web-deployment-tool-1-0-has-shipped.aspx" target="_blank">Web Deployment Tool 1.0 Has Shipped</a>:</strong> The Microsoft Web Deployment Team announces the 1.0 release of the Web Deployment Tool. </li>
<li><strong><a href="http://devlicio.us/blogs/sergio_pereira/archive/2009/09/19/javascript-and-its-love-for-zeroes.aspx" target="_blank">JavaScript and Its Love For Zeroes</a>:</strong> Sergio Pereira explains the intricacies of parsing strings into integers using JavaScript and provides a real-world example of where this could cause massive headaches. </li>
<li><strong><a href="http://elijahmanor.com/webdevdotnet/post/Unit-Testing-with-jQuery-using-FireUnit-QUnit.aspx" target="_blank">Unit Testing with jQuery using FireUnit &amp; QUnit</a>:</strong> Elijah Manor takes a look at unit testing your JavaScript code. </li>
<li><strong><a href="http://blog.maartenballiauw.be/post/2009/10/08/Leveraging-ASPNET-MVC-2-futures-ViewState.aspx" target="_blank">Leveraging ASP.NET MVC 2 Futures &#8220;ViewState&#8221;</a>:</strong> Maarten Balliauw shows how you can introduce ViewState-like functionality in you ASP.NET MVC 2 application (gasp!). The first real comment asks the obvious question, &#8220;Why???&#8221;.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/codemonkeylabs/~4/VfQ6xAPci5I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://codemonkeylabs.com/2009/10/05/weekly-web-nuggets-78/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://codemonkeylabs.com/2009/10/05/weekly-web-nuggets-78/</feedburner:origLink></item>
	</channel>
</rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: codemonkeylabs.com @ 2012-01-28 21:01:16 -->

