Well, it's been a long time since I've blogged and I wish I could say that it's because I've been too lazy to do so. The fact is that life has been pretty hectic lately and I'm struggling to find time to do all the things I need (want) to do.
I've put together an overview of the things that have been taking up most of my time. Hope you enjoy!
DITR
As per my post on 9th March 2007, I've started a new job at DITR which is proving to be challenging, yet very rewarding. I'm finally working with Team Foundation Server (never too late!) and with technologies such as WCF, SAML and WiX. Given that I could write a few hundred pages on each of these technologies, I'll concentrate on TFS and WiX (as this is where I've spent a fair chunk of my time) and how we use them for continuous integration.
First off, WiX (Windows Installer XML) is a toolset that builds Windows installation packages from XML source code. We're currently using version 3.0 (Beta) as the WiX project file format (.wixproj) is MSBuild compliant which enables us to automatically create MSI's as part of our Continuous Integration implementation.
So what is continuous integration? According to Fowler (2006), "Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible." How do we implement it? Using TFS, TFS Integrator, MSBuild, TFSAlert and WiX.
TFS Integrator uses the TFS event system to kick off Team Builds and replication based on check-in notifications. For DITR, this means::
- Execute associated Team Build for checked-in code.
- Execute unit tests for checked-in code.
- If unit tests pass, execute a code build. If unit tests fail, send notification via TFSAlert.
- If code build passes, replicate assemblies to those projects that reference them and send notification via TFSAlert. If code build fails, send notification via TFSAlert.
- Repeat for each solution touched by assembly replication.
- If all code builds pass, build MSI's and send notification via TFSAlert.
Now that was a very simplistic explanation of how we use continuous integration. Basically, each check-in triggers the execution of unit test, the build of a solution, the replication of assemblies and finally MSI output. The theory behind this process is that if a check-in causes a test or build to fail, developers get immediate notification and are able to address the issue there and then. If everything is sweet, we can just take a copy of the latest MSI's and deploy (there is another step we are working on which is automatic deployment using Powershell, however this is not currently implemented).
I am currently putting together a presentation for the Canberra TFS User Group which will go into a lot more detail of how we have actually set this up and what are the pro's and con's of doing so. Once this has been presented, I'll post the deck here. In the mean time, you should be able to get a good appreciation of what is going on by following the supplied links.
Wardy IT Solutions
At Code Camp Oz 2007 I spent quite some time talking (and drinking) with a good friend of mine Peter Ward (Wardy IT Solutions) about joining forces and taking over the world. Well, to cut a long story short, it was decided that it was a good idea and now I'm the Chief Solutions Architect for Wardy IT Solutions.
This amalgamation produced immediate results with the company gaining Certified Partner status (with Data Management Solutions Competency) a week later with the prospect of obtaining Gold Certified Partner status by mid-end July 2007. We are also in the final stages of obtaining our Small Business specialization (see 70-282 below) and Network Infrastructure Solutions Competency.
Now, the only thing that has put a sour note on this event is the fact that Microsoft Australia are having problems processing our Certified Partner payment. Can you believe that we made payment four weeks ago and despite many calls and emails to MS, payment has still not been processed. Why? No one knows. It appears that processing payments is such a complex process that not even Microsoft Australia understand how it's done and why it's taking so long. Chuck has taken on the case for us and will hopefully kick some butt and get things moving.
Oh, while on the subject of incompetency, can you believe that there is no Partner Roadshow currently scheduled for Canberra? Why? Well this is the response I got from Microsoft Australia:
"According to your Response Management Team, Microsoft is planning to hold an event in Canberra, but due to some staff changes in the Microsoft Canberra office we were not able to schedule it at the same time as the other Roadshows".
I have no more to say about this subject as the response speaks for itself!
Charles Sturt University / I.T. Masters
On 19th April 2007 I sat my exam for "ITC596 - IT Risk Management". This was the only subject I did last trimester (Jan-April 2007) which turned out great as it was all about theory and formulae's. For those who have read my bio, you'll put two and two together and understand why I probably didn't like this subject very much. That said, based on my assignments and how I feel I went in the exam, I should get a Distinction. Will let you know when I find out on Friday 11th May.
I've chosen to study "ITC519 - Web Information Systems" in Trimester 2 (May-Aug 2007) as it extends on what I studied in "ITC518 - Principles of Programming using C#" trimester 3 last year (Sep-Dec 2006). Determined to get a High Distinction and make up for the Credit I got in "ITC543 - Enterprise Design Patterns", I have been busy reading "Programming Microsoft ADO.NET 2.0 Applications Advanced Topics", "Programming Microsoft ASP.NET 2.0 Applications Advance Topics" and "Programming Microsoft ASP.NET 2.0 Core Reference" and I hope the pain is worth it. On a lighter note, this is the second last subject I need to complete for the Master of Database Design and Management (SQL Server 2005). If all goes well, I'll be attending graduation next year as a recipient :-).
On 20th April 2007 I attended the CSU Graduation as a guest of I.T. Masters and handed out graduation jackets to MSD students. Apart from being extremely honored , it was great to kick back with fellow students, lecturers and staff and enjoy a few wines (and shots of black sambucca). And I thought lecturers were no fun (thanks for the hang-over Ken!).
I.T. Masters have also asked if I would be interested in doing WebEx presentations for students studying "ITI555 - Operating System Essentials" which according to the CSU Subject Handbook "is an introductory subject which creates a foundation for the rest of the Masters program". In reality, this subject is more than an introduction to networking and is proving quite difficult as students are required to pass MS exams 70-270 (Installing, Configuring, and Administering Microsoft Windows XP Professional) and 70-290 (Managing and Maintaining a Microsoft Windows Server 2003 Environment). I have accepted the offer and now spend what little spare time I have brushing up on these topics.
Small Business Specialisation
As previously stated, Wardy IT Solutions is currently in the process of gaining Small Business Specialisation which requires that:
- Your Organization must have at least one employee who has passed the Small Business Sales and Marketing Skills Assessment Online.
- Your Organization must meet one of these criteria:
- Your Organization must also meet one of these two criteria:
- Your Organization must have an employee who has passed one of the following exams:
- Your Organization must be an active partner in the Microsoft Business Solutions (MBS) competency.
I passed requirement 1 a few weeks back and Wardy IT Solutions already meets requirement 2. Given that I used an older version of SBS at home (think it was 4.5) for about 6 months and also implemented the same version at ASIS a few years back, I thought I'd do a little bit of review of the new features and sit 70-282. Easy. How wrong could I be! The exam was actually quite difficult and I should have studied a bit more and not been so cocky. Needless to say, I failed with a score of 670. Oh well, back to the books. This time I'll actually put in some effort :-)
Peter has already done 70-282 but Microsoft said it would take about 6 weeks for them to transfer his records from his old account across to Wardy IT. Given their progress with our Certified Partner payment, I very much doubt it.
The other benefit of gaining this certification is that it is also one of the exams that satisfies the requirements for the "Network Infrastructure Solutions Competency". Once I've passed and Peter's records are update, we only need 1 more SBS customer reference to gain this competency.
Microsoft Exam 70-547
As I'm studying Web Applications at CSU this trimester, I have decided to sit 70-547 as well to finally get my "MCPC: Web Developer" certification.
I was actually going to sit the exam in July 2007 but saw a blurb on the Australian Tech-Ed 2007 site about "Go for gold and enjoy 50% off". Being a "Tech.Ed 2007 Gold Cap and prize holder" sounds cool and very nerdy! Besides, my CSU exam for this subject is actually smack-bang in the middle of Tech-Ed 2007 (thankfully the uni have agreed to let me sit the exam after I get back) so I can kill two birds with one stone and study for both exams at the same time. Now that's what I call planning!
User Groups
Canberra SQL Server and .NET user Groups
I am currently finalising a presentation for the Canberra SQL Server User Group (9th June 2007) and Canberra .NET User Group (19th July 2007) titled "SQL Server 2005 Compact Edition: What is it and how can it be used?".
Session Description
Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) is the rebranding of Microsoft SQL Server 2005 Mobile Edition (SQL Server Mobile 3.0) without the desktop restriction.
SQL Server Compact extends the SQL Server Mobile technology by offering a low maintenance, compact embedded database for single-user client applications for all Windows platforms including tablet PCs, pocket PCs, smart phones and desktops. Just as with SQL Server Mobile, SQL Server Compact is a free, easy-to-use, lightweight, and embeddable version of SQL Server 2005 for developing desktop and mobile applications.
In this session I will cover:
- Choosing Between SQL Server Compact and SQL Server Express
- Data Storage Architecture with SQL Server 2005 Compact Edition
- Configuring Internet Information Services for SQL Server 2005 Compact Edition Remote Data Access and Merge Replication
- Remote Data Access Synchronization with SQL Server 2005 Compact Edition
- Rapid Application Development Using SQL Server 2005 Compact Edition
- SQL Server 2005 Compact Edition Data Access with the SqlCeResultSet
- Application Deployment (Shared and Private)
As usual, once I have delivered the presentation I'll post the deck.
Canberra Windows Mobile User Group
The Canberra Windows Mobile User Group is due to host it's inaugural meeting on Wednesday 4th July 2007 at Canberra Microsoft Office, Level 2, 44 Sydney Avenue, BARTON, ACT. This will be a UG catering for the needs of Windows Mobile Developers.
To date we have registered the domain name www.cwmug.org and are currently working on the site. I have a meeting with representatives from the Sydney Windows Mobile User Group and MEDC after MEDC 2007 in Sydney on 15th May to discuss logistics, presenters, ideas etc. If you'd like to be kept informed of the progress of the UG, please contact me on Jeff@wharton.com.au.