I noticed this article on The Code Project this morning. It provides wrappers to make windows forms controls appear with the new Vista styles (when used in Vista). The nice thing is that they degrade properly for use on older versions of Windows.

The other nice thing is that it provides a version of the Command Link control for use on Windows XP (see picture below). Command links are a nice addition in Vista which I've already had a few uses for. In fact I had already started my own implementation in windows forms because I hadn't found any acceptable solutions. From my quick glance at this article it looks like I might be able to throw that away and use this instead.

The end of my PhD is in sight and my post-PhD plans include the possibilty of some microISV action. So I need an auto-update plan for a WinForms app. I'm using WiX to deploy the app originally since the app includes fancy things like windows services, not just xcopy.

Basically I need it to grab a WiX generated patch file. Stop the app (after prompting the user) and prompt for admin credentials (if necessary) before starting the patch.

I've been looking around and I can't find any auto-update solutions I can use out of the box. So it looks like I'm going to have to write my own :( or at least adapt one of the current solutions.

After ongoing problems with my host's email service I've finally decided to search for other options. Yesterday I migrated my mail server to use Google apps. Basically this means that when you email anybody @rikware.com it actually gets delivered to Google and I access it through the typical GMail interface. Hopefully this will stop those random bounces I seem to give with my own provider. As a little side benefit the email will now come from my address and not have my GMail account as the "sender".

Only one downside at the moment. The GMail Notifier doesn't work for Google apps so I have to find a replacement for that (or whip up something quick myself).

I recently checked my server logs and discovered some very strange search terms were directing people to RikWare. Of course, these terms were all being matched by the some 2700 sping (spam pings) that had come in under my radar. A quick sql statement and some hacking and I can now say that RikWare is once again spam free. However I no longer accept pingbacks/trackbacks or submission through the comment API :(

Here's part two of my Apache-Subversion setup process. This time we're setting up SSL on the server.

1. Generate SSL Certificates

First up we need to generate some certificates for the system. Although OpenSSL came with the Apache install, it doesn't include all the necessary config files by default so the easiest way I found was to download a separate set of binaries which run straight out of the box. Grab OpenSSL from http://www.slproweb.com/products/Win32OpenSSL.html and install it.

Fill in the appropriate info when prompted. Make sure that when you're prompted for the Common Name (eg, your websites domain name) you put in the address of the server (e.g., www.rikware.com). Note that these certificates are of course not signed by a certificate authority so you will be warned when visiting the site that they may be insecure. You can avoid this by distributing the server.crt file to your clients separately. Alternatively get the certificates signed properly, but I'm not going in to how that is done. Check out http://raibledesigns.com/wiki/Wiki.jsp?page=ApacheSSL for some more info.

You should now have a server.crt and server.key file. Copy those to the /Apache/conf/ssl.crt/ and /Apache/conf/ssl.key/ directories (you'll need to create the directories yourself.

2. Config

Open up /Apache/conf/ssl.conf and replace "c:/apache" with "C:/Program Files/Apache" (or wherever you've installed Apache. Also uncomment (remove the '#') the lines <IfDefine SSL> and </IfDefine>.

If you want to move SSL from the default port then search for "443" and replace it with the new port.

Open up /Apache/conf/httpd.conf and uncomment the following lines:

LoadModule ssl_module modules/mod_ssl.so

<IfModule mod_ssl.c> and the </IfModule> just below.

3. Test

Start up Apache and try browsing to https://localhost/. You should get the Apache default page again after an SSL.

I recently needed to expose a subversion server publicly. Unfortunately I couldn't find any way of getting the svn+ssh protocol working with a windows server (at least not without having some complex setup on each client which I wasn't happy with). So instead I setup an Apache server to expose it via https. Since this required pulling in info from a few different sites I thought I'd list my setup process along with links to all the appropriate windows binaries.

So here we go - Setting up an Apache-Subversion server on Windows XP with SSL Support, Part 1: Apache.

Here's what's coming up:

Download binaries

Install Apache

Configure

Test

1. Download Binaries

Although you can grab an Apache build for windows off the Apache site, it doesn't include support for SSL. To grab one with SSL support visit http://hunter.campbus.com/ and grab the zipped version of Apache 2.0 (not 2.2 - Subversion does not work with Apache 2.2 at this stage). Currently it's Apache_2.0.59-Openssl_0.9.8d-Win32.zip but of course grab the latest version.

2. Install

Extract the zip somewhere appropriate. I like C:/Program Files/Apache/ so that's what I'll assume for the rest of this series.

3. Configure

Now the important bit. Open up Apache/conf/httpd.conf in your favourite text editor.

Do a quick search and replace to replace "c:/apache" with "C:/Program Files/Apache".

Apache is set to listen on port 80 by default. If you'd like to move it somewhere else do the following:

Find "Listen 80" and replace it with "Listen 8080"

Replace "ServerName localhost:80" with "ServerName localhost:8080"

4. Test

We should be ready to go at this stage. Run "Apache/bin/Apache.exe" and look for any errors. If everything is going well then you should just get an empty command prompt. Fire up you web browser and test http://localhost:8080/ (assuming you changed the port to 8080). If everything works correctly then you should get the apache default page.

Sidebar - Apache Service

At this stage close down apache and run Apache/bin/Apache -k install to install the apache service. You can then start it up either through the control panel services applet or run Apache/bin/Apache -k start. If you follow on and setup SSL support in Apache it's probably best to keep testing with the command line version.

My old partner in crime, Doug, has released RikReader. I'd love to say I contributed more than some beta testing and part of the name but unfortunately it's all Doug's good work. Hopefully I'll find some time to release a nice little addon utility for RikReader which we've been talking about. I won't say what because I probably won't find the time and it will never eventuate :(

I've just tried using WiX for the first time. For those that don't know, WiX is an open source project started at Microsoft for developing installers using the Windows Installer framework. WiX is supposed to be much simpler than the standard tools, but doesn't claim to be simple.

My only previous experience has been with the installer projects built into Visual Studio, which I've found to be very confining. I'm happy to say that WiX is the exact opposite. I feel like I'll be able to do pretty much anything I want to once I fully understand WiX. The learning curve is pretty steep however.

The best site I've found for learning is the tutorial at http://www.tramontana.co.hu/wix/ Just read through it all to get a good overview then use it as a reference as you start writing your own stuff.

So far, I have just one tip to share. The tutorial shows how to create shortcuts in the start menu and desktop, but doesn't show you how to add shortcuts for all users. Luckily it's quite simple, just add this:

<Property Id="ALLUSERS">1</Property>

Of course, just connect that up to some radio buttons and allow the user to choose whether to install for themselves or everybody :)

About Us

RikWare is a software development company based in Brisbane, Australia. Led by director, Richard Mason, RikWare focusses on solving challenging business problems promptly and effectively.

RikWare is also the owner of Aussie Bushwalking, a free, wiki-like collaboration site for bushwalkers and the creator of RikMigrations, a migration framework for .NET.

Aussie Bushwalking

Want to discover some new bushwalking ideas? Share a few of your own? Aussie Bushwalking is like Wikipedia... but for bushwalkers. Head on over. Anybody can see the walks and it's free to sign up and share your own.

RikMigrations

RikMigrations is a database migration library for .NET based on the migrations facility provided by Ruby on Rails. It allows simple upgrading and downgrading of databases using .NET code (such as VB or C#) either from the command line or built into your application. Unlike many other migration frameworks, RikMigrations is a stand-alone library which does not rely on a large surrounding framework.