<?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>Shawn Weisfeld</title>
        <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/Default.aspx</link>
        <description>I find when I talk to myself nobody listens. - Shawn Weisfeld</description>
        <language>en-US</language>
        <copyright>Shawn Weisfeld</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <image>
            <title>Shawn Weisfeld</title>
            <url>http://www.drowningintechnicaldebt.com/images/RSS2Image.gif</url>
            <link>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ShawnWeisfeld" /><feedburner:info uri="shawnweisfeld" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
            <title>Create a template for Orchard</title>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/n3qlPhUfWvQ/create-a-template-for-orchard.aspx</link>
            <description>&lt;p&gt;Orchard the open source CMS from Microsoft (&lt;a title="http://www.orchardproject.net/" href="http://www.orchardproject.net/"&gt;http://www.orchardproject.net/&lt;/a&gt;) has a great tempting engine. The out of the box base template “The Theme Machine” is very powerful and flexible, however if you are as design challenged as I, creating something with it that looks decent is out of the question. To that end I use a very cool template builder, Artisteer (&lt;a title="http://www.artisteer.com/" href="http://www.artisteer.com/"&gt;http://www.artisteer.com/&lt;/a&gt;) if that is not your speed there are about a million websites where you can download free/low cost templates, however most of them generate a standard HTML page with some javascript and css. I wanted to take a minute to document how I converted my HTML template into an Orchard theme. &lt;/p&gt;  &lt;p&gt;(Disclaimer this worked for my site, your template might require some different html changes, especially when it comes time to edit the HTML and CSS)&lt;/p&gt;  &lt;p&gt;Step 1: Get the html template. (Did I really need to tell you that?)&lt;/p&gt;  &lt;p&gt;Step 2: The goal is to make a theme based on the base template “The Theme Machine”. You will need to follow the instructions on the Orchard site to “Generate a New Theme” &lt;a title="http://www.orchardproject.net/docs/Writing-a-new-theme.ashx" href="http://www.orchardproject.net/docs/Writing-a-new-theme.ashx"&gt;http://www.orchardproject.net/docs/Writing-a-new-theme.ashx&lt;/a&gt;, however their instructions have you creating an empty theme. We need to create one based on “The Theme Machine”. To do that just alter the codegen step to use the following command:&lt;/p&gt;  &lt;p&gt;&amp;gt;&amp;gt; codegen theme MyTheme /BasedOn:TheThemeMachine /CreateProject:true /IncludeInSolution:true&lt;/p&gt;  &lt;p&gt;Step 3: Copy the CSS &amp;amp; related images into the “Styles” folder of your new theme&lt;/p&gt;  &lt;p&gt;Step 4: Copy the javascript into the “Scripts” folder of your new theme&lt;/p&gt;  &lt;p&gt;Step 5: Copy the template html file into the Views folder. I do this so that I have it for safe keeping and it stays with the project. Orchard will not be using it directly.&lt;/p&gt;  &lt;p&gt;Step 6: Copy the “Layout.cshtml” file from the “Views” folder from the “TheThemeMachine” template into the “Views” folder of our new theme.&lt;/p&gt;  &lt;p&gt;Step 7: This is the hard part, time to merge the HTML template that you found/created in Step 1 with the Layout.cshtml file you copied into your “Views” folder in Step 6. &lt;/p&gt;  &lt;p&gt;There are 2 things that you will have to worry about here:&lt;/p&gt;  &lt;p&gt;First you need to add references for the css and js files. My template requires 3 css files and 1 js file, so I needed to add the following at the top of the layout.cshtml file. I put mine just below the includes “Style.Include” statements that were already in the file. &lt;/p&gt;  &lt;p&gt;My template looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/3f432caf46b4_9FD1/clip_image002_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/3f432caf46b4_9FD1/clip_image002_thumb.jpg" width="755" height="76" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Converted to the layout.cshtml file it looks like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/3f432caf46b4_9FD1/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/3f432caf46b4_9FD1/image_thumb.png" width="541" height="91" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now that we have the head tag filled with all its goodness, it is time to do the body part. Copy over the html from the template into your Layout.cshtml file. You want to copy the html just below the “@tag.StartElement” line of code. With the markup in place, start moving the placeholders from the Layout.cshtml file into the proper places in your new template. &lt;/p&gt;  &lt;p&gt;Once you have moved the placeholders around, you will probably need to add a css file tweak everything just right. &lt;/p&gt;  &lt;p&gt;Step 8: The menu. My template and my client required a drop down menu, however out of the box Orchard only supports a single level menu. Time to add a module, the “Advanced Menu” module from Piotr Szmyd to be specific. After installing this module you will now have the ability to create multi level menus. However it comes with its own look and feel. If this works for you great, if not, you will have to modify it. Since my template provides for a menu that I like I am going to use it. To do so I need to copy 2 more cshtml files into my "Views” folder. After adding the module you should see a folder for it listed in your “Modules” folder called “Szmyd.Orchard.Modules.Menu”. In there you will find a “Views” folder and in it you will see Menu.cshtml, and MenuItem.cshtml. Copy those two files into the "Views” folder of your theme. Now alter them to match your template, just like you did the layout.cshtml file. &lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/850.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=n3qlPhUfWvQ:Fnm8Yk20vF4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=n3qlPhUfWvQ:Fnm8Yk20vF4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=n3qlPhUfWvQ:Fnm8Yk20vF4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=n3qlPhUfWvQ:Fnm8Yk20vF4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=n3qlPhUfWvQ:Fnm8Yk20vF4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=n3qlPhUfWvQ:Fnm8Yk20vF4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=n3qlPhUfWvQ:Fnm8Yk20vF4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=n3qlPhUfWvQ:Fnm8Yk20vF4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=n3qlPhUfWvQ:Fnm8Yk20vF4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=n3qlPhUfWvQ:Fnm8Yk20vF4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/n3qlPhUfWvQ" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/08/28/create-a-template-for-orchard.aspx</guid>
            <pubDate>Sun, 28 Aug 2011 19:08:08 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/850.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/08/28/create-a-template-for-orchard.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/850.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/850.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/08/28/create-a-template-for-orchard.aspx</feedburner:origLink></item>
        <item>
            <title>IIS 7 401.2 error</title>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/bmanaFV1BH8/iis-7-401.2-error.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I was deploying a website and was seeing the following behavior:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;site configured to use Windows Authentication &amp;amp; Impersonation&lt;/li&gt;    &lt;li&gt;everything in KB 942043 was set correctly (&lt;a title="http://support.microsoft.com/kb/942043" href="http://support.microsoft.com/kb/942043"&gt;http://support.microsoft.com/kb/942043&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;site was working from IE on the WebServer&lt;/li&gt;    &lt;li&gt;site was working from FireFox on my desktop&lt;/li&gt;    &lt;li&gt;site was NOT working in Chrome on my desktop “Error 338 (net::ERR_INVALID_AUTH_CREDENTIALS): Unknown error.”&lt;/li&gt;    &lt;li&gt;site was NOT working in IE on my desktop, 401 error message after asking for UserName and Password 3 times&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The fix was to force the web server to use NTLM. To do this in IIS 7 is just a setting in system.web/system.webServer/security/authentication/windowsAuthentication/providers section of the web.config:&lt;/p&gt;  &lt;p&gt;Here is a screen print of my web.config&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/IIS-7_9E16/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/IIS-7_9E16/image_thumb.png" width="497" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/849.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=bmanaFV1BH8:GHvsyWa3kI8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=bmanaFV1BH8:GHvsyWa3kI8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=bmanaFV1BH8:GHvsyWa3kI8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=bmanaFV1BH8:GHvsyWa3kI8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=bmanaFV1BH8:GHvsyWa3kI8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=bmanaFV1BH8:GHvsyWa3kI8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=bmanaFV1BH8:GHvsyWa3kI8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=bmanaFV1BH8:GHvsyWa3kI8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=bmanaFV1BH8:GHvsyWa3kI8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=bmanaFV1BH8:GHvsyWa3kI8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/bmanaFV1BH8" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/08/02/iis-7-401.2-error.aspx</guid>
            <pubDate>Tue, 02 Aug 2011 16:43:17 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/849.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/08/02/iis-7-401.2-error.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/849.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/849.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/08/02/iis-7-401.2-error.aspx</feedburner:origLink></item>
        <item>
            <title>.NET Micro comes to Dallas</title>
            <category>NETMF</category>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/Qyu-BMNY7Cs/.net-micro-comes-to-dallas.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;I had a great time at the event today and wanted to thank a few folks that helped make this event:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Paul (&lt;a href="http://webpaul.net"&gt;http://webpaul.net&lt;/a&gt;) for leading the discussion&lt;/li&gt;    &lt;li&gt;Barrie, Ian, Melissa, Kyle &amp;amp; the rest of the Improving (&lt;a href="http://www.improvingenterprises.com"&gt;http://www.improvingenterprises.com&lt;/a&gt;) for letting us in there office&lt;/li&gt;    &lt;li&gt;Todd &amp;amp; Rob for helping during the labs&lt;/li&gt;    &lt;li&gt;The folks at GHI for the prize donations (&lt;a href="http://www.ghielectronics.com"&gt;http://www.ghielectronics.com&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;All the all the attendees. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What is next? How about the Kinect? &lt;a title="http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/" href="http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/"&gt;http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:2f64101f-14d7-4888-a45d-47734907443f" class="wlWriterEditableSmartContent"&gt;&lt;table border="0" cellspacing="0" cellpadding="0" style="outline:none;border-style:none;margin:0px;padding:0px;width:400px;border-collapse:collapse;"&gt;                     &lt;tr&gt;                        &lt;td colspan="2" style="outline:none;border-style:none;margin:0px;padding:5px 0px 5px 5px;width:157px;vertical-align:bottom;"&gt;                            &lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!912&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" target="_blank" border="0" style="outline:none;border-style:none;margin:0px;padding:0px;"&gt;                                &lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" alt="View album" title="View album" width="157" height="157" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/210393044517AF5477.png" /&gt;&lt;/a&gt;                        &lt;/td&gt;                        &lt;td colspan="3" style="vertical-align:middle;margin:0px;padding:5px 5px 5px 0px;outline:none;border-style:none;width:223px"&gt;                            &lt;div style="margin-left:10px;top:-3%;"&gt;                                &lt;div style="width:223px;overflow:visible;"&gt;&lt;a style="text-decoration:none;" href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=browse&amp;amp;resid=80CE78240AA8DF49!911&amp;amp;type=5&amp;amp;authkey=yGjrXUW7518%24&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos" target="_blank"&gt;&lt;span style="line-height:1.26em;padding:0px;width:223px;font-size:26pt;font-family:'Segoe UI', helvetica, arial, sans-serif;" defaulttext="Enter album name here"&gt;.NET Micro&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;                                &lt;div style="padding:10px 0px 0px 0px;margin:0px;"&gt;                                   &lt;table border="0" cellspacing="0" cellpadding="0" style="margin:0px;padding:0px;outline:none;border-style:none;border-collapse:collapse;width:auto;"&gt;                                        &lt;tr&gt;                                            &lt;td style="vertical-align:top;outline:none;border-style:none;margin:0px;padding:10px 15px 6px 0px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!911&amp;amp;type=5&amp;amp;authkey=yGjrXUW7518%24&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;VIEW SLIDE SHOW&lt;/a&gt;&lt;/td&gt;                                            &lt;td style="vertical-align:top;outline:none;border-style:none;margin:0px;padding:10px 0px 6px 0px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=downloadphotos&amp;amp;resid=80CE78240AA8DF49!911&amp;amp;type=5&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;DOWNLOAD ALL&lt;/a&gt;&lt;/td&gt;                                        &lt;/tr&gt;                                                                           &lt;/table&gt;                                                                                                     &lt;/div&gt;                                                            &lt;/div&gt;                        &lt;/td&gt;                     &lt;/tr&gt;                    &lt;tr&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 5px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!913&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/196276794410FC4AF4.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!914&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/9007250797C0AC880.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!915&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/-204987435029F81B39.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!916&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/118305008129F81B39.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!917&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/104188758057E56DF1.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 5px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!918&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/30602242F3EB7E.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!919&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/183019065970E13E36.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=80ce78240aa8df49&amp;amp;page=play&amp;amp;resid=80CE78240AA8DF49!920&amp;amp;parid=80CE78240AA8DF49!911&amp;amp;type=1&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=yGjrXUW7518%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" border="0" width="76" alt="View album" title="View album" height="76" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/8ee3403d325a.NET-Micro-comes-to-Dallas_CF08/-11204087705BEFBBC3.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt; &lt;/td&gt;&lt;td style="vertical-align:bottom;outline:none;border-style:none;padding:0px 5px 5px 0px;margin:0px;width:76px;height:76px;"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/847.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=Qyu-BMNY7Cs:Se8w6CoWN08:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=Qyu-BMNY7Cs:Se8w6CoWN08:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=Qyu-BMNY7Cs:Se8w6CoWN08:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=Qyu-BMNY7Cs:Se8w6CoWN08:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=Qyu-BMNY7Cs:Se8w6CoWN08:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=Qyu-BMNY7Cs:Se8w6CoWN08:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=Qyu-BMNY7Cs:Se8w6CoWN08:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=Qyu-BMNY7Cs:Se8w6CoWN08:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=Qyu-BMNY7Cs:Se8w6CoWN08:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=Qyu-BMNY7Cs:Se8w6CoWN08:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/Qyu-BMNY7Cs" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/23/.net-micro-comes-to-dallas.aspx</guid>
            <pubDate>Sat, 23 Jul 2011 20:12:38 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/847.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/23/.net-micro-comes-to-dallas.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/847.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/847.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/23/.net-micro-comes-to-dallas.aspx</feedburner:origLink></item>
        <item>
            <title>LINQ Between</title>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/S2Xx4X48rI4/linq-between.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Last night at the Dallas .NET UG (&lt;a title="http://www.ddnug.net/" href="http://www.ddnug.net/"&gt;http://www.ddnug.net/&lt;/a&gt;) Corey Smith (&lt;a title="http://addressof.com" href="http://addressof.com"&gt;http://addressof.com&lt;/a&gt;) demoed a between extension method in VB.NET. I threw together this version for C# for your enjoyment &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/LINQ-Between_7D62/wlEmoticon-smile_2.png" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/LINQ-Between_7D62/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/LINQ-Between_7D62/image_thumb.png" width="933" height="449" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;All it is doing is wrapping the built in Where LINQ method . . .&lt;/p&gt;  &lt;p&gt;As you can see that it will work on any type that implements IComparable (&lt;a title="http://msdn.microsoft.com/en-us/library/system.icomparable.aspx" href="http://msdn.microsoft.com/en-us/library/system.icomparable.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.icomparable.aspx&lt;/a&gt;). IComparable is used in .NET for ordering and sorting, just what we need!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here is how you would call him:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/LINQ-Between_7D62/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/LINQ-Between_7D62/image_thumb_1.png" width="793" height="76" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see there is an optional parameter at the end, so you can select if you want an inclusive or exclusive between (i.e. inclusive says we should return 10 &amp;amp; 20 in the results and exclusive says we should not). I defaulted it to true since that is the behavior of SQL Server (&lt;a title="http://msdn.microsoft.com/en-us/library/ms187922.aspx" href="http://msdn.microsoft.com/en-us/library/ms187922.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms187922.aspx&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Happy coding!&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/846.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=S2Xx4X48rI4:k8PFTeOYO60:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=S2Xx4X48rI4:k8PFTeOYO60:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=S2Xx4X48rI4:k8PFTeOYO60:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=S2Xx4X48rI4:k8PFTeOYO60:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=S2Xx4X48rI4:k8PFTeOYO60:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=S2Xx4X48rI4:k8PFTeOYO60:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=S2Xx4X48rI4:k8PFTeOYO60:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=S2Xx4X48rI4:k8PFTeOYO60:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=S2Xx4X48rI4:k8PFTeOYO60:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=S2Xx4X48rI4:k8PFTeOYO60:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/S2Xx4X48rI4" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/22/linq-between.aspx</guid>
            <pubDate>Fri, 22 Jul 2011 14:25:21 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/846.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/22/linq-between.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/846.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/846.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/22/linq-between.aspx</feedburner:origLink></item>
        <item>
            <title>Entity Framework Code First: Executing SQL files on database creation</title>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/pivptdsS3bY/entity-framework-code-first-executing-sql-files-on-database-creation.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Many times you want to seed data into your DB but don’t want to put all that seed data into your code files, or perhaps you want to add stored procedures, triggers or make other database changes after code first creates your database. While I would argue that the latter impacts one of the “goals” of EF Code First (i.e. centralizing your business logic in one spot), I can see where it might have value. So lets see how we can achieve this mission. &lt;/p&gt;  &lt;p&gt;Lets start by creating our data objects. I am going to create a simple object “Tweet”:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_thumb.png" width="317" height="107" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Great now Lets wire it up to our DbContext:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_thumb_1.png" width="512" height="169" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;You will see that my “SetInitializer” creates a special ContextInitializer. I borrowed this idea from Julie Lerman’s blog post on seeding data (&lt;a title="http://thedatafarm.com/blog/data-access/seeding-a-database-with-ef4-code-first/" href="http://thedatafarm.com/blog/data-access/seeding-a-database-with-ef4-code-first/"&gt;http://thedatafarm.com/blog/data-access/seeding-a-database-with-ef4-code-first/&lt;/a&gt;). Lets take a look at the code in that guy:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_thumb_2.png" width="1000" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;As you can see we inherit from the “CreateDatabaseIfNotExists&amp;lt;T&amp;gt;” object. This means that EF Code First will only touch database schema if the database is totally dropped. Preventing any unintended accidental database modifications. In the seed method you see that I query the file system for all files that end in .sql, sort them alphabetically (so we can control the order that they are applied to our new database). Then one by one execute them against the context. Great now I can write seed files, stored procedures, triggers or whatever else I want in standard .sql files, and Code First will take care of applying them when it creates the database. &lt;/p&gt;  &lt;p&gt;Here is an example of some .sql files for our little Twitter clone:&lt;/p&gt;  &lt;p&gt; &lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Entity-Framework-Code-First-Executing-SQ_7029/image_thumb_3.png" width="581" height="578" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nothing all that interesting, except for the naming convention. By placing the numbers in front I can control the order that they get executed against the database. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;One last note, I think using EF Code First to “generate” your database for dev/test/qa environments is a great idea. This allows all development and testing to work against a “known”, “common” database state that is easily re-creatable. I am not quite sold on using it to generate the db in production. IMHO when it comes time to migrate to production you can use one of the many database schema diff tools (VS Data Dude, Red Gate, etc.) and prepare delta scripts to “Alter” the production DB to match the test/qa server, and tightly control what gets moved to production and when. &lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/845.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=pivptdsS3bY:jnxkKSxm6lg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=pivptdsS3bY:jnxkKSxm6lg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=pivptdsS3bY:jnxkKSxm6lg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=pivptdsS3bY:jnxkKSxm6lg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=pivptdsS3bY:jnxkKSxm6lg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=pivptdsS3bY:jnxkKSxm6lg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=pivptdsS3bY:jnxkKSxm6lg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=pivptdsS3bY:jnxkKSxm6lg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=pivptdsS3bY:jnxkKSxm6lg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=pivptdsS3bY:jnxkKSxm6lg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/pivptdsS3bY" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/15/entity-framework-code-first-executing-sql-files-on-database-creation.aspx</guid>
            <pubDate>Fri, 15 Jul 2011 13:33:18 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/845.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/15/entity-framework-code-first-executing-sql-files-on-database-creation.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/845.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/845.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/15/entity-framework-code-first-executing-sql-files-on-database-creation.aspx</feedburner:origLink></item>
        <item>
            <title>Partial Classes VB vs C#</title>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/_3tTa5p5ou8/partial-classes-vb-vs-c.aspx</link>
            <description>&lt;p&gt;Stumbled across this during a discussion of RIA services today. . . . &lt;/p&gt;  &lt;p&gt;Apparently in VB you can have the “partial” modifier on only 1/2 of a partial class. However in C# you are required to put the partial modifier on both halves of the class. I will let you guys argue about what way is better. . . . I think that both have merits. . . &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Partial-Classes-VB-vs-C_C9EF/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/Partial-Classes-VB-vs-C_C9EF/image_thumb.png" width="849" height="390" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/844.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=_3tTa5p5ou8:_w9u0vntTX4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=_3tTa5p5ou8:_w9u0vntTX4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=_3tTa5p5ou8:_w9u0vntTX4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=_3tTa5p5ou8:_w9u0vntTX4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=_3tTa5p5ou8:_w9u0vntTX4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=_3tTa5p5ou8:_w9u0vntTX4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=_3tTa5p5ou8:_w9u0vntTX4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=_3tTa5p5ou8:_w9u0vntTX4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=_3tTa5p5ou8:_w9u0vntTX4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=_3tTa5p5ou8:_w9u0vntTX4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/_3tTa5p5ou8" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/04/partial-classes-vb-vs-c.aspx</guid>
            <pubDate>Mon, 04 Jul 2011 19:41:49 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/844.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/04/partial-classes-vb-vs-c.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/844.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/844.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/07/04/partial-classes-vb-vs-c.aspx</feedburner:origLink></item>
        <item>
            <title>HTTP POST to RESTful WCF Service from a .NET Client</title>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/UEMyLVps7xo/http-post-to-restful-wcf-service-from-a-.net-client.aspx</link>
            <description>&lt;meta content="en-us" http-equiv="Content-Language" /&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type" /&gt;  &lt;p&gt;Playing with the WCF REST Template today (http://visualstudiogallery.msdn.microsoft.com/fbc7e5c1-a0d2-41bd-9d7b-e54c845394cd). Good Stuff.   &lt;br /&gt;    &lt;br /&gt;When you create a new project with the template it gives you a service called “Service1” we are going to use this guy with 1 minor change. In the “Create” method set it to echo back the object that was passed to it.     &lt;br /&gt;    &lt;br /&gt;[&lt;span style="color: #2b91af"&gt;WebInvoke&lt;/span&gt;(UriTemplate = &lt;span style="color: #a31515"&gt;""&lt;/span&gt;, Method = &lt;span style="color: #a31515"&gt;"POST"&lt;/span&gt;)]    &lt;br /&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SampleItem&lt;/span&gt; Create(&lt;span style="color: #2b91af"&gt;SampleItem&lt;/span&gt; instance)    &lt;br /&gt;{    &lt;br /&gt;    &lt;span style="color: blue"&gt;return&lt;/span&gt; instance;    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;Ok now lets get to the meat of it and write the client&lt;/p&gt;  &lt;pre style="font-family: consolas; background: white; color: black"&gt;&lt;span style="color: #2b91af"&gt;WebClient&lt;/span&gt; client = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WebClient&lt;/span&gt;();
&lt;span style="color: blue"&gt;string&lt;/span&gt; uri = &lt;span style="color: #a31515"&gt;"http://localhost.:9309/Service1/"&lt;/span&gt;;
&lt;span style="color: blue"&gt;string&lt;/span&gt; data = &lt;span style="color: #a31515"&gt;"&amp;lt;SampleItem xmlns=\"http://schemas.datacontract.org/2004/07/WcfRestService2\"&amp;gt;&amp;lt;Id&amp;gt;2147483647&amp;lt;/Id&amp;gt;&amp;lt;StringValue&amp;gt;String content&amp;lt;/StringValue&amp;gt;&amp;lt;/SampleItem&amp;gt;"&lt;/span&gt;;
client.Headers.Add(&lt;span style="color: #a31515"&gt;"Content-Type"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"application/xml"&lt;/span&gt;);
&lt;span style="color: blue"&gt;var&lt;/span&gt; response = client.UploadString(uri, &lt;span style="color: #a31515"&gt;"POST"&lt;/span&gt;, data);
&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(response);
&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadKey();&lt;/pre&gt;

&lt;p&gt;I got the contents of the data string by looking at the “help” provide by the service. You can see this if you append “help” to your services URL. In my case that was http://localhost.:9309/Service1/help”. Don’t forget to add the appropriate content type. Finally upload the string and capture the response. . . that is it!
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BONUS:&lt;/strong&gt; if you want to create the XML request without the “uber-string” try this on for size. . . .&lt;/p&gt;

&lt;pre style="font-family: consolas; background: white; color: black"&gt;&lt;span style="color: green"&gt;//create the xml request document&lt;/span&gt;
&lt;span style="color: #2b91af"&gt;XNamespace&lt;/span&gt; ns = &lt;span style="color: #a31515"&gt;"http://schemas.datacontract.org/2004/07/WcfRestService2"&lt;/span&gt;;
&lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt; doc = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;XDocument&lt;/span&gt;(     &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt;(ns + &lt;span style="color: #a31515"&gt;"SampleItem"&lt;/span&gt;,         &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt;(ns + &lt;span style="color: #a31515"&gt;"Id"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"2147483647"&lt;/span&gt;),         &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;XElement&lt;/span&gt;(ns + &lt;span style="color: #a31515"&gt;"StringValue"&lt;/span&gt;, &lt;span style="color: #a31515"&gt;"String content"&lt;/span&gt;)     ));&lt;/pre&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/843.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=UEMyLVps7xo:oGX4iyUqGqM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=UEMyLVps7xo:oGX4iyUqGqM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=UEMyLVps7xo:oGX4iyUqGqM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=UEMyLVps7xo:oGX4iyUqGqM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=UEMyLVps7xo:oGX4iyUqGqM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=UEMyLVps7xo:oGX4iyUqGqM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=UEMyLVps7xo:oGX4iyUqGqM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=UEMyLVps7xo:oGX4iyUqGqM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=UEMyLVps7xo:oGX4iyUqGqM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=UEMyLVps7xo:oGX4iyUqGqM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/UEMyLVps7xo" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/29/http-post-to-restful-wcf-service-from-a-.net-client.aspx</guid>
            <pubDate>Wed, 29 Jun 2011 22:31:24 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/843.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/29/http-post-to-restful-wcf-service-from-a-.net-client.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/843.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/843.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/29/http-post-to-restful-wcf-service-from-a-.net-client.aspx</feedburner:origLink></item>
        <item>
            <title>Convert PNG to XAML in 3 easy steps</title>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/5EpihWDZW8s/convert-png-to-xaml-in-3-easy-steps.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Yes, even you can do them Robert. . . . . &lt;/p&gt;  &lt;p&gt;Step 1: use this (&lt;a title="http://vectormagic.com" href="http://vectormagic.com"&gt;http://vectormagic.com&lt;/a&gt;) website to convert your PNG to a PDF &lt;/p&gt;  &lt;p&gt;Step 2: rename the .PDF to .AI&lt;/p&gt;  &lt;p&gt;Step 3: open in Expression Design and export as XAML&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/842.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=5EpihWDZW8s:zuZ-MMev7fU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=5EpihWDZW8s:zuZ-MMev7fU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=5EpihWDZW8s:zuZ-MMev7fU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=5EpihWDZW8s:zuZ-MMev7fU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=5EpihWDZW8s:zuZ-MMev7fU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=5EpihWDZW8s:zuZ-MMev7fU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=5EpihWDZW8s:zuZ-MMev7fU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=5EpihWDZW8s:zuZ-MMev7fU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=5EpihWDZW8s:zuZ-MMev7fU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=5EpihWDZW8s:zuZ-MMev7fU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/5EpihWDZW8s" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/24/convert-png-to-xaml-in-3-easy-steps.aspx</guid>
            <pubDate>Fri, 24 Jun 2011 21:48:20 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/842.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/24/convert-png-to-xaml-in-3-easy-steps.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/842.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/842.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/24/convert-png-to-xaml-in-3-easy-steps.aspx</feedburner:origLink></item>
        <item>
            <title>Upgrade your Orchard Site in less time it takes to eat breakfast</title>
            <category>Orchard CMS</category>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/nQ8xuFCbxRA/upgrade-your-orchard-site-in-less-time-it-takes-to.aspx</link>
            <description>&lt;p&gt;As you might know I have been working on the UserGroup.tv website, and I am using the new free Open Source Content Management System from Microsoft, Orchard (&lt;a href="http://www.orchardproject.net"&gt;http://www.orchardproject.net&lt;/a&gt;). Noticed the other day that they have released version 1.2 and I was running 1.1, I thought to myself, self I should upgrade. &lt;/p&gt;
&lt;p&gt;1) First things first, time to back up my local environment. I keep a copy of the site running on my laptop. I use WebMatrix with IIS Express and a copy of SQL Server running locally to develop. So before doing anything I made a backup of my local database, and the folder with my project in it. &lt;/p&gt;
&lt;p&gt;2) Next it was time to backup the production site, my hosting company has a button to create a backup of the production db so I used it. Then copied that backup down locally. Then just to make sure that my production environment and my dev environment were in sync, I downloaded the production site overlaying my local copy. Restored the production database locally, and updated the connection string in my local copy of Orchard to point at the new database (look in the App_Data/Sites/Default/Settings.txt folder).&lt;/p&gt;
&lt;p&gt;3) Ok, now that I am sure I got a copy of my production site running locally without any issues it is time to pull the trigger. I downloaded the latest copy of Orchard, unblocked the zip file, unzipped it into my local folder that contained the copy of my production code. &lt;/p&gt;
&lt;p&gt;4) Now time to test, open WebMatrix fire up IIS Express and ensure that everything is working fine. &lt;/p&gt;
&lt;p&gt;5) For me everything worked out of the box, no issues, time to go to production!&lt;/p&gt;
&lt;p&gt;6) Now I just need to FTP up the files (without the App_Data folder) to my production site, and test everything one more time. &lt;/p&gt;
&lt;p&gt;Total time to complete the upgrade, eat breakfast, and write this article 30 min. #winner&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/841.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=nQ8xuFCbxRA:SWidlb14Ow0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=nQ8xuFCbxRA:SWidlb14Ow0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=nQ8xuFCbxRA:SWidlb14Ow0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=nQ8xuFCbxRA:SWidlb14Ow0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=nQ8xuFCbxRA:SWidlb14Ow0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=nQ8xuFCbxRA:SWidlb14Ow0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=nQ8xuFCbxRA:SWidlb14Ow0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=nQ8xuFCbxRA:SWidlb14Ow0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=nQ8xuFCbxRA:SWidlb14Ow0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=nQ8xuFCbxRA:SWidlb14Ow0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/nQ8xuFCbxRA" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/17/upgrade-your-orchard-site-in-less-time-it-takes-to.aspx</guid>
            <pubDate>Fri, 17 Jun 2011 12:52:43 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/841.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/17/upgrade-your-orchard-site-in-less-time-it-takes-to.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/841.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/841.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/17/upgrade-your-orchard-site-in-less-time-it-takes-to.aspx</feedburner:origLink></item>
        <item>
            <title>LINQ Regular Join vs. Outer Join</title>
            <category>LINQ</category>
            <link>http://feedproxy.google.com/~r/ShawnWeisfeld/~3/VVS_rb0nCik/linq-regular-join-vs.-outer-join.aspx</link>
            <description>&lt;p&gt;Was asked to put together a quick and dirty sample of doing a join in LINQ. . . . &lt;/p&gt;
&lt;p&gt;Here are some setup classes that I am going to use:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MyDto&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; CustomerId { get; set; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; CustomerName { get; set; }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ItemId { get; set; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ItemName { get; set; }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt; Amount { get; set; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SalesPrice&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; CustomerId { get; set; }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ItemId { get; set; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt; Amount { get; set; }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Customer&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; CustomerId { get; set; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; CustomerName { get; set; }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;}&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Item&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ItemId { get; set; }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; ItemName { get; set; }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;First I am going to fill the objects with some dummy data:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;List&amp;lt;SalesPrice&amp;gt; prices = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;SalesPrice&amp;gt;()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; SalesPrice() {CustomerId = 1, ItemId = &lt;span class="str"&gt;"A"&lt;/span&gt;, Amount = 5},&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; SalesPrice() {CustomerId = 2, ItemId = &lt;span class="str"&gt;"B"&lt;/span&gt;, Amount = 10},&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; SalesPrice() {CustomerId = 3, ItemId = &lt;span class="str"&gt;"C"&lt;/span&gt;, Amount = 15},&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; SalesPrice() {CustomerId = 4, ItemId = &lt;span class="str"&gt;"D"&lt;/span&gt;, Amount = 20},&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;};&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;List&amp;lt;Customer&amp;gt; customers = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Customer&amp;gt;()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Customer() {CustomerId = 1, CustomerName = &lt;span class="str"&gt;"Sam"&lt;/span&gt;},&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Customer() {CustomerId = 2, CustomerName = &lt;span class="str"&gt;"Sally"&lt;/span&gt;},&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Customer() {CustomerId = 3, CustomerName = &lt;span class="str"&gt;"Joe"&lt;/span&gt;},&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Customer() {CustomerId = 5, CustomerName = &lt;span class="str"&gt;"Bill"&lt;/span&gt;}&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;};&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;List&amp;lt;Item&amp;gt; items = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Item&amp;gt;()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Item() {ItemId = &lt;span class="str"&gt;"A"&lt;/span&gt;, ItemName = &lt;span class="str"&gt;"Fork"&lt;/span&gt;},&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Item() {ItemId = &lt;span class="str"&gt;"B"&lt;/span&gt;, ItemName = &lt;span class="str"&gt;"Knife"&lt;/span&gt;},&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Item() {ItemId = &lt;span class="str"&gt;"C"&lt;/span&gt;, ItemName = &lt;span class="str"&gt;"Teddy"&lt;/span&gt;},&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    &lt;span class="kwrd"&gt;new&lt;/span&gt; Item() {ItemId = &lt;span class="str"&gt;"F"&lt;/span&gt;, ItemName = &lt;span class="str"&gt;"Ball"&lt;/span&gt;}&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;};&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Now lets do a regular join:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;var results1 = from p &lt;span class="kwrd"&gt;in&lt;/span&gt; prices&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                join c &lt;span class="kwrd"&gt;in&lt;/span&gt; customers&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;                    on p.CustomerId equals c.CustomerId&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;                join i &lt;span class="kwrd"&gt;in&lt;/span&gt; items&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                    on p.ItemId equals i.ItemId&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                select &lt;span class="kwrd"&gt;new&lt;/span&gt; MyDto()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                    CustomerId = p.CustomerId,&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                    ItemId = p.ItemId,&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                    Amount = p.Amount,&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                    CustomerName = c.CustomerName,&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                    ItemName = i.ItemName&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                };&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Note that we are missing one of our SalesPrices, depending on your business rules this might be bad, very bad. . . . . how about an outer join&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}

.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;var results = from p &lt;span class="kwrd"&gt;in&lt;/span&gt; prices&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                join c &lt;span class="kwrd"&gt;in&lt;/span&gt; customers&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;                    on p.CustomerId equals c.CustomerId into priceCustomer&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;                from pc &lt;span class="kwrd"&gt;in&lt;/span&gt; priceCustomer.DefaultIfEmpty()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;                join i &lt;span class="kwrd"&gt;in&lt;/span&gt; items&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                    on p.ItemId equals i.ItemId into priceItems&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                from pi &lt;span class="kwrd"&gt;in&lt;/span&gt; priceItems.DefaultIfEmpty()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                select &lt;span class="kwrd"&gt;new&lt;/span&gt; MyDto()&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                            {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                                CustomerId = p.CustomerId,&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                                ItemId = p.ItemId,&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                                Amount = p.Amount,&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                                CustomerName = pc == &lt;span class="kwrd"&gt;null&lt;/span&gt; ? &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty : pc.CustomerName,&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                                ItemName = pi == &lt;span class="kwrd"&gt;null&lt;/span&gt; ? &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty : pi.ItemName&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                            };&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Great now we got everything! Hope this helps you, perhaps more important it is going to help me when I forget next week. &lt;img class="wlEmoticon wlEmoticon-smile" style="" alt="Smile" src="http://www.drowningintechnicaldebt.com/images/www_drowningintechnicaldebt_com/ShawnWeisfeld/Windows-Live-Writer/LINQ-Regular-Join-vs.-Outer-Join_9B7D/wlEmoticon-smile_2.png" /&gt;&lt;/p&gt;&lt;img src="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/aggbug/840.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=VVS_rb0nCik:j7pVgu0xVxg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=VVS_rb0nCik:j7pVgu0xVxg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=VVS_rb0nCik:j7pVgu0xVxg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=VVS_rb0nCik:j7pVgu0xVxg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=VVS_rb0nCik:j7pVgu0xVxg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=VVS_rb0nCik:j7pVgu0xVxg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?i=VVS_rb0nCik:j7pVgu0xVxg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=VVS_rb0nCik:j7pVgu0xVxg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=VVS_rb0nCik:j7pVgu0xVxg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ShawnWeisfeld?a=VVS_rb0nCik:j7pVgu0xVxg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ShawnWeisfeld?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ShawnWeisfeld/~4/VVS_rb0nCik" height="1" width="1"/&gt;</description>
            <dc:creator>Shawn Weisfeld</dc:creator>
            <guid isPermaLink="false">http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/14/linq-regular-join-vs.-outer-join.aspx</guid>
            <pubDate>Tue, 14 Jun 2011 16:31:03 GMT</pubDate>
            <wfw:comment>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/840.aspx</wfw:comment>
            <comments>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/14/linq-regular-join-vs.-outer-join.aspx#feedback</comments>
            <wfw:commentRss>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/comments/commentRss/840.aspx</wfw:commentRss>
            <trackback:ping>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/services/trackbacks/840.aspx</trackback:ping>
        <feedburner:origLink>http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2011/06/14/linq-regular-join-vs.-outer-join.aspx</feedburner:origLink></item>
    </channel>
</rss>

