Setting up Umbraco 4.0 on SoftSysHosting reseller accounts

Here are some instructions for installing Umbraco 4.0 on’s reseller account.  It looks like there’s a lot to do, but in fact its fairly easy.


  1. A reseller account at
  2. The welcome email they sent you with your sql server, ftp and web details in it
  3. The Umbraco install files
  4. An FTP Program
  5. SQL Server Management Studio

Open up the Control Panel: Your welcome letter  has the IP address and your login credentials. If you’re new to DotNetPanel (the admin UI used by SoftSysHosting), its worth taking a few minutes to explore it. You’ll be spending time inside the User Spaces section which is where your reseller account lives. Within that you’ll be using the Domains, Web Sites, Databases and File Manager sections, so be sure to take a quick look at each of these before you begin.

Create a Domain: In the control panel, Create a Domain for your web site. This will create two domains – the one you just specified, and a preview one with a name like You will be using this preview URL a lot until you set up the dns pointers for your site.

Add a web site: Add a web site that is going to live in the domain. You can see the ASP.NET properties under the Extensions tab. You don’t want the ASP.NET 2 Integrated Pipeline option with Umbraco 4.0. Later versions of Umbraco may support this though.

Request Full Trust from tech support. Umbraco requires Full Permissions to run, so create a support ticket requesting full permissions for the web site you just created. I’ve found tech support at SoftSys to be very quick at dealing with this so far. Remember to put your web site name at the bottom of the new ticket page. While you are waiting, you can do the other steps, below.

Delete default.aspx: When your site was created, the standard IIS7 Wilkommen/Welcome/Bienvue defau;t.aspx page was created in the wwwroot folder. Use FileManager to delete it.

Upload Umbraco! Use your favourite ftp app to upload the Umbraco files from build to the wwwroot folder within the web site you’ve created. The ftp details are in your welcome letter. You may be tempted to look at your web site at this point – you’ll get a 4o4 unless you’ve already pointed your dns at the web site.

Set folder permissions. The account needs write permission on several folders, listed below


Normally I’d use my ftp program to set these, but the CHMOD command is not available so you have to do it manually through the File Manager screen – find each folder and click the grey padlock symbol next to the folder name. Give read/write permission to both the web site and to the NETWORK SERVICE accounts. Make sure the “Replace permissions on all child objects” check box is checked as well.

Create a database. Give it a name that you”ll remember. You won’t be able to use Umbraco since there is likely to be an existing database with that name on the server.

Create a database user. Once you’ve created your database, create a user to go with it. Be sure you set the default database for this user, and give it access to the database you created above.

For one site, I had a problem creating the database. I cannot remember the exact symptom that maqde me think to check but I think there was an error message during step 2 of the Umbraco Install Wizard. I had to manually add the db_owner schema to my new user using SQL Server Management Studio. If you need to do this, open the database using SQL Server Management Studio, click Security, find you user and click the db_owner schema i the list of Schemas owned by this user.

Set up a web site domain pointer. Until you set up your dns pointers to point to your new web site, you’ll need to use a domain pointer – the preview URL created automatically for you when you created the domain. Go into Web Sites and click your new web site.  You’ll see that there are no web site pointers. Click Add and choose the preview one created when you created your domain.

Wait for the tech support folks to mail you telling you they’ve given your website Full Trust.

Run the Umbraco installer. Go to the preview site (this guy, remember?

Install the Umbraco database At step 2 of the install wizard, provide your database credentials. The server IP and port is in your welcome letter.

Plain sailing! Hopefully the Umbraco install wizard will confirm that the folder permissions you set are good. Give Follow the wizard through, giving they admin account a decent name. If you add Runway, you’ll see a homepage when you browse your site.

Notes on using GMail to send mail

A couple of observations about using GMail to send mail messages automatically.

Background: I’m updating the automatic licensing system that supports our InfoPatterns products for Groove. When a user gets a license from the commerce system, they need to get an activation code that ties that license to that user. They fill in a form in the application and that talks to a web service. The web service sends them an email with an activation code in it. We use Google Mail for the Infopatterns email accounts and have the domain as the primary domain with as a domain alias.

1: When debugging, make sure you use a live email address to send to. I was sending mail to ‘’ when that user didn’t exist. You’ll get problems if you do this, obviously, but you won’t be able to tell if they are problems connecting, or problems sending.

2: If you’ve got more than one domain configured like we do, make sure your sender email address is for the primary domain. You won’t be able to log into the server otherwise.

More grist to the code mill: Elmah

Wet looking for a decent error logging system. found one:

Tools / Frameworks lineup for the next project

My next project will be a first for me, being a 100% web, stand-alone portal/application. Here’s my current thinking on its makeup

  1. SQL Server back-end. This project will go live prior to Azure web services going live so SQL Server 2008 it is.
  2. ActiveRecord with ActiveWriter. I’ve used these two extensively for the last five months on a client project. Both me and the client have loved the rapid development on offer for such a small investment in learning time.  ActiveWriter isn’t flexible enough to support the attributing I’ll need so I’m going to have to do some work on its codebase to allow arbitrary attributes. Man, those classes and properties are going to be attribute-heavy!
  3. IIS7 and .NET 3.5. My hosting provider provides this and I’ve been building web services on this platform for a while.
  4. ASP.NET MVC for the ‘web application’ side of things. I’m test driven, can write reasonable HTML and haven’t spent two years (Hi Ollie Venn) learning all the gotchas inherent in WebForms.
  5. JQuery- you know it makes sense given the above.
  6. Umbraco – the only content management system I’ve wished I had designed.
  7. UnFuddle – I’ve been using this as a bug tracking system for a while, and the Agile side of it looks agile enough for me.

Maybe I’m putting the tech before the requirements here, but I control both to a large extent so I can do as I please.

The project kicks off when I get back from the MVP Summit (2nd week of March IOW), and I’ll be blogging here about how I get on, starting with the ActiveWriter modifications.

WebForms or MVC for my next project?

I’ve a new project lined up for the second week of March, and I’m seriously considering MVC for the application code.

Some food for thought: Choosing Between WebForms and MVC

Ain’t no call for Castaneda in my front-line library

With apologies to the Alabama 3, here’s mine. I use these applications and software libraries on most projects.


Visual Studio 2008 Professional. I’ve played with the free offerings, and used Eclipse with the InterAkt JavaScript but now that VS2008 support JavaScript well enough for my needs, this is where I spend most of my coding hours.

NUnit. I’ve been using NUnit for a long time. The new 2.5 beta includes a couple of lovely enhancements – the ability to parameterize tests using attributes, and a new method in the Assert class. Example:

[TestCase (2,2)]
public void SomeTest (int a, int b) {
string something = (a * b).ToString();
Assert.That(something, Is.Not.Null);

Subversion with TortoiseSVN for source code control. Please, please don’t use Visual Source Safe.


Active Record saves a ton of time. Take care to get familiar with lazy loading and with how you can use Expressions to build complex queries. Also please do use ActiveWriter as your modelling tool for Active Record. I’m using these tools on a project right now, and I’m really pleased with the productivity we’ve gained.  I recommended them for a project earlier this year, but it was viewed as being a little too scary by the person leading development there. I reckon it would have saved maybe two man-months worth of effort on a six month project.

Web Development

JQuery. The pre-eminent client-side library.

ASP.NET MVC. Could this be the answer to over-complex, convoluted ASP.NET code? I’m beginning to think so.

Content Management

Umbraco. The gold standard in open-source content management. I’ve noticed a depressing tendency to overlook the value of content management systems in developing web applications. Using Umbraco as your main development framwework with web controls seems like a sweet spot.

Project Management

Its got to be a pragmatic approach based on Agile principles. Right now, AcuNote is my scrum tool of choice.


Executable compressor: NETZ – a great way of packing all your .NET assemblies into a single executable.

Installer: If I don’t need a corporate .msi instaler, then Inno Setup is the clear winner, with ISTool for building the install script.

Online resources: StackOverflow. An old idea (I remember asking questions and answering others questons on Compuserve in the late 80s) done remarkably well.

PDC2008 Summary

For the first time in a few years, I went to a professional conference. The boys are old enough now for one adult to be able to manage both of them easily, and not needing to bookend any trip with a day getting to and from Skye makes a big difference.  The  journey was pretty easy – no problems with the train from Harrogate to London, and an excellent flight on Virgin to get to LA. I’ve not flown on a Virgin plane with their new entertainment console before and was really pleased with it. I would consider flying to New York with the family on a plane fitted with this system.

I was most interested in Azure, Mesh and the Sync framework. Azure-or Azure or Ay-zure as Ozzie pronounces it. As an ISV I’m keen on Azure, but I’m not convinced that businesses will be queuing up to retire their data centres, sack their DBAs and hardware support teams, and trust it all to a company who doesn’t necessarily have their best interests at heart.

It was interesting to compare Mesh and Groove/Sharepoint. Its clear that Microsoft see Mesh as a consumer-facing option, which doesn’t compete with something built using Groove or Sharepoint. They also said that they would be scanning content uploaded to Mesh. This would clearly worry any business planning to use Mesh to distribute confidential company data.

The Sync framework has really come on quickly and I feel that most developers and very few businesses are realizing what a fantastic option it represents. I’ll be playing with sync some more over the coming months.

Are Codebehind Files in ASP.NET MVC Evil?

Interesting discussion about the benefits of codebehind files in ASP.NET MVC.

While keeping the codebehind files might tempt you to put code that belongs to the controller on to the view, I’m not worried about that. In the ASP.NET work I’ve done in the past, I’ve mostly stuck to pushing any logic other than formatting out into a separate class that communicates with the business layer – a controller class, effectively. I’ve seen a lot of code where the codebehind was chock-full of business logic, so I suppose the same mistake could be made moving to ASP.NET MVC.

Stack Overflow – I’m impressed!

I’m impressed with Stack Overflow, the new programming Q&A site. You can find me on there as Mark Smith. I’ve answered just one question, but not received any ‘ups’ or ‘downs’ yet.

Amazon SimpleDB sign-up

After four months, I’ve finally got an Amazon SimpleDB account. I’m planning on using SimpleDB to store the activity logs of users on my next ASP.NET project, which will be a variant on the hackneyed ‘wisdom of the crowds’ theme.