<rss version="2.0" 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/">
    <channel>
        <title>2. Code Practice</title>
        <link>http://geekswithblogs.net/bjones/category/1566.aspx</link>
        <description>Creating better, faster code</description>
        <language>en-US</language>
        <copyright>Bill Jones Jr.</copyright>
        <managingEditor>BJonesJr@carolina.rr.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>LINQ to SQL Geek Speak URL</title>
            <link>http://geekswithblogs.net/bjones/archive/2007/12/06/117454.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 36pt; COLOR: #365f91; LINE-HEIGHT: 115%"&gt;&lt;font size="6"&gt;LINQ to SQL Geek Speak URL&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;table style="WIDTH: 435pt; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" width="580" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr style="HEIGHT: 12.75pt"&gt;
            &lt;td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 329.8pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent" valign="top" width="440"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;LIVE MEETING REPLAY URL:&lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0in; BORDER-TOP: #ece9d8; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" width="140"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="HEIGHT: 11.25pt"&gt;
            &lt;td style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 435pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; HEIGHT: 11.25pt; BACKGROUND-COLOR: transparent" valign="top" width="580" colspan="2"&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; LINE-HEIGHT: 115%"&gt;&lt;a target="_blank" href="https://www.livemeeting.com/cc/mseventsbmo/view?id=1032359603&amp;amp;role=attend&amp;amp;pw=C2BC5EF6"&gt;&lt;font color="#800080" size="1"&gt;https://www.livemeeting.com/cc/mseventsbmo/view?id=1032359603&amp;amp;role=attend&amp;amp;pw=C2BC5EF6&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;font size="3"&gt;The login asks for a name so just type in your name and click the “View Recording” button. Then you can view or download the web cast. Enjoy!&lt;/font&gt;&lt;/div&gt;
            &lt;div style="MARGIN: 0in 0in 10pt"&gt;&lt;span style="FONT-SIZE: 16pt; COLOR: #365f91; LINE-HEIGHT: 115%"&gt;&lt;font face="Comic Sans MS" size="4"&gt;Bill J&lt;/font&gt;&lt;/span&gt;&lt;/div&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=117454"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117454" 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/bjones/aggbug/117454.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2007/12/06/117454.aspx</guid>
            <pubDate>Fri, 07 Dec 2007 03:35:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/117454.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2007/12/06/117454.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/117454.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/117454.aspx</trackback:ping>
        </item>
        <item>
            <title>Geek Speak on LINQ to SQL December 5th</title>
            <link>http://geekswithblogs.net/bjones/archive/2007/12/05/117413.aspx</link>
            <description>&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri"&gt;&lt;font face="Arial" color="#0000ff" size="5"&gt;Geek Speak on LINQ to SQL December 5th&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri" size="3"&gt;Despite some technical difficulties on my end, Lynn Langit and Mike Benkovich, from the MSDN team co-hosted my appearance on an excellent web cast today.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We gave a good introduction into the basics of LINQ&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;to SQL.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This feature of Visual Studio 2008 and the new .NET Framework 3.5 provides and elegant way for us to retrieve data and hydrate usable objects from the database.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Here are some links you can look at now.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Look for another post in a day or so for where you can go to download the web cast and the VB.Net code samples you don’t get to see.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;font face="Calibri" size="3"&gt;Scott Guthrie: LINQ to SQL (Part 9 - Using a Custom LINQ Expression with the &amp;lt;asp:LinqDatasource&amp;gt; control) [Contains index to parts 1 thru 8]&lt;br /&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx"&gt;&lt;font face="Calibri" size="3"&gt;http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;font face="Calibri" size="3"&gt;BASIC INSTINCTS - Lambda Expressions&lt;br /&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/09/BasicInstincts/"&gt;&lt;font face="Calibri" size="3"&gt;http://msdn.microsoft.com/msdnmag/issues/07/09/BasicInstincts/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;font face="Calibri" size="3"&gt;LINQ Videos on ASP.NET&lt;br /&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://www.asp.net/learn/linq-videos/"&gt;&lt;font face="Calibri" size="3"&gt;http://www.asp.net/learn/linq-videos/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;font face="Calibri" size="3"&gt;Parallel LINQ&lt;br /&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/10/PLINQ/#contents"&gt;&lt;font face="Calibri" size="3"&gt;http://msdn.microsoft.com/msdnmag/issues/07/10/PLINQ/#contents&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;font face="Calibri" size="3"&gt;VS 2008 Samples Page&lt;br /&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/vbasic/bb330936.aspx"&gt;&lt;font face="Calibri" size="3"&gt;http://msdn2.microsoft.com/en-us/vbasic/bb330936.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;font face="Calibri" size="3"&gt;VS 2008 Training Kit on Download Page&lt;br /&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;a href="http://www.microsoft.com/downloads/Browse.aspx?displaylang=en&amp;amp;productID=6527A674-9D67-40B8-A94C-D7AD0304CA0D"&gt;&lt;font face="Calibri" size="3"&gt;http://www.microsoft.com/downloads/Browse.aspx?displaylang=en&amp;amp;productID=6527A674-9D67-40B8-A94C-D7AD0304CA0D&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 10pt"&gt;&lt;font face="Calibri" size="3"&gt;We’re pointing to Scott’s most recent article in an outstanding series because it also has the table of links to the preceding eight parts.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The training kit mentioned above is an outstanding resource and a “must download” for everybody moving into Visual Studio 2008.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi"&gt;&lt;font size="3"&gt;Merry Christmas and stay tuned for a link to the Geek Speak web cast “real soon now”.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117413"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117413" 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/bjones/aggbug/117413.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2007/12/05/117413.aspx</guid>
            <pubDate>Thu, 06 Dec 2007 03:58:28 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/117413.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2007/12/05/117413.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/117413.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/117413.aspx</trackback:ping>
        </item>
        <item>
            <title>Orcas web cast slides...</title>
            <link>http://geekswithblogs.net/bjones/archive/2007/05/21/112641.aspx</link>
            <description>&lt;h1 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;font size="5"&gt;Orcas web cast slides…&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="3"&gt;Here are the slides for today’s (May 21, 2007) web cast on Orcas: &lt;/font&gt;&lt;a href="http://www.aggelos.com/billj/Orcas_Webcast.zip"&gt;&lt;font color="#800080" size="3"&gt;http://www.aggelos.com/billj/Orcas_Webcast.zip&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="3"&gt;As soon as the web cast itself is available, I’ll post that link here also.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="3"&gt;The web cast introduces the major new language elements and Visual Studio enhancements we can expect from Orcas.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The heavy emphasis on LINQ is no accident.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;LINQ will change the way we program.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;Scott Guthrie&lt;/strong&gt; (http://weblogs.asp.net/scottgu/default.aspx) did an excellent presentation on the topic at Tech Ed 2006 and made the slides available.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Naturally I incorporated a lot of his outstanding slides in the LINQ portion of this presentation.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Thank you Scott!&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112641"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112641" 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/bjones/aggbug/112641.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2007/05/21/112641.aspx</guid>
            <pubDate>Mon, 21 May 2007 17:55:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/112641.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2007/05/21/112641.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/112641.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/112641.aspx</trackback:ping>
        </item>
        <item>
            <title>I like Visual Basic.NET because...</title>
            <link>http://geekswithblogs.net/bjones/archive/2007/03/04/107915.aspx</link>
            <description>&lt;h1 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;font face="Arial"&gt;&lt;font size="7"&gt;I like Visual Basic.NET because…&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;A professional picks a tool for logical reasons.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;As a professional business programmer, I pick VB.NET.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Before I expound further on my choice, you should know whether or not I am qualified to have an opinion.&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;Certified in C# and Visual Basic.NET, I was lucky enough to be chosen as Microsoft MVP in Visual Basic.NET in 2006.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I founded and head up a 1500+ member .NET User Group in Charlotte, the Enterprise Developers &lt;/font&gt;&lt;a title="Enterprise Developers Guild" target="_blank" href="http://www.DevelopersGuild.org"&gt;&lt;font size="3"&gt;Guild&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; (&lt;/font&gt;&lt;/font&gt;&lt;a href="http://www.developersguild.org/"&gt;&lt;font face="Arial" color="#800080" size="3"&gt;www.DevelopersGuild.org&lt;/font&gt;&lt;/a&gt;&lt;font face="Arial" size="3"&gt;).&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We routinely have eighty to a hundred attendees at our monthly meetings.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;Frame of Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;What is my frame of reference? &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;Raised as a Navy Air brat, I naturally spent several years as a Naval Flight Officer.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Early in a brief service career, I got a classified briefing on the computer systems the made the A-6 Intruder such a potent weapons system.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;My immediate thought was if that’s what DOD can do with a special purpose computer, what is being done with IBM Big Iron in the civilian world?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;EDS recruited me after I left the service and I got a chance to find out.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The SED (Systems Engineering Development) program provided excellent training in computer fundamentals by teaching me how hardware, operating systems and compilers work.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;Several decades of software development required that I master many software development environments – “Mastered” as in have been well paid to learn and use extensively.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Here is a brief list with some parenthetical observations:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 6pt 0in 0pt 0.5in"&gt;&lt;font face="Arial" size="3"&gt;Mainframe Basic Assembler (fundamental), mainframe and PC COBOL (productive, very small executables), numerous Basic dialects (minis then PCs), Pascal (sweet!), Turbo Pascal (fast!), Object Pascal (fast and sweet!), dBase, Clipper, FoxPro for Windows (outstanding!), Visual Basic 1 (evaluated), 2 (evaluated), 3 (finally adopted), 4 and 5 (paid well), MS Access VBA (productive), Delphi (awesome OO!), VB 6 (very classy), light C++ (awkward), Java (excellent teaching tool for OO introduction), VB.Net and the Framework (hard to beat!), C# (still awkward).&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;&lt;span style="LETTER-SPACING: -0.3pt"&gt;That’s the short list.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I also became proficient in numerous scripting, utility and reporting environments&lt;/span&gt; and several command languages for various operating systems.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Let’s not forget the specialized data entry devices in the late seventies.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;Much of my experience is with what I call small unit tactics.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;My teams usually consist of five to &lt;span style="LETTER-SPACING: -0.2pt"&gt;ten developers.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Most of my applications serve hundreds of users with usually less than a hundred&lt;/span&gt; simultaneous connections.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;As I said, I am a business applications programmer.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;A lot of my experience is in the financial sector, but also includes law enforcement, health care, accounting and some manufacturing.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Many of my engagements involved large volume database processing and reporting before we called it Business Intelligence.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;Lessons Learned&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;It is safe to say that I am a software development expert – a seasoned veteran.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;My career teaches three huge lessons: &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 6pt 0in 0pt 0.5in"&gt;&lt;font face="Arial" size="3"&gt;1) Bottom line (productivity) beats technology hands down&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;font face="Arial" size="3"&gt;2) The only constant is change&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;font face="Arial" size="3"&gt;3) Whatever you code, somebody has to change.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;For the last year I have been working in C# because that’s the opportunities presented in my local market.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;To paraphrase Dan Appleman from his early VB.Net book, if someone wants to pay you to code C# it is your professional duty to take the money.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Frankly I don’t remember if Mr. Appleman made the point, but a contractor often makes more money doing a C# application because it takes longer than doing the same work in VB.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I have &lt;em style="mso-bidi-font-style: normal"&gt;not&lt;/em&gt; seen any rate differential in favor of C#.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;Legacy&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="3"&gt;&lt;font face="Arial"&gt;C# is one of the legacy languages in my list.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It has roots firmly planted in 8-bit processors when 640K was “all the memory anyone would ever need” and parallel processing was not massive, it wasn’t even a consideration.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;C and all its derivatives are case-sensitive because saving a pass &lt;/font&gt;&lt;span style="FONT-FAMILY: 'Arial (W1)'; LETTER-SPACING: -0.2pt; mso-bidi-font-family: Arial"&gt;through the compiler was important on an 8-bit UNIX box.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;When was that?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Was it the seventies&lt;/span&gt;&lt;font face="Arial"&gt; or the eighties?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Memory management dominated C thinking before C# again because it enabled a simple compiler.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Pointers are beyond me.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I learned how to code pointers so I could debug but vowed never to use them.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Talk about a maintenance nightmare… can you say “memory leak”?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;&lt;span style="LETTER-SPACING: -0.2pt"&gt;We got over memory management in the sixties.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Case sensitivity has never been an issue outside&lt;/span&gt; of the C world that I remember.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Squirrelly brackets are unique to C and its legacies.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;So are “||” instead of “OR” and “!” instead of “NOT”.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;There’s a reason for that.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Most of us quit bit shifting after we left Assembler.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;Learning your second language with a significant syntax difference is hard and scary.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Imagine going from Assembler to COBOL before you knew very much!&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;After you have mastered your second language, your third is easier.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Your fourth comes fast and then you’re on your way.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;As Ken Spencer, North Carolina Microsoft MVP/RD is quick to point out: “Learning twenty-five or so languages teaches you what’s important.”&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It also teaches you what to look for.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;&lt;span style="LETTER-SPACING: -0.2pt"&gt;Going from C to C++ is more like a version migration since the syntax is expanded, not changed.&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Java introduces libraries so there is definitely a learning curve, but syntax remains comfortable for C programmers.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;At least it gets us out the memory management madness everybody else left in the early seventies.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;C# introduces a new Framework, but should be a fairly easy step into the Microsoft world for Java programmers.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;Framework&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;&lt;span style="LETTER-SPACING: -0.1pt"&gt;The Framework is really what .NET is all about.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It is a superb addition to our tool set and proves&lt;/span&gt; why Object Oriented development is works.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;“Talk about your code reuse...”&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Developing in .NET is 80% Framework and 20% language.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Even VB professionals must master C# so we can use all the code sample resources available on the Internet.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;C Derivatives Popularity&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;So if I’m “right” about VB, why are the C derivatives so popular?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It’s free.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Beginning in the eighties universities built their computer degree programs around UNIX and C because it was &lt;span style="LETTER-SPACING: -0.2pt"&gt;cheap.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;New graduates wanted to stay with what they knew.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Business types and new programmers&lt;/span&gt; fell for the “transportable” myth.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Basic and COBOL are supposed to portable too, but anybody with any real experience had already found out the “transportability” limits your options and kills productivity.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The Pascal P-Machine came closest to achieving the transportability goal.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;If you know what a P-machine is, you are either a historian or a very seasoned veteran. Yes, I know about Mono.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Have you ever used it?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I haven’t.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I’m more interested in Borland Kylix, the Linux Delphi.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I haven’t used it either.&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;Productivity&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;For developers with a wide range of language ability, the C family is counter-intuitive.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It may be mathematical, but mathematical program proofs are a bigger myth than transportability in the real world.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It is supposed to generate small, fast executables.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;That may have been true pre-Framework, but C# uses what Tennessee Microsoft MVP/RD Billy Hollis calls the VB.Net runtime – the CLR.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;Actually the tightest code I ever generated on a PC was with Realia COBOL.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;“Back in the day” I got a utility program done in half an hour and generated a 48K executable using Realia COBOL.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;span style="LETTER-SPACING: -0.2pt"&gt;That’s right – Kilobytes NOT Megabytes.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;So except for memory management and pointers (ugh!), &lt;/span&gt;COBOL gets at least as close to the metal as C does.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Shocking isn’t it.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;About that same time the smallest Clipper application I could get was 250K plus.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Of course the runtime is baked into the Clipper EXE.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;COBOL compiles down to Assembler.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;Did you notice the claim of half an hour to write a simple utility?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It was primarily a table lookup &lt;span style="LETTER-SPACING: -0.1pt"&gt;and my COBOL was very rusty, but no language does simple tables better than COBOL.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It would &lt;/span&gt;&lt;span style="LETTER-SPACING: -0.2pt"&gt;take me an hour or so to do the same thing in VB.Net today, but it would probably have a Windows interface and at least tool tips for help.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Yes, our tools are more productive, but all of us, including &lt;/span&gt;the check-signers, expect a lot more from an application today.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;Expecting more is what Visual Studio and the Framework is all about.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We &lt;em style="mso-bidi-font-style: normal"&gt;are&lt;/em&gt; doing more, so the high productivity gains we have achieved in the last twenty years have barely let us keep up our productivity levels – maybe.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;&lt;span style="LETTER-SPACING: -0.2pt"&gt;The check-signers don’t care about tools and technology.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;They want low-learning curve Windows &lt;/span&gt;and web applications that solve business problems.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The business side can’t judge what the best tools and techniques are and shouldn’t be bothered with that unless our recommendations are going to impact the budget.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;It is up to software professionals to use the best tools for the job at hand.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;By making it easy for us, Microsoft has had great success in getting us to choose SQL Server, Visual Studio, ASP whatever, VB.Net and C#.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;Why Visual Basic?&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;So why do I like Visual Basic?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;My first introduction was VB 1.0.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I passed.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I looked again at VB 2.0 and passed again.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;When VB 3.0 shipped the product uptake was breath-taking.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Now we had something!&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;With the exception of FoxPro for Windows, it was the most productive Windows development environment available at the time.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;VB.NET is strictly a pragmatic decision for me.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;First, let me remind you I’m coding C# forty hours a week.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I only get to do VB.Net when I’m coding for myself, maybe ten or fifteen hours a week.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I actually went through a dry spell where I didn’t do anything significant in VB for several &lt;span style="LETTER-SPACING: -0.1pt"&gt;months.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I had convinced myself that I was as productive in C# as I was in VB, but not so.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;When I got back into a VB project, it gave me at least a 10% boost and it may be as high as 20%.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;VB.Net&lt;/span&gt; is definitely the language of choice for all my own work.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;So why am I more productive?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Everything I have come to expect in a computer language is there and easy to find.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Why is there no numeric check built into C#?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Where’s the “With” statement?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Where are nifty “My” functions?&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;“End If” works for me.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;“Select Case” feels right, “Switch” is awkward.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I like “Next”.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I really do not understand why we don’t have a “CAST” function in C# and VB.NET like the one in &lt;st1:place w:st="on"&gt;Delphi&lt;/st1:place&gt;, but “DirectCast” comes close, so I’ll have to be happy until I take time to roll my own with generics.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;font size="3"&gt;&lt;span style="LETTER-SPACING: -0.1pt"&gt;Case insensitivity in VB is certainly a help.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;When I type in a variable name, VB cases it correctly giving me a direct visual signal that I got the name right.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;When I first saw that feature in Apple /// &lt;/span&gt;Business Basic I was in love!&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Remember, intellisense is a “new” thing; I’m talking deep into the last century here.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Yeah, I know you get a squiggly under an undefined variable name in C#, but I have lots of techniques for generating squiggles in my code so that is not always definitive.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;VB scans.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;In C# I really have to pay attention to find things.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;With most languages -- COBOL, dBase derivatives, Pascal derivatives, and VB derivatives – I can quickly scan a section of code and detect flaws or lines of interest.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I expected that skill to come with C# after a month or two, but it hasn’t yet.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The language is just awkward.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The “!” is certainly a thrill to someone who has read “NOT” in countless languages.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I &lt;em style="mso-bidi-font-style: normal"&gt;really&lt;/em&gt; like the “?” operator.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;NOT!&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;(Now that’s the way to use “!” with “not”).&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="3"&gt;&lt;font face="Arial"&gt;VB scans.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;That makes it easier to maintain.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Now obviously you can write bad code in any language, but you don’t hear about re-writing a routine to put in a maintenance change in VB nearly as often as you do with C#.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We ran into the re-write instead of fix phenomenon in Assembler because even good code could be so hard to understand, but we were ashamed when it happened.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;C# programmers have no shame, they just “refactor”; me included.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;VB programmers generally don’t re-write working code.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We might enhance it, but we don’t have &lt;/font&gt;&lt;span style="FONT-FAMILY: 'Arial (W1)'; LETTER-SPACING: -0.2pt; mso-bidi-font-family: Arial"&gt;time or budget to re-write working code.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;We just have too much to get done.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Check-signers would really like that aspect of VB if they knew what was going on.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 12pt 0in 3pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;em&gt;&lt;font face="Arial"&gt;&lt;font size="6"&gt;So that’s why I like VB.NET&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;After decades of experience and countless computer languages, Visual Basic.NET is a simple decision for me.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I must be productive (Lesson 1).&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I need to adopt new Framework classes and techniques quickly (Lesson 2).&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;I need to produce code that I or any professional can easily maintain (Lesson 3).&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;To use a John Wayne line from a vintage Western movie – “You do what you want.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Most people usually do.”&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Just don’t ask me to maintain C#.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Oh wait; I make more money because C# takes longer and I can just “refactor”.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial" size="3"&gt;Never mind.&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial" size="3"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;   &lt;/span&gt;&lt;st1:personname w:st="on"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;Bill Jones Jr.&lt;/strong&gt;&lt;/st1:personname&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;strong style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="FONT-SIZE: 9pt"&gt;MCP C#, VB and MVP VB.NET&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Arial"&gt;   &lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;&lt;span style="COLOR: blue"&gt;Enterprise&lt;/span&gt;&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;span style="COLOR: blue"&gt; Developers Guild&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;   &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt;Charlotte MSDN User Group&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;   &lt;/span&gt;&lt;span style="FONT-SIZE: 9pt"&gt;&lt;a href="http://www.developersguild.org/"&gt;&lt;font color="#800080"&gt;www.DevelopersGuild.org&lt;/font&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;font face="Arial"&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;&lt;v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:spt="75" coordsize="21600,21600" stroked="f" filled="f" o:preferrelative="t"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/font&gt;&lt;v:shape id="_x0000_i1025" style="WIDTH: 108pt; HEIGHT: 44.25pt" type="#_x0000_t75" alt=""&gt;&lt;v:imagedata src="file:///C:\DOCUME~1\BJ\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" o:href="../../Application%20Data/Microsoft/Signatures/Guild_files/image002.gif"&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;font face="Arial"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107915"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=107915" 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/bjones/aggbug/107915.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2007/03/04/107915.aspx</guid>
            <pubDate>Sun, 04 Mar 2007 21:26:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/107915.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2007/03/04/107915.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/107915.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/107915.aspx</trackback:ping>
        </item>
        <item>
            <title>From IDataReader to DataSet</title>
            <link>http://geekswithblogs.net/bjones/archive/2006/03/19/72764.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;Are you still using Framework 1 or 1.1?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Are you using DNN 3?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Did you know there is a function to convert a data reader object into a dataset built into DNN 3?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Neither did I, so I wrote one.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And then I found one Dan Thayer of Logical Advantage had sent me in an email a few months ago.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dan uses reflection, so his is pretty slick.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you want to see Dan's solution, let me know.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I'm sure he would be happy to lend his permission for me to publish it.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;Anyway, it was right after I discovered the second preexisting solution to the same issue that I decided to install the VB Snippet Editor &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;(http://msdn.microsoft.com/vbasic/downloads/tools/default.aspx)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt; so maybe I can reduce the number of times I re-invent the wheel.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;If you are lucky enough to already be doing production work in Framework 2, all this should be unnecessary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I&amp;#8217;ve seen a load function in the dataset (or data table?) in 2.0 that uses the data reader as input.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;When we implemented this function, we coded a couple of overloads making the name parameters optional.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Yes, I know we can use the optional attribute directly on the parameters, but that doesn&amp;#8217;t play well with some of the less sophisticated CLR languages.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Look it over.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Add it to your Snippets if you like it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Oh and yes, the VB Snippet Editor requires Framework 2 to run, but it doesn&amp;#8217;t mind if you save J#, C# or Framework 1.x code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Snippet Editor is definitely a handy tool.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bill J&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;PRE&gt;&lt;FONT size=1&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' -----------------------------------------------------------------------------
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' &lt;SUMMARY&gt;
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' Uses the dataRdr schema to create a DataTable.  Populates the new DataTable
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' from the dataRdr and loads it to a DataSet using the tableName provided.
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' &lt;/SUMMARY&gt;
&lt;/SPAN&gt;        &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Shared&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Function&lt;/SPAN&gt; ReaderToDataSet(&lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;ByVal&lt;/SPAN&gt; dataRdr &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; IDataReader, _
                                             &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;ByVal&lt;/SPAN&gt; tableName &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;String&lt;/SPAN&gt;, _
                                             &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;ByVal&lt;/SPAN&gt; datasetName &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;String&lt;/SPAN&gt;) &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; DataSet
            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Dim&lt;/SPAN&gt; myTable &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;New&lt;/SPAN&gt; DataTable
            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Dim&lt;/SPAN&gt; myDS &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;New&lt;/SPAN&gt; DataSet
            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Dim&lt;/SPAN&gt; myRow &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; DataRow

            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Try&lt;/SPAN&gt;
                SetTableSchemaHelper(myTable, dataRdr)
                myTable.TableName &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; tableName
                myDS.Tables.Add(myTable)

                &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Do&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;While&lt;/SPAN&gt; dataRdr.Read
                    myRow &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; myTable.NewRow()
                    &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;For&lt;/SPAN&gt; i &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Integer&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; 0 To dataRdr.FieldCount &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;-&lt;/SPAN&gt; 1
                        myRow(i) &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; dataRdr.GetValue(i)
                    &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Next&lt;/SPAN&gt;
                    myTable.Rows.Add(myRow)
                &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Loop&lt;/SPAN&gt;

                dataRdr.Close()
                &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Return&lt;/SPAN&gt; myDS

            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Catch&lt;/SPAN&gt; ex &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; Exception
                Throw &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;New&lt;/SPAN&gt; ApplicationException("ReaderToDataSet &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;-&lt;/SPAN&gt; " &amp;amp; ex.Message)
            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Try&lt;/SPAN&gt;

        &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Function&lt;/SPAN&gt;

&lt;/FONT&gt;&lt;FONT size=1&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' -----------------------------------------------------------------------------
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' &lt;SUMMARY&gt;
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' Helper method to add columns to a table from a schema table loaded from
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' a DataReader object.  Note the target table is accessed by reference.
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' &lt;/SUMMARY&gt;
&lt;/SPAN&gt;        &lt;/FONT&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;''' -----------------------------------------------------------------------------
&lt;/SPAN&gt;        &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Public&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Shared&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Sub&lt;/SPAN&gt; SetTableSchemaHelper(&lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;ByRef&lt;/SPAN&gt; dtTable &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; DataTable, _
                                             &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;ByVal&lt;/SPAN&gt; dataRdr &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; IDataReader)
            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Dim&lt;/SPAN&gt; mySchema &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; DataTable
            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Dim&lt;/SPAN&gt; myCol &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; DataColumn

            mySchema &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; dataRdr.GetSchemaTable

            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;For&lt;/SPAN&gt; i &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;As&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Integer&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; 0 To mySchema.Rows.Count &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;-&lt;/SPAN&gt; 1
                myCol &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;New&lt;/SPAN&gt; DataColumn
                &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;With&lt;/SPAN&gt; mySchema.Rows(i)
                    myCol.ColumnName &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; DirectCast(.Item("ColumnName"), &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;String&lt;/SPAN&gt;)
                    myCol.AllowDBNull &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; DirectCast(.Item("AllowDBNull"), Boolean)
                    myCol.AutoIncrement &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; DirectCast(.Item("IsIdentity"), Boolean)
                    myCol.Unique &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; myCol.AutoIncrement
                    myCol.DataType &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; DirectCast(.Item("DataType"), Type)
                    &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;If&lt;/SPAN&gt; myCol.DataType Is System.Type.GetType("&lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;String&lt;/SPAN&gt;") &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Then&lt;/SPAN&gt;
                        myCol.MaxLength &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; DirectCast(.Item("ColumnSize"), &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Integer&lt;/SPAN&gt;)
                    &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;If&lt;/SPAN&gt;
                    myCol.ReadOnly &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; DirectCast(.Item("IsReadOnly"), Boolean)
                    &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;If&lt;/SPAN&gt; myCol.Unique &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;False&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Then&lt;/SPAN&gt;
                        myCol.Unique &lt;SPAN style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;=&lt;/SPAN&gt; (myCol.DataType Is System.Type.GetType("GUID"))
                    &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;If&lt;/SPAN&gt;
                &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;With&lt;/SPAN&gt;
                dtTable.Columns.Add(myCol)
            &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Next&lt;/SPAN&gt; i

        &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;End&lt;/SPAN&gt; &lt;SPAN style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: white"&gt;Sub&lt;/SPAN&gt;&lt;/FONT&gt;

&lt;/PRE&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=72764"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=72764" 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/bjones/aggbug/72764.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2006/03/19/72764.aspx</guid>
            <pubDate>Sun, 19 Mar 2006 23:16:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/72764.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2006/03/19/72764.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/72764.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/72764.aspx</trackback:ping>
        </item>
        <item>
            <title>Running production ASP.NET 2.0</title>
            <link>http://geekswithblogs.net/bjones/archive/2006/01/08/65283.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial&gt;So when is a server really a server?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;On ASP 2 set up you get a nice Steve Guthrie blog entry telling you how to init all the built in providers.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Following the bouncing ball I went out to my SQL 2005 and set up an empty database.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When running aspnet_regsql.exe, I didn&amp;#8217;t see my new database.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Inspiration suggested I hook up the new database to VS 2005, but then I got struck by the &amp;#8220;dummo ray&amp;#8221;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The Server stack is really for servers &amp;#8211; machines or IP addresses &amp;#8211; and will &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;not&lt;/I&gt;&lt;/B&gt; connect to an instance of SQL Server no matter how many times you point, click and type.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, once I added the instance to the Data Connects stack, life was good.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I&amp;#8217;m not sure why a SQL Server instance (machine name\instance name) has to be in the Data Connections to get the new empty database to be recognized by aspnet_regsql.exe &amp;#8211; but it worked for me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Now if I can just find the new MMC plug-in for ASP.NET configuration so I can reset the connection string default&amp;#8230;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial&gt;The ASP.NET Config tool is at the bottom of the Website menu.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I used the tool to select the provider for storing the site management data but was never really sure what I was selecting since all the tool (web page) shows is &amp;#8220;AspNetSqlProvider&amp;#8221;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The web config didn&amp;#8217;t show any connect string definitions until I defined a data source.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial&gt;We don&amp;#8217;t create new web projects anymore.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Now we must open new &amp;#8220;web sites&amp;#8221;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Either the web site open didn&amp;#8217;t give me an opportunity to create a new virtual or I missed it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At any rate, I used the old tried and true method of the IIS manager to get my test virtual directory established.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After that, it was easy to create my new web site where I wanted.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial&gt;When I tried to add the DNN 4 Starter Kit to my templates, I had to open the zip by selecting VsContentInstaller.exe with the &amp;#8220;Open With&amp;#8221; option.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It works great when you find the right tool.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial&gt;To finish up my first outing with the new installation of ASP.NET 2.0 by dropping a a data grid on the page and getting that going in short order.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Next I dropped a Report Viewer control and got that going quickly also.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Arial&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial&gt;Knowing ASP.NET 2.0 &amp;#8220;is gonna be great&amp;#8221; and proving it to yourself with shipping product is outstanding.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We need to start using this in our daily work just as soon as we can.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It &lt;I style="mso-bidi-font-style: normal"&gt;really is&lt;/I&gt; a big advancement in our primary tool set.&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=65283"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=65283" 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/bjones/aggbug/65283.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2006/01/08/65283.aspx</guid>
            <pubDate>Mon, 09 Jan 2006 00:05:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/65283.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2006/01/08/65283.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/65283.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/65283.aspx</trackback:ping>
        </item>
        <item>
            <title>CodeSmith, Consistency and Elegance</title>
            <link>http://geekswithblogs.net/bjones/archive/2005/05/15/39735.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;CodeSmith 3.0: &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;Are you a &lt;A href="http://www.ericjsmith.net/codesmith/"&gt;CodeSmith&lt;/A&gt; fan?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When you move up to version 3 Release Candidate 1, be aware that Eric &amp;#8220;cleaned up&amp;#8221; the GetCamelCaseName function name by changing it to CodeSmith.BaseTemplates.StringUtility.ToCamelCase().&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;By the way, v3 is nifty even if Eric did temporarily lose sight of the fact that &amp;#8220;consistency is its own reward&amp;#8221;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Good work Eric!&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;Consistency &lt;I style="mso-bidi-font-style: normal"&gt;is&lt;/I&gt; its own reward:&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt; This fact cannot be overstressed at the project level and has real benefits at the shop level.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here are a few of the big ones.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Pick a naming convention and stick with it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This works for code and stored procedures.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It makes it easier for you and others to read your code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;Consistency also works for data access and error handling.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Again, pick a solution that works and stick with it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you find something better, wait until the next project unless you are willing to go back and change all the existing code in the current project to use your &amp;#8220;new and improved&amp;#8221; technique.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;Does this advice fly in the face of the refactoring mania?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Yeah, but what&amp;#8217;s your point?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Refactoring is often just rewriting running code on a developer&amp;#8217;s whim.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If your code works, can be understood by your target staff and can be maintained, why should you refactor?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If not, then you&amp;#8217;re still developing.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you define refactoring as fixing your code so it can be reviewed, OK.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Otherwise, we all have way too much to do to ask somebody to pay us for making our code &amp;#8220;better&amp;#8221; just because we like to code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Rewriting code that is &amp;#8220;plenty good enough&amp;#8221; sure hurts our productivity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;What is elegant code?&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt; Once upon a time, Jack Blanton, a treasured friend, sent me a ten or twelve line routine to refactor.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;His email explained that he knew it could be done in less lines of code and he wanted to see what &amp;#8220;the master coder&amp;#8221; could do with it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Picking up the gauntlet, I sent back a one line routine.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Was it elegant?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;No.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I also included a more elegant three line routine that a real programmer could take in at a glance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since Jack was only two cubes away, I got the satisfaction of hearing his laughter when he opened the return email.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-FAMILY: Verdana"&gt;What&amp;#8217;s the point? Elegant code is a simple, neat, &amp;#8220;ah ha&amp;#8221;, solution to a specific problem.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is &lt;I style="mso-bidi-font-style: normal"&gt;not&lt;/I&gt; a complicated hack that a real programmer could never understand.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Many, but not all, of the GoF patterns can be called elegant.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Sometimes the required solution prevents elegance, but that does not reduce our quest for concise, readable code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=39735"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=39735" 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/bjones/aggbug/39735.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2005/05/15/39735.aspx</guid>
            <pubDate>Mon, 16 May 2005 03:27:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/39735.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2005/05/15/39735.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/39735.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/39735.aspx</trackback:ping>
        </item>
        <item>
            <title>SQL Server Reporting Services and rsAccessDenied</title>
            <link>http://geekswithblogs.net/bjones/archive/2005/05/01/38818.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;rsAccessDenied&lt;/B&gt; was all that stood between me and high fives from the customer.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The message from SQL Server Reporting Service (SRS) even displayed the clients log on name &amp;#8211; so SRS KNEW who it was denying.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;No impersonation was going to solve this one.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;The Redirect string was fine, because it worked in test and on the server for those of us with admin rights.&amp;nbsp; (Yeah, I know -- but this a &lt;EM&gt;practical&lt;/EM&gt; blog -- remember?)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;So I fired up Report Manager to see what it had to say about the security settings on my report folders.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;All I saw was the built in administrator and no way to add any more.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Hmmm.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At the Home folder level, I could add roles.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since my client had access to the box, she must be in some local group or another, so I added Guests and Users with SRS Browser capacity.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I sauntered over to the client and acted as if I expected the report to work now.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It did.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I took my bows and made my exit with no small relief.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;If this stuff was easy, nobody would need developers.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Bill J&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;st1:City w:st="on"&gt;Charlotte&lt;/st1:City&gt;&lt;/st1:place&gt; NC&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38818"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38818" 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/bjones/aggbug/38818.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2005/05/01/38818.aspx</guid>
            <pubDate>Sun, 01 May 2005 21:51:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/38818.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2005/05/01/38818.aspx#feedback</comments>
            <slash:comments>40</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/38818.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/38818.aspx</trackback:ping>
        </item>
        <item>
            <title>Impersonation</title>
            <link>http://geekswithblogs.net/bjones/archive/2005/05/01/38817.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;All I wanted to do was use the Windows authenticated credentials of the logged in user to access network resources, particularly a network share that is home to my input data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Yeah, I know, it&amp;#8217;s supposed to be easy.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;And maybe it is, once you get all the settings right.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here&amp;#8217;s a short summary.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;First, make sure you have the following parameters set in your web.config file:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;authentication&lt;/SPAN&gt;&lt;SPAN style="COLOR: fuchsia"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;mode&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="Windows"&lt;/SPAN&gt;&lt;SPAN style="COLOR: fuchsia"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: maroon"&gt;identity&lt;/SPAN&gt;&lt;SPAN style="COLOR: fuchsia"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;impersonate&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;="true"&lt;/SPAN&gt;&lt;SPAN style="COLOR: fuchsia"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Don&amp;#8217;t forget to turn off anonymous access to your web site and enables Windows authentication.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Next, import or use the .NET Principal class:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;Imports&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: black"&gt;System&lt;/SPAN&gt;.&lt;SPAN style="COLOR: black"&gt;Security&lt;/SPAN&gt;.&lt;SPAN style="COLOR: black"&gt;Principal&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Finally, here&amp;#8217;s the code sample and yes it is &lt;I style="mso-bidi-font-style: normal"&gt;very&lt;/I&gt; easy once you quit fooling around on a development box and try it out on a machine in the correct domain where the User credentials actually have access to the desired share:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;' Operate under the logged in credentials rather than &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;' ASP.NET inspired credentials (like IUSR_machinename)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;Dim&lt;/SPAN&gt; &lt;SPAN style="COLOR: black"&gt;wiContext&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;As&lt;/SPAN&gt; &lt;SPAN style="COLOR: black"&gt;WindowsImpersonationContext&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;wiContext&lt;/SPAN&gt; = &lt;SPAN style="COLOR: blue"&gt;CType&lt;/SPAN&gt;(&lt;SPAN style="COLOR: black"&gt;User&lt;/SPAN&gt;.&lt;SPAN style="COLOR: black"&gt;Identity&lt;/SPAN&gt;, &lt;SPAN style="COLOR: black"&gt;WindowsIdentity&lt;/SPAN&gt;).&lt;SPAN style="COLOR: black"&gt;Impersonate&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;' Do your network access here&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;wiContext&lt;/SPAN&gt;.&lt;SPAN style="COLOR: black"&gt;Undo&lt;/SPAN&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Don&amp;#8217;t forget to &amp;#8220;undo&amp;#8221; the context as soon as possible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Letting your ASP.NET applications tromp around masquerading as the logged in client any longer than absolutely necessary is considered very bad form these days, not to mention potentially dangerous.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Now that I think about it, you might be able to get access to the desired User Identity using &lt;/FONT&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;#8221;wiContext = WindowsIdentity.GetCurrent().Impersonate&amp;#8221;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;FONT face=Georgia&gt;but I haven&amp;#8217;t tested that since I turned off anonymous access and started testing on the box inside the domain.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;The only reason I&amp;#8217;m posting this is because I did a lot of web spelunking and did not hit the right search terms until after I had found out way more than I needed about Impersonation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Of course, I also had a funky test environment that led me astray.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Security, authentication and permissions &amp;#8211; isn&amp;#8217;t that whole topic just wonderful? &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Oh well, if this stuff was easy, nobody would need developers.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT face=Georgia&gt;Here&amp;#8217;s the rest of the story&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Well gentle reader, it&amp;#8217;s no longer working as advertised.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When I actually got into production, impersonation was working.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After floundering around for a bit, checking for whatever it was that I didn&amp;#8217;t change that broke the code, I called for help.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Dan T sez &amp;#8220;I don&amp;#8217;t do that.&amp;#8221;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Eric N sez &amp;#8220;I use web.config and hard code that puppy&amp;#8221;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Just call me &amp;#8220;Hard Code Harry&amp;#8221;, &amp;#8216;cause plugging it into the web.config was the only way I could get it to go.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Now if I can just figure out how to get that silly .BAT to fire&amp;#8230;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Bill J&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;st1:City w:st="on"&gt;Charlotte&lt;/st1:City&gt;&lt;/st1:place&gt; NC&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38817"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38817" 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/bjones/aggbug/38817.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2005/05/01/38817.aspx</guid>
            <pubDate>Sun, 01 May 2005 21:48:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/38817.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2005/05/01/38817.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/38817.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/38817.aspx</trackback:ping>
        </item>
        <item>
            <title>More Virtual Server stuff</title>
            <link>http://geekswithblogs.net/bjones/archive/2005/05/01/38816.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;I got all excited dynamic and differential volumes, but disk is cheap.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;I&amp;#8217;m hearing that fixed sized vhd&amp;#8217;s are much faster.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Since we&amp;#8217;re setting up a bunch of virtual machines on a 250 GB external USB drive for demo and test, I care about performance.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;I started with differentials but I set the size on the base volume to hold just the OS, thinking I could expand the differentials later.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;But you can&amp;#8217;t.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Since I had to start over, I decided to go the clone route, but set the base up as a dynamic volume.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;Now I need to convert them to fixed for &amp;#8220;more speed&amp;#8221;.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;I think I can do that Configuration selection on the Virtual Disk menu.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;If not, I&amp;#8217;ll use the VMware trick Matthew Toney mentioned to me yesterday.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Basically you set up the desired fixed disk on the same VM as the volume you want to convert.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Ghost the dynamic volume to the fixed, point the VM to the new fixed and drop the dynamic.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Don&amp;#8217;t forget to delete the no longer need dynamic volume.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Georgia&gt;We did get a bit of a surprise when we accessed our shiny new VMs from another machine.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Office wanted to be activated after it had already been activated on the machine I used to create the VM.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Now I can understand what happened &amp;#8211; but I&amp;#8217;m not real happy about it.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Does this mean if I touch that drive from the first machine I have to activate again?&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Most likely.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Guess we need to de-install Office.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;But then how do I get back the original activation?&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;This is getting ugly.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;FONT face=Georgia&gt;&lt;Later&amp;#8230;&gt; now it&amp;#8217;s getting &lt;U&gt;really&lt;/U&gt; ugly; we dropped the drive.&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;So now we have a server activation and two Office activations locked up in a broken hard drive. (Sigh.) &lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;Bill J&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: blue; FONT-FAMILY: 'Comic Sans MS'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;st1:City w:st="on"&gt;Charlotte&lt;/st1:City&gt;&lt;/st1:place&gt; NC&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Georgia&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38816"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38816" 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/bjones/aggbug/38816.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Bill Jones Jr.</dc:creator>
            <guid>http://geekswithblogs.net/bjones/archive/2005/05/01/38816.aspx</guid>
            <pubDate>Sun, 01 May 2005 21:41:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/bjones/comments/38816.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/bjones/archive/2005/05/01/38816.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/bjones/comments/commentRss/38816.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/bjones/services/trackbacks/38816.aspx</trackback:ping>
        </item>
    </channel>
</rss>