<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>Andrew Siemer's Blog</title>
        <link>http://geekswithblogs.net/AndrewSiemer/Default.aspx</link>
        <description>Enterprise Web Applications, ASP.NET, C#, SQL Server, Architecture, &amp; Writing</description>
        <language>en-US</language>
        <copyright>Andrew Siemer - www.andrewsiemer.com</copyright>
        <managingEditor>asiemer@hotmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Andrew Siemer's Blog</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/AndrewSiemer/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AndrewSiemer" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
            <title>Interviewing Sara J Chipps 11 Nov 2009 (tomorrow) at 7am</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/EHfe7XYUtRA/interviewing-sara-j-chipps-11-nov-2009-tomorrow-at-7am.aspx</link>
            <description>&lt;div&gt;Hey all.  I wanted to let you know that I am going to be interviewing Sara J Chipps (of &lt;a href="http://www.girldeveloper.com"&gt;www.girldeveloper.com&lt;/a&gt;) tomorrow at 7am.  We will be discussing all sorts of programmer goodness from making your personal projects a reality (such as Sara’s &lt;a href="http://bundl.it"&gt;http://bundl.it&lt;/a&gt; project), agile development, commenting your code, and your responsibility as a developer to the next person reading your code.  We will also be looking at jQuery, asynchronous processes, and architecting for speed and scalability.  And of course, being that we are talking with a …or “THE”… girl developer we will also touch upon what it is like to be a lady working in mostly male dominated industry.&lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Send in your questions and comments!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions for Sara prior to the interview or during it please twitter your question my way and include #DNetRadio in your post.  &lt;/p&gt;  &lt;p&gt;You can also record an audio file and email it to &lt;a href="mailto:podcast@dotnetradio.com"&gt;podcast@dotnetradio.com&lt;/a&gt;. All you need is a telephone! Call (646) 200-0000, talk, then navigate to &lt;a href="http://cinch.blogtalkradio.com/YOURPHONENUMBER"&gt;http://cinch.blogtalkradio.com/YOURPHONENUMBER&lt;/a&gt; to retrieve your recording. Then send it my way!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a2ffe593-6fb6-46e8-ba46-355b3b3c7cbf" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Sara+J+Chipps" rel="tag"&gt;Sara J Chipps&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136227"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136227" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/136227.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/85We1EI9kEJz4pTZVF3BgQQ4Wpg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/85We1EI9kEJz4pTZVF3BgQQ4Wpg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/85We1EI9kEJz4pTZVF3BgQQ4Wpg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/85We1EI9kEJz4pTZVF3BgQQ4Wpg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/11/11/interviewing-sara-j-chipps-11-nov-2009-tomorrow-at-7am.aspx</guid>
            <pubDate>Thu, 12 Nov 2009 02:46:40 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/136227.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/11/interviewing-sara-j-chipps-11-nov-2009-tomorrow-at-7am.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/136227.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/136227.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/11/interviewing-sara-j-chipps-11-nov-2009-tomorrow-at-7am.aspx</feedburner:origLink></item>
        <item>
            <title>Just interviewed Atif Aziz for the DotNetRadio podcast</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/rg0qU-IfO6o/just-interviewed-atif-aziz-for-the-dotnetradio-podcast.aspx</link>
            <description>&lt;p&gt;I just got through interviewing &lt;a href="http://raboof.com/" target="_blank"&gt;Atif Aziz&lt;/a&gt; (&lt;a href="http://twitter.com/raboof" target="_blank"&gt;@raboof&lt;/a&gt; on twitter – foobar spelled backwards!) probably most known (at least to me) for his &lt;a href="http://code.google.com/p/elmah/" target="_blank"&gt;ELMAH&lt;/a&gt; (Error Logging Modules and Handlers) contribution.  We discussed ELMAH, ELMAH’s Veracode Application Security Rating which made &lt;a href="http://www.owasp.org/index.php/Top_10_2007" target="_blank"&gt;OWASP top 10 in 2007&lt;/a&gt; and &lt;a href="http://www.sans.org/top25-programming-errors/" target="_blank"&gt;SANS-CWE top 25&lt;/a&gt;, &lt;a href="http://code.google.com/p/fizzler/" target="_blank"&gt;Fizzler&lt;/a&gt;, &lt;a href="http://code.google.com/p/jayrock/" target="_blank"&gt;Jayrock&lt;/a&gt;, &lt;a href="http://www.raboof.com/Projects/BackLINQ/" target="_blank"&gt;BackLINQ&lt;/a&gt;, &lt;a href="http://code.google.com/p/linqbridge/" target="_blank"&gt;LINQBridge&lt;/a&gt;, and &lt;a href="http://code.google.com/p/morelinq/" target="_blank"&gt;MoreLINQ&lt;/a&gt;.  Atif is a very smart guy and you can truly hear his passion for sharing with the development community when speaking with him.  This was a great interview that I think any .net developer could learn a thing or two from.  Look for this interview in the near future on the &lt;a href="http://www.dotnetradio.com" target="_blank"&gt;DotNetRadio&lt;/a&gt; podcast.  &lt;/p&gt;  &lt;p&gt;Subscribe to the podcast feed here: &lt;a href="http://feeds.feedburner.com/Dotnetradio"&gt;http://feeds.feedburner.com/Dotnetradio&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And follow the show on twitter here: &lt;a href="http://twitter.com/dnetradio"&gt;http://twitter.com/dnetradio&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7970b48d-d1c4-4cc7-8143-70db1fc1feaf" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Atif+Aziz" rel="tag"&gt;Atif Aziz&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ELMAH" rel="tag"&gt;ELMAH&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Jayrock" rel="tag"&gt;Jayrock&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BackLINQ" rel="tag"&gt;BackLINQ&lt;/a&gt;,&lt;a href="http://technorati.com/tags/LINQBridge" rel="tag"&gt;LINQBridge&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MoreLINQ" rel="tag"&gt;MoreLINQ&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136139"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136139" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/136139.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UjHYkVtRTK43LQodnmsn9Y__KiY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UjHYkVtRTK43LQodnmsn9Y__KiY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UjHYkVtRTK43LQodnmsn9Y__KiY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UjHYkVtRTK43LQodnmsn9Y__KiY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/11/08/just-interviewed-atif-aziz-for-the-dotnetradio-podcast.aspx</guid>
            <pubDate>Sun, 08 Nov 2009 17:04:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/136139.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/08/just-interviewed-atif-aziz-for-the-dotnetradio-podcast.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/136139.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/136139.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/08/just-interviewed-atif-aziz-for-the-dotnetradio-podcast.aspx</feedburner:origLink></item>
        <item>
            <title>Interviewing Javier Lozano 7 Nov 2009 (tonight) at 8pm PST</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/4Bvn5F1KStU/interviewing-javier-lozano-7-nov-2009-tonight-at-8pm-pst.aspx</link>
            <description>&lt;p&gt;Hey all.  I wanted to let you know who was slated for the next interview - &lt;a href="http://blog.lozanotek.com/About.aspx" target="_blank"&gt;Javier Lozano&lt;/a&gt;.  &lt;/p&gt;  &lt;p&gt;Javier is a .NET consultant in Des Moines, Iowa. He's an ASP.NET MVP and MCSD specializing in ASP.NET, system architecture, and training. Javier is also a co-founder of the &lt;strong&gt;&lt;a href="http://www.iadnug.org"&gt;Iowa .NET Users Group&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;On his blog you can find posts on ASP.NET, architecture, design patterns, .NET, XML and Indigo (WCF). Javier enjoys giving back to the community by speaking at user groups, local/regional .NET events, being active in forums and by writing articles for &lt;strong&gt;&lt;a href="http://www.codeproject.com"&gt;Code Project&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;In his &lt;em&gt;spare time&lt;/em&gt;, Javier enjoys spending time with his wife, &lt;strong&gt;&lt;a href="http://dominiclozano.com"&gt;newborn son&lt;/a&gt; &lt;/strong&gt;, two golden retrievers and writing about himself in the third person.&lt;/p&gt;  &lt;p&gt;It is my plan to interview Javier tonight and get the podcast ready for release by the middle of next week.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Got Questions for Javier?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions about &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;, &lt;a href="http://mvcturbine.codeplex.com/" target="_blank"&gt;Turbine&lt;/a&gt;, or anything else you think appropriate for Javier feel free to send them my way at &lt;a href="mailto:podcast@dotnetradio.com" target="_blank"&gt;podcast@dotnetradio.com&lt;/a&gt;.  The interview will be tonight at 8pm (PST).  Feel free to send your questions in real time via twitter to &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;@DNetRadio&lt;/a&gt;.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:115de82d-3825-4b2e-819c-f83cc953040f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Javier+Lozano" rel="tag"&gt;Javier Lozano&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET+MVC" rel="tag"&gt;ASP.NET MVC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MVC+Turbine" rel="tag"&gt;MVC Turbine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dependency+Injection" rel="tag"&gt;Dependency Injection&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Inversion+of+Control" rel="tag"&gt;Inversion of Control&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MVC+Contrib" rel="tag"&gt;MVC Contrib&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136127"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136127" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/136127.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2Fa_-AQr4llDwmkmEMpHAYAXMkY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2Fa_-AQr4llDwmkmEMpHAYAXMkY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2Fa_-AQr4llDwmkmEMpHAYAXMkY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2Fa_-AQr4llDwmkmEMpHAYAXMkY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-7-nov-2009-tonight-at-8pm-pst.aspx</guid>
            <pubDate>Sat, 07 Nov 2009 22:26:38 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/136127.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-7-nov-2009-tonight-at-8pm-pst.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/136127.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/136127.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-7-nov-2009-tonight-at-8pm-pst.aspx</feedburner:origLink></item>
        <item>
            <title>Interviewing Javier Lozano tonight at 8pm PST</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/3jsQjITmcY8/interviewing-javier-lozano-tonight-at-8pm-pst-again.aspx</link>
            <description>&lt;p&gt;Hey all.  I wanted to let you know who was slated for the next interview - &lt;a href="http://blog.lozanotek.com/About.aspx" target="_blank"&gt;Javier Lozano&lt;/a&gt;.  &lt;/p&gt;  &lt;p&gt;Javier is a .NET consultant in Des Moines, Iowa. He's an ASP.NET MVP and MCSD specializing in ASP.NET, system architecture, and training. Javier is also a co-founder of the &lt;strong&gt;&lt;a href="http://www.iadnug.org"&gt;Iowa .NET Users Group&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;On his blog you can find posts on ASP.NET, architecture, design patterns, .NET, XML and Indigo (WCF). Javier enjoys giving back to the community by speaking at user groups, local/regional .NET events, being active in forums and by writing articles for &lt;strong&gt;&lt;a href="http://www.codeproject.com"&gt;Code Project&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;In his &lt;em&gt;spare time&lt;/em&gt;, Javier enjoys spending time with his wife, &lt;strong&gt;&lt;a href="http://dominiclozano.com"&gt;newborn son&lt;/a&gt; &lt;/strong&gt;, two golden retrievers and writing about himself in the third person.&lt;/p&gt;  &lt;p&gt;It is my plan to interview Javier tonight and get the podcast ready for release by the middle of next week.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Got Questions for Javier?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions about &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;, &lt;a href="http://mvcturbine.codeplex.com/" target="_blank"&gt;Turbine&lt;/a&gt;, or anything else you think appropriate for Javier feel free to send them my way at &lt;a href="mailto:podcast@dotnetradio.com" target="_blank"&gt;podcast@dotnetradio.com&lt;/a&gt;.  The interview will be tonight at 8pm (PST).  Feel free to send your questions in real time via twitter to &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;@DNetRadio&lt;/a&gt;.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:115de82d-3825-4b2e-819c-f83cc953040f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Javier+Lozano" rel="tag"&gt;Javier Lozano&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET+MVC" rel="tag"&gt;ASP.NET MVC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MVC+Turbine" rel="tag"&gt;MVC Turbine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dependency+Injection" rel="tag"&gt;Dependency Injection&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Inversion+of+Control" rel="tag"&gt;Inversion of Control&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MVC+Contrib" rel="tag"&gt;MVC Contrib&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136125"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136125" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/136125.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TDY7WsvFgpSMuwnxx_Hi8UQe5dg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TDY7WsvFgpSMuwnxx_Hi8UQe5dg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TDY7WsvFgpSMuwnxx_Hi8UQe5dg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TDY7WsvFgpSMuwnxx_Hi8UQe5dg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-tonight-at-8pm-pst-again.aspx</guid>
            <pubDate>Sat, 07 Nov 2009 22:24:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/136125.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-tonight-at-8pm-pst-again.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/136125.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/136125.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-tonight-at-8pm-pst-again.aspx</feedburner:origLink></item>
        <item>
            <title>Interviewing Javier Lozano tonight at 8pm PST</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/vD7B7wP1MZA/interviewing-javier-lozano-tonight-at-8pm-pst.aspx</link>
            <description>&lt;p&gt;Hey all.  I wanted to let you know who was slated for the next interview - &lt;a href="http://blog.lozanotek.com/About.aspx" target="_blank"&gt;Javier Lozano&lt;/a&gt;.  &lt;/p&gt;  &lt;p&gt;Javier is a .NET consultant in Des Moines, Iowa. He's an ASP.NET MVP and MCSD specializing in ASP.NET, system architecture, and training. Javier is also a co-founder of the &lt;strong&gt;&lt;a href="http://www.iadnug.org"&gt;Iowa .NET Users Group&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;On his blog you can find posts on ASP.NET, architecture, design patterns, .NET, XML and Indigo (WCF). Javier enjoys giving back to the community by speaking at user groups, local/regional .NET events, being active in forums and by writing articles for &lt;strong&gt;&lt;a href="http://www.codeproject.com"&gt;Code Project&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;In his &lt;em&gt;spare time&lt;/em&gt;, Javier enjoys spending time with his wife, &lt;strong&gt;&lt;a href="http://dominiclozano.com"&gt;newborn son&lt;/a&gt; &lt;/strong&gt;, two golden retrievers and writing about himself in the third person.&lt;/p&gt;  &lt;p&gt;It is my plan to interview Javier tonight and get the podcast ready for release by the middle of next week.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Got Questions for Javier?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions about &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;, &lt;a href="http://mvcturbine.codeplex.com/" target="_blank"&gt;Turbine&lt;/a&gt;, or anything else you think appropriate for Javier feel free to send them my way at &lt;a href="mailto:podcast@dotnetradio.com" target="_blank"&gt;podcast@dotnetradio.com&lt;/a&gt;.  The interview will be tonight at 8pm (PST).  Feel free to send your questions in real time via twitter to &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;@DNetRadio&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136124"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136124" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/136124.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M50IPfditF6RI9LkVx7EeJhPaW0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M50IPfditF6RI9LkVx7EeJhPaW0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/M50IPfditF6RI9LkVx7EeJhPaW0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M50IPfditF6RI9LkVx7EeJhPaW0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-tonight-at-8pm-pst.aspx</guid>
            <pubDate>Sat, 07 Nov 2009 22:23:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/136124.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-tonight-at-8pm-pst.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/136124.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/136124.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/07/interviewing-javier-lozano-tonight-at-8pm-pst.aspx</feedburner:origLink></item>
        <item>
            <title>Interview with Ben Scheirman co-author of ASP.NET MVC in Action on DotNetRadio.com</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/MjIVnIxj7bc/interview-with-ben-scheirman-co-author-of-asp.net-mvc-in-action.aspx</link>
            <description>&lt;p&gt;I recently sat down with Ben Scheirman (co-author of ASP.NET MVC in Action) for my first interview on my new show DotNetRadio.  It was quite a talk!  We covered the following points:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;An introduction to Ben Scheirman and how he got into web development &lt;/li&gt;    &lt;li&gt;Bens path through various web technologies such as ColdFusion, PHP, Ruby, and ASP.NET &lt;/li&gt;    &lt;li&gt;A brief discussion on code testability &lt;/li&gt;    &lt;li&gt;Working with ASP.NET web forms using the model view presenter pattern &lt;/li&gt;    &lt;li&gt;How &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt; simplifies the testing process &lt;/li&gt;    &lt;li&gt;Ben informs us of how you can sell test driven development to a client…or sneak it in &lt;/li&gt;    &lt;li&gt;Regression testing &lt;/li&gt;    &lt;li&gt;We run through the process of refactoring and how you really should trust&lt;a href="http://www.jetbrains.com/resharper/"&gt;ReSharper&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;We briefly touch upon the concept of Continuous Integration &lt;/li&gt;    &lt;li&gt;Ben discusses a new way of testing using &lt;a href="http://github.com/machine/machine.specifications"&gt;MSpec&lt;/a&gt; to create documentation out of your unit tests &lt;/li&gt;    &lt;li&gt;This leads us into behavior driven development and context specification &lt;/li&gt;    &lt;li&gt;Next we discuss how twitter can be used as a developer tool &lt;/li&gt;    &lt;li&gt;Ben describes to us how he got involved with co-authoring &lt;a href="http://www.manning.com/palermo/"&gt;ASP.NET MVC in Action&lt;/a&gt; and the process involved with writing a book based on “preview” code. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Check it out at &lt;a href="http://dotnetradio.com/"&gt;http://dotnetradio.com/&lt;/a&gt;.  You can follow the show on Twitter at &lt;a href="http://twitter.com/dnetradio" target="_blank"&gt;DNetRadio&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;As this is a new show the format is not entirely worked out just yet!  I am still trying to work out the music, the format, guest lineup, advertisers, etc.  Also, since I am a coder by day and a coder/writer at night – pro-audio is a totally foreign concept to me.  I am all ears if after listening to the show or visiting the site you come up with a WTF moment or just some good general advice.  Shoot it my way!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136050"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136050" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/136050.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CV9ot-JsC4RT3V-FLnz-qOJpYqI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CV9ot-JsC4RT3V-FLnz-qOJpYqI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CV9ot-JsC4RT3V-FLnz-qOJpYqI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CV9ot-JsC4RT3V-FLnz-qOJpYqI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/11/05/interview-with-ben-scheirman-co-author-of-asp.net-mvc-in-action.aspx</guid>
            <pubDate>Fri, 06 Nov 2009 03:56:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/136050.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/05/interview-with-ben-scheirman-co-author-of-asp.net-mvc-in-action.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/136050.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/136050.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/05/interview-with-ben-scheirman-co-author-of-asp.net-mvc-in-action.aspx</feedburner:origLink></item>
        <item>
            <title>Just finished editing the audio for the Ben Scheirman interview</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/Lt0ucZbsp-M/just-finished-editing-the-audio-for-the-ben-scheirman-interview.aspx</link>
            <description>&lt;p&gt;Hey all.  I wanted to take a moment to let you know that I just finished editing the interview with Ben Scheirman as well as piecing together the over all &lt;a href="http://www.dotnetradio.com" target="_blank"&gt;DotNetRadio&lt;/a&gt; podcast.  I will write the summary post that goes with the podcast and get it up and available this evening.&lt;/p&gt;  &lt;p&gt;Andy&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136002"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136002" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/136002.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tyohIXV3c9unySwmRtJjFjF8FXM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tyohIXV3c9unySwmRtJjFjF8FXM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tyohIXV3c9unySwmRtJjFjF8FXM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tyohIXV3c9unySwmRtJjFjF8FXM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/11/04/just-finished-editing-the-audio-for-the-ben-scheirman-interview.aspx</guid>
            <pubDate>Wed, 04 Nov 2009 23:52:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/136002.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/04/just-finished-editing-the-audio-for-the-ben-scheirman-interview.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/136002.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/136002.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/11/04/just-finished-editing-the-audio-for-the-ben-scheirman-interview.aspx</feedburner:origLink></item>
        <item>
            <title>Interview with Ben Scheirman coming soon to DotNetRadio.com</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/Oy-5wNd01WE/interview-with-ben-scheirman-coming-soon-to-dotnetradio.com.aspx</link>
            <description>&lt;p&gt;This morning I had the chance to speak with &lt;a href="http://flux88.com/" target="_blank"&gt;Ben Scheirman&lt;/a&gt;.  We chatted for roughly an hour or so discussing how he entered into the web development industry, going on the road to teach &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt; in its early days, his book &lt;a href="http://www.manning.com/palermo/" target="_blank"&gt;ASP.NET MVC in Action&lt;/a&gt;, and his thoughts on the use of the &lt;a href="http://www.asp.net/mvc/"&gt;MVC&lt;/a&gt; framework.  We discussed some patterns and tools for testing, tools for development in general such as &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;ReSharper&lt;/a&gt;, and the use of the &lt;a href="http://sparkviewengine.com/" target="_blank"&gt;Spark View Engine&lt;/a&gt;.  Watch for this podcast to be posted within the next couple of days.  &lt;/p&gt;  &lt;p&gt;Being the first podcast for DotNetRadio and the first podcast I have ever done I am hoping that my listeners will share any ideas to improve the show.  I am all ears!  Feel free to share your feedback with me at &lt;a href="mailto:podcast@dotnetradio.com"&gt;podcast@dotnetradio.com&lt;/a&gt;.  &lt;/p&gt;  &lt;p&gt;Tell your friends about DotNetRadio!  You can also follow us at &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;twitter.com/DNetRadio&lt;/a&gt;.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6985a5f5-1862-4bbf-9787-f7251f37527e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Ben+Scheirman" rel="tag"&gt;Ben Scheirman&lt;/a&gt;,&lt;a href="http://technorati.com/tags/asp.net+mvc" rel="tag"&gt;asp.net mvc&lt;/a&gt;,&lt;a href="http://technorati.com/tags/spark+view+engine" rel="tag"&gt;spark view engine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ReSharper" rel="tag"&gt;ReSharper&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135540"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135540" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/135540.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UdddW_eutnkdWiDwLWUZFn0FKBk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UdddW_eutnkdWiDwLWUZFn0FKBk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UdddW_eutnkdWiDwLWUZFn0FKBk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UdddW_eutnkdWiDwLWUZFn0FKBk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/10/18/interview-with-ben-scheirman-coming-soon-to-dotnetradio.com.aspx</guid>
            <pubDate>Mon, 19 Oct 2009 03:16:46 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/135540.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/10/18/interview-with-ben-scheirman-coming-soon-to-dotnetradio.com.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/135540.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/135540.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/10/18/interview-with-ben-scheirman-coming-soon-to-dotnetradio.com.aspx</feedburner:origLink></item>
        <item>
            <title>DotNetRadio.com</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/DFgZ5Ofjrgw/dotnetradio.com.aspx</link>
            <description>&lt;p&gt;I decided to start a podcast.  I am going to host it under the name of DotNetRadio…sounded appropriate!  I am in the early stages of getting things set up which means that there is still some flexibility in how things are done.  I was wondering if anyone out there is willing to share some input regarding the creation of a podcast, how they might like to see the show format take shape, who they would be interested in hearing an interview of, etc.  &lt;/p&gt;  &lt;p&gt;I initially did a test recording using a standard analog mic.  Totally sucked!  So I upgraded to a better quality USB mic.  This certainly made things sound better but it still sounded like I was talking through a can.  Tomorrow I should be receiving the Behringer podcaststudio.  I am hoping that this will be an exceptional upgrade (though still not pro-audio).  This package comes with a good mic, head set, mixer, usb interface, etc.  I also got a pop filter that clips on to the mic (everyone said it is a must).  We will see how it goes.&lt;/p&gt;  &lt;p&gt;Take a look at DotNetRadio.com.  Let me know what you think and more importantly if you have any suggestions send that my way too!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135433"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135433" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/135433.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VgudkwFIH7YRV4JO9WsVsIo9KeA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VgudkwFIH7YRV4JO9WsVsIo9KeA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VgudkwFIH7YRV4JO9WsVsIo9KeA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VgudkwFIH7YRV4JO9WsVsIo9KeA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/10/13/dotnetradio.com.aspx</guid>
            <pubDate>Tue, 13 Oct 2009 05:43:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/135433.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/10/13/dotnetradio.com.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/135433.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/135433.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/10/13/dotnetradio.com.aspx</feedburner:origLink></item>
        <item>
            <title>Typemock webinar &amp;ndash; Tuesday 22-sep-09</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/LCATslTrlrQ/typemock-webinar-ndash-tuesday-22-sep-09.aspx</link>
            <description>&lt;p&gt;Hey all!  I was just informed that Typemock is providing a free webinar covering the following items:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creating Supporting environment &lt;/li&gt;    &lt;li&gt;Unit testing tools of the trade &lt;/li&gt;    &lt;li&gt;Practices and Pitfalls &lt;/li&gt;    &lt;li&gt;Writing the first test &lt;/li&gt;    &lt;li&gt;Live Q &amp;amp; A &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can see more details here: &lt;a href="http://blog.typemock.com/2009/09/unit-testing-net-successfully-live-free.html"&gt;http://blog.typemock.com/2009/09/unit-testing-net-successfully-live-free.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Should be very informative.  (virtually…) see you there!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134868"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134868" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/134868.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8wUtZ5gbt2oNxJNZbfyIPSrFO0Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8wUtZ5gbt2oNxJNZbfyIPSrFO0Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8wUtZ5gbt2oNxJNZbfyIPSrFO0Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8wUtZ5gbt2oNxJNZbfyIPSrFO0Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/09/17/typemock-webinar-ndash-tuesday-22-sep-09.aspx</guid>
            <pubDate>Thu, 17 Sep 2009 17:35:43 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/134868.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/09/17/typemock-webinar-ndash-tuesday-22-sep-09.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/134868.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/134868.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/09/17/typemock-webinar-ndash-tuesday-22-sep-09.aspx</feedburner:origLink></item>
        <item>
            <title>Building a StackOverflow inspired knowledge exchange</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/Qcv3YBHvO6M/building-a-stackoverflow-inspired-knowledge-exchange.aspx</link>
            <description>&lt;p&gt;The &lt;a href="http://dotnetslackers.com/articles/aspnet/Building-a-StackOverflow-inspired-Knowledge-Exchange-Introduction.aspx" target="_blank"&gt;first article&lt;/a&gt; in my “building a stackoverflow inspired knowledge exchange” on DotNetSlackers.com is finally out.  This article is an introduction to the series and explains the various technologies and processes we will use in our project.  It also takes a look at some of the information that is currently on the net regarding the very famous StackOverflow.com site.  More to come very soon.  Keep an eye on the series index &lt;a href="http://dotnetslackers.com/articles/aspnet/Building-a-StackOverflow-inspired-Knowledge-Exchange-Introduction.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134011"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134011" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/134011.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s4fX8iup7j0hnu4mBsTyE5vAfhg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s4fX8iup7j0hnu4mBsTyE5vAfhg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s4fX8iup7j0hnu4mBsTyE5vAfhg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s4fX8iup7j0hnu4mBsTyE5vAfhg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/08/10/building-a-stackoverflow-inspired-knowledge-exchange.aspx</guid>
            <pubDate>Mon, 10 Aug 2009 19:40:47 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/134011.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/08/10/building-a-stackoverflow-inspired-knowledge-exchange.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/134011.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/134011.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/08/10/building-a-stackoverflow-inspired-knowledge-exchange.aspx</feedburner:origLink></item>
        <item>
            <title>ASP.NET MVC 2 Preview 1 is out &amp;ndash; woo hoo!!!</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/RL4fyOGPV7g/asp.net-mvc-2-preview-1-is-out-ndash-woo-hoo.aspx</link>
            <description>&lt;p&gt;&lt;a title="http://haacked.com/archive/2009/07/30/asp.net-mvc-released.aspx" href="http://haacked.com/archive/2009/07/30/asp.net-mvc-released.aspx"&gt;http://haacked.com/archive/2009/07/30/asp.net-mvc-released.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://mail.otxresearch.com/exchweb/bin/redir.asp?URL=http://weblogs.asp.net/scottgu/archive/2009/07/31/asp-net-mvc-v2-preview-1-released.aspx"&gt;http://weblogs.asp.net/scottgu/archive/2009/07/31/asp-net-mvc-v2-preview-1-released.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133844"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133844" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/133844.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EJHKwbU2kGygwL0gj3E1FKKXQg8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EJHKwbU2kGygwL0gj3E1FKKXQg8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EJHKwbU2kGygwL0gj3E1FKKXQg8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EJHKwbU2kGygwL0gj3E1FKKXQg8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/07/31/asp.net-mvc-2-preview-1-is-out-ndash-woo-hoo.aspx</guid>
            <pubDate>Fri, 31 Jul 2009 18:30:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/133844.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/07/31/asp.net-mvc-2-preview-1-is-out-ndash-woo-hoo.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/133844.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/133844.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/07/31/asp.net-mvc-2-preview-1-is-out-ndash-woo-hoo.aspx</feedburner:origLink></item>
        <item>
            <title>I published my first article on DotNetSlackers! &amp;ldquo;Dynamic email drop box&amp;rdquo;</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/L91-UhxG0Tg/i-published-my-first-article-on-dotnetslackers-ldquodynamic-email-drop.aspx</link>
            <description>&lt;p&gt;I am very happy to say that I have published &lt;a href="http://dotnetslackers.com/articles/aspnet/Creating-a-Dynamic-Email-Drop-Box-Part1.aspx"&gt;my first article&lt;/a&gt; on &lt;a href="http://www.dotnetslackers.com"&gt;DotNetSlackers.com&lt;/a&gt;!  While the publication of &lt;a href="http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise-ready/dp/1847194788/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1225408005&amp;amp;sr=8-1"&gt;my book&lt;/a&gt; was the first time I considered myself a writer (not just another blogger), writing for DotNetSlackers.com some how feels more important to me.  I hope you enjoy my future efforts!&lt;/p&gt;  &lt;p&gt;This article is actually the first of a three part series.  I came up with the idea for this series as I was answering a question on &lt;a href="http://www.stackoverflow.com"&gt;StackOverflow&lt;/a&gt; regarding the creation of a &lt;a href="http://stackoverflow.com/questions/1128690/how-to-implement-an-email-dropbox-feature-for-web-app"&gt;dynamic email drop box&lt;/a&gt; style feature.  A feature of this nature would allow a site to have their users send content to them or interact with them via a standard pop3 server (via email).  Think of things like the email that craigslist.com gives to you &lt;a href="mailto:asdfasd-somePost-234@craigslist.com"&gt;asdfasd-somePost-234@craigslist.com&lt;/a&gt; when you post something into their system.  This email doesn’t physically exist but it still somehow identifies your post on their system and allows external users to communicate with you and the system.  The creation of a feature like this (including all the infrastructure aspects) is what the article series discusses and implements.&lt;/p&gt;  &lt;p&gt;I hope you find a use for it on one of your projects!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Andrew Siemer&lt;/b&gt;     &lt;br /&gt;Teacher, Author, Engineer, Architect, Build Master, Scrum Master, Father of 6, Husband, ex Army Ranger &lt;/p&gt;  &lt;p&gt;&lt;b&gt;My Book&lt;/b&gt; &lt;a href="http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise-ready/dp/1847194788/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1228158561&amp;amp;sr=1-1"&gt;&lt;img style="float: left" src="http://ecx.images-amazon.com/images/I/41Bw%2BOVfX9L._SL160_AA115_.jpg" border="0" /&gt;       &lt;br /&gt;ASP.NET 3.5 Social Networking:       &lt;br /&gt;An Expert Guide to Building       &lt;br /&gt;Enterprise-ready Social Networking       &lt;br /&gt;and Community Applications       &lt;br /&gt;with ASP.NET 3.5&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;b&gt;Links&lt;/b&gt;     &lt;br /&gt;&lt;a href="http://blog.andrewsiemer.com"&gt;Blog.AndrewSiemer.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.andrewsiemer.com"&gt;AndrewSiemer.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://stackoverflow.com/users/83889/andrew-siemer"&gt;StackOverflow.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.pictfresh.com"&gt;PictFresh.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.linkedin.com/in/andrewsiemer"&gt;Linked In&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.myspace.com/andrewsiemer"&gt;My Space&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.facebook.com/home.php?#/profile.php?id=768368610&amp;amp;hiq=andrew%2Csiemer"&gt;Face Book&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://twitter.com/asiemer"&gt;Twitter&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://andrewsiemer.gymed.com"&gt;AndrewSiemer.GymEd.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.gymed.com"&gt;GymEd.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133699"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133699" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/133699.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gQO0nO5D1bnvGbjuxYzd2FSUiLA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gQO0nO5D1bnvGbjuxYzd2FSUiLA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gQO0nO5D1bnvGbjuxYzd2FSUiLA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gQO0nO5D1bnvGbjuxYzd2FSUiLA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/07/24/i-published-my-first-article-on-dotnetslackers-ldquodynamic-email-drop.aspx</guid>
            <pubDate>Sat, 25 Jul 2009 00:06:14 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/133699.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/07/24/i-published-my-first-article-on-dotnetslackers-ldquodynamic-email-drop.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/133699.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/133699.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/07/24/i-published-my-first-article-on-dotnetslackers-ldquodynamic-email-drop.aspx</feedburner:origLink></item>
        <item>
            <title>Review: ASP.NET MVC in Action by Jeffrey Palermo, Ben Scheirman, and Jimmy Bogard</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/mOYkVL9ATJg/review-asp.net-mvc-in-action-by-jeffrey-palermo-ben-scheirman.aspx</link>
            <description>&lt;p&gt;The &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt; framework was just released as a preview when I started to write my first book (&lt;a href="http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise-ready/dp/1847194788/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1225408005&amp;amp;sr=8-1"&gt;ASP.NET 3.5 Social Networking&lt;/a&gt;).  In the early days of design decisions for my book I was faced with the problem of building with the MVP pattern or the new &lt;a href="http://www.asp.net/mvc/"&gt;MVC&lt;/a&gt; pattern/framework.  At that time there was next to nothing regarding the use of  the ASP.NET MVC framework (proper or improper).  &lt;/p&gt;  &lt;p&gt;Shortly after I got started with my project (which I chose to do in MVP) I was asked to do a review for the &lt;a href="http://www.amazon.com/ASP-NET-MVC-Action-Jeffrey-Palermo/dp/1933988622/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1245789868&amp;amp;sr=1-1"&gt;ASP.NET MVC in Action&lt;/a&gt; book.  I gladly accepted and started to read as &lt;a href="http://jeffreypalermo.com/" target="_blank"&gt;Jeffrey Palermo&lt;/a&gt;, &lt;a href="http://flux88.com/" target="_blank"&gt;Ben Scheirman&lt;/a&gt;, and &lt;a href="http://www.lostechies.com/blogs/jimmy_bogard/" target="_blank"&gt;Jimmy Bogard&lt;/a&gt; explored the world of ASP.NET MVC offerings.  I thought that they did a very good job of describing how Microsoft meant you to use the new framework and a better job of describing how to break beyond the limitations of the current offerings.  They go above and beyond to describe best practices early on.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/images/1933988622/sr=1-1/qid=1245789868/ref=dp_image_0?ie=UTF8&amp;amp;n=283155&amp;amp;s=books&amp;amp;qid=1245789868&amp;amp;sr=1-1"&gt;&lt;img height="240" alt="ASP.NET MVC in Action" src="http://ecx.images-amazon.com/images/I/51Apmme8IUL._SL500_AA240_.jpg" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I must say that this is one of the few books that I have ever read cover to cover so many times!  With each review of the book I went through each chapter to find any updates.  As this book was being written several new CTP’s of the ASP.NET MVC framework were released.  With each of the CTP releases came a new rendering of the book.  It was quite fun to see how quickly things changed over the year that this book was written.&lt;/p&gt;  &lt;p&gt;Finally having the final review in my hands and being so very familiar with it’s content, I have to say that of all the books on the ASP.NET MVC framework the ASP.NET MVC in Action book should be at the top of your list for things to purchase in the upcoming months.  At a quick glance this book covers all things relating to ASP.NET MVC and then some.  This book is not just a regurgitation of MSDN or other resource as so many books are these days.  Here are the chapter titles for this book:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Getting started with the ASP.NET MVC Framework &lt;/li&gt;    &lt;li&gt;The Model in depth &lt;/li&gt;    &lt;li&gt;The Controller in depth &lt;/li&gt;    &lt;li&gt;Views in depth &lt;/li&gt;    &lt;li&gt;Routing &lt;/li&gt;    &lt;li&gt;Customizing and extending the ASP.NET MVC Framework &lt;/li&gt;    &lt;li&gt;Scaling the architecture to more complex sites &lt;/li&gt;    &lt;li&gt;Leveraging existing ASP.NET features &lt;/li&gt;    &lt;li&gt;AJAX in ASP.NET MVC (which includes coverage of jQuery!) &lt;/li&gt;    &lt;li&gt;Hosting and Deployment &lt;/li&gt;    &lt;li&gt;Exploring MonoRail and Ruby on Rails &lt;/li&gt;    &lt;li&gt;Best Practices &lt;/li&gt;    &lt;li&gt;Recipes &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;As you can clearly see from the above this is more than just the XYZ of ASP.NET MVC.  I highly recommend this book for anyone interested in breaking away from the pains of ASP.NET WebForms.  This framework, especially with the help of this new book, makes programming for the web fun again!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;b&gt;Andrew Siemer&lt;/b&gt;   &lt;br /&gt;Teacher, Author, Engineer, Architect, Build Master, Scrum Master, Father of 6, Husband, ex Army Ranger   &lt;br /&gt;  &lt;br /&gt;&lt;b&gt;My Book&lt;/b&gt;   &lt;br /&gt;  &lt;div style="width: 300px"&gt;&lt;a href="http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise-ready/dp/1847194788/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1228158561&amp;amp;sr=1-1"&gt;&lt;img style="float: left" src="http://ecx.images-amazon.com/images/I/41Bw%2BOVfX9L._SL160_AA115_.jpg" border="0" /&gt;ASP.NET 3.5 Social Networking: An Expert Guide to Building Enterprise-ready Social Networking and Community Applications with ASP.NET 3.5&lt;/a&gt;&lt;/div&gt;  &lt;br /&gt;  &lt;br /&gt;&lt;b&gt;Links&lt;/b&gt;   &lt;br /&gt;  &lt;div style="display: block"&gt;&lt;a href="http://blog.andrewsiemer.com"&gt;Blog.AndrewSiemer.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.andrewsiemer.com"&gt;AndrewSiemer.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.pictfresh.com"&gt;PictFresh.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.linkedin.com/in/andrewsiemer"&gt;Linked In&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.myspace.com/andrewsiemer"&gt;My Space&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.facebook.com/home.php?#/profile.php?id=768368610&amp;amp;hiq=andrew%2Csiemer"&gt;Face Book&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://twitter.com/asiemer"&gt;Twitter&lt;/a&gt; &lt;a href="http://andrewsiemer.gymed.com"&gt;AndrewSiemer.GymEd.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.gymed.com"&gt;GymEd.com&lt;/a&gt;     &lt;br /&gt;&lt;iframe marginwidth="0" marginheight="0" src="http://stackoverflow.com/users/flair/83889.html" frameborder="0" width="210" scrolling="no" height="60"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133019"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133019" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/133019.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SPFAbFkXesymfC_0ulBJPjLQQvo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SPFAbFkXesymfC_0ulBJPjLQQvo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SPFAbFkXesymfC_0ulBJPjLQQvo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SPFAbFkXesymfC_0ulBJPjLQQvo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/06/23/review-asp.net-mvc-in-action-by-jeffrey-palermo-ben-scheirman.aspx</guid>
            <pubDate>Tue, 23 Jun 2009 20:41:31 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/133019.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/06/23/review-asp.net-mvc-in-action-by-jeffrey-palermo-ben-scheirman.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/133019.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/133019.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/06/23/review-asp.net-mvc-in-action-by-jeffrey-palermo-ben-scheirman.aspx</feedburner:origLink></item>
        <item>
            <title>NDepend review &amp;ndash; code evolution achieved by following NDepend metrics</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/39mVzs34spQ/ndepend-review-ndash-code-evolution-achieved-by-following-ndepend-metrics.aspx</link>
            <description>&lt;p&gt;The people behind the &lt;a href="http://www.ndepend.com/"&gt;NDepend&lt;/a&gt; software recently provided me with their latest version of NDepend to see what I thought.  I initially ran the package over one of my recent projects and found that &lt;a href="http://blog.socialnetworkingin.net/archive/2009/05/19/ndepend-report-for-fisharoo-code-base.aspx"&gt;the reporting&lt;/a&gt; offered in the latest version of NDepend was infinitely better than the previous version (1.0) that I worked with.  I found the reports that NDepend was offering would be most valuable while building my latest project.  For this reason I started my latest project in a manner that would leave much room for improvement.  &lt;/p&gt;  &lt;h3&gt;My application in the beginning&lt;/h3&gt;  &lt;p&gt;The project that I am going to run NDepend over to help me catch mistakes as I develop is built in ASP.NET MVC, LINQ to SQL, and following Domain Driven Design.  I specifically didn’t follow most of the &lt;a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod"&gt;SOLID principles&lt;/a&gt; to see how well NDepend would allow me to catch and correct my deficiencies.  To start off I am using the standard Model View Controller concepts and have stuffed all of my business and data access layer into a separate assembly project.  I am building a services layer, have specific domain objects (generated by LINQ to SQL), and am using the Repository pattern.  Beyond that I am new’ing up class references, not creating interfaces for anything, and am lumping generic concepts into generic classes.&lt;/p&gt;  &lt;p&gt;With that in mind I ran NDepend over my initial code base and was given the following reports (there is a lot more information offered…but we will start here):&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="392" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_3.png" width="327" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="288" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_6.png" width="463" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/VisualNDependView_2.png"&gt;&lt;img title="VisualNDependView" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="500" alt="VisualNDependView" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/VisualNDependView_thumb.png" width="500" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/AbstractnessVSInstability_2.png"&gt;&lt;img title="AbstractnessVSInstability" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="500" alt="AbstractnessVSInstability" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/AbstractnessVSInstability_thumb.png" width="500" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/ComponentDependenciesDiagram_2.png"&gt;&lt;img title="ComponentDependenciesDiagram" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="238" alt="ComponentDependenciesDiagram" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/ComponentDependenciesDiagram_thumb.png" width="500" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="426" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_9.png" width="747" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;What does all of this mean?  I took a look at this cheat sheet (&lt;a title="http://www.hanselman.com/blog/content/binary/NDepend%20metrics%20placemats%201.1.pdf" href="http://www.hanselman.com/blog/content/binary/NDepend%20metrics%20placemats%201.1.pdf"&gt;http://www.hanselman.com/blog/content/binary/NDepend%20metrics%20placemats%201.1.pdf&lt;/a&gt;) to begin to decipher all of this information.  On our abstractness and instability chart my code is currently showing as being very concrete and very stable!  This is not a bad zone to be in (my code is neither painful or useless).  &amp;lt;GRIN&amp;gt;  Also, when looking at my dependency graph you will notice that for the most part (MOST PART) my presentation layer is only communicating with the sub system through my business layer.  Some of my code is generated (LINQ to SQL) or part of a framework (&lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;) which means that there is not a whole lot I can do in some regards.  And we can clearly see in the metrics section (all the gradient squares) that some areas have a lot more code dedicated to them than others.  Finally we have a list of high level warnings (yellow sections of the CQL) that may benefit from closer inspection.&lt;/p&gt;  &lt;p&gt;Since I have a nice baseline of my application built in a standard tiered manner but not following my normal development avenues (&lt;a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod"&gt;SOLID&lt;/a&gt;), I am going to first avoid the direct output of these reports and add in a couple of my normal design decisions to see how it affects these reports.  I am first most curious to see how implementing &lt;a href="http://structuremap.sourceforge.net/Default.htm"&gt;StructureMap&lt;/a&gt; will help me here as it will force me to generate interfaces for all of my classes as well as remove all the static dependencies in my code.  Also, once I have &lt;a href="http://structuremap.sourceforge.net/Default.htm"&gt;StructureMap&lt;/a&gt; implemented it will be easier to do things like Inversion of Control and Test Driven Development. Implementing StructureMap will help us get closer to the concept of the &lt;a href="http://iface.wordpress.com/2006/03/28/interface-segregation-principle/"&gt;Interface Segregation Principle&lt;/a&gt;.  Once that is done I will rerun the reports to see where we are.  Then I will implement Inversion of Control (&lt;a href="http://en.wikipedia.org/wiki/Inversion_of_Control"&gt;IoC&lt;/a&gt;) to see how that impacts things.  My next step would be to refactor my code so that it follows the &lt;a href="http://en.wikipedia.org/wiki/Single_responsibility_principle"&gt;Single Responsibility Principle&lt;/a&gt; (but in the effort to get this post done…I may push that to another article!).&lt;/p&gt;  &lt;h3&gt;Application after StructureMap&lt;/h3&gt;  &lt;p&gt;Once I added &lt;a href="http://structuremap.sourceforge.net/Default.htm"&gt;StructureMap&lt;/a&gt; into my source code for all the references that I could I started to find myself moving up the scale of “uselessness” but no closer to “abstractness” (which makes sense).  The change that was made was that rather than saying Object o = new Object() I am now generating an interface (with &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;ReSharper&lt;/a&gt;) for the Object and then declaring an instance of the object using StructureMap using syntax like IObject o = ObjectFactory.GetInstance&amp;lt;IObject&amp;gt;().  This basically means that pretty much everything has an interface defining it’s usage.  Also, with StructureMap I can swap in mocks when testing.  This makes my code much more flexible down the road (more flexible apparently equals more useless).  An example of this flexibility is that if I want to use the standard .NET Cache initially I can.  Then later I can swap in a new MemCache object simply by injecting the new object everywhere that ICache is called for via StructureMap.  This is done with a couple of lines of configuration code in the StructureMap.config file…lots of power here!&lt;/p&gt;  &lt;p&gt;Before (StructureMap and interfaces not used):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_47.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="536" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_thumb_14.png" width="536" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After (StructureMap implemented where possible, interfaces used where appropriate):&lt;/p&gt;  &lt;p&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_8.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="494" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_thumb.png" width="500" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here are the other items to look at.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="394" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_12.png" width="331" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="288" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_15.png" width="463" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_17.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="500" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_thumb_3.png" width="500" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_19.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="354" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_thumb_4.png" width="500" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="428" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_22.png" width="753" border="0" /&gt; &lt;/p&gt;  &lt;p&gt; Having done my best to start following the &lt;a href="http://iface.wordpress.com/2006/03/28/interface-segregation-principle/"&gt;Interface Segregation Principle&lt;/a&gt; I am now going to turn to my next favorite pattern/principal by implementing Inversion of Control (or the &lt;a href="http://en.wikipedia.org/wiki/Dependency_inversion_principle"&gt;Dependency Inversion Principle&lt;/a&gt;) and see what improvements that gives us.&lt;/p&gt;  &lt;h3&gt;My application with Inversion of Control&lt;/h3&gt;  &lt;p&gt;In order to apply inversion of control to my application I will be taking all of the instantiations out of my methods and moving them out to parameters of a method or passed in via the constructor.  Now that I have StructureMap sewn into the application I can take advantage of some of its power in that if it sees an interface being specified in the constructor of an object that it is instantiating, it will go ahead and pass in the appropriate instance of that required object.  &lt;/p&gt;  &lt;p&gt;For example, prior to doing IoC I had a &lt;a href="http://en.wikipedia.org/wiki/Domain-driven_design"&gt;repository&lt;/a&gt; class that would work with accounts (AccountRepository).  It would instantiate an instance of the Connection class internally and then do the work it needed to do to connect to the database and grab the appropriate account related data.  This means that the Connection class and the AccountRepository class were very strongly coupled to one another.  Some of this coupling in the same layer is not horrible…but in this case every single repository in my application would be coupled to my Connection object which over time would rapidly become a very large number.&lt;/p&gt;  &lt;p&gt;We can easily fix this scenario using StructureMap in that we can require IConnection be passed in via the constructor of each repository class.  Then when we instantiate a repository object StructureMap will take care of passing the appropriate Connection to the Repository and we are off and running.  This removes the need for users of the Repository to be aware of which Connection object to use and reduces coupling considerably.&lt;/p&gt;  &lt;p&gt;I will apply this concept to the entire application and see how that affects things in NDepend’s eyes.&lt;/p&gt;  &lt;p&gt;Argh!  There was no physical change to my NDepend reports simply by implementing IoC!  NDepend looks at coupling across assemblies but not inside the assembly (at least I don’t see that anywhere).  No worries!  This addition will help down the road when it is time to start implementing our unit tests.  Not a total loss.&lt;/p&gt;  &lt;h3&gt;Addressing the canned CQL Queries and Constraints&lt;/h3&gt;  &lt;p&gt;Ok, let’s dig into some of the CQL Queries and Constraints to see if we can affect change that way.  The yellow sections of this report are the areas that need attention.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="429" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_25.png" width="751" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Lets start off with the Encapsulation warnings (section in red above).  In the Visual NDepend interface I can see the following warnings.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="293" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_28.png" width="503" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;By double clicking on the first item “Methods” I see the following list.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_30.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="130" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_thumb_8.png" width="622" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here you see specific suggestions to make my code more compliant with rules of encapsulation!  Double clicking the first problem area “Methods that could be declared as…” I am presented with this list.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="191" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_33.png" width="201" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Double clicking on any of these method names takes me directly to the code (in Visual Studio) that needs help.  From there I can dig around to see about making the suggested changes.  In some cases I see where I could indeed mark something as “internal”…however the suggestions that are being made are simply because nothing external to the assembly is calling the specific method.  Unfortunately for me I frequently import libraries and tools from past projects knowing that I will need to use them eventually.  In my case most of the suggested items that need to be fixed are items that are waiting to be used rather than items that need to be marked as internal!  &lt;/p&gt;  &lt;p&gt;I continued to poke through their list of suggestions and found that while the suggestions are good, they are not always 100% appropriate.  This means that I will have to learn to live with some of these yellow cautionary sections as I can’t get them to go away (without mangling their CQL queries…which may apply at a later date)!&lt;/p&gt;  &lt;h3&gt;NDepend is super flexible!&lt;/h3&gt;  &lt;p&gt;Now that I have been using this product for a while, and have started to bump my head against it a bit, I am starting to find that this product is actually very flexible!  For example there is a query for for naming standards I have started to bump my head against.  I like to use an underscore to denote my private fields in a class.  NDepend would prefer that I use m_ instead.  To change this is quick and easy.  I simply locate the rule that bugs me, double click on it, make the change in the CQL query editor, and save the changes.&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="283" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_50.png" width="889" border="0" /&gt;  &lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="274" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_53.png" width="701" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;I made the changes to the query above so that it now looks like this:&lt;/p&gt;  &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="267" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/NDependcodeevolutionachievedbyfollowingN_C6E5/image_56.png" width="685" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;This goes for all of the rules that are in this product which means that I can add and remove rules as I see fit!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132479"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132479" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/132479.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fctR77P5r6yKwpS5iDaIckW7iNc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fctR77P5r6yKwpS5iDaIckW7iNc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fctR77P5r6yKwpS5iDaIckW7iNc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fctR77P5r6yKwpS5iDaIckW7iNc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/05/28/ndepend-review-ndash-code-evolution-achieved-by-following-ndepend-metrics.aspx</guid>
            <pubDate>Thu, 28 May 2009 21:07:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/132479.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/05/28/ndepend-review-ndash-code-evolution-achieved-by-following-ndepend-metrics.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/132479.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/132479.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/05/28/ndepend-review-ndash-code-evolution-achieved-by-following-ndepend-metrics.aspx</feedburner:origLink></item>
        <item>
            <title>Social Networking in .NET</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/jiNxuL4r9bo/social-networking-in-.net.aspx</link>
            <description>&lt;p&gt;I finally posted the code from my book &lt;a href="http://www.amazon.com/ASP-NET-3-5-Social-Networking-Enterprise-ready/dp/1847194788/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1225408005&amp;amp;sr=8-1"&gt;ASP.NET 3.5 Social Networking&lt;/a&gt; on CodePlex at  &lt;a title="http://community.codeplex.com/" href="http://community.codeplex.com/"&gt;http://community.codeplex.com/&lt;/a&gt;.  Several people have asked for this so that we can make changes to the code and improve/expand the code base.  I think I may also take the time to convert it from the MVP pattern to the latest ASP.NET MVC pattern/template as well as add test coverage the project.  I also set up a forum for this at &lt;a href="http://forum.socialnetworkingin.net"&gt;forum.socialnetworkingin.net&lt;/a&gt; and a separate blog at &lt;a href="http://blog.socialnetworkinging.net"&gt;blog.socialnetworkinging.net&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132044"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132044" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/132044.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_3p33dS03P09gDA9a9AF38po_so/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_3p33dS03P09gDA9a9AF38po_so/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_3p33dS03P09gDA9a9AF38po_so/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_3p33dS03P09gDA9a9AF38po_so/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/05/11/social-networking-in-.net.aspx</guid>
            <pubDate>Mon, 11 May 2009 23:09:23 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/132044.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/05/11/social-networking-in-.net.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/132044.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/132044.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/05/11/social-networking-in-.net.aspx</feedburner:origLink></item>
        <item>
            <title>SOLID principles explained in a visual manner</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/TQdCQXbmL2k/solid-principles-explained-in-a-visual-manner.aspx</link>
            <description>&lt;p&gt;If you followed any of the banter regarding the SOLID principles between “uncle” Bob Martin and Joel Spolsky you may have also already seen the SOLID development principles in motivational pictures.  If not follow through all the links listed here.  The last one has the pictures.&lt;/p&gt;  &lt;p&gt;Simple podcast outlining the SOLID principles: &lt;a title="http://www.hanselminutes.com/default.aspx?showID=163" href="http://www.hanselminutes.com/default.aspx?showID=163"&gt;http://www.hanselminutes.com/default.aspx?showID=163&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Jeff Atwood, Joel Spolsky, and “uncle” Bob Martin discuss SOLID: &lt;a title="http://itc.conversationsnetwork.org/shows/detail4012.html" href="http://itc.conversationsnetwork.org/shows/detail4012.html"&gt;http://itc.conversationsnetwork.org/shows/detail4012.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hanselman’s follow on interview with “uncle” Bob Martin: &lt;a title="http://www.hanselminutes.com/default.aspx?showID=168" href="http://www.hanselminutes.com/default.aspx?showID=168"&gt;http://www.hanselminutes.com/default.aspx?showID=168&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The best thing that came from all of this is the following pictures from LosTechies:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx"&gt;http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131893"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131893" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/131893.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sHZYvT9Lwob3kQe8_vhiSZymM20/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sHZYvT9Lwob3kQe8_vhiSZymM20/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sHZYvT9Lwob3kQe8_vhiSZymM20/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sHZYvT9Lwob3kQe8_vhiSZymM20/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/05/07/solid-principles-explained-in-a-visual-manner.aspx</guid>
            <pubDate>Fri, 08 May 2009 02:29:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/131893.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/05/07/solid-principles-explained-in-a-visual-manner.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/131893.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/131893.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/05/07/solid-principles-explained-in-a-visual-manner.aspx</feedburner:origLink></item>
        <item>
            <title>Huagati DBML/EDMX Tools</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/TCPPxtksGTE/huagati-dbmledmx-tools.aspx</link>
            <description>&lt;p&gt;Anyone that is working frequently with either LINQ to SQL or the Entity Framework needs to go get a copy of the Huagati DBML/EDMX tools.  They plug right into Visual Studio (2008) and allow you to perform many of the tasks that you would think VS would do for you.  I just recently had a new dev db get corrupted.  I had no backups for it.  I also had no scripts generated for it.  Argh!  What to do?  With this tool I was able to reverse engineer my EDMX file and spit out all the SQL I needed to generate the database.  There are many other features provided with this tool that I am sure you will love too.&lt;/p&gt;  &lt;p&gt;This tool is offered in a free 30 day trial.  Then there are a few paid versions.  I think that the professional version is worth the $120 price tag but there is a $50 version and a $12/mo subscription option.  Very good stuff!  Go grab a copy.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131392"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131392" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/131392.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/chUVZeZ3VmbvNcwxnjlLf8cJrHk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/chUVZeZ3VmbvNcwxnjlLf8cJrHk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/chUVZeZ3VmbvNcwxnjlLf8cJrHk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/chUVZeZ3VmbvNcwxnjlLf8cJrHk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/04/22/huagati-dbmledmx-tools.aspx</guid>
            <pubDate>Wed, 22 Apr 2009 19:52:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/131392.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/04/22/huagati-dbmledmx-tools.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/131392.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/131392.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/04/22/huagati-dbmledmx-tools.aspx</feedburner:origLink></item>
        <item>
            <title>Susan Boyle &amp;ndash; not geeky&amp;hellip;but WOW! Must watch.</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/uTijZUYhu6g/susan-boyle-ndash-not-geekyhellipbut-wow-must-watch.aspx</link>
            <description>&lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:917a69ab-4065-4fd8-91b7-adb984909cd0" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="96a63d09-94df-4272-901c-2d251eccc0e8" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=9lp0IWv8QZY" target="_new"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/SusanBoylenotgeekybutWOWMustwatch_B450/videoec2571e0a576.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('96a63d09-94df-4272-901c-2d251eccc0e8'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/9lp0IWv8QZY&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/9lp0IWv8QZY&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131247"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131247" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/131247.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/joG7n11Y6LY8a0Kqt3xRzz2r0Z4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/joG7n11Y6LY8a0Kqt3xRzz2r0Z4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/joG7n11Y6LY8a0Kqt3xRzz2r0Z4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/joG7n11Y6LY8a0Kqt3xRzz2r0Z4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/04/16/susan-boyle-ndash-not-geekyhellipbut-wow-must-watch.aspx</guid>
            <pubDate>Thu, 16 Apr 2009 17:49:24 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/131247.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/04/16/susan-boyle-ndash-not-geekyhellipbut-wow-must-watch.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/131247.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/131247.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/04/16/susan-boyle-ndash-not-geekyhellipbut-wow-must-watch.aspx</feedburner:origLink></item>
        <item>
            <title>Word Press Tag Cloud to be reused across other tag-able systems &amp;ndash; WP Cumulous</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/a8KTqAnN7CY/word-press-tag-cloud-to-be-reused-across-other-tag-able.aspx</link>
            <description>&lt;p&gt;I was scooting about the net the other day and landed on someone’s site that had the most fascinating tag cloud I have seen so far.  The tags in this cloud revolve as though they are in a 3d sphere.  When you mouse over the sphere you can move the words up down and around.  Very interesting.  This is a flash based control that you can feed with an XML file.  Also, the source for it is readily available which makes it a tool that can be ported to just about any tab based platform.  Very nice!  See the home page for this widget &lt;a href="http://www.roytanck.com/2008/03/15/wp-cumulus-released/"&gt;here&lt;/a&gt; or get the developer (source) version &lt;a href="http://downloads.wordpress.org/plugin/wp-cumulus.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/WordPressTagCloudtobereusedacrossotherta_9543/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="375" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/WordPressTagCloudtobereusedacrossotherta_9543/image_thumb.png" width="375" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130721"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130721" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/130721.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LGu7M4_HC71e6ddbL68wVW6OokM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LGu7M4_HC71e6ddbL68wVW6OokM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LGu7M4_HC71e6ddbL68wVW6OokM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LGu7M4_HC71e6ddbL68wVW6OokM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/04/03/word-press-tag-cloud-to-be-reused-across-other-tag-able.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 15:36:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/130721.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/04/03/word-press-tag-cloud-to-be-reused-across-other-tag-able.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/130721.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/130721.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/04/03/word-press-tag-cloud-to-be-reused-across-other-tag-able.aspx</feedburner:origLink></item>
        <item>
            <title>ILOG Rules for .NET 3.0 &amp;ndash; quick overview</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/3wP6oRuO07E/ilog-rules-for-.net-3.0-ndash-quick-overview.aspx</link>
            <description>&lt;p&gt;I have been working on a project for the past year or so.  This project was originally decided to be implemented in a BizTalk environment.  Although most of us were new to this form of SOA development we went ahead with the understanding that we would eventually learn enough to stand up, manage, and develop for BizTalk.  With this in mind we developed our entire application in such a way that we thought the app would simply plug in to the BizTalk environment (from an orchestration point of view any ways).&lt;/p&gt;  &lt;p&gt;Some of the reasons that we decided to go with BizTalk was that it was very scalable, configurable, flexible, and that it had many components that we could easily use in our application.  Some of these components were the Business Rules Engine (BRE), various reporting tools (BAM), built in queue integration, etc.  We liked the idea of using already built and tested components.  Why recreate the wheel after all?  After we played with BizTalk for quite some time, took several classes, and spent many months with our BizTalk consultants, we eventually heard one statement that summed up BizTalk in every way:&lt;/p&gt;  &lt;p&gt;“BizTalk can do anything you want it too, it just can’t do anything out of the box!”&lt;/p&gt;  &lt;p&gt;Whaaaaa?&lt;/p&gt;  &lt;p&gt;Any ways…again…a year later I am still working on an application that needs some of these BizTalk style components.  One of which we have found is needed more and more.  We needed an external program to manage the flow of our application.  One might immediately jump to Windows Workflow Foundation and the Rules Engine that comes with WWF.  However, one of the marching orders of this application is that the business users can make changes to the logic of the application in such a way that it doesn’t require a code push and is not restricted by the length of a development cycle.  We had looked into several rules engines along the way to see if any were capable of addressing this need.  All of the rules engines that we came across were Java based and forced you to integrate with them via web services.  Yuck.  &lt;/p&gt;  &lt;p&gt;We eventually came across ILOG Rules for .NET.  This is a program (now owned by IBM and a Microsoft Gold partner) that integrates into a .NET developers world in a very seamless manner.  It plugs right into Visual Studio allowing the developer to define flows, express facts to rule editors, verbalize those facts in a more business friendly manner, and call into the execution server to run the rules all without any headache at all.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/ILOGRulesfor.NET3.0quickoverview_CE8D/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="562" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/ILOGRulesfor.NET3.0quickoverview_CE8D/image_thumb.png" width="604" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In addition to that the rules, decision tables, and flows can be edited externally in Microsoft Word or Excel.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/ILOGRulesfor.NET3.0quickoverview_CE8D/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="441" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/ILOGRulesfor.NET3.0quickoverview_CE8D/image_thumb_1.png" width="604" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/ILOGRulesfor.NET3.0quickoverview_CE8D/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="440" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/AndrewSiemer/WindowsLiveWriter/ILOGRulesfor.NET3.0quickoverview_CE8D/image_thumb_2.png" width="604" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And for those in a real Microsoft shop you probably have a SharePoint installation to manage all of your documents.  SharePoint is also fully integrated into this suite for rule doc management, workflow management, etc.  (sorry, no screen shot of this yet)&lt;/p&gt;  &lt;p&gt;The best part of this application in my mind is that ILOG gives you a 6 month free trial of the fully functional suite!  This means that you can easily knock together a proof of concept before you purchase their (very reasonably priced) program.  &lt;a title="http://www.ilog.com/dev/brms/rfdntrial/" href="http://www.ilog.com/dev/brms/rfdntrial/"&gt;http://www.ilog.com/dev/brms/rfdntrial/&lt;/a&gt;  And another benefit to their free trial is that they provide you will full access to their support forum.  I had a few issues during my POC development that I got pretty quick help with through this online help format!&lt;/p&gt;  &lt;p&gt;In future posts I will show my proof of concept and address some of the gotchas that I ran into.&lt;/p&gt;  &lt;p&gt;I am going to assume that you can get through their registration and free trial download process.  I am also going to assume that you can get all of their programs installed and running (they cover that pretty well).  &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;One word to the wise – do be sure to install the execution server first so that you don’t have to mess with any configuration files down the road!  This should be pretty easy as it is the first installer you come across.&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Also, be sure to read through their various documents and white papers (with the QuickStart being the most helpful!):&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="500" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="250"&gt;Quick Start&lt;/td&gt;        &lt;td valign="top" width="250"&gt;C:\Program Files\ILOG\ILOG Rules for .NET Quick Start 3.0\Documentation\QuickStart.pdf&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;White papers&lt;/td&gt;        &lt;td valign="top" width="250"&gt;&lt;a title="http://www.ilog.com/products/rulesnet/whitepapers/" href="http://www.ilog.com/products/rulesnet/whitepapers/"&gt;http://www.ilog.com/products/rulesnet/whitepapers/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;Online help&lt;/td&gt;        &lt;td valign="top" width="250"&gt;&lt;a title="http://docs.ilog.com/brms/documentation/rulesnet30/" href="http://docs.ilog.com/brms/documentation/rulesnet30/"&gt;http://docs.ilog.com/brms/documentation/rulesnet30/&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130539"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130539" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/130539.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/je87E4qFpEGGx4GpNytHBhcWmFM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/je87E4qFpEGGx4GpNytHBhcWmFM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/je87E4qFpEGGx4GpNytHBhcWmFM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/je87E4qFpEGGx4GpNytHBhcWmFM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/03/30/ilog-rules-for-.net-3.0-ndash-quick-overview.aspx</guid>
            <pubDate>Mon, 30 Mar 2009 20:14:10 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/130539.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/03/30/ilog-rules-for-.net-3.0-ndash-quick-overview.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/130539.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/130539.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/03/30/ilog-rules-for-.net-3.0-ndash-quick-overview.aspx</feedburner:origLink></item>
        <item>
            <title>Entity Framework : An entity object cannot be referenced by multiple instances of IEntityChangeTracker.</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/WCp0biwhg34/entity-framework--an-entity-object-cannot-be-referenced-by.aspx</link>
            <description>&lt;p&gt;I just had this error where entity framework was complaining about my object already being referenced by the data context that I originally got the object from.  In LINQ to SQL I guess this was just taken care of for me.  I would get the object in a using statement so that the data context was cleared when I was through with the context.  Then I could do what ever I wanted to with the object after that – to include throwing it back to the database.&lt;/p&gt;  &lt;p&gt;I came across the fix to this issue here: &lt;a title="http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/501d7b99-0cb9-44b6-b2cd-16275a151b31" href="http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/501d7b99-0cb9-44b6-b2cd-16275a151b31"&gt;http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/501d7b99-0cb9-44b6-b2cd-16275a151b31&lt;/a&gt; which simply suggests detaching the object from the original context before I kill that context.  Then I can re-attach the object to a new context later on.  This solved the issue…but uncovered more issues.&lt;/p&gt;  &lt;p&gt;Here is my post to the MS forum:&lt;/p&gt;  &lt;p&gt;-----------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;Working in a web app I am very fond of the Repository approach.  I generally create a new context inside a using statement which then kills the context for me once my snippet of work is complete.  So for an AccountsRepository I might have a Save(Account account) method which would have something like the following:&lt;/p&gt;  &lt;p&gt;using (RanchBuddyDataContext dc = new Connection().GetContext()) &lt;/p&gt;  &lt;p&gt;                { &lt;/p&gt;  &lt;p&gt;                    if(account.AccountID &amp;gt; 0) &lt;/p&gt;  &lt;p&gt;                    { &lt;/p&gt;  &lt;p&gt;                        dc.Accounts.Attach(account, true); &lt;/p&gt;  &lt;p&gt;                    } &lt;/p&gt;  &lt;p&gt;                    else &lt;/p&gt;  &lt;p&gt;                    { &lt;/p&gt;  &lt;p&gt;                        dc.Accounts.InsertOnSubmit(account); &lt;/p&gt;  &lt;p&gt;                    } &lt;/p&gt;  &lt;p&gt;                    dc.SaveChanges(); &lt;/p&gt;  &lt;p&gt;                } &lt;/p&gt;  &lt;p&gt;While this worked great in LINQ to SQL I am finding that it doesn't work so well with the Entity Framework.  I am now getting the error that started this thread.  In order to address this problem I have to do a few things and am not liking the work that goes into this.  Hopefully someone can adjust my way of thinking on this.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;For my particular issue I have a person that logs into the system.  Once the log in is correct I stash their account object (fairly light) into their current session.  I then refer to that now and then as needed.  This works great.  However, when the user goes to the edit account screen, I would normally load the screen with their session held Account object.  Allow the user to edit their data and then throw it at a repository method as descibed above.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Not any more!&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Up to the point where the user logs in is unchanged.  However, the object that is returned to me by my login method now has to be detached from the context - a step that I must remember any time that I want to keep and object out of the db, fiddle with it (edit it), and then eventually persist it back to the db.  Then it is put in the session for later use.  Once the user edits their account I have to get an original copy of the object (I am guessing so that the context is aware of it???) and then attempt to persist my object (with changes) back to the db.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;I now have this code for getting the Account by username:&lt;/p&gt;  &lt;p&gt;public Account GetAccountByUsername(string Username) &lt;/p&gt;  &lt;p&gt;        { &lt;/p&gt;  &lt;p&gt;            Account result = null; &lt;/p&gt;  &lt;p&gt;            using (RanchBuddyEntities dc = connection.GetContext()) &lt;/p&gt;  &lt;p&gt;            { &lt;/p&gt;  &lt;p&gt;result = dc.AccountSet.Where(a =&amp;gt; a.Username == Username).FirstOrDefault(); &lt;/p&gt;  &lt;p&gt;                dc.Detach(result); &lt;/p&gt;  &lt;p&gt;            } &lt;/p&gt;  &lt;p&gt;            return result; &lt;/p&gt;  &lt;p&gt;        } &lt;/p&gt;  &lt;p&gt;If the account that is returned from a username search matches the supplied password then the account object here goes into my session.  Notice that at the bottom of my query above I have a dc.Detach(result) statement to remove it from the context.  From what I have read so far I have to do this so that I can re-attach it later on or keep a copy of the original object with me everywhere I go.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Then comes my save code.&lt;/p&gt;  &lt;p&gt;using (RanchBuddyEntities dc = connection.GetContext()) &lt;/p&gt;  &lt;p&gt;                { &lt;/p&gt;  &lt;p&gt;                    if(account.AccountID &amp;gt; 0) &lt;/p&gt;  &lt;p&gt;                    { &lt;/p&gt;  &lt;p&gt;                        Account original = dc.AccountSet.Where(a =&amp;gt; a.AccountID == account.AccountID).FirstOrDefault(); &lt;/p&gt;  &lt;p&gt;                        dc.ApplyPropertyChanges("AccountSet",account); &lt;/p&gt;  &lt;p&gt;                    } &lt;/p&gt;  &lt;p&gt;                    else &lt;/p&gt;  &lt;p&gt;                    { &lt;/p&gt;  &lt;p&gt;                        dc.AddToAccountSet(account); &lt;/p&gt;  &lt;p&gt;                    } &lt;/p&gt;  &lt;p&gt;                    dc.SaveChanges(); &lt;/p&gt;  &lt;p&gt;                } &lt;/p&gt;  &lt;p&gt;In this code I now have to get the original object into the context (as I don't carry the original object around with me just in case I need it and I guess the context is not aware of it if I don't manually load it??), then ApplyPropertyChanges of my updated object, and finally SaveChanges() on the context.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;I would love to hear if anyone has a better way of working with this.  I much prefer the way I was able to do this in LINQ to SQL as there were less steps to remember and I didn't need to litter various methods with snippets so that one method would work correctly with another (when they shouldn't care about each other at all).&lt;/p&gt;  &lt;p&gt;-----------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;I would love to hear of a better solution to this problem that shouldn’t be a problem.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130477"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=130477" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/130477.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p5yWLS5jjF-VtrQwQgkSExwTKuU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p5yWLS5jjF-VtrQwQgkSExwTKuU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p5yWLS5jjF-VtrQwQgkSExwTKuU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p5yWLS5jjF-VtrQwQgkSExwTKuU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/03/27/entity-framework--an-entity-object-cannot-be-referenced-by.aspx</guid>
            <pubDate>Fri, 27 Mar 2009 19:12:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/130477.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/03/27/entity-framework--an-entity-object-cannot-be-referenced-by.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/130477.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/130477.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/03/27/entity-framework--an-entity-object-cannot-be-referenced-by.aspx</feedburner:origLink></item>
        <item>
            <title>Entity Framework : At first glance the LINQ to SQL team didn&amp;rsquo;t transition fast enough!</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/vlI9qlr2YEw/entity-framework-ndash-at-first-glance-the-linq-to-sql.aspx</link>
            <description>&lt;p&gt;I started looking at the latest the EF team had to offer and while things have progressed immensely over the years it appears that there is still some room for improvement.  Given the turmoil over the possible demise of LINQ to SQL I know that the use of Entity Framework is inevitable for me and probably just around the corner.  &lt;/p&gt; &lt;p&gt;With my newest project I have started to plug in an ADO.NET Entity Data Model (EDMX) where I would normally plug in LINQ to SQL Classes (DBML).  I still dropped the file into my Domain directory so that all the classes that are generated show up where I would expect them.  I then connect to my database in the Server Explorer, expand my database, then expand tables, and drag over all of my tables unto the new Entity design surface.  This creates a bunch of classes for me named exactly as my tables are named?  ARGH!  This is the first pain point.  I rename each and every table from a plural form to a single form.  With this corrected I can then go in and edit my Connection() helper class to return Entities instead of a DataContext.&lt;/p&gt; &lt;p&gt;From this… &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;0:&lt;/font&gt;      &lt;span style="color: #00ffff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ffff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;Connection&lt;/span&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;1:&lt;/font&gt;  &lt;/nobr&gt;&lt;span style="color: #000000"&gt;    {&lt;/span&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;2:&lt;/font&gt;         &lt;/nobr&gt;&lt;span style="color: #00ffff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; RanchBuddyDataContext GetContext()&lt;/span&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;3:&lt;/font&gt;          {&lt;/nobr&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;4:&lt;/font&gt;             &lt;/nobr&gt;&lt;span style="color: #00ffff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; connString = &lt;/span&gt;&lt;span style="color: #00ff00"&gt;ConfigurationService&lt;/span&gt;&lt;span style="color: #000000"&gt;.GetRanchBuddyEntitiesConnectionString();&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;5:&lt;/font&gt;              RanchBuddyDataContext dc =&lt;/nobr&gt;&lt;span style="color: #00ffff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; RanchBuddyDataContext(connString);&lt;/span&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;6:&lt;/font&gt;              dc.CommandTimeout = 60;&lt;/nobr&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;7:&lt;/font&gt;             &lt;/nobr&gt;&lt;span style="color: #00ffff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; dc;&lt;/span&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;8:&lt;/font&gt;          }&lt;/nobr&gt; &lt;br /&gt;&lt;nobr&gt;&lt;font color="#000000"&gt;9:&lt;/font&gt;      }&lt;/nobr&gt; &lt;br /&gt;&lt;/nobr&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;To this…&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;0:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ffff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;Connection&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;1:&lt;/font&gt;  &lt;span style="color: #000000"&gt;    {&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;2:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;RanchBuddyEntities&lt;/span&gt;&lt;span style="color: #000000"&gt; GetContext()&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;3:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;4:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; connString = &lt;/span&gt;&lt;span style="color: #00ff00"&gt;ConfigurationService&lt;/span&gt;&lt;span style="color: #000000"&gt;.GetRanchBuddyEntitiesConnectionString();&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;5:&lt;/font&gt;   &lt;span style="color: #00ff00"&gt;RanchBuddyEntities&lt;/span&gt;&lt;span style="color: #000000"&gt; dc = &lt;/span&gt;&lt;span style="color: #00ffff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;RanchBuddyEntities&lt;/span&gt;&lt;span style="color: #000000"&gt;(connString);&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;6:&lt;/font&gt;   dc.CommandTimeout = 60;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;7:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; dc;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;8:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;9:&lt;/font&gt;   }&lt;/nobr&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;That was pretty easy! I can now start to create my repository layer which connects to my database through the Entity Framework. The syntax is a little different but mostly the same. And once you get the hang of it it is very easy to get to work.  Where I used to select directly from DataContext.TableCollection I now have to do something like this to select a record:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;0:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;Account&lt;/span&gt;&lt;span style="color: #000000"&gt; GetAccountByUsername(&lt;/span&gt;&lt;span style="color: #00ffff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; Username)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;1:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;2:&lt;/font&gt;   &lt;span style="color: #00ff00"&gt;Account&lt;/span&gt;&lt;span style="color: #000000"&gt; result = &lt;/span&gt;&lt;span style="color: #00ffff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;3:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #00ff00"&gt;RanchBuddyEntities&lt;/span&gt;&lt;span style="color: #000000"&gt; dc = connection.GetContext())&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;4:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;5:&lt;/font&gt;   result = dc.AccountSet.Where(a =&amp;gt; a.Username == Username).FirstOrDefault();&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;6:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;7:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; result;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;8:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;/pre&gt;
&lt;p&gt;Something like this to save a record:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;0:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;RepositoryStatus&lt;/span&gt;&lt;span style="color: #000000"&gt; SaveAccount(&lt;/span&gt;&lt;span style="color: #00ff00"&gt;Account&lt;/span&gt;&lt;span style="color: #000000"&gt; account)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;1:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;2:&lt;/font&gt;   &lt;span style="color: #00ff00"&gt;RepositoryStatus&lt;/span&gt;&lt;span style="color: #000000"&gt; rs = &lt;/span&gt;&lt;span style="color: #00ffff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;RepositoryStatus&lt;/span&gt;&lt;span style="color: #000000"&gt;();&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;3:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;try&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;4:&lt;/font&gt;  &lt;span style="color: #000000"&gt;            {&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;5:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #00ff00"&gt;RanchBuddyEntities&lt;/span&gt;&lt;span style="color: #000000"&gt; dc = connection.GetContext())&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;6:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;7:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;(account.AccountID &amp;gt; 0)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;8:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;9:&lt;/font&gt;   dc.Attach(account);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;10:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;11:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;else&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;12:&lt;/font&gt;  &lt;span style="color: #000000"&gt;                    {&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;13:&lt;/font&gt;   dc.AddToAccountSet(account);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;14:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;15:&lt;/font&gt;   dc.SaveChanges();&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;16:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;17:&lt;/font&gt;   rs.SetObject(account);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;18:&lt;/font&gt;   rs.AddMessage(&lt;span style="color: #ff00ff"&gt;"Your account was successfully saved!"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;19:&lt;/font&gt;   rs.StatusType = &lt;span style="color: #00ff00"&gt;Status&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #00ff00"&gt;StatusTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;.Success;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;20:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;21:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #00ff00"&gt;Exception&lt;/span&gt;&lt;span style="color: #000000"&gt; e)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;22:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;23:&lt;/font&gt;   rs.SetObject(account);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;24:&lt;/font&gt;   rs.AddMessage(e.Message + e.StackTrace);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;25:&lt;/font&gt;   rs.StatusType = &lt;span style="color: #00ff00"&gt;Status&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #00ff00"&gt;StatusTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;.Failure;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;26:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;27:&lt;/font&gt;   &lt;span style="color: #00ffff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; rs;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;28:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;/pre&gt;
&lt;p&gt;And something like this to delete a record:&lt;/p&gt;
&lt;p&gt;&lt;nobr&gt;&lt;font color="black"&gt;0:&lt;/font&gt;          &lt;span style="color: #00ffff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;RepositoryStatus&lt;/span&gt;&lt;span style="color: #000000"&gt; DeleteAccount(&lt;/span&gt;&lt;span style="color: #00ff00"&gt;Account&lt;/span&gt;&lt;span style="color: #000000"&gt; account)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;1:&lt;/font&gt;          {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;2:&lt;/font&gt;             &lt;span style="color: #00ff00"&gt;RepositoryStatus&lt;/span&gt;&lt;span style="color: #000000"&gt; rs =&lt;/span&gt;&lt;span style="color: #00ffff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ff00"&gt;RepositoryStatus&lt;/span&gt;&lt;span style="color: #000000"&gt;();&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;3:&lt;/font&gt;             &lt;span style="color: #00ffff"&gt;try&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;4:&lt;/font&gt;  &lt;span style="color: #000000"&gt;            {&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;5:&lt;/font&gt;                 &lt;span style="color: #00ffff"&gt;using&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #00ff00"&gt;RanchBuddyEntities&lt;/span&gt;&lt;span style="color: #000000"&gt; dc = connection.GetContext())&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;6:&lt;/font&gt;                  {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;7:&lt;/font&gt;                      dc.Attach(account);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;8:&lt;/font&gt;                      dc.DeleteObject(account);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;9:&lt;/font&gt;                      dc.SaveChanges();&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;10:&lt;/font&gt;                  }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;11:&lt;/font&gt;                  rs.SetObject(&lt;span style="color: #00ffff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ffff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;());&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;12:&lt;/font&gt;                  rs.AddMessage(&lt;span style="color: #ff00ff"&gt;"Your account was successfully deleted!"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;13:&lt;/font&gt;                  rs.StatusType =&lt;span style="color: #00ff00"&gt;Status&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #00ff00"&gt;StatusTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;.Success;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;14:&lt;/font&gt;              }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;15:&lt;/font&gt;             &lt;span style="color: #00ffff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #00ff00"&gt;Exception&lt;/span&gt;&lt;span style="color: #000000"&gt; e)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;16:&lt;/font&gt;              {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;17:&lt;/font&gt;                  rs.SetObject(&lt;span style="color: #00ffff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #00ffff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;());&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;18:&lt;/font&gt;                  rs.AddMessage(e.Message + e.StackTrace);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;19:&lt;/font&gt;                  rs.StatusType =&lt;span style="color: #00ff00"&gt;Status&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #00ff00"&gt;StatusTypes&lt;/span&gt;&lt;span style="color: #000000"&gt;.Failure;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;20:&lt;/font&gt;              }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;21:&lt;/font&gt;             &lt;span style="color: #00ffff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; rs;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;22:&lt;/font&gt;          }&lt;/nobr&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;p&gt;In some ways this is actually easier than working with LINQ to SQL. Let’s continue on.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ok, I added a column to one of my previously included tables. In LINQ to SQL I would just delete the entity and re-drag it to the design surface. Let’s do that here for EF. Deleting the entity works great.  Now let’s re-add the table.  Wait…it won’t let me?  What is that about.  Apparently there are issues with the designer that don’t quite clean every thing out as one might expect.  Deleting the entity only removed it from the view.  As far as EF is concerned the entity is still in play!  To really delete the table so that you can re-add it you have to dig into the EDMX and remove all references to that table!  FUN FUN FUN.&lt;/p&gt;
&lt;p&gt;With the table deleted, then all references to the table deleted, I am now able to add my table back to the design surface.  Cool.  Close the design surface and let’s do something else.  (this only happens now and then…but bare with me!) Oh wait…re-open the design surface real quick and let’s do a bit more work there.  Wait…what’s this…Visual Studio periodically forgets how to open an EDMX file you say?  Guess what…the only way to correct this issue is to close your solution and reload it!  The other stuff I can live with.  But this particular issue is sort of lame!&lt;/p&gt;
&lt;p&gt;All in all and especially since I have no choice – working with the Entity Framework doesn’t seem like brain surgery just yet.  I am hoping that all the issues I had working with disconnected contexts and many to many tables is rectified.  Also, I am hoping that having all the relationships left intact doesn’t cause me the same pains as LINQ to SQL did…guess I can always turn them off like I tend to do in LINQ to SQL.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129817"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129817" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/129817.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/c5iW7HU5-nnDTQMgbgrm08z2TuY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c5iW7HU5-nnDTQMgbgrm08z2TuY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/c5iW7HU5-nnDTQMgbgrm08z2TuY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/c5iW7HU5-nnDTQMgbgrm08z2TuY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2009/03/03/entity-framework-ndash-at-first-glance-the-linq-to-sql.aspx</guid>
            <pubDate>Tue, 03 Mar 2009 19:52:27 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/129817.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2009/03/03/entity-framework-ndash-at-first-glance-the-linq-to-sql.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/129817.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/129817.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2009/03/03/entity-framework-ndash-at-first-glance-the-linq-to-sql.aspx</feedburner:origLink></item>
        <item>
            <title>MVC Attributes via ActionFilterAttribute</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/UqsgEN8BxbE/mvc-attributes-via-actionfilterattribute-again.aspx</link>
            <description>&lt;p&gt;I needed an attribute to decorate methods/controllers to protect them from being accessed by users that are not logged in.  If I were using a .net provider for authentication I could use the [Authorize] attribute that is provided in the MVC framework.  However, in this case I chose to create my own security.  This means that I need to also create my own [Authorize] attribute (as I love it’s simplicity!).  Finding the way to do this is not that straight forward.  So here is the custom attribute.&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;div style="padding-right: 0px; padding-left: 0px; background: #808080; padding-bottom: 0px; margin-left: 4px; margin-right: 4px; padding-top: 0px"&gt; &lt;div style="border-right: #2e595c 1px solid; border-top: #2e595c 1px solid; background: #fff; left: -2px; border-left: #2e595c 1px solid; color: black; border-bottom: #2e595c 1px solid; position: relative; top: -2px"&gt; &lt;div style="border-right: blue 1px solid; border-top: blue 1px solid; background: #3f73b6; border-left: blue 1px solid; width: 100%; color: white; border-bottom: blue 1px solid"&gt;&lt;span style="width: 100%"&gt;Code Snippet&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;0:&lt;/font&gt;  &lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #0000ff"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #0000ff"&gt; &lt;/span&gt;&lt;span style="color: #a31515"&gt;MustBeLoggedInAttribute&lt;/span&gt;&lt;span style="color: #0000ff"&gt; : &lt;/span&gt;&lt;span style="color: #a31515"&gt;ActionFilterAttribute&lt;/span&gt;&lt;span style="color: #0000ff"&gt; &lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;1:&lt;/font&gt;  {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;2:&lt;/font&gt;   &lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #0000ff"&gt; &lt;/span&gt;&lt;span style="color: #a31515"&gt;WebContext&lt;/span&gt;&lt;span style="color: #0000ff"&gt; _webContext;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;3:&lt;/font&gt;   &lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #0000ff"&gt; MustBeLoggedInAttribute()&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;4:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;5:&lt;/font&gt;   _webContext = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #0000ff"&gt; &lt;/span&gt;&lt;span style="color: #a31515"&gt;WebContext&lt;/span&gt;&lt;span style="color: #0000ff"&gt;();&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;6:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;7:&lt;/font&gt;   &lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #0000ff"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&lt;span style="color: #0000ff"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #0000ff"&gt; OnActionExecuting(&lt;/span&gt;&lt;span style="color: #a31515"&gt;ActionExecutingContext&lt;/span&gt;&lt;span style="color: #0000ff"&gt; filterContext)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;8:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;9:&lt;/font&gt;   &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #0000ff"&gt;(_webContext.Account == &lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #0000ff"&gt;)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;10:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;11:&lt;/font&gt;   &lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #0000ff"&gt; loginUrl = &lt;/span&gt;&lt;span style="color: #ff00ff"&gt;"~/Account/Login"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;12:&lt;/font&gt;   filterContext.HttpContext.Response.Redirect(loginUrl);&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;13:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;14:&lt;/font&gt;   &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #0000ff"&gt;.OnActionExecuting(filterContext);&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;15:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;16:&lt;/font&gt;  }&lt;/nobr&gt;&lt;br /&gt;&lt;/pre&gt;/pre&amp;gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;
&lt;p&gt;And to use this new attribute simply decorate the method you want protect.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div style="padding-right: 0px; padding-left: 0px; background: #808080; padding-bottom: 0px; margin-left: 4px; margin-right: 4px; padding-top: 0px"&gt;
&lt;div style="border-right: #2e595c 1px solid; border-top: #2e595c 1px solid; background: #fff; left: -2px; border-left: #2e595c 1px solid; color: black; border-bottom: #2e595c 1px solid; position: relative; top: -2px"&gt;
&lt;div style="border-right: blue 1px solid; border-top: blue 1px solid; background: #3f73b6; border-left: blue 1px solid; width: 100%; color: white; border-bottom: blue 1px solid"&gt;&lt;span style="width: 100%"&gt;Code Snippet&lt;/span&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;0:&lt;/font&gt;  [&lt;span style="color: #0000ff"&gt;MustBeLoggedIn&lt;/span&gt;&lt;span style="color: #000000"&gt;]&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;1:&lt;/font&gt;  &lt;span style="color: #a31515"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;ActionResult&lt;/span&gt;&lt;span style="color: #000000"&gt; ChangePassword(&lt;/span&gt;&lt;span style="color: #a31515"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; currentPassword, &lt;/span&gt;&lt;span style="color: #a31515"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; newPassword, &lt;/span&gt;&lt;span style="color: #a31515"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; confirmPassword)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;2:&lt;/font&gt;  {&lt;/nobr&gt;&lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;3:&lt;/font&gt;   ViewData[&lt;span style="color: #008000"&gt;"Title"&lt;/span&gt;&lt;span style="color: #000000"&gt;] = &lt;/span&gt;&lt;span style="color: #008000"&gt;"Change Password"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;4:&lt;/font&gt;   &lt;span style="color: #ff0000"&gt;// Non-POST requests should just display the ChangePassword form &lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;5:&lt;/font&gt;  &lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #a31515"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (Request.HttpMethod != &lt;/span&gt;&lt;span style="color: #008000"&gt;"POST"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;6:&lt;/font&gt;   {&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;7:&lt;/font&gt;   &lt;span style="color: #a31515"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; View();&lt;/span&gt;&lt;/nobr&gt;&lt;br /&gt;&lt;nobr&gt;&lt;font color="black"&gt;8:&lt;/font&gt;   }&lt;/nobr&gt;&lt;br /&gt;&lt;/pre&gt;/pre&amp;gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Notice that the name of the custom attribute is MustBeLoggedInAttribute but the usage of the attribute only shows MustBeLoggedIn – no Attribute!&lt;/p&gt;
&lt;p&gt;I saw several hits of not using a hard coded Redirect path by specifying the controller and action.  If someone knows this answer for the current release of MVC please post it!  For now I can stick it in a config value or something.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127178"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127178" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/127178.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kQNu4LuRAyiRZ-bJ1Hi2VDMulQs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kQNu4LuRAyiRZ-bJ1Hi2VDMulQs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kQNu4LuRAyiRZ-bJ1Hi2VDMulQs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kQNu4LuRAyiRZ-bJ1Hi2VDMulQs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2008/11/17/mvc-attributes-via-actionfilterattribute-again.aspx</guid>
            <pubDate>Tue, 18 Nov 2008 05:27:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/127178.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2008/11/17/mvc-attributes-via-actionfilterattribute-again.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/127178.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/127178.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2008/11/17/mvc-attributes-via-actionfilterattribute-again.aspx</feedburner:origLink></item>
        <item>
            <title>LINQ to SQL possibly being dropped by Microsoft?</title>
            <link>http://feedproxy.google.com/~r/AndrewSiemer/~3/5dhYNilp9AY/linq-to-sql-possibly-being-dropped-by-microsoft.aspx</link>
            <description>&lt;p&gt;Is anyone out there close to this subject?  My editor at RedGate sent me a link to someone’s blog post that basically took me to this link where I found a beat around the bush statement eluding to the possibility of MS dropping LINQ to SQL.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx"&gt;http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As I have several applications running on LINQ to SQL I was wondering what people’s thoughts were on this subject.  What do you think the odds are of them actually removing support and future updates to this product?  I don’t think that LINQ to Entities is quite ready to be adopted in the same way that LINQ to SQL was (and it was only sort of ready).  So what are you plans to migrate too if LINQ to SQL is to be dropped?  NHibernate?&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126584"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126584" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/AndrewSiemer/aggbug/126584.aspx" width="1" height="1" /&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FWLWdU0ORE_hp01iDC9ZBeWpEig/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FWLWdU0ORE_hp01iDC9ZBeWpEig/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FWLWdU0ORE_hp01iDC9ZBeWpEig/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FWLWdU0ORE_hp01iDC9ZBeWpEig/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</description>
            <dc:creator>Andrew Siemer - www.andrewsiemer.com</dc:creator>
            <guid isPermaLink="false">http://geekswithblogs.net/AndrewSiemer/archive/2008/11/03/linq-to-sql-possibly-being-dropped-by-microsoft.aspx</guid>
            <pubDate>Mon, 03 Nov 2008 17:31:59 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/AndrewSiemer/comments/126584.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/AndrewSiemer/archive/2008/11/03/linq-to-sql-possibly-being-dropped-by-microsoft.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/AndrewSiemer/comments/commentRss/126584.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/AndrewSiemer/services/trackbacks/126584.aspx</trackback:ping>
        <feedburner:origLink>http://geekswithblogs.net/AndrewSiemer/archive/2008/11/03/linq-to-sql-possibly-being-dropped-by-microsoft.aspx</feedburner:origLink></item>
    </channel>
</rss>
