<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>John Watson</title>
        <link>http://geekswithblogs.net/jwatson/Default.aspx</link>
        <description>The Pragmatic Enthusiast</description>
        <language>en-US</language>
        <copyright>John Watson</copyright>
        <managingEditor>jwatson3d@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>John Watson</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/jwatson/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Health Insurance for Self-Employed</title>
            <category>General</category>
            <link>http://geekswithblogs.net/jwatson/archive/2008/10/16/125888.aspx</link>
            <description>&lt;p&gt;I noticed &lt;a href="http://geekswithblogs.net/VitaminCH/archive/2008/10/15/health-insurance-almost-made-me-go-broke.aspx" target="_blank"&gt;this post&lt;/a&gt; on the GWB main feed regarding one person's complaints with health insurance in Arizona. I'm facing similar issues and I'm going to name the culprits.&lt;/p&gt;  &lt;p&gt;For several years (2000-2007) I was co-owner of a small, regional consulting firm which at our peak had 10 full-time and 1 part-time employees on the payroll. We peaked out paying over 10K per month for health through Anthem BCBS in NH for a PPO plan and dental through Northeast Delta Dental, also in NH. A family health plan cost around $850/month for each employee. I used to call that the "hidden" extra employee - that's how much it cost in benefits annually. Over the last few years we operated, that cost rose to over $1000/month. Towards the end before we dissolved the company I was paying $1300/month from my own pocket for our family plan. This was a "middle of the road" plan - not the best and not the worst.&lt;/p&gt;  &lt;p&gt;When the company was rolled into a larger software company we all went on Anthem BCBS/CA and began paying the employee-portion which was just under $500/month. I stuck it out the year that I said I would and when I left this summer the cost of COBRA for health, dental, and the VSP vision plan was up to $1700/month. That's just over 20K for a family plan insurance per year.&lt;/p&gt;  &lt;p&gt;Figuring that it must be really high in California, I went shopping for health insurance in NH and for a comparable health plan (health only) it was nearly the same as the full package. For the time being, I'm just paying the COBRA and hating it.&lt;/p&gt;  &lt;p&gt;In addition to the doubling of costs is the reduction in benefits. We can't go to any type of doctor visit or treatment where it's "just covered" - the billing costs are always high and we end up paying the difference out of pocket. Thank God we're all in good health with no issues - I can see a family going bankrupt if something bad happens.&lt;/p&gt;  &lt;p&gt;The real kicker is that HEALTH INSURANCE COSTS MORE EACH MONTH THAN THE MORTGAGE ON A 4 BEDROOM HOME WITH 3+ ACRES OF LAND!!! &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125888"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125888" 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/125888.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2008/10/16/125888.aspx</guid>
            <pubDate>Thu, 16 Oct 2008 16:58:16 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2008/10/16/125888.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/125888.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/125888.aspx</trackback:ping>
        </item>
        <item>
            <title>Expanding SQL Server 2005 to support MOSS 2007</title>
            <category>Virtualization</category>
            <link>http://geekswithblogs.net/jwatson/archive/2008/10/15/125874.aspx</link>
            <description>&lt;p&gt;After &lt;a href="http://geekswithblogs.net/jwatson/archive/2008/10/10/125773.aspx"&gt;setting up&lt;/a&gt; my Dell PowerEdge 2900 with Windows Server 2008 x64 and Hyper-V, I began the steps of creating virtual environments for things I work on. I already had a virtual SQL Server 2005 which was underutilized - 768 MB allocated RAM and one processor for my various development projects.&lt;/p&gt;  &lt;p&gt;I wanted to set up Microsoft Office SharePoint Server (MOSS) as a "mostly" single server install with the exception that I wanted to use the existing SQL Server 2005 installation instead of the embedded SQL Express Edition. To prepare for this, I added a second named instance to the SQL machine so that all MOSS traffic would be isolated and separately configurable.&lt;/p&gt;  &lt;p&gt;The steps I took were to use Hyper-V manager to add a second processor and bump the allocated RAM up to 1 GB. After rebooting the VM, I went into Add/Remove Programs, selected the existing "Microsoft SQL Server 2005" entry and clicked "Change". On the "Microsoft SQL Server 2005 Maintenance" dialog, click the blue hyperlink above the list box for "To install a new component, click here". Browse for the install media and work your way through to the SQL database engine and choose it to add another one. Give this one a name (e.g. SQLMOSS) and continue through. When finished, be sure to use the Surface Area Configuration Tool to enable remote TCP/IP connections.&lt;/p&gt;  &lt;p&gt;In my case, I decided to partition out the virtual as follows:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1/2 the memory (512 MB) maximum allocated to the SQLMOSS instance &lt;/li&gt;    &lt;li&gt;1/2 of remainder (256 MB) for the development/play default instance &lt;/li&gt;    &lt;li&gt;other 1/2 of remainder left for the OS (Windows 2003 R2) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here's a screen-shot of task manager running inside the Hyper-V remote console window:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blog.wrbsoftware.com/Images/ExpandingSQLServer2005tosupportMOSS2007_FE50/SQL_DualProcessor.png" /&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Note that this was taken after configuration but before installing MOSS 2007.&lt;/p&gt;  &lt;p&gt;The beauty of this virtualized approach is that I can add (or remove) processors and RAM depending on usage patterns and bottlenecks.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125874"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125874" 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/125874.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2008/10/15/125874.aspx</guid>
            <pubDate>Wed, 15 Oct 2008 23:05:07 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2008/10/15/125874.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/125874.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/125874.aspx</trackback:ping>
        </item>
        <item>
            <title>Quick 'n Dirty way to move Subversion to another machine</title>
            <category>Open Source</category>
            <link>http://geekswithblogs.net/jwatson/archive/2008/10/14/125835.aspx</link>
            <description>&lt;p&gt;If you have an existing Subversion tree on disk somewhere and you wish to move it to another machine, here's a quick 'n dirty way to do it. I'm pretty sure I read this before somewhere but couldn't find it however I decided to try it anyway. Basically, you install the same version of Subversion onto the new server, create an identically named repository ("svnadmin create foo" - assuming "foo" is the name of the new repo), replace the contents of the "foo" directory from the original machine and voila.&lt;/p&gt;  &lt;p&gt;Of course, this is no doubt unsupported - the proper way to move a repository to another location is &lt;a href="http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate" target="_blank"&gt;documented here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125835"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125835" 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/125835.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2008/10/14/125835.aspx</guid>
            <pubDate>Tue, 14 Oct 2008 16:14:41 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2008/10/14/125835.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/125835.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/125835.aspx</trackback:ping>
        </item>
        <item>
            <title>Dell PowerEdge Upgrade To Windows Server 2008</title>
            <category>Virtualization</category>
            <link>http://geekswithblogs.net/jwatson/archive/2008/10/10/125773.aspx</link>
            <description>&lt;p&gt;I learned a few things the hard way and thought I'd pass them along in case it helps someone else. I bought a PowerEdge 2900 last winter planning on consolidating my five machines onto a single virtualized server. The PE 2900 has a pair of quad Xeons, supports up to 48 GB of RAM and 10 SCSI/SATA drives. Plenty of room for growth to support Windows Server 2008 and Hyper-V.&lt;/p&gt;  &lt;p&gt;Doing my homework, I downloaded and burned the System Management Tools v. 5.5.0, A00 (5.4+ needed for Windows Server 2008 support) to have ready. I also upgraded my firmware to 2.4.3, rebooted, enabled Virtualization Technology in the BIOS and rebooted again. &lt;/p&gt;  &lt;p&gt;I first tried running the upgrade from within Windows Server 2003 R2 SP1 x64 but kept finding that it was disabled. Since the PE was just a host for virtuals, I decided to try the System Build and Update Utility approach. Note that using this tool will reformat the boot partition and prepare it for the new OS. After choosing Windows Server 2008 Standard x64, SBUU prepared the installation and rebooted. &lt;/p&gt;  &lt;p&gt;At this point you have to provide your own Windows installation DVD so I popped in my MAPS (Microsoft Action Pack Subscription) disc and good ol' Dell told me it wasn't valid. I didn't save the link but I found one post in the Dell support forums stating that their utility wouldn't recognize non-Retail discs. I "confirmed" this by trying an MSDN version that I downloaded with the same result. It would've been helpful if Dell splashed this information all over the utility and documentation so customers would know! I then downloaded a trial edition ISO, burned it and tried it next...bingo!&lt;/p&gt;  &lt;p&gt;Hope this helps!!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125773"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125773" 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/125773.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2008/10/10/125773.aspx</guid>
            <pubDate>Sat, 11 Oct 2008 00:19:01 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2008/10/10/125773.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/125773.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/125773.aspx</trackback:ping>
        </item>
        <item>
            <title>Back from the dead</title>
            <category>General</category>
            <link>http://geekswithblogs.net/jwatson/archive/2008/07/31/124145.aspx</link>
            <description>&lt;p&gt;Just about a year ago I &lt;a target="_blank" href="http://geekswithblogs.net/jwatson/archive/2007/08/13/114628.aspx"&gt;blogged&lt;/a&gt; that I had made some big changes professionally. Specifically that I and my business partner had negotiated the absorption our our small consultancy into a much larger software company. My partner had already been off "doing his own thing" with his own contract for 2+ years so it was a logical and smart way to unwind things and give everyone a home. Last July 1st I and five engineers joined another company. At the time I agreed to stay on for a year and...guess what? The time is up. July 31st is my last day as an employee and for the moment I am unemployed and completely free of all professional attachments for the first time in a quarter of a century.&lt;/p&gt;
&lt;p&gt;What does a person do on their first official day off? My wife and I are heading to the &lt;a target="_blank" href="http://www.hamptonbeach.org/"&gt;beach&lt;/a&gt; to enjoy a fun, relaxing summer day. What are the plans beyond that? I'm going to take August off and enjoy the summer - in four weeks we help our oldest daughter move into a college dorm for her first year away from home. Not a huge shock because we've been through this once before with my son. But not only is she off to college but her sister (a.k.a. the "baby") is right behind - a junior in high school and already driving. Sigh.&lt;/p&gt;
&lt;p&gt;Once fall kicks in after labor day I'll be looking for contract work for the time being - no doubt starting to line something up beforehand. Until then, I'm going to enjoy the remainder of the (short) summer here in NH and catch up on several home projects I've been putting off.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124145"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124145" 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/124145.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2008/07/31/124145.aspx</guid>
            <pubDate>Thu, 31 Jul 2008 11:52:39 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2008/07/31/124145.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/124145.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/124145.aspx</trackback:ping>
        </item>
        <item>
            <title>Smart Client (SCSF) Membership App - Views</title>
            <category>.NET</category>
            <category>Smart Client</category>
            <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>
            <category>.NET</category>
            <category>Smart Client</category>
            <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>
            <category>.NET</category>
            <category>DotNetNuke</category>
            <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>
            <category>.NET</category>
            <category>Smart Client</category>
            <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>
            <category>.NET</category>
            <category>Smart Client</category>
            <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>
            <category>.NET</category>
            <category>Smart Client</category>
            <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>Smart Client (SCSF) Membership App - Background</title>
            <category>Smart Client</category>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/21/114838.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 target="_blank" 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;My first approach was to fire up trusty old MS Access to build a single database even though I knew that sharing information wouldn't be easy yet is possible. I've used Access off and on since it was first introduced and even resurrected some screen shots (&lt;a target="_blank" href="http://wrbsoftware.com/Portals/0/WfW311/wfw_access.gif"&gt;here&lt;/a&gt;, &lt;a target="_blank" href="http://wrbsoftware.com/Portals/0/WfW311/access_cue.gif"&gt;here&lt;/a&gt;, and &lt;a target="_blank" href="http://wrbsoftware.com/Portals/0/WfW311/access_swtchbd.gif"&gt;here&lt;/a&gt;) using Virtual PC to run &lt;a href="http://geekswithblogs.net/jwatson/archive/2005/08/30/51586.aspx"&gt;Windows for Workgroups 3.11&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://wrbsoftware.com/LinkClick.aspx?link=57&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:bcc17c89-88f5-4781-bb1d-fdc93ebdae6c" 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=114838"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114838" 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/114838.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/21/114838.aspx</guid>
            <pubDate>Tue, 21 Aug 2007 14:10:02 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/21/114838.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114838.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114838.aspx</trackback:ping>
        </item>
        <item>
            <title>Building a Smart Client application using CAB / SCSF</title>
            <category>Smart Client</category>
            <category>.NET</category>
            <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>Catching up</title>
            <category>General</category>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/13/114628.aspx</link>
            <description>&lt;p&gt;In the last eight months I have...&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Gone on a 2nd annual mission trip to western Louisiana with my two daughters to build a new home for a family of six who lost everything in Hurricane Rita 18 months before. [Editorial tirade: Funny how the media jackals are off to find fresh meat and nothing is mentioned about the people still struggling. If it is mentioned, it's always a brief aside about New Orleans and Hurricane Katrina and that's it. I guess Paris Hilton, Britney Spears, Lindsay Lohan, Nicole Richie, and God forbid, let's not forget about poor Anna Nicole are far more important headlines. Gimme a break!] &lt;/li&gt;
    &lt;li&gt;Navigated the sale, along with my business partner, of our small consulting business to a software company. I along with 5 employees converted to full time employees joining the new company. For me, it's a change from being your own boss, a.k.a. "the boss" to being in an organizational chart that's 25 times larger. &lt;/li&gt;
    &lt;li&gt;Re-doubled efforts to build a membership system for our local church, on the side (several more posts coming from this effort).&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114628"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114628" 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/114628.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/13/114628.aspx</guid>
            <pubDate>Tue, 14 Aug 2007 00:58:16 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/13/114628.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114628.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114628.aspx</trackback:ping>
        </item>
        <item>
            <title>Forget CentOS under Virtual PC - Ubuntu is &amp;quot;IN&amp;quot;</title>
            <category>Open Source</category>
            <link>http://geekswithblogs.net/jwatson/archive/2007/08/13/114621.aspx</link>
            <description>&lt;p&gt;Late last year I blogged about trying to use CentOS under Virtual PC. After several attempts, I basically gave up. There's something to be said for marketing and "mind share" - which Ubuntu has plenty of. Earlier this year I took a stab at using Ubuntu with Virtual PC (and Virtual Server) and got a lot further. In fact, I managed to get a full working version for a developer environment. I also got a version going for an Oracle server, a WebSphere/DB2 server and even a streaming media server.&lt;/p&gt;
&lt;p&gt;Things went so well that I repurposed an old dual-processor Dell workstation to run as an Ubuntu development machine on "bare metal". I normally work in Windows but now can "dabble" in Linux without difficulty...&lt;/p&gt;
&lt;p&gt;&lt;a atomicselection="true" href="http://geekswithblogs.net/images/geekswithblogs_net/jwatson/WindowsLiveWriter/ForgetCentOSunderVirtualPCUbuntuisIN_D48B/WorkDesk.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="180" alt="WorkDesk" width="240" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/jwatson/WindowsLiveWriter/ForgetCentOSunderVirtualPCUbuntuisIN_D48B/WorkDesk_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Because I'm working on enterprise-class applications using J2EE, I opted for using Ubuntu 6.06 (a.k.a. Dapper Drake) since it is the official server version with L.T.S. (long term support).&lt;/p&gt;
&lt;p&gt;I can install and use the following on either environment:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Java 1.4 and 1.5 &lt;/li&gt;
    &lt;li&gt;Eclipse IDE &lt;/li&gt;
    &lt;li&gt;JBoss application server &lt;/li&gt;
    &lt;li&gt;DB-Visualizer &lt;/li&gt;
    &lt;li&gt;Ant/Tomcat &lt;/li&gt;
    &lt;li&gt;Perforce &lt;/li&gt;
    &lt;li&gt;Firefox&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The cool thing to me as a geek is that I can be on two totally different architectures and platforms and use the same tool sets to work on the same code.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114621"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114621" 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/114621.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>John Watson</dc:creator>
            <guid>http://geekswithblogs.net/jwatson/archive/2007/08/13/114621.aspx</guid>
            <pubDate>Mon, 13 Aug 2007 20:07:08 GMT</pubDate>
            <comments>http://geekswithblogs.net/jwatson/archive/2007/08/13/114621.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jwatson/comments/commentRss/114621.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jwatson/services/trackbacks/114621.aspx</trackback:ping>
        </item>
    </channel>
</rss>