Thursday, May 31, 2007

patterns & practices Team Development with TFS Guide

Beta 1 of the patterns & practices Team Development with TFS Guide has been released on the Team Development with Visual Studio Team Foundation Server project site.

"This guide shows you how to make the most of Team Foundation Server. It starts with the end in mind, but shows you how to incrementally adopt TFS for your organization. It's a collaborative effort between patterns & practices, Team System team members, and industry experts"

If you've got a few spare days (360 pgs!), download it and have a read. It's worth it.

Monday, May 21, 2007

Vista and SQL Server 2005 Compact Edition

Last night I spent quite some time trying to get SQL Server 2005 Compact Edition installed and replicating with SQL Server 2005 on my development Vista box; an experience which has left me lost for words. So that others don't have to go through the pain I did, I've put together a list of steps that need to be completed to get things up-and-running quickly. Steps 6-8 are optional but higly recommended as they'll make your development experience a whole lot easier and more enjoyable.

There is also a good article here that discusses known issues for SQL Server Compact Edition 3.1 on Windows Vista.

Step 1 - Install Windows Mobile Device Center 6

The Microsoft Windows Mobile Device Center enables you to set up new partnerships, synchronize content and manage music, pictures and video with Windows Mobile powered devices (Windows Mobile 2003 or later).

Step 2 - Instal or Re-configure IIS

This information was provided by David Lean at www.sqlserver.org.au. I used the second option.

Some people have had issues around getting IIS installed correctly so that SQL setup can see it. Here are some tips:-

  1. Logon as the Admin account on the machine. Not just an account with Admin rights. Or start a Cmd prompt session in that account.
  2. Try http://support.microsoft.com/kb/920201 it lists the GUI checkboxes you need.

As some people still have problems with Option 2. I'd suggest jumping straight to this.

  1. Start a cmd prompt (as elevated admin)
  2. Paste in this

start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;
IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;
IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;
IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;
IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;
IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;
IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;
IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;
IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;
IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;
IIS-FTPServer;IIS-FTPManagement;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

(Ensure you remove any carridge returns before you paste it as it much be 1 command. If you stuff it up you can use the GUI to remove IIS & start again)

Step 3a - Install SQL Server 2005

NOTE: If you already have SQL Server 2005 installed, proceed to Step 3b.

  1. On the computer that is running IIS, insert the SQL Server 2005 CD and run Setup.exe.
  2. In the SQL Server Installation Wizard, on the Components to Install page, click Advanced.
  3. On the Feature Selection page, click Client Components, and then click Connectivity Components to install the SQL Server 2005 replication components.

Step 3b - Install SQL Server 2005 Compact Edition Server Tools

NOTE: There is no need to install the SQL Server 2005 Compact Edition Server Tools if SQL Server 2005 and IIS Server are installed on the same machine and SQL Server 2005 has been installed with the Replication Components.

Microsoft SQL Server 2005 Compact Edition Server Tools installs the SQL Server 2005 Compact Edition Replication Components on the IIS box. The components are required for connecting the SQL Server 2005 Compact Edition database on a mobile device or a desktop or a tablet PC to a SQL Server database that are SQL Server 2000 SP3a, SQL Server 2000 SP4, SQL Server 2005, SQL Server 2005 SP1, or SQL Server 2005 SP2 database.

  1. Download the setup MSI.
  2. Open a Command Prompt window that has elevated privileges, and then run the Sqlce30setupen.msi file (as per this article)

Step 4 - Install SQL Server 2005 Service Pack 2

SQL Server 2005 SP2 includes support for Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition),

Step 5 - Install SQL Server 2005 Compact Edition 3.1

To download the SQL Server Compact Edition Runtime, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?familyid=85e0c3ce-3fa1-453a-8ce9-af6ca20946c3

Step 6 (Optional) - Microsoft SQL Server 2005 Compact Edition Developer SDK

SQL Server Compact Edition Developer SDK contains the following files for developing applications by using SQL Server Compact Edition as a database store for the applications:

  • The .cab files for installing SQL Server Compact Edition on mobile devices
  • The .msi file for installing SQL Server Compact Edition on desktop computers and on Tablet PCs
  • The header files that are required for developing a native SQL Server Compact Edition application
  • The .msi file for installing the SQL Server Compact Edition Help files

To download SQL Server Compact Edition Developer SDK, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?FamilyId=E9AA3F8D-363D-49F3-AE89-64E1D149E09B&displaylang=en

Step 7 (Optional) - Microsoft SQL Server 2005 Compact Edition Tools for Visual Studio 2005 Service Pack 1

SQL Server Compact Edition Tools for Visual Studio 2005 SP1 updates the Microsoft Visual Studio 2005 SP1 smart device development components by using the design time environment for SQL Server Compact Edition.

To download SQL Server Compact Edition Tools for Visual Studio 2005 SP1, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?FamilyId=877C0ADC-0347-4A47-B842-58FB71D159AC&displaylang=en

Step 8 (Optional) - SQL Server 2005 Compact Edition Books Online

SQL Server Compact Edition Books Online installs the documentation for SQL Server Compact Edition.

To download SQL Server Compact Edition Books Online, visit the following Microsoft Web site:

http://www.microsoft.com/downloads/details.aspx?FamilyId=E6BC81E8-175B-46EA-86A0-C9DACAA84C85&displaylang=en

Step 9 - Let's Replicate

There is a great example on CodePlex which can be used to verify your installation and as an introduction to merge replication using SQL Server 2005 Compact Edition.

If you have any issues with IIS Security, please take a look at this link provided by Guaymas:

Internet Explorer 7 and Windows Vista Intranet security settings for local integrated Windows security sites

Thursday, May 17, 2007

Off to Tech-Ed Orlando

Well, just as the night was winding down and Peter, Catherine and I were polishing off our last bottle of wine before hitting the pavement back to our Hotel to rest up before MEDC 2007, Yoda (courtesy of my Treo 750) advised that I had received a message from the dark side (AMR Format).  Eager to see what spam I'd just received at 12:01 AM in the morning, I pulled my trusty Treo from my pocket and saw the text "Tech-Ed 2007 in Orlando" in the balloon message at the bottom of the screen.  Thinking that it was just another email from Microsoft rubbing in the fact that there were only x number of days left to register (something that bites as I missed out on being selected as a Technical Learning Guide), I launched Outlook so as to delete the message and saw the rest of the Message Title "- Technical Learning Guide position open".  Hmmm, seems as if someone's pulled out so I'm off to Tech-Ed Orlando to work as a Technical Learning Guide.

Wooooooo Whooooooo!!!!!

Monday, May 07, 2007

Engineering 101 for the SQL DBA - Peter Ward (Wardy IT Solutions)

Canberra SQL Server User Group Presentation

Venue: Canberra Microsoft Office, Level 2, 44 Sydney Avenue, BARTON ACT, Australia
When: Wednesday, 9th May 2007
Duration: Food & drinks from 5:00 pm for a 5:30 pm start. Finish approximately 7pm
Registration: www.sqlserver.org.au

Topic

The deployment decisions for SQL Server are no longer as simple as deciding whether you will run enterprise or standard edition and whether the server will have single or dual CPU’s. There are now decisions such as RAID 5 or RAID 1+0, 32 or 64-bit CPU’s and whether to use virtualization or not? Often the list of options is like a menu from a foreign restaurant as there are lots of choices that you think you like the sound of and others that, well frankly, you have no idea what they are! This session is designed to assist with the intersection between the role of Database Administrator and System Engineer. In this session, Peter Ward from WARDY IT Solutions (www.wardyit.com) will explain some of the options available and how these options affect SQL Server and explain what those ‘Three Letter Acronyms’ that you have to choose from actually are.

Meet the Presenter

Peter Ward is a SQL Server MVP and WARDY IT Solutions Chief Technical Architect.  Peter is also an active member in the Australian SQL Server community, President of the Queensland SQL Server User Group and a highly regarded and sought after SQL Server consultant and trainer, assisting some of the largest SQL Server sites in Australia.

Peter is currently authoring the book Pro SQL Server 2005 System Management Objects in VB 2005 and publishes the acclaimed WARDY IT Solutions SQL Server newsletter. Peter recently presented at the inaugural SQL Server Open World in Denmark and was selected as a Spotlight Speaker for the 2007 SQL PASS Community Summit, the largest SQL Server event in the world.

Sunday, May 06, 2007

Yes, I am still alive!

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::

  1. Execute associated Team Build for checked-in code.
  2. Execute unit tests for checked-in code.
  3. If unit tests pass, execute a code build.  If unit tests fail, send notification via TFSAlert.
  4. 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.
  5. Repeat for each solution touched by assembly replication.
  6. 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:

  1. Your Organization must have at least one employee who has passed the Small Business Sales and Marketing Skills Assessment Online.
  2. Your Organization must meet one of these criteria:
  3. 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.

Saturday, May 05, 2007

WARDY IT Solutions - April SQL Server Newsletter

The April 2007 edition of the WARDY IT Solutions SQL Server Newsletter has been e-mailed to everyone on the distribution list. For those not on the distribution list you can view the newsletter using the following URL http://www.wardyit.com/newsletters/apr2007.htm.

To subscribe to the newsletter send an email to newsletter_add@wardyit.com.