Thursday 28 February 2008

How To Determine Which Version of MOSS 2007 is Installed

Need to determine which version of WSS or MOSS has been installed on a server?

The easiest way to get the current version number is to browse to the Site Settings page (eg. for your Central Admin site): http://myserver:ca_port/_layouts/settings.aspx.

You can also hit the database:

SELECT [VersionId]
FROM [SharePoint_Config].[dbo].[Versions]
WHERE VersionId = '00000000-0000-0000-0000-000000000000'

The version numbers correlate with the more familiar release names listed below (note these version numbers differ from what you might see through the Add or Remove Programs applet or a DLL version):
  • MOSS Beta 2:
  • MOSS Beta 2 TR:
  • RTM:
  • August 24 2007 Hotfix Package:
  • SP1:
These version numbers are supposedly the same for both WSS 3.0 and MOSS 2007 but I don't have a pure WSS environment to confirm that.

If your installation isn't running and you can't access the CA site, check out the following links to learn about alternative means to find the current version number.

Wednesday 20 February 2008

Deploying SharePoint DLLs to the GAC

Deploying the DLLs in a SharePoint solution to the GAC is pretty straightforward.

Firstly, ensure the assembly is signed by opening the Signing tab on the project properties in Visual Studio. Create a new key file (no password) and make sure the Sign the assembly box is checked. If you do this, you don't need to go through the whole sn -K and AssemblyKeyFile attribute process--Visual Studio takes care of it all.

Next, open the solution manifest (the SharePoint solution, not the Visual Studio solution...) and change the value of the DeploymentTarget for the DLL to be GAC'd from WebApplication to

Rebuild your CAB file and re-deploy specifying the -allowGacDeployment stsadm flag with the deploysolution operation. Browse to %windir%\assembly and your GAC'd assembly should be present. The local \bin directory won't contain the DLL in question.

What about debugging and symbol (pdb) files? Apparently they can remain in the \bin directory but I haven't had much joy with this myself. Instead, I map a drive to \\{machine_name}\c$\windows\assembly\gac_msil\{version_publickey} and copy .pdb files across either manually or using a deploy script (see my debugging tricks).

Wednesday 13 February 2008

RAID Types

I can never remember what RAID numbers mean what so in the interest of clearing yet another sticky note from my desk, here's a simple reminder post.

RAID 0 - Striped (fast)
RAID 1 - Mirrored (redudant)
RAID 5 - Striped with parity
RAID 0+1 - Striped and mirrored
RAID 1+0 - Mirrored and striped

Wikipedia has a really good, in-depth article for more info.

Wednesday 6 February 2008

Consulting/Contracting and Peter

So in case you haven't noticed the change to my profile I recently became a full-time contractor. In addition to working previously as an analyst programmer for Tourism Western Australia, I started consulting half a day per week to assist the Department of Education and Training with the migration of a number of sites to MOSS 2007. Last August I started looking to move on from Tourism to get out of government and the associated politicking, make private industry dollars, and extend myself a little bit (fortunately I was smart enough to turn down an offer from Commander). The consulting gig proved contracting isn't so bad so when a Developer Coordinator contract position was advertised back at Tourism I couldn't help but take the plunge.

Working as a consultant for DET is quite rewarding. SharePoint and MOSS actually behave in the DET environment. While they've gone down the customised branding path they've also stuck with OOB web parts so to date I haven't faced any really tricky problems; as the 'expert', I'm in a position I like to be in. Apart from that, a single developer has managed to put together three sites in a around three months so it's good feelings all around. and, by comparison, took nearly eight developers (on and off) and half the organisation a year or more to launch. That said, we were one of the first branded sites to roll out on the MOSS 2007 platform and we had many, many, many technical problems with an early MOSS beta.

I'm three weeks in to my contract at Tourism and I've been surprised at the differences not only between quasi-permanent employment and contracting but at the differences in conctracting for different agencies. I'm also reading The Peter Principle at the moment and trying to assess whether this Tourism "promotion" has allowed me to arrive at my level of incompetence!

Apart from the 40-hour week versus a 37.5-hour week and being conscious of the fact I'm no longer entitled to sick leave, public holidays, or anual leave, I'm also keenly aware I really need to earn my keep now--in other words, there's no room for incomptence. I was on a fixed-term public service contract (salary, holidays, sick leave, etc but with a finite contract term of two years) as an analyst programmer and was cheap to employ; as a contractor I earn a lot more money and cost my employer a lot more money. More importantly, my contract runs for a mere six months and in that time I have to prove my worth by working to a controlled work package to produce the expected output. Luckily I've been in a position to define the schedule for delivering that output.

At Tourism I work directly for the CIO and I'm tasked with fixing content deployment and some other big-ticket items. The Tourism CIO is an alright guy but he's reasonably new to the organisation and intent on running a far more controlled IT department than his predecessor. While I welcome the change, moving from the previous free-for-all situation to such a formalised, process-driven environment is a swing back in time for me as a former EDS employee. I know my abilities and know I will deliver what I'm asked to deliver (process or no process) so to have a really hands-on superior managing me so closely--at least initially--has felt overbearing at times. EDS was very formalised and process-driven but my managers trusted me and as a young go-getter I never felt the opportunity to become incompetent.

It's unfortunate that despite coming back to work for the same organisation I have to prove myself once again to the new CIO (our previous CIO left a year earlier). Realistically, I'm doing very different work in my new role so I'm happy proving myself to everyone, at least a little bit. I've also been paired with an architect mentor to assist me in making the transition. I'm comfortable with the mentoring arrangement and looking forward to learning as much as possible but I'm also confident in my own abilities, I know the software, and with such a shortage of developers in Perth I'm simply the best person for the job. I don't mean to sound arrogant but in reality I've been doing a lot of what's required of my current role for my entire career of four years.

At the moment this adds up to me questioning my abilities and desire to produce quality output. Sure, I need to win the new CIO's trust and to do that I have to deliver what's expected of me on time. I'm also finding I need to win my own trust and prove me to me.

All up, I'm enjoying consulting. Like most people (I assume), I'm happiest when I'm productive and at the moment I'm really pushing myself to be productive so I don't fall behind schedule. At the same time, I'm thriving on the added responsibility and despite being a developer type, I really love being outside my box and engaging with the team and the organisation. I've definitely found the lack of interaction with folks over the past two years a big downer.

Either way, it will certainly be interesting to see how I feel about all this in another six months!

Japanese Site Launched

The Japanese version of my favourite tourism web site launched on Monday. This is the second foreign language site rolled out by the team with no less than five more sites to come (simplified Chinese, traditional Chinese, Korean, Italian, and French). The German site launched before Christmas.

I was tasked with localising the existing site using the .NET resource system last year and rolling out new language sites are now a breeze from a technical standpoint. A preliminary posting on how this was accomplished with SharePoint is soon to be followed by a follow up piece examining another huge set of issues... stay tuned (or check out my posts tagged "Resources")!

Friday 1 February 2008

How to identify your SQL Server version and edition

This article tells you how to determine the version and service pack level for a given SQL Server and, at the time of posting, includes everything from SQL Server 6.5 to 2005 SP2.;en-us;q321185