<?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:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>IronShay</title>
    <description>Ironing code, geek t-shirts and even presentations!</description>
    <link>http://www.ironshay.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.6.1.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.ironshay.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Shay Friedman</dc:creator>
    <dc:title>IronShay</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ShayTalksAbout" /><feedburner:info uri="shaytalksabout" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>ShayTalksAbout</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/ShayTalksAbout" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FShayTalksAbout" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:browserFriendly>Thanks for your interest in my blog.</feedburner:browserFriendly><item>
      <title>Local IIS Not Working and the horrifying “The Server Committed a Protocol Violation” Error</title>
      <description>&lt;h3&gt;The Problem&lt;/h3&gt;  &lt;p&gt;I was working on a web site on my local computer. When I wanted to run the web site on my local IIS, I suddenly received a &lt;strong&gt;404 Not Found&lt;/strong&gt; error for everything hosted on my local IIS.    &lt;br /&gt;I tried to run iisreset (even twice, of course!) and it didn’t help. I then tried to start debugging from within Visual Studio, just to see what happens – then I received the OMFG error: &lt;strong&gt;“The Server Committed a Protocol Violation. Section=ResponseStatusLine”.&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;What?!?&lt;/p&gt;  &lt;p&gt;I turned to my old friend, Google. He (or she?) helped me find Martin Kulov’s post - &lt;a href="http://blog.kulov.net/2006/06/server-committed-protocol-violation.html"&gt;http://blog.kulov.net/2006/06/server-committed-protocol-violation.html&lt;/a&gt;, which suggested that some application had already been using port 80 (the one IIS is using). This results in IIS not being able to load and eventually throwing all of these doomsday errors.&lt;/p&gt;  &lt;h3&gt;The Solution&lt;/h3&gt;  &lt;p&gt;I downloaded &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897437"&gt;TCPView&lt;/a&gt; to figure out which application is responsible for all the mess. I was surprised (or not) to find out which application it was:&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Local IIS Not Working and the horrifying “The Server Committed a Protocol Violation” Error" border="0" alt="Local IIS Not Working and the horrifying “The Server Committed a Protocol Violation” Error" src="http://www.ironshay.com/image.axd?picture=image_71.png" width="504" height="140" /&gt;&lt;/p&gt;  &lt;p&gt;It was &lt;strong&gt;SKYPE&lt;/strong&gt;!!!! WTF???&lt;/p&gt;  &lt;p&gt;Killing Skype and restarting IIS solved the problem and I was able to go back to work.&lt;/p&gt;  &lt;p&gt;Note: I’m using Skype 5.10.0.116.&lt;/p&gt;  &lt;p&gt;All the best,   &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=nk5jzzi63Uo:rMx0vE4Kh5E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=nk5jzzi63Uo:rMx0vE4Kh5E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=nk5jzzi63Uo:rMx0vE4Kh5E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=nk5jzzi63Uo:rMx0vE4Kh5E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=nk5jzzi63Uo:rMx0vE4Kh5E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=nk5jzzi63Uo:rMx0vE4Kh5E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=nk5jzzi63Uo:rMx0vE4Kh5E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/nk5jzzi63Uo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/nk5jzzi63Uo/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/Local-IIS-Not-Working-and-the-horrifying-e2809cThe-Server-Committed-a-Protocol-Violatione2809d-Error.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=ede4f4ff-886d-4f1c-83dc-b4dc4b3249d5</guid>
      <pubDate>Sat, 01 Sep 2012 12:00:00 +0400</pubDate>
      <category>Tips</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=ede4f4ff-886d-4f1c-83dc-b4dc4b3249d5</pingback:target>
      <slash:comments>49</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=ede4f4ff-886d-4f1c-83dc-b4dc4b3249d5</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/Local-IIS-Not-Working-and-the-horrifying-e2809cThe-Server-Committed-a-Protocol-Violatione2809d-Error.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=ede4f4ff-886d-4f1c-83dc-b4dc4b3249d5</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=ede4f4ff-886d-4f1c-83dc-b4dc4b3249d5</feedburner:origLink></item>
    <item>
      <title>My Interview on Herding Code is Published!</title>
      <description>&lt;p&gt;At this year’s NDC I had the honor to chat with Jon Galloway and Scott Allen, who are half of the Herding Code crew. We chatted about subjects related to my NDC talks – Roslyn, C#’s dynamic capabilities, and the DLR.&amp;#160; &lt;/p&gt;  &lt;p&gt;Last week our chat was published as an Herding Code episode, and it is available to hear and download at &lt;a href="http://herdingcode.com/?p=463"&gt;http://herdingcode.com/?p=463&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Enjoy the episode and thanks Herding Code for having me! &lt;/p&gt;  &lt;p&gt;All the best,   &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=C86X9vgc3KM:4Zk1NfmmRpM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=C86X9vgc3KM:4Zk1NfmmRpM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=C86X9vgc3KM:4Zk1NfmmRpM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=C86X9vgc3KM:4Zk1NfmmRpM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=C86X9vgc3KM:4Zk1NfmmRpM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=C86X9vgc3KM:4Zk1NfmmRpM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=C86X9vgc3KM:4Zk1NfmmRpM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/C86X9vgc3KM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/C86X9vgc3KM/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/My-Interview-on-Herding-Code-is-Published!.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=1323ee6e-dfe1-4306-8c37-f5b147457fe0</guid>
      <pubDate>Sat, 04 Aug 2012 21:17:51 +0400</pubDate>
      <category>.NET</category>
      <category>DLR</category>
      <category>IronRuby</category>
      <category>Presentations</category>
      <category>C#</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=1323ee6e-dfe1-4306-8c37-f5b147457fe0</pingback:target>
      <slash:comments>89</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=1323ee6e-dfe1-4306-8c37-f5b147457fe0</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/My-Interview-on-Herding-Code-is-Published!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=1323ee6e-dfe1-4306-8c37-f5b147457fe0</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=1323ee6e-dfe1-4306-8c37-f5b147457fe0</feedburner:origLink></item>
    <item>
      <title>Video, Slides and Code from my Session at aspConf 2012 – ASP.NET MVC Tips, Tricks and Hidden Gems</title>
      <description>&lt;p&gt;Last week I had the honor of taking part in the community-driven, ASP.NET-related, virtual event – &lt;a href="http://aspConf.net"&gt;aspConf 2012&lt;/a&gt;. My session was named ASP.NET MVC Tips, Tricks and Hidden Gems and it was generally about things I found to be important from my ASP.NET MVC experience – some were more basic and some were more hidden, too hidden some would say :)&lt;/p&gt;  &lt;p&gt;I had lots of fun doing the session, and hopefully the attendees has fun too :) &lt;/p&gt;  &lt;p&gt;A big big thanks to the aspConf crew – Javier Lozano, Jon Galloway, Eric Hexter, and friends – you guys did an AMAZING job! thanks!&lt;/p&gt;  &lt;p&gt;Anyway, everything from my session is now on the interwebs – video, slides and code samples:&lt;/p&gt;  &lt;h3&gt;Video&lt;/h3&gt;  &lt;p&gt;Can be watched and downloaded on channel9: &lt;a href="http://channel9.msdn.com/Events/aspConf/aspConf/ASP-NET-MVC-Tips-Tricks-and-Hidden-Gems"&gt;http://channel9.msdn.com/Events/aspConf/aspConf/ASP-NET-MVC-Tips-Tricks-and-Hidden-Gems&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 960px; height: 540px" src="http://channel9.msdn.com/Events/aspConf/aspConf/ASP-NET-MVC-Tips-Tricks-and-Hidden-Gems/player?w=960&amp;amp;h=540" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;h3&gt;Slides&lt;/h3&gt;  &lt;p&gt;The slides are available on SlideShare: &lt;a href="http://www.slideshare.net/shayfriedman/aspnet-mvc-tips-tricks-and-hidden-gems"&gt;http://www.slideshare.net/shayfriedman/aspnet-mvc-tips-tricks-and-hidden-gems&lt;/a&gt;&lt;/p&gt; &lt;iframe style="border-bottom: #ccc 0px solid; border-left: #ccc 1px solid; margin-bottom: 5px; border-top: #ccc 1px solid; border-right: #ccc 1px solid" height="356" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/13772184" frameborder="0" width="427" marginwidth="0" scrolling="no" allowfullscreen="allowfullscreen"&gt; &lt;/iframe&gt;   &lt;div style="margin-bottom: 5px"&gt;&lt;strong&gt;&lt;a title="ASP.NET MVC Tips, Tricks and Hidden Gems" href="http://www.slideshare.net/shayfriedman/aspnet-mvc-tips-tricks-and-hidden-gems" target="_blank"&gt;ASP.NET MVC Tips, Tricks and Hidden Gems&lt;/a&gt; &lt;/strong&gt;from &lt;strong&gt;&lt;a href="http://www.slideshare.net/shayfriedman" target="_blank"&gt;Shay Friedman&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Code Samples&lt;/h3&gt;  &lt;p&gt;All code samples from the session are available on my github page: &lt;a href="https://github.com/shayfriedman/aspConf-mvc-tips-tricks-and-hidden-gems"&gt;https://github.com/shayfriedman/aspConf-mvc-tips-tricks-and-hidden-gems&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That’s it. If you have any questions, let me know!   &lt;br /&gt;All the best,    &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=6xlQJzakSBA:Wd1H_ZwK0A0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=6xlQJzakSBA:Wd1H_ZwK0A0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=6xlQJzakSBA:Wd1H_ZwK0A0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=6xlQJzakSBA:Wd1H_ZwK0A0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=6xlQJzakSBA:Wd1H_ZwK0A0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=6xlQJzakSBA:Wd1H_ZwK0A0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=6xlQJzakSBA:Wd1H_ZwK0A0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/6xlQJzakSBA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/6xlQJzakSBA/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/Video-Slides-and-Code-from-my-Session-at-aspConf-2012-e28093-ASPNET-MVC-Tips-Tricks-and-Hidden-Gems.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=8a3cfaf7-a0d0-400c-b485-2310a0f638d9</guid>
      <pubDate>Fri, 27 Jul 2012 12:32:55 +0400</pubDate>
      <category>ASP.NET MVC</category>
      <category>Tips</category>
      <category>Presentations</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=8a3cfaf7-a0d0-400c-b485-2310a0f638d9</pingback:target>
      <slash:comments>23</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=8a3cfaf7-a0d0-400c-b485-2310a0f638d9</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/Video-Slides-and-Code-from-my-Session-at-aspConf-2012-e28093-ASPNET-MVC-Tips-Tricks-and-Hidden-Gems.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=8a3cfaf7-a0d0-400c-b485-2310a0f638d9</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=8a3cfaf7-a0d0-400c-b485-2310a0f638d9</feedburner:origLink></item>
    <item>
      <title>Sample Code from my “What?!? C# Could Do That?!?” Session</title>
      <description>&lt;p&gt;In the last few months I had the honor of presenting my session “What?!? C# Could Do That?!?” at different conferences and user groups around the world. The session is mainly about different things you can do with C#’s dynamic capabilities, IronRuby and also a bit about the upcoming Roslyn “Compiler as a Service” project.&lt;/p&gt;  &lt;p&gt;I’ve received several requests to upload my sample code. Therefore, I’ve just made it available on my github page - &lt;a href="https://github.com/shayfriedman/WhatCSharpCouldDoThat-Sample"&gt;https://github.com/shayfriedman/WhatCSharpCouldDoThat-Sample&lt;/a&gt;.     &lt;br /&gt;If you have any questions about the code, don’t hesitate to contact me through &lt;a href="http://twitter.com/ironshay"&gt;twitter&lt;/a&gt; or the &lt;a href="http://www.ironshay.com/page/Contact-Me.aspx"&gt;contact page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Additionally, if you want me to come and do this session (or others) at your user group/conference, let me know!   &lt;br /&gt;All the best,    &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=bUILcs_MDy0:ZN3B7gaO7yQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=bUILcs_MDy0:ZN3B7gaO7yQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=bUILcs_MDy0:ZN3B7gaO7yQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=bUILcs_MDy0:ZN3B7gaO7yQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=bUILcs_MDy0:ZN3B7gaO7yQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=bUILcs_MDy0:ZN3B7gaO7yQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=bUILcs_MDy0:ZN3B7gaO7yQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/bUILcs_MDy0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/bUILcs_MDy0/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/Sample-Code-from-my-e2809cWhat!-C-Could-Do-That!e2809d-Session.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=fd9e89d4-3342-4a60-acb8-fdbb3dfcf7e5</guid>
      <pubDate>Thu, 26 Apr 2012 00:19:22 +0400</pubDate>
      <category>C#</category>
      <category>.NET</category>
      <category>DLR</category>
      <category>Presentations</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=fd9e89d4-3342-4a60-acb8-fdbb3dfcf7e5</pingback:target>
      <slash:comments>23</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=fd9e89d4-3342-4a60-acb8-fdbb3dfcf7e5</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/Sample-Code-from-my-e2809cWhat!-C-Could-Do-That!e2809d-Session.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=fd9e89d4-3342-4a60-acb8-fdbb3dfcf7e5</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=fd9e89d4-3342-4a60-acb8-fdbb3dfcf7e5</feedburner:origLink></item>
    <item>
      <title>MVP for the 3rd Time!</title>
      <description>&lt;p&gt;A few weeks ago I’ve received an email from Microsoft telling me my MVP had been renewed for another year – 3rd time for me!&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="IronShay - MVP for the 3rd Time!" border="0" alt="IronShay - MVP for the 3rd Time!" src="http://www.ironshay.com/image.axd?picture=image_70.png" width="324" height="262" /&gt;&lt;/p&gt;  &lt;p&gt;I would like to thank my colleagues at &lt;a href="http://codevalue.net/"&gt;CodeValue&lt;/a&gt;, you guys ROCK!     &lt;br /&gt;Also big thanks to &lt;a href="http://blogs.microsoft.co.il/blogs/bursteg/"&gt;Guy Burstein&lt;/a&gt; for everything. If you ever get to meet him, give him a big hug – he’s doing a lot for the developers here.&lt;/p&gt;  &lt;p&gt;Last but definitely not least, thank you – readers, attendees, twitter/g+ followers, beer buddies. This all worth nothing without you.&lt;/p&gt;  &lt;p&gt;Thanks!   &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=zyEWT1mhYfQ:zgqpyzYwMhY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=zyEWT1mhYfQ:zgqpyzYwMhY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=zyEWT1mhYfQ:zgqpyzYwMhY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=zyEWT1mhYfQ:zgqpyzYwMhY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=zyEWT1mhYfQ:zgqpyzYwMhY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=zyEWT1mhYfQ:zgqpyzYwMhY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=zyEWT1mhYfQ:zgqpyzYwMhY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/zyEWT1mhYfQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/zyEWT1mhYfQ/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/MVP-for-the-3rd-Time!.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=36b0d200-b126-4aee-8d6d-4f4916e50eba</guid>
      <pubDate>Sat, 21 Apr 2012 11:03:09 +0400</pubDate>
      <category>Off Topic</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=36b0d200-b126-4aee-8d6d-4f4916e50eba</pingback:target>
      <slash:comments>40</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=36b0d200-b126-4aee-8d6d-4f4916e50eba</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/MVP-for-the-3rd-Time!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=36b0d200-b126-4aee-8d6d-4f4916e50eba</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=36b0d200-b126-4aee-8d6d-4f4916e50eba</feedburner:origLink></item>
    <item>
      <title>Mass Assignment Vulnerability in ASP.NET MVC</title>
      <description>&lt;p&gt;A couple of days ago the Ruby on Rails world got shocked by an old bug (or feature?) that could cause massive security issues sometimes. You can read about it &lt;a href="http://blog.mhartl.com/2008/09/21/mass-assignment-in-rails-applications/"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;While reading about this vulnerability, I figured out that ASP.NET MVC worked in a very similar way… would it reproduce in an ASP.NET MVC environment? well, of course!&lt;/p&gt;  &lt;h3&gt;The Problematic Feature&lt;/h3&gt;  &lt;p&gt;ASP.NET MVC has this very convenient way of getting parameters from the request named Model Binding. The very simple example of Model Binding is controller actions with parameters. For instance:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:dbaab424-ba5a-4673-b5c9-8f4141432e12" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;public ActionResult Create(string name, string email)
{ 
  // ... do stuff ...
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;In this sample, the Model Binding feature will automatically fill in the name and email parameters with data from the request. Very similar to doing something like that:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:20bcb519-e34f-41ad-89de-5986b861c66a" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;public ActionResult Create()
{
  string name = Request["name"];
  string email = Request["Email"];

  /// ... do stuff ...			
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This is already very helpful and it’s getting even better – you can set the parameter to a type of your own, and ASP.NET MVC will create an instance and fill it up for you. For instance, if you have a class named &lt;em&gt;Person&lt;/em&gt; like this one:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:e2911a9a-6eea-4431-b5b1-0b722c649217" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;public class Person
{
  public string Name { get; set; }
  public string Email { get; set; }
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can change the Create method to:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:eda3a56e-027a-425e-93dc-dc8adbf64eed" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;public ActionResult Create(Person person)
{			
  /// ... do stuff ...
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;By doing this, the Person.Name and Person.Email properties will automatically be filled in by ASP.NET MVC Model Binding.&lt;/p&gt;

&lt;p&gt;OK, now that we understand what the essence of model binding is, let’s move on to the problem it represents…&lt;/p&gt;

&lt;h3&gt;Reproducing the Vulnerability&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Create a new ASP.NET MVC Application (I tried it with &lt;strong&gt;ASP.NET MVC 3 and 4&lt;/strong&gt;).&lt;/li&gt;

  &lt;li&gt;Add a new model class named User, as follows:
    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:fb7e1b64-0cad-4a9c-b312-e3ab48a20643" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;public class User
{
  public int Id { get; set; }
  public string Name { get; set; }
  public string Email { get; set; }
  public bool IsAdmin { get; set; }
}&lt;/pre&gt;&lt;/div&gt;

&lt;/li&gt;&lt;li&gt;Use the Add Controller dialog box to create a database context and a controller. Call it &lt;em&gt;UsersController&lt;/em&gt;. Set the dialog properties as follows:&lt;br/&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Add Controller UsersController " border="0" alt="Add Controller UsersController " src="http://www.ironshay.com/image.axd?picture=image_69.png" width="480" height="353" /&gt;&lt;/li&gt;

  &lt;li&gt;We don’t want the users to change the &lt;em&gt;IsAdmin&lt;/em&gt; boolean value. It will be set somehow by the logics of the application later on. Therefore, open the&lt;em&gt; Create.cshtml&lt;/em&gt; and &lt;em&gt;Edit.cshtml&lt;/em&gt; views (they’re located under the Views/Users folder), and remove the &lt;em&gt;IsAdmin&lt;/em&gt; part from them. The part to remove should look something like that:

  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:f14674a5-fd97-4daf-8487-59ed83e47d42" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;&amp;lt;div class="editor-label"&amp;gt;
    @Html.LabelFor(model =&amp;gt; model.IsAdmin)
&amp;lt;/div&amp;gt;
&amp;lt;div class="editor-field"&amp;gt;
    @Html.EditorFor(model =&amp;gt; model.IsAdmin)
    @Html.ValidationMessageFor(model =&amp;gt; model.IsAdmin)
&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Now to the interesting part:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Run the application and browse to &lt;em&gt;/Users/Create&lt;/em&gt;&lt;/li&gt;

  &lt;li&gt;Fill up the form and send. You’ve got a new user. IsAdmin is false.&lt;/li&gt;

  &lt;li&gt;Go to the Edit page for this user. The URL will be something like &lt;em&gt;/Users/Edit/1&lt;/em&gt;.&lt;/li&gt;

  &lt;li&gt;Change the URL to &lt;em&gt;/Users/Edit/1?IsAdmin=true &lt;/em&gt;and click enter to browse to it.&lt;/li&gt;

  &lt;li&gt;Now click Save&lt;/li&gt;

  &lt;li&gt;IsAdmin is now saved as True to the database. &lt;strong&gt;Oops.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This example is very very simple, but think about real world scenarios… this might get ugly. Very ugly. The biggest site that suffered the consequences of this vulnerability(based on Rails, but it’s the same thing) is GitHub – you can read their announcement &lt;a href="https://github.com/blog/1068-public-key-security-vulnerability-and-mitigation"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;How to Defend&lt;/h3&gt;

&lt;p&gt;ASP.NET MVC offers a very simple solution to that problem – &lt;a href="http://ittecture.wordpress.com/2009/05/01/tip-of-the-day-199-asp-net-mvc-defining-model-binding-explicitly/"&gt;the Bind(Exclude=””) Attribute&lt;/a&gt;.&amp;#160; However, most people never use this feature. So… make a new habit from today – start using it. ALL THE TIME. And when I say ALL THE TIME, I mean that from now on you use it ALL THE F***ING TIME.&lt;/p&gt;

&lt;p&gt;For my small sample, add &lt;em&gt;[Bind(Exclude = &amp;quot;IsAdmin&amp;quot;)]&lt;/em&gt; to the top of the model class (User.cs). After this change the model class should look like that:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:0f479a61-67a1-445a-b8fd-04063e61fa05" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;[Bind(Exclude = "IsAdmin")]
public class User
{
  public int Id { get; set; }
  public string Name { get; set; }
  public string Email { get; set; }
  public bool IsAdmin { get; set; }
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Rebuild and try our little hack again. It won’t work this time. &lt;strong&gt;Phew.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Stay safe,
  &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=1YjU9nuIP4k:P28upzYKJ_0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=1YjU9nuIP4k:P28upzYKJ_0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=1YjU9nuIP4k:P28upzYKJ_0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=1YjU9nuIP4k:P28upzYKJ_0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=1YjU9nuIP4k:P28upzYKJ_0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=1YjU9nuIP4k:P28upzYKJ_0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=1YjU9nuIP4k:P28upzYKJ_0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/1YjU9nuIP4k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/1YjU9nuIP4k/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/Mass-Assignment-Vulnerability-in-ASPNET-MVC.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=0719bb59-f425-4c0a-af1f-348c9147a55a</guid>
      <pubDate>Wed, 07 Mar 2012 12:38:33 +0400</pubDate>
      <category>ASP.NET MVC</category>
      <category>Security</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=0719bb59-f425-4c0a-af1f-348c9147a55a</pingback:target>
      <slash:comments>57</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=0719bb59-f425-4c0a-af1f-348c9147a55a</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/Mass-Assignment-Vulnerability-in-ASPNET-MVC.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=0719bb59-f425-4c0a-af1f-348c9147a55a</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=0719bb59-f425-4c0a-af1f-348c9147a55a</feedburner:origLink></item>
    <item>
      <title>C# One Liners</title>
      <description>&lt;p&gt;I love programming languages. I think they are beautiful. One of the best things about learning different programming languages is finding the different approaches and techniques of each language. This also allows you to incorporate them into other programming languages. One of my favorite languages is Ruby, and Rubyists have this habit of writing meaningful code in one line, AKA “one liner”. C#-ers don’t do one-liners very much, probably because they couldn’t write cool one-liners till not so long ago.&lt;/p&gt;  &lt;p&gt;BUT! this has all changed with the arrival of LINQ. The first time you see it you go “WHAT THE ****!?!?!?##@@!??!??”, then you go “hmmmmm” and eventually you have a silly happy look on your face and it seems like everything you can pronounce is “wow” and “cool!”. That’s why my nickname for LINQ is “CDD” – &lt;strong&gt;Coolness Driven Development&lt;/strong&gt;.     &lt;br /&gt;So for this post I’ve gathered some cool C# one-liners that I’ve put together with the help of LINQ and features of the C# language. Have more? add a comment!&lt;/p&gt;  &lt;h3&gt;Filter lists&lt;/h3&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:9c127813-2b19-41d1-b08b-2cc4dc68c7c1" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;var list = new List&amp;lt;string&amp;gt;() {"Asia", "Africa", "North America", "South America", "Antartica", "Europe", "Australia"};

// Get all the items from the list that start with
// an 'A' and have 'r' as the 3rd character
var filteredList = list.Where(item =&amp;gt; item.StartsWith("A")).Where(item =&amp;gt; item[2] == 'u').ToList();&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;&lt;/h3&gt;

&lt;h3&gt;Create a new list from the first items of another list&lt;/h3&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:4c0d7a7d-0ba8-47da-829c-6caad72fcb21" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;// Take the first 3 items from list 'list' and create a new list with them
var shortList = list.Take(3).ToList();&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;&amp;#160;&lt;/h3&gt;

&lt;h3&gt;Remove duplicate items from a list&lt;/h3&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:33207b0e-497f-42e0-aab9-5fbcf0d13546" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;var listWithoutDuplicates = list.Distinct().ToList();&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Print all items in a list&lt;/h3&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:1202f5db-2193-404b-9387-d2aa67d7aa05" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;list.ForEach(Console.WriteLine);&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;
  &lt;h3&gt;Cool string counting stuff&lt;/h3&gt;

  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:dd5a62fe-7678-496f-956c-6e2f8a408230" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;var str = "H1e2l3l4l5o6";
// Count all digits in a string
var numOfDigits = str.Count(char.IsDigit);
// Count all lowercase characters in a string
var numOfLowerCase = str.Count(char.IsLower);
// Count all uppercase characters within a string
var numOfUpperCase = str.Count(char.IsUpper);&lt;/pre&gt;&lt;/div&gt;

  &lt;p&gt;&amp;#160;&lt;/p&gt;

  &lt;h3&gt;Comparing two lists&lt;/h3&gt;

  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:8e36b49f-5272-4359-8d3b-4de0a385d806" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;var list = new List&amp;lt;string&amp;gt;() { "Asia", "Africa", "North America", "South America", "Antartica", "Europe", "Australia" };
var list2 = new List&amp;lt;string&amp;gt; {"Africa", "South America", "Antartica", "Foo"};

// Get all items in the list that do NOT have matching items on a different list
var list3 = list.Except(list2).ToList();

// Get all items in the list that have matching items on a different list
list3 = list.Intersect(list2).ToList();&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;h3&gt;Convert all items in a list&lt;/h3&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:8e021b62-a69f-4261-a41d-6f1b7be2e2f4" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;string[] numbersAsText = new[] {"1", "2", "3"};
int[] numbers = numbersAsText.Select(n =&amp;gt; Convert.ToInt32(n)).ToArray();
numbers.ToList().ForEach(Console.WriteLine);&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Do heavy processing of parts of groups in threads&lt;/h3&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:184cc87a-ad12-4ec7-b011-21500daf1ee7" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;var nums = Enumerable.Range(1, 100);
Parallel.ForEach(nums.GroupBy(num =&amp;gt; num%2), numGroup =&amp;gt; DoHeavyStuff(numGroup.ToList()));&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Well, that’s what I have… I bet there are tons more. Go ahead C#-ers, it’s your time to shine!
  &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=lcvH3pFMuOw:bWpWeplwEjA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=lcvH3pFMuOw:bWpWeplwEjA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=lcvH3pFMuOw:bWpWeplwEjA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=lcvH3pFMuOw:bWpWeplwEjA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=lcvH3pFMuOw:bWpWeplwEjA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=lcvH3pFMuOw:bWpWeplwEjA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=lcvH3pFMuOw:bWpWeplwEjA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/lcvH3pFMuOw" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/lcvH3pFMuOw/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/Extreme-C-with-LINQ.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=e3c9d68e-431b-424c-b393-f15b66df5676</guid>
      <pubDate>Fri, 03 Feb 2012 10:25:39 +0400</pubDate>
      <category>C#</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=e3c9d68e-431b-424c-b393-f15b66df5676</pingback:target>
      <slash:comments>21</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=e3c9d68e-431b-424c-b393-f15b66df5676</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/Extreme-C-with-LINQ.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=e3c9d68e-431b-424c-b393-f15b66df5676</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=e3c9d68e-431b-424c-b393-f15b66df5676</feedburner:origLink></item>
    <item>
      <title>Slides and Code Samples from my Talk at LIDNUG - What?!? C# Could Do That???</title>
      <description>&lt;p&gt;On Thursday I had the honor to do a virtual talk at LIDNUG – the LinkedIn .NET User Group. A stage where lots of .NET celebs like Scott Gu, Jeffery Richter, Jeff Prosise and others have talked in the past.&lt;/p&gt;  &lt;p&gt;I’d like to thank all the attendees and the LIDNUG crew who made this possible – Inbar, Peter and Brian – you guys rock!&lt;/p&gt;  &lt;p&gt;About the talk – I focused on the dynamic capabilities of C#. Started with some black magic done using the &lt;em&gt;dynamic&lt;/em&gt; keyword, then moved on to practice witchcraft with the combination of IronRuby and C#, and ended with the new and shiny .NET spell-book also known as project “Roslyn”. &lt;/p&gt;  &lt;p&gt;The talk was recorded and it can be found on &lt;a href="http://youtu.be/zqyVONGlrdM"&gt;YouTube&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;iframe height="315" src="http://www.youtube.com/embed/zqyVONGlrdM?rel=0" frameborder="0" width="420" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;The code samples from the talk are also available – &lt;a href="http://ironshay.com/files/WhatCSharpCouldDoThat-IronShay.zip"&gt;click here to download them [2.47Mb]&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I had a blast, hope you did as a well.    &lt;br /&gt;All the best,     &lt;br /&gt;Shay.&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=gnqVICJS31s:qPgesVdwDvE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=gnqVICJS31s:qPgesVdwDvE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=gnqVICJS31s:qPgesVdwDvE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=gnqVICJS31s:qPgesVdwDvE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=gnqVICJS31s:qPgesVdwDvE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=gnqVICJS31s:qPgesVdwDvE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=gnqVICJS31s:qPgesVdwDvE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/gnqVICJS31s" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/gnqVICJS31s/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/Slides-and-Code-Samples-from-my-Talk-at-LIDNUG-What!-C-Could-Do-That.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=19c8d012-8867-4c23-a394-f15c2ba19668</guid>
      <pubDate>Sat, 19 Nov 2011 12:10:22 +0400</pubDate>
      <category>C#</category>
      <category>DLR</category>
      <category>IronRuby</category>
      <category>Presentations</category>
      <category>.NET</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=19c8d012-8867-4c23-a394-f15c2ba19668</pingback:target>
      <slash:comments>25</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=19c8d012-8867-4c23-a394-f15c2ba19668</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/Slides-and-Code-Samples-from-my-Talk-at-LIDNUG-What!-C-Could-Do-That.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=19c8d012-8867-4c23-a394-f15c2ba19668</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=19c8d012-8867-4c23-a394-f15c2ba19668</feedburner:origLink></item>
    <item>
      <title>My Sessions at NDC2011 and Upcoming Gigs at GOTO, SDC and LINDUG</title>
      <description>&lt;p&gt;It’s been a while since NDC2011 took place but I figured out I’ve never officially published the slides and videos from this incredible event. First and foremost, I’d like to thank &lt;strong&gt;Program Utvikling&lt;/strong&gt; for having me as a speaker second year in a row – &lt;strong&gt;you guys ROCK!&lt;/strong&gt; this year’s conference just strengthened my belief that NDC is the best .NET conference out there. So if you have one conference you wanna go to, this is, IMHO, your best pick.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ironshay.com/image.axd?picture=image_68.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.ironshay.com/image.axd?picture=image_thumb_19.png" width="209" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Anyway, I had two sessions this year – IronRuby FTW and Ruby on Rails vs. ASP.NET MVC:&lt;/p&gt;  &lt;h3&gt;IronRuby FTW!!!&lt;/h3&gt;  &lt;p&gt;Thanks for the attendees that chose my session over Scott Guthrie’s – very much appreciated! :)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Abstract:     &lt;br /&gt;&lt;/strong&gt;Ruby has been a home for some great innovative frameworks like Ruby on Rails, Cucumber and Rake. In this session you will get familiar with the IronRuby language and its amazing ecosystem and you will learn to take advantage of it in everyday tasks like testing, building, enhancing current code and more. Come and see how IronRuby makes your development life better and happier!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Slides&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;div style="width:425px" id="__ss_9552257"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/shayfriedman/ironruby-ftw" title="IronRuby FTW!!!" target="_blank"&gt;IronRuby FTW!!!&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9552257" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&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/shayfriedman" target="_blank"&gt;Shay Friedman&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Videos: &lt;/strong&gt;&lt;a href="http://ndc2011.macsimum.no/mp4/Day2%20Thursday/Track1%200900-1000.mp4"&gt;Dowload MP4&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Ruby on Rails vs. ASP.NET MVC&lt;/h3&gt;  &lt;p&gt;I had lots of fun preparing for this session and doing it as well. Apart from my comparison, I ran a little scoreboard during the session and asked the audience a few times to vote for their favorite framework – ASP.NET MVC won by 1 vote! this is not a huge surprise – even though Ruby on Rails is still ahead in terms of community and external packages, the fundamentals of both frameworks are pretty solid at the moment and quite similar… &lt;/p&gt;  &lt;p&gt;I did this session a year ago (with MVC 2.0) at Epicenter2010 and Ruby on Rails won 8 to 2… So this result is a very good sign that ASP.NET MVC is in the right direction – Good work Microsoft!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Abstract:     &lt;br /&gt;&lt;/strong&gt;Last year was the year when two great web development frameworks arrive at the .NET world – ASP.NET MVC 3.0 and Ruby on Rails (via IronRuby). It is the time to get to know these frameworks and learn their advantages and disadvantages. In this session, Shay Friedman will walk you through the good, the bad and the ugly of both frameworks providing you points to consider when coming to choose one of them.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Slides:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;div style="width:425px" id="__ss_9552439"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/shayfriedman/ruby-on-rails-vs-aspnet-mvc-9552439" title="Ruby on Rails vs. ASP.NET MVC" target="_blank"&gt;Ruby on Rails vs. ASP.NET MVC&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9552439" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&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/shayfriedman" target="_blank"&gt;Shay Friedman&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Videos: &lt;/strong&gt;&lt;a href="http://ndc2011.macsimum.no/mp4/Day1%20Wednesday/Track2%201740-1840.mp4"&gt;Download MP4&lt;/a&gt;&lt;/p&gt;  &lt;h1&gt;&lt;strong&gt;Upcoming Gigs&lt;/strong&gt;&lt;/h1&gt;  &lt;p&gt;In the next month I’m going to present four sessions in three different conferences and locations. If you’re around, come say hello.&lt;/p&gt;  &lt;h2&gt;GOTO Amsterdam – October 13-14 (Amsterdam, The Netherlands)&lt;/h2&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" border="0" alt="GOTO Logo" src="http://gotocon.com/dl/goto-ams-2011/goto_web_header_AMS_2011_v4_960x175.png" width="511" height="96" /&gt;&lt;/p&gt;  &lt;p&gt;I’m going to run a single session – &lt;a href="http://gotocon.com/amsterdam-2011/presentation/ASP.NET%20MVC%203%20Tips,%20Tricks%20and%20Hidden%20Gems"&gt;“ASP.NET MVC 3 Hidden Tips, Tricks and Hidden Gems”&lt;/a&gt;. You’ll also be able to find me on the conference party, the Meet the Speakers event and generally where they serve beer :)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Time and place:&lt;/strong&gt; October 13th, 13:20-14:10, Foyer room.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Abstract:     &lt;br /&gt;&lt;/strong&gt;The ASP.NET MVC framework has been around for more than two year now and has been constantly gaining popularity since then. However, despite that fact a lot of MVC developers are not aware of various hidden gems that can make their development experience much easier and nicer. In this session we will go through some of those which were added in the latest version – ASP.NET MVC 3.&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;ScanDev on Tour – October 18th (Stockholm, Sweden)&lt;/h2&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" border="0" src="http://www.scandevtour.se/img/promote/2011-tour/banner468x60v2.gif" /&gt;&lt;/p&gt;  &lt;p&gt;Very excited to come back to Sweden (too bad it’s not gonna be snowy, though :) ). On ScanDev on Tour I’m going to present two sessions – &lt;a href="http://www.scandevtour.se/2011-tour/conference/speakers/shay-friedman/"&gt;“ASP.NET MVC Hidden Tips, Tricks and Hidden Gems” and “Introduction to Ruby on Rails”&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session&lt;/strong&gt;: Introduction to Ruby on Rails    &lt;br /&gt;&lt;strong&gt;Time and place:&lt;/strong&gt; 10:30 – 11:20, Web Room    &lt;br /&gt;&lt;strong&gt;Abstract:&lt;/strong&gt;     &lt;br /&gt;The most famous Ruby–driven framework is, by far, Ruby on Rails. In the last few years this framework has been gaining popularity and now is a great time to get to know it. In this session, Shay Friedman will build an entire Web 2.0 site from scratch while using and explaining the key features of Ruby on Rails. Come and see what Ruby on Rails is all about and what's made it the success it is today.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Session&lt;/strong&gt;: ASP.NET MVC Hidden Tips, Tricks and Hidden Gems    &lt;br /&gt;&lt;strong&gt;Time and place:&lt;/strong&gt; 13:30 – 14:20, .NET Room    &lt;br /&gt;&lt;strong&gt;Abstract:&lt;/strong&gt;     &lt;br /&gt;The ASP.NET MVC framework has been around for more than two year now and has been constantly gaining popularity ever since. However, despite that fact, a lot of MVC developers are not aware of various hidden gems that can make their development experience much easier and nicer. In this session we will go through some of those which were added in the latest version – ASP.NET MVC 3.&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;LINDUG – November 17th (Virtual)&lt;/h2&gt;  &lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" border="0" src="http://evbdn.eventbrite.com/s3-s3/eventlogos/6338227/2147850278-1.png" /&gt;&lt;/p&gt;  &lt;p&gt;LINDUG is the .NET group on LinkedIn. I’m going to run a LiveMeeting 90-minute session – “What?!? C# Could Do That?”.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Time and place&lt;/strong&gt;: 12PM – 1:30PM (PT)    &lt;br /&gt;&lt;strong&gt;Abstract:&lt;/strong&gt;    &lt;br /&gt;.NET 4 has brought us the DLR and C# 4 has brought us the dynamic keyword. With their powers combined, C# suddenly gets super powers!    &lt;br /&gt;In this session Shay Friedman will show you surprising and practical things you can do today with C#, the dynamic keyword and the DLR.    &lt;br /&gt;&lt;strong&gt;Registration (free): &lt;a href="http://lidnug-shayfriedman.eventbrite.com/"&gt;http://lidnug-shayfriedman.eventbrite.com/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;br /&gt;All the best,  &lt;br /&gt;Shay.         &lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=iVpffcvgB78:f9SFBdMtgbQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=iVpffcvgB78:f9SFBdMtgbQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=iVpffcvgB78:f9SFBdMtgbQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=iVpffcvgB78:f9SFBdMtgbQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=iVpffcvgB78:f9SFBdMtgbQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=iVpffcvgB78:f9SFBdMtgbQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=iVpffcvgB78:f9SFBdMtgbQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/iVpffcvgB78" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/iVpffcvgB78/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/My-Sessions-at-NDC2011-and-Upcoming-Gigs-at-GOTO-SDC-and-LINDUG.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=ad4ded94-8cb1-4abf-9db5-1dfe8d46c7db</guid>
      <pubDate>Wed, 05 Oct 2011 12:11:36 +0400</pubDate>
      <category>Presentations</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=ad4ded94-8cb1-4abf-9db5-1dfe8d46c7db</pingback:target>
      <slash:comments>35</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=ad4ded94-8cb1-4abf-9db5-1dfe8d46c7db</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/My-Sessions-at-NDC2011-and-Upcoming-Gigs-at-GOTO-SDC-and-LINDUG.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=ad4ded94-8cb1-4abf-9db5-1dfe8d46c7db</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=ad4ded94-8cb1-4abf-9db5-1dfe8d46c7db</feedburner:origLink></item>
    <item>
      <title>My Leading Candidate for Worst C# Feature – Method Hiding</title>
      <description>&lt;p&gt;I love C#, I really do. Of course is has its little annoying quirks here and there, but in general it is, IMHO, one of the best static programming languages out there. Having said that, one thing that makes me wonder “WHAT THE HELL WERE THEY THINKNING?!?$?!?” every single time is the feature known as “&lt;em&gt;Method Hiding&lt;/em&gt;”.&lt;/p&gt;  &lt;h1&gt;What is Method Hiding?&lt;/h1&gt;  &lt;p&gt;Method hiding, in short, is the crippled, mentally-ill brother of method overriding. For example, look at the next code:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:da59c2ff-9708-4007-8b4e-00e19663cb79" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;class A
{
  public string GetName()
  {
    return "A"; 
  }
}

class B : A
{
  public new string GetName()
  {
    return "B";
  }
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Class A has a GetName method; class B inherits from class A and implements the GetName method as well.&amp;#160; &lt;br /&gt;Look carefully at the GetName method signature in class B – do you see the &lt;em&gt;new&lt;/em&gt; keyword there? this means that the method doesn’t override the implementation in class A, it just hides it. What does that mean? read on.&lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;h1&gt;So What’s the Big Deal? Hide, Override… Who Cares?&lt;/h1&gt;

&lt;p&gt;There is a huge difference in the behavior of method hiding and overriding. Look at the next two samples:&lt;/p&gt;

&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Method hiding vs. Method overriding" border="0" alt="Method hiding vs. Method overriding" src="http://www.ironshay.com/image.axd?picture=image_67.png" width="600" height="290" /&gt;&lt;/p&gt;

&lt;p&gt;The left part is a method hiding example, and the right part is a method overriding example. Now let’s go through the use cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First –&lt;/strong&gt; using the father classes:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:a0d66ea8-6aad-41fc-8866-9d6c85567cf6" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;FatherHidden fh = new FatherHidden();
fh.GetName(); // = "A"

FatherVirtual fv = new FatherVirtual();
fv.GetName(); // = "A"&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Both are available and return the same result. Good.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second – &lt;/strong&gt;using the son classes:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:1a572196-706a-4ac7-a76d-8bea3ece6ec2" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;SonHiding sh = new SonHiding();
sh.GetName(); // = "B"

SonOverriding so = new SonOverriding();
so.GetName(); // = "B"&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Again, both methods return the expected result. Swell!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third – &lt;/strong&gt;using polymorphism – storing an instance of the son classes in a father class variable and calling the GetName method:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:b2a49848-6aca-429b-822f-20356f109779" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;FatherHidden fh = new SonHiding();
fh.GetName(); // = "A"

FatherVirtual fv = new SonOverriding();
fv.GetName(); // = "B"&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;See that? the hidden method (FatherHidden.GetName) had suddenly woken up, took over and returned “A” instead of the expected “B”! kicking polymorphism out the door while doing it!&lt;/p&gt;

&lt;h1&gt;Is It a Problem?&lt;/h1&gt;

&lt;p&gt;Yes, it is. I’ve never found any reason to use method hiding and I can’t think of a good reason start using it in the future. OOP is great and I can’t understand why we need ways to screw it up. In my opinion, if you get to a situation where you need to use method hiding, &lt;strong&gt;re-think your design and start over&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is not &lt;em&gt;just &lt;/em&gt;a cute code smell. It can lead to nasty bugs along the way. For instance, I came across something like the next piece of code when doing a code-review lately:&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:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:5c038b2d-a412-4406-9a6f-2f070c335ba5" class="wlWriterSmartContent"&gt;&lt;pre class="brush: c#;"&gt;class Base
{
  public bool IsAuthenticated { get { return false; } }
}
class SomeAuthClass : Base
{
  public new bool IsAuthenticated { get { return CheckAuthentication(); } }
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Now, as long as they use SomeAuthClass variable types on their system, everything will work fine. But once a developer comes and wants to use some OOP magic, all users will immediately become unauthenticated. And this is no fun. No fun at all.&lt;/p&gt;

&lt;p&gt;One of my major problems with method hiding is that it is C#’s default behavior – you don’t even need to write the &lt;em&gt;new&lt;/em&gt; keyword. And even if the method on the base class is marked as &lt;em&gt;virtual&lt;/em&gt;, and you forget to mark the method on the inheriting class with &lt;em&gt;override – &lt;/em&gt;you fall back to method hiding… &lt;/p&gt;

&lt;p&gt;#sadpanda&lt;/p&gt;

&lt;h1&gt;What I Am Suggesting&lt;/h1&gt;

&lt;p&gt;I know this feature isn’t going to disappear. Ever. I’m sure some people have found a reason to use it like there’s no tomorrow and Microsoft is one of the best in keeping their products backwards-compatible.&lt;/p&gt;

&lt;p&gt;However, I would like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;To get a compilation error if a method is going to hide another method and is not marked with the &lt;em&gt;new &lt;/em&gt;keyword. &lt;/li&gt;

  &lt;li&gt;To make the method hiding feature obsolete (yes, obsolete!) and get a compilation warning when using this feature in future versions of the framework. &lt;/li&gt;

  &lt;li&gt;You to &lt;strong&gt;stop&lt;/strong&gt; using method hiding. &lt;/li&gt;

  &lt;li&gt;Everyone to recycle more and save the planet! &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All the best, 
  &lt;br /&gt;Shay.&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.ironshay.com/post/My-Leading-Candidate-for-Worst-C-Feature-e28093-Method-Hiding.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.ironshay.com/post/My-Leading-Candidate-for-Worst-C-Feature-e28093-Method-Hiding.aspx&amp;amp;bgcolor=0000FF&amp;amp;cfgcolor=FFFF00&amp;amp;cbgcolor=6699FF" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
&lt;a rev="vote-for" href="http://dotnetshoutout.com/My-Leading-Candidate-for-Worst-C-Feature-Method-Hiding"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http://www.ironshay.com/post/My-Leading-Candidate-for-Worst-C-Feature-e28093-Method-Hiding.aspx" style="border:0px" /&gt;&lt;/a&gt;
&lt;script type="text/javascript"&gt;var dzone_url = 'http://www.ironshay.com/post/My-Leading-Candidate-for-Worst-C-Feature-e28093-Method-Hiding.aspx';&lt;/script&gt;
&lt;script type="text/javascript"&gt;var dzone_style = '2';&lt;/script&gt;
&lt;script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"&gt;&lt;/script&gt;

&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=UdaZWqjrX9M:7y3hnuTVLvw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=UdaZWqjrX9M:7y3hnuTVLvw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=UdaZWqjrX9M:7y3hnuTVLvw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=UdaZWqjrX9M:7y3hnuTVLvw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=UdaZWqjrX9M:7y3hnuTVLvw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShayTalksAbout?a=UdaZWqjrX9M:7y3hnuTVLvw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShayTalksAbout?i=UdaZWqjrX9M:7y3hnuTVLvw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShayTalksAbout/~4/UdaZWqjrX9M" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ShayTalksAbout/~3/UdaZWqjrX9M/post.aspx</link>
      <author>Shay Friedman</author>
      <comments>http://www.ironshay.com/post/My-Leading-Candidate-for-Worst-C-Feature-e28093-Method-Hiding.aspx#comment</comments>
      <guid isPermaLink="false">http://www.ironshay.com/post.aspx?id=fda1c387-ee70-46aa-b446-5ef690439cfd</guid>
      <pubDate>Mon, 25 Jul 2011 22:02:43 +0400</pubDate>
      <category>C#</category>
      <dc:publisher>Shay Friedman</dc:publisher>
      <pingback:server>http://www.ironshay.com/pingback.axd</pingback:server>
      <pingback:target>http://www.ironshay.com/post.aspx?id=fda1c387-ee70-46aa-b446-5ef690439cfd</pingback:target>
      <slash:comments>51</slash:comments>
      <trackback:ping>http://www.ironshay.com/trackback.axd?id=fda1c387-ee70-46aa-b446-5ef690439cfd</trackback:ping>
      <wfw:comment>http://www.ironshay.com/post/My-Leading-Candidate-for-Worst-C-Feature-e28093-Method-Hiding.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.ironshay.com/syndication.axd?post=fda1c387-ee70-46aa-b446-5ef690439cfd</wfw:commentRss>
    <feedburner:origLink>http://www.ironshay.com/post.aspx?id=fda1c387-ee70-46aa-b446-5ef690439cfd</feedburner:origLink></item>
  </channel>
</rss>
