<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>CodeClimber</title>
        <link>http://codeclimber.net.nz/Default.aspx</link>
        <description>Climbing the Cliffs of C#</description>
        <language>en-NZ</language>
        <copyright>Simone Chiaretta</copyright>
        <generator>Subtext Version 2.5.1.0</generator>
        <image><link>http://www.codeclimber.net.nz/</link><url>http://www.codeclimber.net.nz/Skins/CodeClimber/Images/codeclimber_50.gif</url><title>CodeClimber</title></image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Codeclimber" /><feedburner:info uri="codeclimber" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>45.49481143093878</geo:lat><geo:long>9.219868183135986</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><item>
            <title>TechDays Belgium 2012: a look at interesting sessions</title>
            <category>Community Life</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/tbGhJHGRsGU/TechDays-Belgium-2012-a-look-at-interesting-sessions.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://bit.ly/mstechdays2012"&gt;TechDays 2012 Belgium&lt;/a&gt; is just 2 weeks away, and it’s time to have a look at the &lt;a href="http://www.microsoft.com/belux/techdays/2012/Sessions.aspx"&gt;agenda&lt;/a&gt; and decide which of the sessions to attend.&lt;/p&gt;  &lt;p&gt;My highlights are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=287"&gt;A Look at ASP.NET MVC 4 &lt;/a&gt;- &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=135"&gt;Scott Guthrie&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=280"&gt;MVVM Applied: From Silverlight to Windows Phone to Windows 8&lt;/a&gt; - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=134"&gt;Laurent Bugnion&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=246"&gt;SignalR. Code, not toothpaste&lt;/a&gt; - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=23"&gt;Maarten Balliauw&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=199"&gt;Building rich Single Page Applications (SPAs) for desktop, mobile, and tablet with ASP.NET MVC 4&lt;/a&gt; - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=109"&gt;Steve Sanderson&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But filling in all the slots was a tough decision, especially in the second day, with lot of overlapping interesting talks (whereas in the first day some time slots were almost empty) but here is my tentative agenda for the 3 days&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;14 February:      &lt;ul&gt;       &lt;li&gt;8:45 – 10:15 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=266"&gt;Opening Session for the Dev track with Scott Guthrie&lt;/a&gt; – &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=135"&gt;Scott Guthrie&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;10:45 – 12:00 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=267"&gt;Welcome to the Metro Application Platform &lt;/a&gt;- &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=58"&gt;Katrien De Graeve&lt;/a&gt; , &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=24"&gt;Gill Cleeren&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;13:00 – 14:15 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=287"&gt;A Look at ASP.NET MVC 4 &lt;/a&gt;- &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=135"&gt;Scott Guthrie&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;14:30 – 15:45 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=198"&gt;HTML5 Quick Start &lt;/a&gt;- &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=68"&gt;Jeff Prosise&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;16:15 – 17:30 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=245"&gt;What's new in Visual Studio 11 for Application Lifecycle Management &lt;/a&gt;- &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=117"&gt;Brian Keller&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;17:45 – 19:00 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=199"&gt;Building rich Single Page Applications (SPAs) for desktop, mobile, and tablet with ASP.NET MVC 4&lt;/a&gt; - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=109"&gt;Steve Sanderson&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;15 February:      &lt;ul&gt;       &lt;li&gt;9:00 – 10:15 – Either &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=286"&gt;ScottGu Unplugged&lt;/a&gt; or &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=289"&gt;Metro Design Deep Dive&lt;/a&gt; by &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=140"&gt;Arturo Toledo&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;10:45 – 12:00 – Either &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=268"&gt;Take a Ride on the Metro&lt;/a&gt; (&lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=68"&gt;Jeff Prosise&lt;/a&gt;) or &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=271"&gt;Windows Phone: From Idea to Published Game in 75 minutes&lt;/a&gt; (&lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=72"&gt;Rob Miles&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;13:00 – 14:15 – Either &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=239"&gt;The zen of async: Best practices for best performance&lt;/a&gt; or &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=272"&gt;Sending Push Notifications using the Windows Push Notification Service and Azure&lt;/a&gt; or maybe also the entrepreneur track about &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=259"&gt;15 Lessons from 5 MIC Boostcamps to create an IT Startup&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;14:30 – 15:45 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=280"&gt;MVVM Applied: From Silverlight to Windows Phone to Windows 8&lt;/a&gt; - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=134"&gt;Laurent Bugnion&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;16:15 – 17:30 - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=212"&gt;Windows Phone Launchers and Choosers&lt;/a&gt; - &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=110"&gt;Ben Riga&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;17:45 – 19:00 – will probably attend again the &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=246"&gt;SignalR. Code, not toothpaste&lt;/a&gt; session by &lt;a href="http://www.microsoft.com/belux/techdays/2012/SpeakerDetail.aspx?speakerId=23"&gt;Maarten Balliauw&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;16 February: This day is easy, there are just 3 deep dive tracks, one for developers and twop for IT pros, so I’ll follow the &lt;strong&gt;Web Dev Futures Day&lt;/strong&gt; with sessions on:       &lt;ul&gt;       &lt;li&gt;ASP.NET 4.5 and Dev11 &lt;/li&gt;        &lt;li&gt;ASP.NET WebForms 4.5 &lt;/li&gt;        &lt;li&gt;ASP.NET MVC 4 &lt;/li&gt;        &lt;li&gt;HTML5 &lt;/li&gt;        &lt;li&gt;WebSockets &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So, hope to see you there.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:eecd541e-d440-4284-aee1-0252e43898b5" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/techdays12/default.aspx" rel="tag"&gt;techdays12&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/aspnetmvc/default.aspx" rel="tag"&gt;aspnetmvc&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/wp7dev/default.aspx" rel="tag"&gt;wp7dev&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/977.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=tbGhJHGRsGU:iXjbfJnFTMc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=tbGhJHGRsGU:iXjbfJnFTMc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=tbGhJHGRsGU:iXjbfJnFTMc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=tbGhJHGRsGU:iXjbfJnFTMc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=tbGhJHGRsGU:iXjbfJnFTMc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=tbGhJHGRsGU:iXjbfJnFTMc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=tbGhJHGRsGU:iXjbfJnFTMc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=tbGhJHGRsGU:iXjbfJnFTMc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/tbGhJHGRsGU" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2012/01/31/TechDays-Belgium-2012-a-look-at-interesting-sessions.aspx</guid>
            <pubDate>Tue, 31 Jan 2012 12:01:26 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2012/01/31/TechDays-Belgium-2012-a-look-at-interesting-sessions.aspx#feedback</comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/977.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2012/01/31/TechDays-Belgium-2012-a-look-at-interesting-sessions.aspx</feedburner:origLink></item>
        <item>
            <title>The last UGIALT.net Conference</title>
            <category>Community Life</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/7UMU6XVBrGw/The-last-UGIALT-net-Conference.aspx</link>
            <description>&lt;p align="center"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="logo_big" border="0" alt="logo_big" src="http://codeclimber.net.nz/images/codeclimber_net_nz/WindowsLiveWriter/ThelastUGIALT.netConference_AAA4/logo_big_3.png" width="450" height="129" /&gt;&lt;/p&gt;  &lt;p&gt;Last Saturday it was the &lt;a href="http://codeclimber.net.nz/archive/2011/10/24/Fix-the-date-and-call-for-presenters-7th-UGIALT-net.aspx"&gt;7th and&lt;strong&gt; last&lt;/strong&gt; Conference&lt;/a&gt; organized by &lt;a href="http://ugialt.net/"&gt;UGIALT.net&lt;/a&gt;. With &lt;strong&gt;last&lt;/strong&gt; I really mean &lt;em&gt;last&lt;/em&gt;, as in there won’t be any more conferences organized by UGIALT.net, at least not in its current form.&lt;/p&gt;  &lt;h3&gt;This is the end&lt;/h3&gt;  &lt;p&gt;Those who attended know the reasons why we decided to terminate operations, but if you were not there, you can have a look at the &lt;a href="http://www.slideshare.net/simonech/ugialtnet"&gt;keynote’s slides&lt;/a&gt;, watch the &lt;a href="http://vimeo.com/35745492"&gt;video of the keynote&lt;/a&gt;, or reading the more detailed explanations on &lt;a href="http://blog.codiceplastico.com/ema/"&gt;Emanuele&lt;/a&gt;’s blog post, &lt;a href="http://blog.codiceplastico.com/ema/?p=224"&gt;Perchè UGIALT.net ha chiuso?&lt;/a&gt;, or on my Italian blog &lt;a href="http://blogs.ugidotnet.org/piyo/archive/2012/01/26/lrsquoultima-ugialt.net-conference.aspx"&gt;L’ultima UGIALT.net conference&lt;/a&gt;. And for those who don’t read Italian I’ll try to summarize the reasons here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;we started (&lt;a href="http://codeclimber.net.nz/archive/2007/10/31/An-ALT.NET-group-is-born-in-Italy.aspx"&gt;almost 4 years and half ago&lt;/a&gt;) with the goal of pushing Microsoft and the other .NET user groups to widen their horizons, and it looks like we succeeded: thanks to the ALT.NET movement Microsoft has become more agile, more focused on good practices and more open to Open Source, and other user groups started to include in their agenda more talks about fundamentals and practices and less “&lt;em&gt;how to use MS XYZ lib&lt;/em&gt;”. &lt;/li&gt;    &lt;li&gt;the ALT.NET movement (in Italy, but also worldwide) kind of split in two groups: the ones satisfied with the direction MS and other traditional user groups took, and the ones not satisfied. The first merged back into the traditional communities, and the latter moved to other platforms (ruby, nodejs and similar). &lt;/li&gt;    &lt;li&gt;And finally, being too successful, with more than 150 attendees and many “mainstream developers” attending our last conference, we realized that the next step should have been a bigger conference, in a bigger venue. But that wouldn’t have been possible with just the 3 of us organizing it in our (little) spare time, financed just by donations. We should have set up a legal and fiscal entity to sell tickets, get paying sponsors, pay for the venue and either dedicate more time or find someone to help us (which didn’t happen in 4 years). But that’s a direction we didn’t want to take. We hope the other Italian User Groups will follow our steps, and keep on including ALTernative tracks in their conferences. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;The conference&lt;/h3&gt;  &lt;p&gt;As I already mentioned this was the edition that beat all records: the highest number of registrations (more than &lt;strong&gt;240&lt;/strong&gt;), the highest number of attendees (around &lt;strong&gt;150&lt;/strong&gt;, the maximum, maybe more, capacity of the venue), the highest value of gifts and prizes for the attendees (more than &lt;strong&gt;60.000€&lt;/strong&gt; of commercial value), mainly thanks to &lt;a href="http://umbraco.com/"&gt;Umbraco&lt;/a&gt; for its &lt;a href="http://umbraco.com/help-and-support/video-tutorials/"&gt;Umbraco.TV&lt;/a&gt; subscriptions for everybody, and to &lt;a href="http://www.mindscapehq.com/"&gt;Mindscape&lt;/a&gt; for the gift to the speakers and the 20 licenses of &lt;a href="http://www.mindscapehq.com/products/lightspeed"&gt;LightSpeed&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;And &lt;a href="http://trendistic.indextank.com/uan12"&gt;#uan12&lt;/a&gt; has even been an official twitter &lt;strong&gt;trending topic&lt;/strong&gt; on Saturday in Italy: I think this is yet another record, being the &lt;em&gt;first developer conference in Italy to become a trending topic&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;If you couldn’t attend, we published all the slides online on Joind.in: &lt;a href="http://joind.in/event/uan12"&gt;http://joind.in/event/uan12&lt;/a&gt;. If you attended please check-in on the event, and leave your feedback.&lt;/p&gt;  &lt;p&gt;We also recorded most of the presentations, and they are available on the Vimeo channel of DotNetMarche, one of our two main spiritual heirs, in the &lt;a href="http://vimeo.com/album/1814185"&gt;7th UGIALT.net Conference video album&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;But a conference is not only technical contents, it’s also user interaction and social media: you can see what happened, or live it again, in the &lt;a href="http://uan12.peppertweet.com/"&gt;photo twitter wall created by PepperTweet for UAN12&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;What’s next?&lt;/h3&gt;  &lt;p&gt;We pushed the other UGs during these 4 years, now we hope some of them will continue on our footsteps. In the context of .NET I’m pretty sure we’ll see a lot of good stuff coming from &lt;a href="http://dotnetmarche.org/"&gt;DotNetMarche&lt;/a&gt;, and outside of the .NET world, there is a very fervent community in &lt;a href="http://en.wikipedia.org/wiki/Brescia"&gt;Brescia&lt;/a&gt;, called &lt;a href="http://www.webdebs.org/"&gt;WEBdeBS&lt;/a&gt;, which is &lt;a href="http://www.webdebs.org/2011/lanno-che-verra/#more-443"&gt;organizing&lt;/a&gt; (and &lt;a href="http://www.webdebs.org/category/eventi/"&gt;has organized&lt;/a&gt;) a lot of interesting events.&lt;/p&gt;  &lt;p align="center"&gt; &lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="407693_3108061259636_1207452102_3374094_2060978480_n" border="0" alt="407693_3108061259636_1207452102_3374094_2060978480_n" src="http://codeclimber.net.nz/images/codeclimber_net_nz/WindowsLiveWriter/ThelastUGIALT.netConference_AAA4/407693_3108061259636_1207452102_3374094_2060978480_n_3.jpg" width="550" height="310" /&gt; &lt;/p&gt;  &lt;p&gt;Personally, now I’ll dedicate more time to coding, other interests (like Arduino). I’ll help WEBdeBS and DotNetMarche in some of their activities and will try to start collaborating more with the local (as in Belgian) communities.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6e2371d2-4b9f-474f-b017-c376ebd0a0f7" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/uan12/default.aspx" rel="tag"&gt;uan12&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/ugialtnet/default.aspx" rel="tag"&gt;ugialtnet&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/alt.net/default.aspx" rel="tag"&gt;alt.net&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/WEBdeBS/default.aspx" rel="tag"&gt;WEBdeBS&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/conference/default.aspx" rel="tag"&gt;conference&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/976.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=7UMU6XVBrGw:XnmDkoacjXc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=7UMU6XVBrGw:XnmDkoacjXc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=7UMU6XVBrGw:XnmDkoacjXc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=7UMU6XVBrGw:XnmDkoacjXc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=7UMU6XVBrGw:XnmDkoacjXc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=7UMU6XVBrGw:XnmDkoacjXc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=7UMU6XVBrGw:XnmDkoacjXc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=7UMU6XVBrGw:XnmDkoacjXc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/7UMU6XVBrGw" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2012/01/27/The-last-UGIALT-net-Conference.aspx</guid>
            <pubDate>Fri, 27 Jan 2012 13:57:50 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2012/01/27/The-last-UGIALT-net-Conference.aspx#feedback</comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/976.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2012/01/27/The-last-UGIALT-net-Conference.aspx</feedburner:origLink></item>
        <item>
            <title>What&amp;rsquo;s new in ASP.NET MVC 4: slides and demo are now online</title>
            <category>ASP.NET MVC</category>
            <category>Community Life</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/TdqGzUlqi60/Whatrsquos-new-in-ASP-NET-MVC-4-slides-and-demo.aspx</link>
            <description>&lt;p&gt;Today I had my first live webcast for Microsoft Belgium, about the new features &lt;a href="http://codeclimber.net.nz/archive/2011/09/15/Microsoft-dev-stack-vNext-from-Build.aspx"&gt;released with ASP.NET MVC 4 at Build in September&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There were around 80+ people registered and around 50 people attending, and almost nobody left before the end of the webcast, so I guess it pretty well. We also are aware there were some glitches in the audio during the async part of the webcast: the audio was also recorded directly from the mic, so the video that will be published in the next week on Channel9 will have good audio.&lt;/p&gt;  &lt;p&gt;Or just register for the &lt;a href="http://bit.ly/mstechdays2012"&gt;TechDays2012 Belgium&lt;/a&gt; next February, where &lt;a href="http://weblogs.asp.net/scottgu/"&gt;The Gu&lt;/a&gt;, besides giving the &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=266"&gt;opening dev session&lt;/a&gt;, will give &lt;a href="http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=287"&gt;a session on ASP.NET MVC 4&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Here are the &lt;a href="http://www.slideshare.net/simonech/whats-new-in-aspnet-mvc-4"&gt;slides&lt;/a&gt; I uploaded to SlideShare.&lt;/p&gt;  &lt;div style="width: 425px" id="__ss_11117660"&gt;&lt;strong style="margin: 12px 0px 4px; display: block"&gt;&lt;a title="What's new in asp.net mvc 4" href="http://www.slideshare.net/simonech/whats-new-in-aspnet-mvc-4" target="_blank"&gt;What's new in asp.net mvc 4&lt;/a&gt;&lt;/strong&gt; &lt;iframe height="355" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/11117660" frameborder="0" width="425" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/simonech" target="_blank"&gt;Simone Chiaretta&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Also available for download are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://db.tt/WEHMeVtG"&gt;Original PPT Slide&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://db.tt/Wtnzj9YY"&gt;Demos&lt;/a&gt; (14Mb) &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Video&lt;/h3&gt;  &lt;p&gt;The video has been published on Channel9: &lt;a href="http://channel9.msdn.com/posts/Whats-New-in-ASPNET-MVC-4"&gt;What's New in ASP.NET MVC 4&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;iframe style="height:288px;width:512px" src="http://channel9.msdn.com/posts/Whats-New-in-ASPNET-MVC-4/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;h3&gt;Some resources&lt;/h3&gt;  &lt;p&gt;Additional resources to check are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.asp.net/mvc/mvc4"&gt;MVC 4 Main Page and Dev Preview&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.asp.net/whitepapers/mvc4-release-notes"&gt;Release Notes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://aspnet.codeplex.com/wikipage?title=ASP.NET%20MVC%204%20RoadMap"&gt;Roadmap&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/events/BUILD/BUILD2011/TOOL-803T"&gt;Phil Haack’s Mobility Talk, BUILD Sep 2011&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://haacked.com/archive/2011/09/22/writing-a-recipe-for-asp-net-mvc-4-developer-preview.aspx"&gt;Create an MVC4 Recipe&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://codeclimber.net.nz/archive/2012/01/09/evolution-of-async-controller-asp-net-mvc.aspx"&gt;The evolution of Async controllers in ASP.NET MVC&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://codeclimber.net.nz/archive/2011/11/30/Web-API-preview-6-is-out-how-to-get-a.aspx"&gt;WCF WebAPI preview 6: how to get a RESTful mind&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=MVC4VS2010&amp;amp;prerelease=true"&gt;Download ASP.NET MVC 4 for VS 2010&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Not related to ASP.NET MVC 4, but since a few people asked how I got the Lumia 800 skin on my WP7 emulator, here is the link: &lt;a href="http://wp7emuskinswitcher.codeplex.com/"&gt;Windows Phone 7 Emulator Skin Switcher&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If you attended, please let me know how it went, and if you didn’t stay tuned: in a week or so the video will be available on Channel9. I’ll write a new post with the video.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:518defe5-2d1a-4561-a1c4-caadb853186f" class="wlWriterSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/aspnetmvc4/default.aspx" rel="tag"&gt;aspnetmvc4&lt;/a&gt; , &lt;a href="http://codeclimber.net.nz/tags/webcast/default.aspx" rel="tag"&gt;webcast&lt;/a&gt; , &lt;a href="http://codeclimber.net.nz/tags/msdnbelux/default.aspx" rel="tag"&gt;msdnbelux&lt;/a&gt; &lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/975.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=TdqGzUlqi60:df0Yn7_NC2E:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=TdqGzUlqi60:df0Yn7_NC2E:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=TdqGzUlqi60:df0Yn7_NC2E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=TdqGzUlqi60:df0Yn7_NC2E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=TdqGzUlqi60:df0Yn7_NC2E:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=TdqGzUlqi60:df0Yn7_NC2E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=TdqGzUlqi60:df0Yn7_NC2E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=TdqGzUlqi60:df0Yn7_NC2E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/TdqGzUlqi60" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2012/01/17/Whatrsquos-new-in-ASP-NET-MVC-4-slides-and-demo.aspx</guid>
            <pubDate>Tue, 17 Jan 2012 22:06:50 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2012/01/17/Whatrsquos-new-in-ASP-NET-MVC-4-slides-and-demo.aspx#feedback</comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/975.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2012/01/17/Whatrsquos-new-in-ASP-NET-MVC-4-slides-and-demo.aspx</feedburner:origLink></item>
        <item>
            <title>Getting started with Git and GitHub</title>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/iElgMI3wvbw/Getting-stated-with-Git-and-GitHub.aspx</link>
            <description>&lt;p&gt;Now that &lt;a href="http://subtextproject.com/"&gt;Subtext&lt;/a&gt;, the blogging engine I’m working (or at least I should) on together with &lt;a href="http://haacked.com/" rel="friend met colleague"&gt;Phil Haack&lt;/a&gt;, has been &lt;a href="https://github.com/Haacked/Subtext"&gt;officially moved to GitHub&lt;/a&gt; (guess &lt;a href="http://haacked.com/archive/2011/12/07/hello-github.aspx"&gt;the reason why&lt;/a&gt;), I finally have a reason to really study git and github.&lt;/p&gt;  &lt;p&gt;I already tried &lt;a href="http://codeclimber.net.nz/archive/2009/03/26/how-to-quickly-get-started-with-gitgithub.aspx"&gt;starting&lt;/a&gt; a few years ago, and even used it a bit lately to work on the &lt;a href="http://ugialt.net/"&gt;ugialt.net conference site&lt;/a&gt; (here the &lt;a href="https://github.com/emadb/conf-oo"&gt;conf-oo github repo&lt;/a&gt;), but never really studied in depth, and still didn’t fully get the key differences between a traditional source control and a distributed source control.&lt;/p&gt;  &lt;p&gt;So I asked around and found some good pointers.&lt;/p&gt;  &lt;h3&gt;Think Like (a) Git&lt;/h3&gt;  &lt;p&gt;The most recommended pointer I got is the &lt;a href="http://think-like-a-git.net/"&gt;Think Like (a) Git&lt;/a&gt; website, a self-proclaimed “Guide for the perplexed”. It’s a pretty nice tutorial covering all the key concepts of Git.&lt;/p&gt;  &lt;p&gt;It also comes with a &lt;a href="http://think-like-a-git.heroku.com/"&gt;slideshow&lt;/a&gt; and an &lt;a href="http://think-like-a-git.net/epic.html"&gt;all-in-one page&lt;/a&gt; if you want to print it or PDFize it.&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.amazon.com/gp/product/1430218339/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=codec04-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1430218339"&gt;ProGit book&lt;/a&gt; and site&lt;/h3&gt;  &lt;p&gt;The second most popular recommendation I got is the &lt;a href="http://www.amazon.com/gp/product/1430218339/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=codec04-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1430218339"&gt;Pro Git book&lt;/a&gt; from Apress. The thing that differentiate it from other books is its widespread usage of visuals and samples.&lt;/p&gt;  &lt;p&gt;The cool thing is that, while still being a &lt;a href="http://www.amazon.com/gp/product/1430218339/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=codec04-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1430218339"&gt;paper book&lt;/a&gt; and having a &lt;a href="http://www.amazon.com/gp/product/B004TTXLGI/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=codec04-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B004TTXLGI"&gt;Kindle version&lt;/a&gt;, both released on 2009, there is also a Creative Common licensed ebook (&lt;a href="http://progit.org/ebook/progit.pdf"&gt;PDF&lt;/a&gt;, &lt;a href="http://progit.org/ebook/progit.mobi"&gt;Mobi&lt;/a&gt;, &lt;a href="https://github.s3.amazonaws.com/media/progit.epub"&gt;ePub&lt;/a&gt;) and &lt;a href="http://progit.org/book/"&gt;also available for online reading&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The “code” for the book and his images &lt;a href="https://github.com/progit/progit"&gt;is available on github&lt;/a&gt; and is updated with fixes coming from readers.&lt;/p&gt;  &lt;h3&gt;Other Git books&lt;/h3&gt;  &lt;p&gt;But Pro Git is not the only book available. Other two interesting books are the &lt;a href="http://www.amazon.com/gp/product/1934356727/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=codec04-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1934356727"&gt;Pragmatic Guide to Git&lt;/a&gt;, published by Pragmatic Programmers and &lt;a href="http://www.amazon.com/gp/product/0596520123/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=codec04-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0596520123"&gt;Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development&lt;/a&gt;, by O'Reilly.&lt;/p&gt;  &lt;h3&gt;Cheat sheets&lt;/h3&gt;  &lt;p&gt;Then come the cheat sheets: &lt;a href="http://help.github.com/git-cheat-sheets/"&gt;GitHub lists a few ones&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;But I particularly like the one on &lt;a href="http://refcardz.dzone.com/refcardz/getting-started-git"&gt;DZone&lt;/a&gt;, which besides being a cheat sheet is also a compendium of the main key points, and one of the first, but still one of the best, &lt;a href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html"&gt;git cheat sheet&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Contributing to Open Source Projects On GitHub For .NET Developers video series&lt;/h3&gt;  &lt;p&gt;UPDATE: suggested by &lt;a href="http://iamnotmyself.com"&gt;Bobby Johnson&lt;/a&gt; in the comments, a series of 3 videos on how to use Git and GitHub for contributing to OSS projects:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://iamnotmyself.com/2010/09/05/contributing-to-open-source-projects-on-github-for-net-developers-part-1/"&gt;Installation &amp;amp; GitHub Account Creation &amp;amp; Setup&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://iamnotmyself.com/2010/09/05/contributing-to-open-source-projects-on-github-for-net-developers-part-2/"&gt;Publishing a Visual Studio Project to GitHub &amp;amp; Basic Git Workflow&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://iamnotmyself.com/2010/09/08/contributing-to-open-source-projects-on-github-for-net-developers-part-3/"&gt;Forking a Project, Keeping It Up To Date &amp;amp; Basic Contribution Strategy&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;The GitHub Flow&lt;/h3&gt;  &lt;p&gt;One thing is to know the commands and how to use them, another matter is using it with the right approach and workflow.&lt;/p&gt;  &lt;p&gt;I found two nice blog posts that explain two different versioning/branching strategies:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The usual workflow based on master + develop and feature branches, release branches, hot-fix branches, this time referred to as &lt;a href="http://nvie.com/posts/a-successful-git-branching-model/"&gt;Git-Flow&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;The &lt;a href="http://scottchacon.com/2011/08/31/github-flow.html"&gt;workflow used by GitHub itself&lt;/a&gt;, which is kind of less formal in some ways (no tons of release-based branches) and more strict in other ways (never commit to master without a code review and a pull request). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;One works great if you have a product with formal releases and have the time and resources to manage all that formal branches, the other works great in less formal environment, with continuous deployments, and no formal releases.&lt;/p&gt;  &lt;h3&gt;Some other useful links&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://codeclimber.net.nz/archive/2009/03/26/how-to-quickly-get-started-with-gitgithub.aspx"&gt;How to quickly get started with Git/GitHub&lt;/a&gt; – that was my original post from 2009, where I first collected some other useful (but probably outdated) links. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://gitref.org/"&gt;Git Reference&lt;/a&gt; – Comprehensive Git reference site. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://git-scm.com/documentation"&gt;Official Git documentation&lt;/a&gt; – The official documentation on the Git website. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://help.github.com/"&gt;GitHub documentation&lt;/a&gt; – how to use GitHub &lt;/li&gt;    &lt;li&gt;&lt;a href="http://marklodato.github.com/visual-git-guide/index-en.html"&gt;A Visual Git Reference&lt;/a&gt; – nice reference with lots of visuals &lt;/li&gt;    &lt;li&gt;&lt;a href="http://rogerdudler.github.com/git-guide/"&gt;The Git Simple Guide&lt;/a&gt; – very simple step-by-step tutorial &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Do you have any other resources to recommend?&lt;/h3&gt;  &lt;p&gt;This is what I found, and apparently what the most popular resources are. But I’d love if you could add your own findings by posting a comment.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6c44946e-f3bd-4ad4-8314-f5154773b3e1" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/git/default.aspx" rel="tag"&gt;git&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/github/default.aspx" rel="tag"&gt;github&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/subtext/default.aspx" rel="tag"&gt;subtext&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/974.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=iElgMI3wvbw:hgio464DEvc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=iElgMI3wvbw:hgio464DEvc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=iElgMI3wvbw:hgio464DEvc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=iElgMI3wvbw:hgio464DEvc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=iElgMI3wvbw:hgio464DEvc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=iElgMI3wvbw:hgio464DEvc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=iElgMI3wvbw:hgio464DEvc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=iElgMI3wvbw:hgio464DEvc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/iElgMI3wvbw" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2012/01/11/Getting-stated-with-Git-and-GitHub.aspx</guid>
            <pubDate>Wed, 11 Jan 2012 10:32:00 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2012/01/11/Getting-stated-with-Git-and-GitHub.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/974.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2012/01/11/Getting-stated-with-Git-and-GitHub.aspx</feedburner:origLink></item>
        <item>
            <title>The evolution of asynchronous controllers in ASP.NET MVC</title>
            <category>ASP.NET MVC</category>
            <category>.NET</category>
            <category>C#</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/4giaU6V0CAA/evolution-of-async-controller-asp-net-mvc.aspx</link>
            <description>&lt;p&gt;Asynchronous operations in ASP.NET MVC have always been left a bit behind. They appeared in ASP.NET MVC 2, remained untouched in v3, but now in MVC 4 (especially  in combination with C# 5 and async/await) they reached the same easiness of use of the standard synchronous controller. Now (or better, in a few months with the release of ASP.NET MVC 4, .NET 4.5 and C# 5) you can write&lt;/p&gt;  &lt;div class="dropshadow code"&gt;   &lt;div class="innerbox"&gt;     &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; async Task&amp;lt;ViewResult&amp;gt; Stuff()
{
    &lt;span class="kwrd"&gt;return&lt;/span&gt; View(await DoStuff(&lt;span class="str"&gt;"Some stuff"&lt;/span&gt;));
}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In this post I’m going to show how the code for implementing asynchronous controllers evolved from ASP.NET MVC 2/3 to ASP.NET MVC 4 with C# 5.&lt;/p&gt;

&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Disclaimer: The samples for ASP.NET MVC 4 are based on the &lt;a href="http://codeclimber.net.nz/archive/2011/09/15/Microsoft-dev-stack-vNext-from-Build.aspx"&gt;Developer Preview that has been released at Build in September 2011&lt;/a&gt;. It might be different from the final version when it gets released.&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;

&lt;h3&gt;Async Controller in ASP.NET MVC 3&lt;/h3&gt;

&lt;p&gt;In ASP.NET MVC 3 you had to create two methods, one to start the async operation, and another to end it, and you had to manually update the counters of the outstanding operations. I showed an example in &lt;a href="http://codeclimber.net.nz/archive/2011/12/07/Set-the-AsyncTimeout-attribute-for-your-async-controllers.aspx"&gt;blog post I wrote last month about the AsyncTimeout&lt;/a&gt;, but I’m copying here  the code for your convenience. The code also includes the normal method I call asynchronously.&lt;/p&gt;

&lt;div class="dropshadow code"&gt;
  &lt;div class="innerbox"&gt;
    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DoController : AsyncController
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StuffAsync()
    {
        syncManager.OutstandingOperations.Increment();
        var bg = &lt;span class="kwrd"&gt;new&lt;/span&gt; BackgroundWorker();
        bg.DoWork += (o, e) =&amp;gt; DoStuff(&lt;span class="str"&gt;"Some other stuff"&lt;/span&gt;, e);
        bg.RunWorkerCompleted += (o, e) =&amp;gt;
                 {
                     AsyncManager.Parameters[&lt;span class="str"&gt;"text"&lt;/span&gt;] = e.Result;
                     AsyncManager.OutstandingOperations.Decrement();
                 };
        bg.RunWorkerAsync();
    }
    
    &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult StuffCompleted(&lt;span class="kwrd"&gt;string&lt;/span&gt; text)
    {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; View(&lt;span class="kwrd"&gt;new&lt;/span&gt; DoStuffViewModel(){Text=text});
    }
    
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DoStuff(&lt;span class="kwrd"&gt;string&lt;/span&gt; input, DoWorkEventArgs e)
    {
        Thread.Sleep(5000);
        e.Result = input;
    }
}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;Introducing the Task Library&lt;/h3&gt;

&lt;p&gt;The sample above uses the &lt;a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;BackgroundWorker&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; to call asynchronously the &lt;font face="Courier New"&gt;&lt;strong&gt;DoStuff&lt;/strong&gt;&lt;/font&gt; method. When using ASP.NET MVC 3 with .NET 4 we could also use a &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks.task.aspx"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;Task&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; with continuation and make it look a bit better. If you have never used the Task library I recommend you read the awesome post by &lt;a href="http://www.codethinked.com/" rel="met friend colleague"&gt;Justin Etheredge&lt;/a&gt;: &lt;a href="http://www.codethinked.com/net-40-and-systemthreadingtasks"&gt;.NET 4.0 and System.Threading.Tasks&lt;/a&gt;.&lt;/p&gt;

&lt;div class="dropshadow code"&gt;
  &lt;div class="innerbox"&gt;
    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DoController : AsyncController
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StuffAsync()
    {
        AsyncManager.OutstandingOperations.Increment();
        var task = Task.Factory.StartNew(() =&amp;gt; DoStuff(&lt;span class="str"&gt;"Some other stuff"&lt;/span&gt;));
        task.ContinueWith(t =&amp;gt;
        {
            AsyncManager.Parameters[&lt;span class="str"&gt;"model"&lt;/span&gt;] = t.Result;
            AsyncManager.OutstandingOperations.Decrement();
        });
    }
    
    &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult StuffCompleted(&lt;span class="kwrd"&gt;string&lt;/span&gt; text)
    {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; View(&lt;span class="kwrd"&gt;new&lt;/span&gt; DoStuffViewModel(){Text=text});
    }
    
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; DoStuff(&lt;span class="kwrd"&gt;string&lt;/span&gt; input)
    {
        Thread.Sleep(5000);
        &lt;span class="kwrd"&gt;return&lt;/span&gt; input;
    }
}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Not a lot better, but still less lines and event handling around (which I personally don’t like that much). This is as far as you can go with officially released versions of ASP.NET MVC.&lt;/p&gt;

&lt;h3&gt;Async controllers in ASP.NET 4 Developer preview&lt;/h3&gt;

&lt;p&gt;Dropped the support for .NET 3, ASP.NET MVC 4 fully embraces the Task library: no more 2 methods per action, no more manual counter increment/decrement. Your action only need to return a &lt;font face="Courier New"&gt;&lt;strong&gt;Task&amp;lt;ActionResult&amp;gt;&lt;/strong&gt;&lt;/font&gt; and the action invoker will take care of all the synchronization.&lt;/p&gt;

&lt;div class="dropshadow code"&gt;
  &lt;div class="innerbox"&gt;
    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DoController : AsyncController
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; Task&amp;lt;ViewResult&amp;gt; Stuff()
    {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; Task.Factory.StartNew(() =&amp;gt; DoStuff(&lt;span class="str"&gt;"Some other stuff"&lt;/span&gt;))
            .ContinueWith(t =&amp;gt;
                              {
                                  &lt;span class="kwrd"&gt;return&lt;/span&gt; View(&lt;span class="kwrd"&gt;new&lt;/span&gt; DoStuffViewModel()
                                                  {
                                                      Text = t.Result
                                                  });
                              });
    }

    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; DoStuff(&lt;span class="kwrd"&gt;string&lt;/span&gt; input)
    {
        Thread.Sleep(5000);
        &lt;span class="kwrd"&gt;return&lt;/span&gt; input;
    }
}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Isn’t it a lot better? It could have been even terser by using an expression:&lt;/p&gt;

&lt;div class="dropshadow code"&gt;
  &lt;div class="innerbox"&gt;
    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; Task&amp;lt;ViewResult&amp;gt; Stuff()
{
    &lt;span class="kwrd"&gt;return&lt;/span&gt; Task.Factory.StartNew(() =&amp;gt; DoStuff(&lt;span class="str"&gt;"Some other stuff"&lt;/span&gt;))
        .ContinueWith(t =&amp;gt; View(&lt;span class="kwrd"&gt;new&lt;/span&gt; DoStuffViewModel{ Text = t.Result }));
}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;So, no manual counters, no double methods. But we can go even further.&lt;/p&gt;

&lt;h3&gt;Adding async/await&lt;/h3&gt;

&lt;p&gt;If we go one one step further, to ASP.NET 4.5, with C# 5, or install the &lt;a href="http://msdn.microsoft.com/en-us/vstudio/gg316360"&gt;Async CTP&lt;/a&gt; on top of .NET 4 we get the &lt;a href="http://msdn.microsoft.com/en-us/library/hh156513%28v=vs.110%29.aspx"&gt;async&lt;/a&gt;/&lt;a href="http://msdn.microsoft.com/en-us/library/hh156528%28v=vs.110%29.aspx"&gt;await&lt;/a&gt; keywords. They are new features of C#, that make asynchronous code much more easy to write.&lt;/p&gt;

&lt;p&gt;Using them, the code of our simple controller becomes:&lt;/p&gt;

&lt;div class="dropshadow code"&gt;
  &lt;div class="innerbox"&gt;
    &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; DoController : AsyncController
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;strong&gt;async&lt;/strong&gt; Task&amp;lt;ViewResult&amp;gt; Stuff()
    {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; View(&lt;span class="kwrd"&gt;new&lt;/span&gt; DoStuffViewModel()
                        {
                            Text = &lt;strong&gt;await&lt;/strong&gt; DoStuff(&lt;span class="str"&gt;"Some other stuff"&lt;/span&gt;)
                        });
    }

    &lt;span class="kwrd"&gt;private&lt;/span&gt; async Task&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; DoStuff(&lt;span class="kwrd"&gt;string&lt;/span&gt; input)
    {
        Thread.Sleep(5000);
        &lt;span class="kwrd"&gt;return&lt;/span&gt; input;
    }
}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;Are we arrived?&lt;/h3&gt;

&lt;p&gt;Now Asynchronous controllers are as easy to do as  standard controllers, and thanks to the Task library and to the async/await keywords async calls are easier to implement and less error prone than before. This raises another problem: do not overuse them. If doing async with short tasks and with lots of requests the server will spend more time in thread switching than executing your code. So never do it just for the sake of it, but use some grain of salt and do performance testing.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:dcd16d94-334c-45c9-9f8e-1c51dfd68980" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/async/default.aspx" rel="tag"&gt;async&lt;/a&gt;

, &lt;a href="http://codeclimber.net.nz/tags/asp.net+mvc/default.aspx" rel="tag"&gt;asp.net mvc&lt;/a&gt;

, &lt;a href="http://codeclimber.net.nz/tags/task/default.aspx" rel="tag"&gt;task&lt;/a&gt;

&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/973.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=4giaU6V0CAA:FWaws-iBGDg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=4giaU6V0CAA:FWaws-iBGDg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=4giaU6V0CAA:FWaws-iBGDg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=4giaU6V0CAA:FWaws-iBGDg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=4giaU6V0CAA:FWaws-iBGDg:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=4giaU6V0CAA:FWaws-iBGDg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=4giaU6V0CAA:FWaws-iBGDg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=4giaU6V0CAA:FWaws-iBGDg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/4giaU6V0CAA" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2012/01/09/evolution-of-async-controller-asp-net-mvc.aspx</guid>
            <pubDate>Mon, 09 Jan 2012 11:27:00 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2012/01/09/evolution-of-async-controller-asp-net-mvc.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/973.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2012/01/09/evolution-of-async-controller-asp-net-mvc.aspx</feedburner:origLink></item>
        <item>
            <title>Do community because you like it, not because of the incentives</title>
            <category>Community Life</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/eHfYEFPJMqU/Do-community-because-you-like-it-not-because-of-the.aspx</link>
            <description>&lt;p&gt;Every time there is a MVP renewal there are always some tweets or posts from people not being re-awarded, but this New Year re-awarding cycle was different: a few vocal and prominent community members didn't get re-awarded. Most of them were MVPs because of their OSS projects, so conspiracy theories started about Microsoft dropping his support to Open Source, and the bashing game started.&lt;/p&gt;
&lt;h3&gt;Contributes to the community because you like it, not because of the incentives&lt;br /&gt;
&lt;/h3&gt;
&lt;p&gt;You should contribute to the community because you love doing it. Not because of the incentives MS gives you with the MVP program.&lt;/p&gt;
&lt;p&gt;I love doing what I do for the community (books, articles, my blog, speeches, managing a user group, organizing UG meetings) and I would do the same even without the MVP program, because I love sharing my experience and my knowledge and my passion.&lt;/p&gt;
&lt;p&gt;Everybody should do the same, for the same reasons.&lt;/p&gt;
&lt;p&gt;If you do it for getting the MVP logo on you business card you'll be disappointed: the benefits MS gives to MVPs are almost nothing compared to the effort put into becoming and maintaining the award. What I think is the real value of the MVP is being able to help product teams with your observations of what is the real world outside Redmond.&lt;/p&gt;
&lt;p&gt;Of course the MVP program has its problems (which I'll explain later), but they are not relevant if you do your contributions to the community for the sake of it, and not for becoming a MVP.&lt;/p&gt;
&lt;h3&gt;What is the MVP program&lt;br /&gt;
&lt;/h3&gt;
&lt;p&gt;A lot has already been said about the MVP program, and how people are evaluated: basically it boils down to filling a report with all the things you did to contribute to the MS community: speeches, books, articles, blog posts, user-group activities, forum participation, OSS contributions and so on. And the the MVP lead of the region will evaluate your contributions compared to all the other candidates. So if you fill in this report without care (like &lt;a href="http://www.keyvan.ms/on-microsoft-mvp-program"&gt;Keyvan that said he added in 5 minutes only the 25% of his contributions&lt;/a&gt;) or your contributions are less compared to the other candidates, you are not getting the award.  And it's also probably true that, since MVP leads are not technical persons, they might not be able to give the right importance to contributions to a famous .NET OSS library. Probably this should change, especially now that the strategy of Microsoft is moving more and more to OpenSource (in the DevDiv at least).&lt;/p&gt;
&lt;p&gt;It is also true that MVP, Most Valuable Professional, might not reflect the new meaning of the program: maybe it was when it was created in the '90s, but now nothing proves a MVP is someone that adopts the best practices and his a great developer. As said a few lines above, MVPs are people that contribute to the community. Maybe the name should be changed to "Community Champions" or something similar.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: Before becoming a MVP I had attacked the program for lack of transparency. Since then, the transparency increased a bit, and despite my attack they awarded me anyway, so this proves personal opinions are not taken into account when awarding MVPs&lt;/em&gt;&lt;/p&gt;
&lt;div class="posttagsblock"&gt;&lt;a rel="tag" href="http://technorati.com/tag/community"&gt;community&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/MVP"&gt;MVP&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/972.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=eHfYEFPJMqU:ZIG8kAGiHrs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=eHfYEFPJMqU:ZIG8kAGiHrs:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=eHfYEFPJMqU:ZIG8kAGiHrs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=eHfYEFPJMqU:ZIG8kAGiHrs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=eHfYEFPJMqU:ZIG8kAGiHrs:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=eHfYEFPJMqU:ZIG8kAGiHrs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=eHfYEFPJMqU:ZIG8kAGiHrs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=eHfYEFPJMqU:ZIG8kAGiHrs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/eHfYEFPJMqU" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2012/01/06/Do-community-because-you-like-it-not-because-of-the.aspx</guid>
            <pubDate>Fri, 06 Jan 2012 11:35:11 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2012/01/06/Do-community-because-you-like-it-not-because-of-the.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/972.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2012/01/06/Do-community-because-you-like-it-not-because-of-the.aspx</feedburner:origLink></item>
        <item>
            <title>Best of 2011: top 5 posts of the year</title>
            <category>Blogging about Blogging</category>
            <category>ASP.NET MVC</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/Q2m-Q2cSMVo/Best-of-2011-top-5-posts-of-the-year.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://codeclimber.net.nz/images/codeclimber_net_nz/WindowsLiveWriter/Bestof2011top5postsoftheyear_DB24/top5-2011_2.jpg" rel="lightbox"&gt;&lt;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="top5-2011" border="0" alt="top5-2011" align="right" src="http://codeclimber.net.nz/images/codeclimber_net_nz/WindowsLiveWriter/Bestof2011top5postsoftheyear_DB24/top5-2011_thumb.jpg" width="244" height="146" /&gt;&lt;/a&gt;This is &lt;a href="http://codeclimber.net.nz/archive/2010/12/22/Best-of-2010-top-5-most-popular-posts.aspx"&gt;the time of year&lt;/a&gt; when people look back at the year just passed, review and looks out for the year to come. &lt;/p&gt;  &lt;p /&gt;  &lt;p&gt;My &lt;a href="http://codeclimber.net.nz/archive/2011/01/13/How-was-my-2010.aspx"&gt;retrospection post&lt;/a&gt; will come in the new year, but for the moment I want to review my top posts of 2011.&lt;/p&gt;  &lt;h3&gt;The most popular post of 2011&lt;/h3&gt;  &lt;p&gt;1. &lt;a href="http://codeclimber.net.nz/archive/2011/06/29/The-history-of-ASP-NET-MVC-so-far.aspx"&gt;The history of ASP.NET MVC, so far&lt;/a&gt; – This blog post contains the list of all the version of ASP.NET MVC, and the features that were brought into each version. It was featured in the home page of the &lt;a href="http://www.asp.net/"&gt;asp.net portal&lt;/a&gt; for a few days at the beginning of July.&lt;/p&gt;  &lt;p&gt;2. &lt;a href="http://codeclimber.net.nz/archive/2011/09/26/10-articles-on-ASP-NET-MVC-Extensibility-to-land-on.aspx"&gt;10 articles on ASP.NET MVC Extensibility to land on Simple-Talk in the next months&lt;/a&gt; – This post announces a series of articles I’m writing for &lt;a href="http://www.simple-talk.com"&gt;Simple-Talk&lt;/a&gt;, the online portal of RedGate. The series is about a very important topic about ASP.NET MVC: Extensibility. Two article have been already published: &lt;a href="http://www.simple-talk.com/dotnet/.net-framework/an-introduction-to-asp.net-mvc-extensibility/"&gt;An Introduction to ASP.NET MVC Extensibility&lt;/a&gt; and &lt;a href="http://www.simple-talk.com/dotnet/.net-framework/asp.net-mvc-routing-extensibility/"&gt;ASP.NET MVC Routing Extensibility&lt;/a&gt; and more are coming in the future months.&lt;/p&gt;  &lt;p&gt;3. &lt;a href="http://codeclimber.net.nz/archive/2011/07/18/Lucene-net-is-back-on-track.aspx"&gt;Lucene.net is back on track&lt;/a&gt; – &lt;a href="http://codeclimber.net.nz/archive/2010/12/22/Best-of-2010-top-5-most-popular-posts.aspx"&gt;Top post from 2010&lt;/a&gt; was about &lt;a href="http://codeclimber.net.nz/archive/2010/11/01/Lucene-Net-needs-your-help-or-it-will-die.aspx"&gt;Lucene.net, and its possible death&lt;/a&gt;, and one of top 5 post of this year is about the revived activity of the project and the first release after the new team took the lead on the project.&lt;/p&gt;  &lt;p&gt;4. &lt;a href="http://codeclimber.net.nz/archive/2011/08/31/Summer-time-learning-Getting-started-with-Node-js.aspx"&gt;Summer time learning: Getting started with Node.js&lt;/a&gt; – Included in my usual summer reading list, this year I also included a specific post about Node.js, some books and also some online resources and libraries.&lt;/p&gt;  &lt;p&gt;5. &lt;a href="http://codeclimber.net.nz/archive/2011/02/25/Beginning-ASP-NET-MVC-1-is-now-available-as-a.aspx"&gt;Beginning ASP.NET MVC 1 is now available as a DRM-free PDF ebook&lt;/a&gt; – This was just an announcement that &lt;a href="http://www.amazon.com/gp/product/047043399X?linkCode=shr&amp;amp;camp=213733&amp;amp;creative=393189&amp;amp;tag=codec04-20"&gt;my book about ASP.NET MVC 1&lt;/a&gt; was released as DRM free eBook.&lt;/p&gt;  &lt;h3&gt;2011 in numbers&lt;/h3&gt;  &lt;p&gt;In 2011 I wrote &lt;strong&gt;47 posts&lt;/strong&gt; (48 with that one) which is just 5 less than &lt;a href="http://codeclimber.net.nz/archive/2010/12/22/Best-of-2010-top-5-most-popular-posts.aspx"&gt;2010&lt;/a&gt;, and considering the increased usage of twitter, this is not that bad after all. Compared to &lt;a href="http://codeclimber.net.nz/archive/2010/12/22/Best-of-2010-top-5-most-popular-posts.aspx"&gt;2010&lt;/a&gt;, the page views increased, by almost &lt;strong&gt;25%&lt;/strong&gt;, going from 400k to &lt;strong&gt;more than 500k page views&lt;/strong&gt; (490k with still more than week to go before the end of the year).&lt;/p&gt;  &lt;p&gt;And now, the obligatory season wishes…&lt;/p&gt;  &lt;p align="center"&gt;&lt;font color="#ff0000" size="6"&gt;&lt;strong&gt;MERRY XMAS AND HAPPY NEW YEAR!&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d8976aee-7dde-4b97-8b91-33435bab2f7c" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/2011/default.aspx" rel="tag"&gt;2011&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/top5/default.aspx" rel="tag"&gt;top5&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/best+posts/default.aspx" rel="tag"&gt;best posts&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/aspnetmvc/default.aspx" rel="tag"&gt;aspnetmvc&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/971.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=Q2m-Q2cSMVo:5L2_zv1kxDM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=Q2m-Q2cSMVo:5L2_zv1kxDM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=Q2m-Q2cSMVo:5L2_zv1kxDM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=Q2m-Q2cSMVo:5L2_zv1kxDM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=Q2m-Q2cSMVo:5L2_zv1kxDM:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=Q2m-Q2cSMVo:5L2_zv1kxDM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=Q2m-Q2cSMVo:5L2_zv1kxDM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=Q2m-Q2cSMVo:5L2_zv1kxDM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/Q2m-Q2cSMVo" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2011/12/23/Best-of-2011-top-5-posts-of-the-year.aspx</guid>
            <pubDate>Fri, 23 Dec 2011 11:21:00 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2011/12/23/Best-of-2011-top-5-posts-of-the-year.aspx#feedback</comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/971.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2011/12/23/Best-of-2011-top-5-posts-of-the-year.aspx</feedburner:origLink></item>
        <item>
            <title>What's new in ASP.NET MVC 4 webcast: 17 January</title>
            <category>ASP.NET MVC</category>
            <category>Community Life</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/1vMWXqKmgz8/Whats-new-in-ASP-NET-MVC-4-webcast-17-January.aspx</link>
            <description>&lt;p&gt;ASP.NET MVC 4 is the new version of ASP.NET MVC that &lt;a href="http://codeclimber.net.nz/archive/2011/09/15/Microsoft-dev-stack-vNext-from-Build.aspx"&gt;came out during Build&lt;/a&gt; in September: it included a few pretty interesting features like a newly revamped project template, a better asynchronous controller and, the main feature, native support for mobile version of the site, with device detection and mobile only views.&lt;/p&gt;  &lt;p&gt;Also some productivity enhancement were introduced, like recipes to automate repetitive coding tasks. And finally, if you run ASP.NET MVC 4 on top of ASP.NET 4.5, you also get its new features, like script&amp;amp;styles minification and bundling.&lt;/p&gt;  &lt;p&gt;I’ll talk about all that and, hopefully something else if Microsoft releases a new version by that time, during the webcast I’ll do for Microsoft Belgium on the 17th of January, titled, with much fantasy “&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032501715&amp;amp;Culture=fr-BE"&gt;What's new in ASP.NET MVC 4&lt;/a&gt;”.&lt;/p&gt;  &lt;p&gt;It’s online and, given the &lt;a href="http://en.wikipedia.org/wiki/Languages_of_Belgium"&gt;particular linguistic situation of the country&lt;/a&gt;, it will be in English, so also non Belgian can attend. The webcast is scheduled to start at &lt;a href="http://www.timeanddate.com/worldclock/fixedtime.html?msg=Live+Online+Webinar%3A+What%27s+new+in+ASP.NET+MVC+4&amp;amp;iso=20120117T14&amp;amp;p1=48&amp;amp;ah=1&amp;amp;am=30"&gt;14:00 CET&lt;/a&gt;. A bit early for people on the West Coast (5AM), but the right way to start a working day for people on the East Coast of the US (8AM).&lt;/p&gt;  &lt;p&gt;Before you go on holiday, remember to register to the webcast: &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032501715&amp;amp;Culture=fr-BE"&gt;What's new in ASP.NET MVC 4&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:31967a3d-4b3e-431c-a4e4-cff4ac00d5f9" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/aspnetmvc4/default.aspx" rel="tag"&gt;aspnetmvc4&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/webcast/default.aspx" rel="tag"&gt;webcast&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/970.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=1vMWXqKmgz8:AsMWWv-23Ug:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=1vMWXqKmgz8:AsMWWv-23Ug:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=1vMWXqKmgz8:AsMWWv-23Ug:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=1vMWXqKmgz8:AsMWWv-23Ug:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=1vMWXqKmgz8:AsMWWv-23Ug:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=1vMWXqKmgz8:AsMWWv-23Ug:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=1vMWXqKmgz8:AsMWWv-23Ug:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=1vMWXqKmgz8:AsMWWv-23Ug:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/1vMWXqKmgz8" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2011/12/22/Whats-new-in-ASP-NET-MVC-4-webcast-17-January.aspx</guid>
            <pubDate>Thu, 22 Dec 2011 14:30:02 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2011/12/22/Whats-new-in-ASP-NET-MVC-4-webcast-17-January.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/970.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2011/12/22/Whats-new-in-ASP-NET-MVC-4-webcast-17-January.aspx</feedburner:origLink></item>
        <item>
            <title>UGIALT.net conf sessions are published</title>
            <category>Community Life</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/38c-ScwAqsc/UGIALT-net-conf-sessions-are-published.aspx</link>
            <description>&lt;p&gt;The voting for the UGIALT.net conference just ended, and just in time for the opening of the registration at noon we published, &lt;a href="http://ugialt.net/"&gt;on the new web site&lt;/a&gt; the list of the 19 sessions chosen by the more than 180 voters:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Perché a fare i preventivi facciamo così schifo? (Cristiano Rastelli) &lt;/li&gt;    &lt;li&gt;DDD Brutto Sporco e Cattivo (Alberto Brandolini) &lt;/li&gt;    &lt;li&gt;Organize your chickens: NuGet for the enterprise (Xavier Decoster) &lt;/li&gt;    &lt;li&gt;SignalR. Code, not toothpaste. Using SignalR for realtime client/server communication (Maarten Balliauw) &lt;/li&gt;    &lt;li&gt;WinRT e il futuro dello sviluppo per Windows (Lorenzo Barbieri) &lt;/li&gt;    &lt;li&gt;oData può rappresentare il futuro del DataLayer? (Raffaele Rialdi) &lt;/li&gt;    &lt;li&gt;Using RavenDB in the wild (Mauro Servienti) &lt;/li&gt;    &lt;li&gt;ASP.NET MVC, Javascript MVVM e WCF REST Services: web to the max (Roberto Messora) &lt;/li&gt;    &lt;li&gt;TDD everywhere (Matteo Migliore) &lt;/li&gt;    &lt;li&gt;Sviluppare applicazioni web mobile con Asp.Net MVC, HTML5 e jQuery Mobile (Michele Aponte) &lt;/li&gt;    &lt;li&gt;Git Happens! (alessandro cinelli) &lt;/li&gt;    &lt;li&gt;Layered Expression Trees feat. CQRS (Andrea Saltarello) &lt;/li&gt;    &lt;li&gt;Roslyn: un compilatore per amico (Alessandro Melchiori) &lt;/li&gt;    &lt;li&gt;Java Viene da Marte, Ruby da Venere (Paolo Perrotta) &lt;/li&gt;    &lt;li&gt;I Love Async! (Antonio Liccardi, Emanuele Garofalo) &lt;/li&gt;    &lt;li&gt;Building awesome games with WebGL and Node.js (Rob Ashton) &lt;/li&gt;    &lt;li&gt;Come implementare un server per giochi on line in real time (Massimiliano Mantione) &lt;/li&gt;    &lt;li&gt;OOP vs COP - Classi contro oggetti (Gianluca Padovani) &lt;/li&gt;    &lt;li&gt;Oltre lo schermo: la user experience delle "cose" (Daniela Panfili) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Interesting to see is the fact that there will be 3 speakers from the .NET Belgian community, &lt;a href="http://blog.maartenballiauw.be/"&gt;Maarten&lt;/a&gt;, &lt;a href="http://www.xavierdecoster.com/" target="_blank"&gt;Xavier&lt;/a&gt; and &lt;a href="http://codeofrob.com/" target="_blank"&gt;Rob&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Another interesting fact is the list of topics not selected by the voters:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Neither of the almost 10 proposals about Azure and cloud have been selected: is cloud a topic that still not many people care about, at least in Italy? Or just SignalR and WinRT and RavenDB are just more interesting? &lt;/li&gt;    &lt;li&gt;Also not a single proposal about Agile practices reached the top 19. Is people sick of listening to the same things? or are user-stories, kanban, and friends something that are now part of the standard development practices? &lt;/li&gt;    &lt;li&gt;Other topics that didn't make the top 19 are mobile web and "advanced" javascript: still people think of javascript as a toy language and see mobile web as something unnecessary? &lt;/li&gt;    &lt;li&gt;Finally I was relieved not to a single session about ORMs… I hope it means that we finally reached a level where we don't need to debate on how to save data any more &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you speak or understand Italian, and want to come to the conference, the &lt;a href="http://ugialt.net/"&gt;registration opens this noon, 12 Dec at 12:12&lt;/a&gt;. If you don't speak Italian, there will be 3 presentations (out of 5 time slots) in English, so you could still enjoy more than half of the conference. The places are limited, so be quick with your mouse if you want to secure a place.&lt;/p&gt;  &lt;div class="posttagsblock"&gt;&lt;a href="http://technorati.com/tag/conference" rel="tag"&gt;conference&lt;/a&gt;, &lt;a href="http://technorati.com/tag/ugialtnet" rel="tag"&gt;ugialtnet&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/969.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=38c-ScwAqsc:FBPCqj2GkFc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=38c-ScwAqsc:FBPCqj2GkFc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=38c-ScwAqsc:FBPCqj2GkFc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=38c-ScwAqsc:FBPCqj2GkFc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=38c-ScwAqsc:FBPCqj2GkFc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=38c-ScwAqsc:FBPCqj2GkFc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=38c-ScwAqsc:FBPCqj2GkFc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=38c-ScwAqsc:FBPCqj2GkFc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/38c-ScwAqsc" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2011/12/12/UGIALT-net-conf-sessions-are-published.aspx</guid>
            <pubDate>Sun, 11 Dec 2011 23:34:49 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2011/12/12/UGIALT-net-conf-sessions-are-published.aspx#feedback</comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/969.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2011/12/12/UGIALT-net-conf-sessions-are-published.aspx</feedburner:origLink></item>
        <item>
            <title>Set the AsyncTimeout attribute for your async controllers</title>
            <category>ASP.NET MVC</category>
            <link>http://feedproxy.google.com/~r/Codeclimber/~3/P5_4ILmR--4/Set-the-AsyncTimeout-attribute-for-your-async-controllers.aspx</link>
            <description>&lt;p&gt;Today I decided to convert an action that was making various long calls to external webservices to be asynchronous. With the synchronous version it was long but still under the default script timeout of ASP.NET, so I was very surprised when the async version was returning a System.TimeoutException, even if it was still taking the same amount of time. I tried increasing the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.scripttimeout.aspx"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;ScriptTimeout&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;, but still no luck: the page was timing out.&lt;/p&gt;  &lt;p&gt;After a bit of searching online I found out that for some strange reason, async controllers have a different timeout, specified by the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.async.asyncmanager.timeout.aspx"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;Timeout&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; property of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.async.asyncmanager.aspx"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;AsyncManager&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;; and by default this value is &lt;strong&gt;45&lt;/strong&gt; seconds.&lt;/p&gt;  &lt;p&gt;Instead of manually setting this value in your action, you can use two action attributes so that infrastructural code doesn’t interfere with your actions’ code:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.asynctimeoutattribute.aspx"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;AsyncTimeoutAttribute&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; – you can set the timeout of the async action. It is specified in milliseconds: 10 minutes is 600000. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.noasynctimeoutattribute.aspx"&gt;&lt;font face="Courier New"&gt;&lt;strong&gt;NoAsyncTimeoutAttribute&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt; – if you want to set the timeout to indefinte (ie the action will run forever) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here following a very simple example of an Async controller with the AsyncTimeout attribute set to 10 minutes.&lt;/p&gt;  &lt;div class="dropshadow code"&gt;   &lt;div class="innerbox"&gt;     &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SyncController : AsyncController
{
    [AsyncTimeout(600000)]
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; SyncAllAsync()
    {
        syncManager.OutstandingOperations.Increment();
        var bg = &lt;span class="kwrd"&gt;new&lt;/span&gt; BackgroundWorker();
        bg.DoWork += (o, e) =&amp;gt; DoStuff(&lt;span class="str"&gt;"Some other stuff"&lt;/span&gt;, e);
        bg.RunWorkerCompleted += (o, e) =&amp;gt;
                 {
                     AsyncManager.Parameters[&lt;span class="str"&gt;"model"&lt;/span&gt;] = e.Result;
                     AsyncManager.OutstandingOperations.Decrement();
                 };
        bg.RunWorkerAsync();
    }
    
    &lt;span class="kwrd"&gt;public&lt;/span&gt; ActionResult SyncAllCompleted(SyncViewModel model)
    {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; View(model);
    }
    
    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; DoStuff(&lt;span class="kwrd"&gt;string&lt;/span&gt; input, DoWorkEventArgs e)
    {
        SyncViewModel model = &lt;span class="kwrd"&gt;new&lt;/span&gt; SyncViewModel();
        Thread.Sleep(60000);
        model.Text=input;
        e.Result = model;
    }
}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The code doesn’t do a lot, just fires up the background worker and calls the &lt;font face="Courier New"&gt;&lt;strong&gt;DoStuff&lt;/strong&gt;&lt;/font&gt; method asynchronously. I just realize I could have also probably used the TPL and the Task with continuation… maybe I’ll write an update to this blog in the next days while I work on my project and need to process more “stuff” in parallel.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0dfd60ad-b40c-4e90-81e4-90528cb8a066" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://codeclimber.net.nz/tags/aspnetmvc/default.aspx" rel="tag"&gt;aspnetmvc&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/async/default.aspx" rel="tag"&gt;async&lt;/a&gt;, &lt;a href="http://codeclimber.net.nz/tags/timeout/default.aspx" rel="tag"&gt;timeout&lt;/a&gt;&lt;/div&gt;&lt;img src="http://codeclimber.net.nz/aggbug/968.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=P5_4ILmR--4:scdY0fk2QSE:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=P5_4ILmR--4:scdY0fk2QSE:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=P5_4ILmR--4:scdY0fk2QSE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=P5_4ILmR--4:scdY0fk2QSE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=P5_4ILmR--4:scdY0fk2QSE:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=P5_4ILmR--4:scdY0fk2QSE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/Codeclimber?a=P5_4ILmR--4:scdY0fk2QSE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Codeclimber?i=P5_4ILmR--4:scdY0fk2QSE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Codeclimber/~4/P5_4ILmR--4" height="1" width="1"/&gt;</description>
            <dc:creator>Simone Chiaretta</dc:creator>
            <guid isPermaLink="false">http://codeclimber.net.nz/archive/2011/12/07/Set-the-AsyncTimeout-attribute-for-your-async-controllers.aspx</guid>
            <pubDate>Wed, 07 Dec 2011 18:06:33 GMT</pubDate>
            <comments>http://codeclimber.net.nz/archive/2011/12/07/Set-the-AsyncTimeout-attribute-for-your-async-controllers.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://codeclimber.net.nz/comments/commentRss/968.aspx</wfw:commentRss>
        <feedburner:origLink>http://codeclimber.net.nz/archive/2011/12/07/Set-the-AsyncTimeout-attribute-for-your-async-controllers.aspx</feedburner:origLink></item>
    </channel>
</rss>

