The website has now undergone five major updates in its lifetime for various different reasons; some technical some emotional. In general there has always been some progression of functionality, or technology, but that may not always have been visible from the outside. Let's face it the entire look and feel of a web site can be changed with some template tweaks and some style sheeting.
As a first post on my new sites blog I thought it fitting to write a little about the progression of the site over the years and the reasons for choices along the way.
Version 1 - PHP
I can honestly say the choice to implement my first personal web site in PHP was more based on finances than anything else. PHP hosting at the time was almost costing nothing and I admit I was also curious about this whole Linux thing. My career has mostly taken me down the Microsoft path, and whilst grateful to old Bill for keeping my children shod and fed, the choice was purely market driven.
The whole thing represented my transition from my previous professional work where I had used html to style and shape my site, to a CSS approach where both the layout and the styling were entirly done in CSS. There was a smattering of PHP and MySQL but nothing to get excited about.
Version 2 - ASP.NET
As I began to consider actually taking my site seriously it occurred to me that any kind of move forward in functionality was going to require much more backend code. Further, my strongest appropriate skills were .NET and C#. I could easily have achieved what I wanted in PHP, as many others had, but in addition to my knowledge I was sitting on 1000's of lines of working code. I just did not make sense to do it all again.
So I switched my site over to ASP.NET. There was no real backend functionality in the previous version anyway so the transition was relatively painless, and in fact visually there was little difference at first.
As the site advanced I added functionally to process images and even dynamically generate buttons. I was having great fun but it was clear that I was no web designer. I had been coding the backend stuff for years but the actual look? That was some else's department.
Version 3 - CMS
It was soon after that I began to take the idea of selling software seriously, and for that a little more professionalism was needed. It had been fun to play for a while but now it was time to get serious.
I recall at the time it was quite challenging to find a reasonable ASP.NET web hosting company. My current host did have the capability to do it on paper, but totally lacked in execution: my ASP.NET based site took minutes to load the most basic pages. It was embarrassing. This prompted me to move my hosting company to the one I am with today, Storm Internet, and I have never looked back.
After some thinking I decided that a CMS was a good idea. It looked good out of the box and took over much of the heavy lifting behind site content and structure. So Composite C1 was installed and off I went creating pages of business orientated content.
Version 4 - MVC razor
As the products that I wanted to sell progressed I realised that they were going to need some integration with the web site. Whilst this was possible with a CMS I realised that I would need to jump through hoops to make some of the most basic things work. That coupled with the fact that I was the only content editor, and most writing was done in OneNote anyway, began to make the CMS look like more of a hindrance than a help. I could probably have cracked it open and integrated my code with it but if I was going to spend time learning how to do that, why not spend time on my own development.
Understand, there was nothing wrong with Composite C1, I was just using the wrong tool for the job. I didn't really need a CMS at all.
Time and technology had moved on, so I abandoned ASP.NET, and I created a new MVC razor application in Visual Studio. After a bit of a post mortem, to work out how it was all put together, I copied and pasted some content and styles from the old CMS site and viola my first MVC razor website.
I then began the progressive work of integrating the products with various back end functions provided by the new fully programmable site and the next phase was achieved.
Incidentally the communication mechanism I put in place to send messages from the applications to the web site and back was designed to be extremely simple for testing and maintenance purposes. Simple serialization of a message object to xml and back again. I fully intended to update this mechanism to something more sophisticated further down the line, but I have found it to be so resilient and upgrade proof that I left it in place for the current version of the web site.
I know, I know, I should probably be using something with a buzzword in it, like REST or something, but if it aint broken (and works very reliably) don’t fix it!
Version 5 - Responsive Design
Whilst I have always been an excellent engineer and architect (not to mention modest), my design skills have more or less remained in the 'neat and clean' area. In addition with the rise of mobile devices being used for content consumption it became clear that the next professional looking version of the site needed some 'help'. If you have been reading between the lines of the blog so far you will understand that, whilst the underlying technology, had been changed, the look and feel had received a lot of copy and paste treatment. So not changed that much.
After a bit of looking around and talking to other IT professionals it became clear what the way forward was: jQuery, Bootstrap and all the other goodness that comes with it. Actually jQuery was used in the previous version but narativly it works better here.
Technology had again moved on, and I had noticed in my investigations that Visual Studio now produced a nice modern web site as one of its new project templates. As an opportunity to iron out some of my learning mistakes in the previous site I again fired up a new MVC razor application, and after adding Bootstrap got to work migrating the old site.
To say I underestimated the impact of implementing Bootstrap would be an understatement; everything needed to be 'Bootstrap'ed. Its was very rewarding work though, and whenever a page was updated it always looked much better.
I also took the opportunity to integrate a blog engine, which of course is being used to show you this, the first article.
And this brings me to what you are looking at right now. I hope you like it.