<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>RapidDB</title>
        <link>http://geekswithblogs.net/twickers/category/6169.aspx</link>
        <description>Open source database agnostic ORM layer.</description>
        <language>en-GB</language>
        <copyright>Liam Westley</copyright>
        <managingEditor>liam.westley@tigernews.co.uk</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>CI Factory - my final setup</title>
            <link>http://geekswithblogs.net/twickers/archive/2007/04/23/111924.aspx</link>
            <description>Here's the culmination of my research into CI Factory and how I'm not using it to develop my open source RapidDB libraries.  This is a fairly personal setup, as it only has a single developer (me), two development machines (currently an office desktop PC and a roaming laptop) and a build server which is not publicly accessible via the Internet.  An MSDN and Microsoft Partner Action Pack subscription are busy covering my software license requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;&lt;font size="2"&gt;&lt;strong&gt;Summary:&lt;/strong&gt;&lt;/font&gt;&lt;/em&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;Development PC 1 : Desktop, XP Pro SP2, Program Files on D: drive, C:\Projects for CI Factory tree. &lt;/li&gt;
    &lt;li&gt;Development PC 2 : Laptop, XP Pro SP2, Program Files on C: drive, C:\Projects for CI Factory tree. &lt;/li&gt;
    &lt;li&gt;Build Server : Virtual PC 2004 image, XP Pro SP2, C:\Projects for CI Factory tree. &lt;/li&gt;
    &lt;li&gt;Source code repository : &lt;a href="http://www.hosted-projects.com"&gt;www.hosted-projects.com&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;
By using Microsoft Virtual PC 2004 (or VPC), which is a &lt;span style="font-style: italic;"&gt;free&lt;/span&gt; download now, I have the VPC disk image (6.3Gb currently) which is on a portable laptop hard drive, running over USB 2.0.  When in the office this connects to my desktop, when out of the office this connects to my laptop.  That way, I always have the build server available, where ever I am working.  And when my build server finally settles down and I require external access, I can easily install it under Virtual Server on my main Windows Server 2003 box and setup suitable port forwarding on my broadband connection.&lt;br /&gt;
&lt;br /&gt;
Both development PCs and the build server have Microsoft SQL Server 2000 Developer and Microsoft SQL Server 2005 Developer installed.  To aid with unit testing, I have created aliases to the servers on all machines as &lt;span style="font-style: italic;"&gt;NUnit-Sql2000&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;NUnit-Sql2005&lt;/span&gt;.  This ensures that whatever machine name and instance name I might have used when installing SQL Server, unit tests can use the same alias names across all machines (and please don't flame me that unit tests should not really include database access, I have my reasons).&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;&lt;font size="2"&gt;Build server o/s and tools installation&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;Windows XP Professional SP2 &lt;/li&gt;
    &lt;li&gt;.NET framework 1.1, .NET framework 2.0, .NET framework 3.0 &lt;/li&gt;
    &lt;li&gt;Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2005 Developer Edition &lt;/li&gt;
    &lt;li&gt;NCover v1.5.5 (beta) &lt;/li&gt;
    &lt;li&gt;SubVersion 1.4.3, TortoiseSVN 1.4.3&lt;/li&gt;
    &lt;li&gt;&lt;span style="font-weight: bold;"&gt;.NET Framework 1.1 SDK, .NET Framework 2.0 SDK&lt;/span&gt; &lt;span style="font-weight: bold; font-style: italic;"&gt;[blog update, 6 June 2007]&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;CI Factory installation on VPC build server image&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;font face="Arial"&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;.\Install Scripts\Arguments.xml;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Change ProjectName; &lt;strong&gt;&lt;em&gt;testproject&lt;/em&gt;&lt;/strong&gt;. &lt;/li&gt;
    &lt;li&gt;Change the portname number (&lt;em&gt;really important for multiple installations!)&lt;/em&gt; &lt;/li&gt;
    &lt;li&gt;Email details; VPC-Build, &lt;a href="mailto:vpc.build@yourdomain.co.uk"&gt;vpc.build@yourdomain.co.uk&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;Developer lists; &lt;a href="mailto:your.name@yourdomain.co.uk"&gt;your.name@yourdomain.co.uk&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;SVN URI Root; &lt;a href="https://svn1.hosted-projects.com/youraccountname"&gt;https://svn1.hosted-projects.com/youraccountname&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;SVN URI ProjectName, Shared Repo; ProjectName" value="${SVN.URI.Root}/${ProjectName}" &lt;/li&gt;
    &lt;li&gt;SVN.WebRepoURL; &lt;a href="https://svn1.hosted-projects.com/youraccountname/${ProjectName"&gt;https://svn1.hosted-projects.com/youraccountname/${ProjectName&lt;/a&gt;} &lt;/li&gt;
    &lt;li&gt;SVN.Credentials.SafeStorage; true &lt;/li&gt;
    &lt;li&gt;SVN.Username / SVN.Password; &amp;lt;set to your username/password&amp;gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;\Packages;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Install NCover 1.5.5 Beta to prog files; &lt;em&gt;C:\Program Files\NCover&lt;/em&gt; &lt;/li&gt;
    &lt;li&gt;Install SubVersion 1.4.3 to prog files; &lt;em&gt;C:\Program Files\Subversion&lt;/em&gt; &lt;/li&gt;
    &lt;li&gt;(optional) Install TortoiseSVN 1.4.3 to prog files; &lt;em&gt;C:\Program Files\TortoiseSVN&lt;/em&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;CI Factory Installation&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Create repository/project for &lt;strong&gt;testproject&lt;/strong&gt; in SubVersion, edit ACL list to include user permissions RW. &lt;/li&gt;
    &lt;li&gt;Run &lt;em&gt;C:\Tools\CI Factory\run.bat&lt;/em&gt; to install. &lt;/li&gt;
    &lt;li&gt;After install Visual Studio will not start as it doesn't exist on the build server; instead use&lt;br /&gt;
       Notepad to edit &lt;em&gt;c:\Projects\&lt;strong&gt;testproject&lt;/strong&gt;\Current\Build\Main.build.xml&lt;/em&gt;&lt;br /&gt;
       --&amp;gt; look for warnings about first call/last call and move (as in Jay Flower screencast)&lt;br /&gt;
       --&amp;gt; (SourceModificationReport.PublishOldSource to first item)&lt;br /&gt;
       --&amp;gt; (SourceModificationReport.PublishNewSource to last item) &lt;/li&gt;
    &lt;li&gt;Commit, Main.build.xml to SubVersion. &lt;/li&gt;
    &lt;li&gt;Run &lt;em&gt;C:\Projects\testproject\Current\Build\Packages\CSDiff\bin\CSDiff.exe&lt;/em&gt; once to store path to CSDiff in registry (used in later scripts). &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;font face="Arial"&gt;Post installation configuration; &lt;em&gt;c&lt;/em&gt;&lt;/font&gt;&lt;font face="Arial"&gt;&lt;em&gt;:\Projects\testproject\Current\Build\ccnetproject.xml&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;font face="Arial"&gt;Locate &lt;em&gt;&amp;lt;!ENTITY email&lt;/em&gt; line (at top of file)&lt;/font&gt; &lt;/li&gt;
    &lt;li&gt;&lt;font face="Arial"&gt;Edit the &lt;strong&gt;from&lt;/strong&gt; attribute to a suitable 'from' address&lt;/font&gt; &lt;/li&gt;
    &lt;li&gt;&lt;font face="Arial"&gt;Edit the &lt;strong&gt;mailhost&lt;/strong&gt; attribute to by your SMTP server&lt;/font&gt; &lt;/li&gt;
    &lt;li&gt;&lt;font face="Arial"&gt;For authenticated logins add the &lt;strong&gt;mailhostUsername&lt;/strong&gt; and &lt;strong&gt;mailhostPassword&lt;/strong&gt; attributes and enter the login and password used to send e-mails.&lt;/font&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Afterwards, it should look something like;&lt;br /&gt;
&lt;em&gt;  &amp;lt;!ENTITY email '&amp;lt;email from="testproject.build@yourdomain.co.uk" mailhost="mail.yourdomain.co.uk" mailhostUsername="testproject.build@yourdomain.co.uk" mailhostPassword="testprojectbuild" includeDetails="true"&amp;gt;&lt;/em&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;Developer PC 2 - C:\Program Files (99% of users)&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can just check out the tree from SubVersion to &lt;em&gt;C:\Projects\testproject&lt;/em&gt; and run &lt;em&gt;C:\Projects\testproject\Current\Build\OpenSolution.bat&lt;/em&gt; to load the project into Visual Studio 2005.  If you want to run unit tests you will need to have installed the appropriate tools (NUnit for myself, or feel free to use MbUnit which comes with CI Factory).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;Developer PC 1 - D:\Program Files&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Check out the tree from SubVersion to &lt;em&gt;C:\Projects\testproject.&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Copy &lt;em&gt;C:\Projects\testproject\Current\Build\OpenSolution.bat&lt;/em&gt; to &lt;em&gt;C:\Projects\testproject\Current\Build\OpenSolutionVSOnD.bat&lt;/em&gt; &lt;/li&gt;
    &lt;li&gt;Edit &lt;em&gt;OpenSolutionVSOnD.bat&lt;/em&gt; in Notepad, and edit the path &lt;em&gt;C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat&lt;/em&gt; to be on the D: drive. &lt;/li&gt;
    &lt;li&gt;Repeat with &lt;em&gt;C:\Projects\testproject\Current\Product\OpenSolution.bat.&lt;/em&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font size="3"&gt;Adding your projects&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now you continue with the normal CI Factory process of adding your existing projects into &lt;font face="Arial"&gt;&lt;em&gt;C:\projects\testproject\Current\Product\Production&lt;/em&gt; as detailed in the Jay Flowers/CI Factory screen cast.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;em&gt;Conclusion&lt;/em&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For those thinking that all this sounds like a whole heap of work to 'reproduce' your existing setup, this is really is not the case.  I cannot tell you the relief to have CruiseControl.NET setup for me automatically and have it branching versions seamlessly in the background.  It also encourages you down the unit testing path which is not a bad thing at all (although I may be breaking it with database reliant testing).&lt;/p&gt;
&lt;p&gt;I have also been impressed by the range of default packages installed by CI Factory. This provides an immediate wake up call to how you might improve the quality of your software by using automated tools, instead of just hoping you have written reliable code that you have tested properly.  I have yet to use all the default packages properly, but then, even programmers I know who have in depth experience of Test Driven Development (TDD) and CI have found new tools that CI Factory includes, such as Simian.&lt;/p&gt;
&lt;p&gt; Technorati tags: &lt;a rel="tag" href="http://technorati.com/tags/ci%20factory"&gt;ci factory&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/continuous%20integration"&gt;Continuous Integration&lt;/a&gt;&lt;/p&gt;
&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Update log&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;em /&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;p&gt;6 June 2007 : Updated to include installation of .NET Framework SDK to prevent &lt;span style="font-style: italic;"&gt;Unable to load DLL 'svn_client-1'&lt;/span&gt; error in build log (as in CI Factory FAQ, &lt;a href="http://www.cifactory.org/joomla/index.php?option=com_content&amp;amp;task=view&amp;amp;id=12&amp;amp;Itemid=32"&gt;here&lt;/a&gt;).  &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111924"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111924" 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/twickers/aggbug/111924.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Liam Westley</dc:creator>
            <guid>http://geekswithblogs.net/twickers/archive/2007/04/23/111924.aspx</guid>
            <pubDate>Mon, 23 Apr 2007 21:08:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/twickers/comments/111924.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/twickers/archive/2007/04/23/111924.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/twickers/comments/commentRss/111924.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/twickers/services/trackbacks/111924.aspx</trackback:ping>
        </item>
        <item>
            <title>RapidDB development system</title>
            <link>http://geekswithblogs.net/twickers/archive/2005/10/26/58123.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Arial&gt;During&amp;nbsp;&lt;A href="http://geekswithblogs.net/waterbaby"&gt;Sarah Blow's&lt;/A&gt; talk at DDD2 on Windows Mobile Development, she kindly plugged the RapidDB libraries which I have developed which are being made available as an open source project.&amp;nbsp; It this sparked your interest you may want to find out more ...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Basically, RapidDB is a set of libraries to provide a combination of;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;agnostic database access (SQL Server 2000, SQL CE 2.0, MySql 4.x, IBM DB2, Access MDB, Oracle 9i 'nearly there')&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;a thin object relational model wrapper for communicating with the database&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;FONT face=Arial&gt;code generation of the ORM wrapper for C# and VB.NET for both .NET 1.1 and .NET Compact Framework 1.0&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;You can find out more top level blurb at &lt;A href="http://rapiddb.tigernews.co.uk"&gt;http://rapiddb.tigernews.co.uk&lt;/A&gt;.&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Arial&gt;There is also a development Wiki at &lt;A href="http://rapiddb.tigernews.co.uk/rapiddbwiki"&gt;http://rapiddb.tigernews.co.uk/rapiddbwiki&lt;/A&gt;&amp;nbsp;which includes the ability to download the libraries (from the Community Portal area).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Both these sites will be updated over the coming months, and new revisions of the libraries will appear when we get the time to develop them.&amp;nbsp; Apologies up front as the libraries are definitely an alpha release, which come with very little documentation.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;P.S. I do know that there is a UK locale date issue with the sample XML file, just edit the dates to a local time format (we will fix this to UTC asap).&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=58123"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=58123" 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/twickers/aggbug/58123.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Liam Westley</dc:creator>
            <guid>http://geekswithblogs.net/twickers/archive/2005/10/26/58123.aspx</guid>
            <pubDate>Wed, 26 Oct 2005 08:54:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/twickers/comments/58123.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/twickers/archive/2005/10/26/58123.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/twickers/comments/commentRss/58123.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/twickers/services/trackbacks/58123.aspx</trackback:ping>
        </item>
    </channel>
</rss>