<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>.NET</title>
        <link>http://geekswithblogs.net/jwatson/category/1215.aspx</link>
        <description>.NET</description>
        <language>en-US</language>
        <copyright>John Watson</copyright>
        <managingEditor>jwatson3d@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Smart Client (SCSF) Membership App - Views</title>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/25/114962.aspx</link>
            <description>&lt;p&gt;This post is part of a series which discusses the journey I took building a smart client membership application using Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx"&gt;Smart Client Software Factory&lt;/a&gt; (SCSF). You can navigate the entire series from &lt;a href="http://wrbsoftware.com/Articles/tabid/55/Default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Views are probably the easiest artifact for smart client developers to understand and build. The fact that views are implemented as user controls and that there are recipes for generating them only lend to their ease of use. Finally, there is a lot of documentation and good diagrams about views to peruse. Even the model-view-presenter (MVP) paradigm is pretty well known or at least accessible with all the information available. What is perhaps a bit trickier is how to make multiple views work in concert &lt;em&gt;within the SCSF architecture of shells, work items, and controllers&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://wrbsoftware.com/Articles/SmartClientSCSFAppViews/tabid/62/Default.aspx"&gt;Read the full article...&lt;/a&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:245020f2-8496-43b5-9338-1fc375d8cdca" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;, &lt;a href="http://technorati.com/tags/CAB" rel="tag"&gt;CAB&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SCSF" rel="tag"&gt;SCSF&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114962"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114962" 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/jwatson/aggbug/114962.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/25/114962.aspx</guid>
            <pubDate>Sat, 25 Aug 2007 18:55:27 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/25/114962.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114962.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114962.aspx</trackback:ping>
        </item>
        <item>
            <title>Smart Client (SCSF) Membership App - Work Items</title>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/24/114957.aspx</link>
            <description>&lt;p&gt;This post is part of a series which discusses the journey I took building a smart client membership application using Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx"&gt;Smart Client Software Factory&lt;/a&gt; (SCSF). You can navigate the entire series from &lt;a href="http://wrbsoftware.com/Articles/tabid/55/Default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Work Items are one of the SCSF/CAB artifacts that causes angst amongst smart client developers. Part of the problem lies with the early whitepaper &lt;a href="http://msdn2.microsoft.com/en-us/library/bb266334.aspx"&gt;Architecting Composite Smart Clients Using CAB and SCSF&lt;/a&gt; and the early CAB examples reflecting the thinking of the p&amp;amp;p team at that time. The section entitled &lt;em&gt;Use-Case-Driven-Strategy&lt;/em&gt; would have you create work items based upon each use case. In the banking case study, there would be 17 work items created! After pages and pages of details and diagrams on turning use cases into work items there's about half a page of text following that almost casually mentions another approach- mapping work items to business entities. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=65&amp;amp;tabid=55&amp;amp;mid=373"&gt;Read the full article...&lt;/a&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:596a176e-7d12-43fe-8cb9-10c551157d18" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/CAB"&gt;CAB&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/SCSF"&gt;SCSF&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114957"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114957" 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/jwatson/aggbug/114957.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/24/114957.aspx</guid>
            <pubDate>Sat, 25 Aug 2007 03:03:24 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/24/114957.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114957.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114957.aspx</trackback:ping>
        </item>
        <item>
            <title>Error Installing Module(s) on DNN 4.5.5 at WebHost4Life</title>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/23/114909.aspx</link>
            <description>&lt;p&gt;I was setting up a new DNN installation at WH4L and received this error while running the installation wizard. I first tried manually cleaning things out and doing it again only to receive the same error. Turns out the trick is the file permissions on the newly installed modules under \DesktopModules aren't correct. When you receive the errors, simply open a new browser window, login to WH4L control panel, go to Security | File Permission and reset permissions for NETWORK SERVICE with the box check for subfolders. When that's finished, switch back to the installer wizard with the errors still showing and you can now click Next to continue and finish the installation.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114909"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114909" 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/jwatson/aggbug/114909.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/23/114909.aspx</guid>
            <pubDate>Thu, 23 Aug 2007 05:27:47 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/23/114909.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114909.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114909.aspx</trackback:ping>
        </item>
        <item>
            <title>Smart Client (SCSF) Membership App - Business Module</title>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/22/114902.aspx</link>
            <description>&lt;p&gt;This post is part of a series which discusses the journey I took building a smart client membership application using Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx"&gt;Smart Client Software Factory&lt;/a&gt; (SCSF). You can navigate the entire series from &lt;a href="http://wrbsoftware.com/Articles/tabid/55/Default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Members module is typical of SCSF business modules - it encapsulates the presentation and UI logic of a related set of business functionality. For the membership application I'm building this means:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;People &lt;/li&gt;
    &lt;li&gt;Households &lt;/li&gt;
    &lt;li&gt;Contact Info (phone, email, etc.) &lt;/li&gt;
    &lt;li&gt;Addresses &lt;/li&gt;
    &lt;li&gt;Relationships between all of the above&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=60&amp;amp;tabid=55&amp;amp;mid=373"&gt;Read the full article...&lt;/a&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:0aaa32c9-c884-4ed4-ae8c-ad84e4f773ec" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/CAB"&gt;CAB&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/SCSF"&gt;SCSF&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114902"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114902" 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/jwatson/aggbug/114902.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/22/114902.aspx</guid>
            <pubDate>Wed, 22 Aug 2007 22:11:27 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/22/114902.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114902.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114902.aspx</trackback:ping>
        </item>
        <item>
            <title>Smart Client (SCSF) Membership App - Data Layer</title>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/21/114859.aspx</link>
            <description>&lt;p&gt;This post is part of a series which discusses the journey I took building a smart client membership application using Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx"&gt;Smart Client Software Factory&lt;/a&gt; (SCSF). You can navigate the entire series from &lt;a href="http://wrbsoftware.com/Articles/tabid/55/Default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Several years ago I developed a .NET code generation tool based on XSLT. It evolved over time and even had a front-end GUI to enable selection of various templates as well as database schema browsing. I had to hack my way through the INFORMATION_SCHEMA output of databases and developed an XML schema representation of the data model to drive the XSL templates. Of course, about six months after I had a working version Kathleen Dollard published her book &lt;a target="_blank" href="http://www.apress.com/book/bookDisplay.html?bID=212"&gt;Code Generation in Microsoft .NET&lt;/a&gt; and I could've saved myself a lot of effort if I'd just waited.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=59&amp;amp;tabid=55&amp;amp;mid=373"&gt;Read the full article...&lt;/a&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:f31b5bcc-e7e5-448d-8db7-330da1273850" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/CAB"&gt;CAB&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/SCSF"&gt;SCSF&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114859"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114859" 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/jwatson/aggbug/114859.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/21/114859.aspx</guid>
            <pubDate>Tue, 21 Aug 2007 20:38:39 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/21/114859.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114859.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114859.aspx</trackback:ping>
        </item>
        <item>
            <title>Smart Client (SCSF) Membership App - Design</title>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/21/114847.aspx</link>
            <description>&lt;p&gt;This post is part of a series which discusses the journey I took building a smart client membership application using Microsoft's &lt;a href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx"&gt;Smart Client Software Factory&lt;/a&gt; (SCSF). You can navigate the entire series from &lt;a href="http://wrbsoftware.com/Articles/tabid/55/Default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The membership application is primarily about tracking and managing memberships in an organization such as a church or synagogue, small club or user group, sports team or league, etc. In the case of our church we need to track both individual persons and households. People may give us cell phone as well as home phone numbers and we mail our weekly newsletter to people who couldn't attend worship. Thus phone numbers can be associated with an individual person or a household and, of course, households have physical addresses for mailing purposes - we wouldn't mail two copies of a newsletter to a couple but rather one copy to their household address.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=58&amp;amp;tabid=55&amp;amp;mid=373"&gt;Read the full article...&lt;/a&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:6252c577-1439-487d-badd-211063d5c4a5" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/CAB"&gt;CAB&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/SCSF"&gt;SCSF&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114847"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114847" 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/jwatson/aggbug/114847.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/21/114847.aspx</guid>
            <pubDate>Tue, 21 Aug 2007 16:34:14 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/21/114847.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114847.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114847.aspx</trackback:ping>
        </item>
        <item>
            <title>Building a Smart Client application using CAB / SCSF</title>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/20/114836.aspx</link>
            <description>&lt;p&gt;I am building a smart client application using free tools from Microsoft's &lt;a target="_blank" href="http://msdn2.microsoft.com/en-us/practices/default.aspx"&gt;patterns &amp;amp; practices&lt;/a&gt; team. The primary toolset is the &lt;a target="_blank" href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx"&gt;Smart Client Software Factory&lt;/a&gt;, referred to as "SCSF", which is an integrated set of architecture guidance, templates and Visual Studio 2005 "recipes" that both makes the job easier (perhaps an oxymoron as you'll see) and gives you a solid framework to build a robust, scalable, professional-quality application. My aim is to document and share key points along the way.&lt;/p&gt;
&lt;p&gt;The application I'm building is a membership system used to manage and engage members of a group or organization. Key features it has are:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Flexible design enabling use by a variety of audiences. &lt;/li&gt;
    &lt;li&gt;Easy to use, familiar user interface. &lt;/li&gt;
    &lt;li&gt;Enable distributed management of data. &lt;/li&gt;
    &lt;li&gt;Enough features to provide a compelling reason to use it. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I am doing this for two reasons - to build a low cost (free) application that my &lt;a target="_blank" href="http://www.rock-church.org/"&gt;church&lt;/a&gt; can use to manage its membership and to satisfy my geek nature by building a serious application that others can use.&lt;/p&gt;
&lt;p&gt;My wife is the administrative assistant for our church and when she took over the position she inherited a variety of "data sources" - a church directory consisting of names, addresses, telephone numbers and email addresses in an MS Word document, other assorted membership lists in their own MS Word documents, Excel spreadsheets used to track attendance and an Outlook Express address book used for email communication. Our situation is more common than you may realize even in today's electronic age. Non-profits operate on very low (or &lt;u&gt;no&lt;/u&gt;!) budgets and volunteers who donate some time and effort. What started out for us as small organized lists has grown over time to become unmanageable and even outdated. Information has to be manually synchronized across multiple documents and inevitably things get missed and forgotten.&lt;/p&gt;
&lt;p&gt;Here are the posts which document this journey:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Introduction (this post) &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=57&amp;amp;tabid=55&amp;amp;mid=373"&gt;Background&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=58&amp;amp;tabid=55&amp;amp;mid=373"&gt;Overall Design&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=59&amp;amp;tabid=55&amp;amp;mid=373"&gt;Data Layer&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=60&amp;amp;tabid=55&amp;amp;mid=373"&gt;Business Module&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=65&amp;amp;tabid=55&amp;amp;mid=373"&gt;Work Items&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;Views &lt;/li&gt;
    &lt;li&gt;Services &lt;/li&gt;
    &lt;li&gt;Deployment Packaging &lt;/li&gt;
&lt;/ol&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:fa7cada9-a49a-4e30-a53a-d4b6e5833100" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/CAB"&gt;CAB&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/SCSF"&gt;SCSF&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114836"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114836" 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/jwatson/aggbug/114836.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/20/114836.aspx</guid>
            <pubDate>Mon, 20 Aug 2007 17:56:34 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/20/114836.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114836.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114836.aspx</trackback:ping>
        </item>
        <item>
            <title>VS 2005 RTM Initial Impressions</title>
            <link>http://geekswithblogs.net/jwatson/archive/2005/10/30/58576.aspx</link>
            <description>&lt;P&gt;Here are my initial impressions on the released version of VS2005. I attended PDC 03 and played with both Longhorn and Whidbey but as time went on I found it hard to keep up with the releases and all the nuances of the near "black magic" it seemed it took to get the CTPs, betas, and release candidates installed correctly and working. Being on a full-time project with deadlines and trying to develop a software product on the side meant I had to be careful about my focus.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;U&gt;Installation&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Having worked with SQL since 6.5 and all versions of .NET and Visual Studio, I knew I wanted to install SQL 2005 first. My test environment was a Windows XP SP1a Virtual PC image I had saved off as a baseline (hadn't gotten around to making an SP2 one). First thing I did was install SP2 and reboot to ensure a clean foundation. I tried installing SQL and received an error 193 while trying to install .NET Framework 2.0. Since it was Thursday evening, there was little to find online for help with either Google or MSDN searching (still too soon?). I then found that the .NET Framework 2.0 Redistributable was now available so I installed that and tried SQL 2005 again. Same error. At this point, I gave up on SQL 2005 since I was initially interested in VS 2005. The VS2005 install went smoothly including SQL Express.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;U&gt;First Surprises&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;I confess that I hadn't had time to pay much attention to SQL 2005 so when I went looking around for an Enterprise Manager type of application I was surprised to find nothing. Also, I had stepped back from the beta stuff before the express editions came out so I hadn't tried or followed anything with them. A little hunting around lead me to the VS Express Editions page where I learned there's something called "XM" for Express Manager (a 'lite' version of Enterprise Manager) but it wasn't ready yet. Since I had an existing VS 2003 application with a database I first needed to figure out how to get it brought over.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;U&gt;Setting Up A Database&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;I found out you can use a new command window utility called 'sqlcmd' which gives you a command line interface. Having worked with Oracle's Server Manager for years as well as DB2, I wasn't too worried. Interesting side note, Oracle finally removed SvrMgr in version 8 forcing people to use the newer Java-based graphical UI which some complained about. Now we find Microsoft which has always had Enterprise Manager since 6.5 (earlier?) is now introducing a command environment. Since we use a database project, I tried to update the connection but couldn't get it to work. I finally resorted to using sqlcmd to create an empty database. With a little poking around I found the default instance is referenced via '&lt;I&gt;.\SQLExpress&lt;/I&gt;' so you launch it with '&lt;B&gt;&lt;I&gt;sqlcmd -S .\SQLExpress&lt;/I&gt;&lt;/B&gt;'. Note that the -S is case sensitive so if you use a lowercase &lt;I&gt;-s&lt;/I&gt; it'll hang for a long while before it finally returns an error. Upon successful connection, you'll receive a cryptic '1&amp;gt;' prompt so if this is your first time, don't be alarmed. Just start issuing T-SQL commands. Here's one I used to create an empty database: &lt;/P&gt;&lt;PRE&gt;USE [master]
GO
CREATE DATABASE [ComposerDb] ON 
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ComposerDb.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ComposerDb.ldf' )
 FOR ATTACH;
GO
&lt;/PRE&gt;
&lt;P&gt;&lt;BR&gt;After that, I deleted the connection in the database project, created a new one using the "new" server name in place of &lt;I&gt;(local)&lt;/I&gt; and was able to run our scripts to create the tables, views, and stored procedures without a hitch. Skipping ahead, when I tried to run the web service project, I received a security error - unable to connect. Not a problem, I forgot to grant the ASPNET account (for XP w/ IIS 5.1) permission. Back to the sqlcmd window for a CREATE LOGIN using the example in the online help. However, at this point I became stuck. I couldn't seem to get a CREATE USER to work so I couldn't get the ASPNET user into the new database. After a lot of hunting on MSDN newsgroups, and Google searches, I finally gave up and tried installing just the client tools for SQL 2005. It went without a hitch although it took a long time to run. When it was finished, I could launch the new Enterprise Manager (it recognized the SQLExpress instance) and was able to add the ASPNET user to the database. Finally the web service test page came up and I was off and running.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;U&gt;Project Conversions&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;In between the above SQL bumps, I opened my existing VS2003 solution and the conversion wizards worked great. When all was done I had the following projects converted: a data access layer, a business model layer, two business model factories (direct connection and web service interface), a web service layer, and an admin UI. We were using NUnit for our tests and I needed to install it. I had 2.2.0.0 dated 8/8/2004 and when I ran the MSI it complained that it needed .NET Framework version 2.0.40607. Since it didn't like the RTM version, I opted to simply copy my existing implementation from my VS 2003 machine and followed the instructions for manual registering.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;U&gt;Conclusion&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The VS2005 installation and conversions of the existing projects went extremely smoothly and I'm very pleased with the quality and the experience. The SQL 2005 (Express and Standard) I think is due to just being early. If I had invested time with the betas and CTPs it no doubt would've been a no-brainer. I'm sure that as weeks go by, more and more information will be published and answers to any questions will be easy to come by. Having a graphical admin tool such as Express Manager will go a long way to curing any hiccups.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=58576"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=58576" 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/jwatson/aggbug/58576.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2005/10/30/58576.aspx</guid>
            <pubDate>Sun, 30 Oct 2005 22:37:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2005/10/30/58576.aspx#feedback</comments>
            <slash:comments>13</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/58576.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/58576.aspx</trackback:ping>
        </item>
        <item>
            <title>Subversion and TortoiseSVN Installation Cookbook</title>
            <link>http://geekswithblogs.net/jwatson/archive/2005/09/05/52735.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Tahoma&gt;After reading several good things regarding Subversion and TortoiseSVN I decided to give it a try. The &amp;#8220;final straw&amp;#8221; came while looking into &lt;/FONT&gt;&lt;A href="http://ajax.schwarz-interactive.de/"&gt;&lt;FONT face=Tahoma&gt;Ajax.NET&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt; which is housed in SVN and required installing TortoiseSVN to obtain the source. The process was so smooth and easy I decided it was worth a shot. The &lt;/FONT&gt;&lt;A href="http://en.wikipedia.org/wiki/SCM"&gt;&lt;FONT face=Tahoma&gt;scm&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt; options facing my little company are very typical:&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Continue using &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/vstudio/previous/ssafe/"&gt;&lt;FONT face=Tahoma&gt;VSS&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt; with it's warts - extremely slow client, requires either VPN access to servers in office or a 3rd party product such as &lt;/FONT&gt;&lt;A href="http://www.sourcegear.com/sos/"&gt;&lt;FONT face=Tahoma&gt;SourceOffsite&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt; to make remote access feasible, etc.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Purchase another solution such as &lt;/FONT&gt;&lt;A href="http://www.sourcegear.com/vault/"&gt;&lt;FONT face=Tahoma&gt;Vault&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt;.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Migrate to &lt;/FONT&gt;&lt;A href="http://lab.msdn.microsoft.com/teamsystem/"&gt;&lt;FONT face=Tahoma&gt;Team Foundation Server&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt; - not only is the new pricing model a &amp;#8220;step-up&amp;#8220; for small ISVs but there's hidden costs as well. It&amp;nbsp;requires 3-tier deployment, must install/use Active Directory, requires SQL Server 2005. Can I really afford to update memory,&amp;nbsp;buy licenses, and dedicate at least three servers for what used to take just one?&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Try something else such as &lt;/FONT&gt;&lt;A href="http://subversion.tigris.org/"&gt;&lt;FONT face=Tahoma&gt;Subversion&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt;.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;I decided to try door #4. Below is a quick &amp;#8220;cookbook&amp;#8221; style approach of what it took to get it up and running. Following that are a variety of links that I found.&lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Install &lt;A href="http://httpd.apache.org/"&gt;Apache 2&lt;/A&gt;&amp;nbsp;(2.0.54):&lt;/FONT&gt; 
&lt;OL&gt;
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Change httpd.conf to use non-default port (Listen 81 or Listen 8080).&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Create Windows user account ApacheUser.&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Grant ApacheUser modify rights to C:\Program Files\Apache Group\Apache2\logs&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Change Apache service to run as ApacheUser and restart.&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Install &lt;/FONT&gt;&lt;A href="http://subversion.tigris.org/"&gt;&lt;FONT face=Tahoma&gt;Subversion&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;&lt;FONT face=Tahoma&gt;(1.2.1):&lt;/FONT&gt; 
&lt;OL&gt;
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Run Subversion installer.&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Modify httpd.conf to add /svn virtual root (see TortoiseSVN docs - 3.1.4)&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Create svn root directory somewhere (e.g. F:\svn). Note the multiple warnings that you should NOT use the Berkley DB repository format for network shares (including UNC names, mapped drives, etc.).&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Grant ApacheUser full control rights to svn root directory (e.g. F:\svn).&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Create Apache passwd file and add users (can optionally configure for SSPI to Windows domain - see TortoiseSVN docs).&lt;/FONT&gt; 
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma&gt;bin\htpasswd -c passwd &lt;USERNAME&gt;&lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Tahoma&gt;bin\htpasswd passwd &lt;USERNAME&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Restart Apache and test (&lt;/FONT&gt;&lt;A href="http://localhost:81/svn/repos"&gt;&lt;FONT face=Tahoma&gt;http://localhost:81/svn/repos&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt;)&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Install &lt;/FONT&gt;&lt;A href="http://tortoisesvn.tigris.org/"&gt;&lt;FONT face=Tahoma&gt;TortoiseSVN&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt; (1.2.2.4299 VS.NET - ASP.NET version) which is an excellent&amp;nbsp;Windows shell extension for using SVN.&lt;/FONT&gt; 
&lt;OL&gt;
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Re-boot to get shell extension icons working.&lt;/FONT&gt; 
&lt;LI type=a&gt;&lt;FONT face=Tahoma&gt;Right-click on repository (e.g. F:\svn\repos) and Create Repository...&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Install &lt;/FONT&gt;&lt;A href="http://ankhsvn.tigris.org/"&gt;&lt;FONT face=Tahoma&gt;AnkhSVN&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt; (0.5.5.1653) for VS.NET integration.&lt;BR&gt;Edit \Application Data\AnkhSVN\ankhsvn.xml - uncomment&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AdminDirectoryName&amp;gt;_svn&amp;lt;/AdminDirectoryName&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to match TortoiseSVN patch for ASP.NET files.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Tahoma&gt;Final note for properly backing up the repository:&lt;BR&gt;svnadmin hotcopy path/to/repository path/to/backup --clean-logs&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;Here's a list of links I found very helpful in addition to both the Subversion documentation and especially&amp;nbsp;the TortoiseSVN documents (since it is a Windows client).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;Cory Foy, &lt;/FONT&gt;&lt;A href="http://www.cornetdesign.com/2005/08/getting-subversion-running-with-net.html"&gt;&lt;FONT face=Tahoma&gt;Getting Subversion running with .NET&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;!--StartFragment --&gt;&lt;FONT face=Tahoma&gt;Michael Flanakin,&amp;nbsp;&lt;!--StartFragment --&gt; &lt;/FONT&gt;&lt;A href="http://geekswithblogs.net/flanakin/archive/2004/11/16/15090.aspx"&gt;&lt;FONT face=Tahoma&gt;Subversion&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt;&amp;nbsp;and&amp;nbsp;&lt;!--StartFragment --&gt;&lt;/FONT&gt;&lt;A href="http://geekswithblogs.net/flanakin/archive/2005/08/31/51743.aspx"&gt;&lt;FONT face=Tahoma&gt;Windows Authentication with Subversion on Windows&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma&gt;Jonathan Malek, &lt;/FONT&gt;&lt;A href="http://www.jonathanmalek.com/blog/archive/2004/09/13/219.aspx"&gt;&lt;FONT face=Tahoma&gt;NAnt, Subversion and VS.NET&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;FONT face=Tahoma&gt;Fritz Onion, &lt;/FONT&gt;&lt;A href="http://www.pluralsight.com/fritz/Samples/aspdotnet_without_web_projects.htm"&gt;&lt;FONT face=Tahoma&gt;ASP.NET Application without Web Projects&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt;&amp;nbsp;** It seems a lot of folks like this one however I did not take this route - instead I used the &amp;#8220;patched&amp;#8221; version of TortoiseSVN which uses &amp;#8220;_svn&amp;#8221; instead of &amp;#8220;.svn&amp;#8221; for local admin directories.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Tahoma&gt;One interesting piece of information I found was buried in the replies of &lt;/FONT&gt;&lt;A href="http://www.gamedev.net/community/forums/topic.asp?topic_id=341086&amp;amp;whichpage=1?"&gt;&lt;FONT face=Tahoma&gt;this post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt;. Specifically, &amp;#8220;&lt;!--StartFragment --&gt;The important thing to note is: The initial copy you used to import is not a checked out copy. It cannot be used to work with subversion. You need to check out your own copy. (Even though you already have all the files)&amp;#8221;.&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=52735"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=52735" 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/jwatson/aggbug/52735.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2005/09/05/52735.aspx</guid>
            <pubDate>Mon, 05 Sep 2005 23:57:00 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2005/09/05/52735.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/52735.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/52735.aspx</trackback:ping>
        </item>
    </channel>
</rss>