Tuesday, March 28, 2006

Team System Experiences : Virtual Server

If you don't have access to a test TFS server then its a must. Especially if you haven't yet had the chance to play with it. You can take advantage of undo disks too which is really handy. If you have enough space and I/O is quick then you can also make a base "install" virtual server and then copy from that base virtual server for each time you try something different.

With the virtual server or (test server) you can add as many process templates as you like, eg the new scrum template from conchango. And you can make as many customised templates as you like as well... a must for anyone seriously considering adopting Team System.

Once you are familiar with Team System and all the various components then you are ready to embark on your production installation. Make sure you install it exactly as directed in the accompanying help chm. Your production TFS is where you want to keep things as tidy and organised as possible. The only exception is that you might want a test project that you use for setting up your builds (eg you are trying to get a solution containing a web project to build on the build server).

TFS died, SQL not responding

Our TFS died over the weekend.

SQL Server 2005 standard - wouldn't respond to anything. Could have been a hotfix we applied but we haven't been able to find anything on the net regarding known issues, I suspect its just some stupid combination of errors but we can't find out what. The eventlog doesn't have any real info other than a single error type. Trying to connect locally, even after reinstall of sql, (and remove hotfixes and then reinstall sql, and all other sorts of things) would always give the same error, "shared memory provider - no process at the other end of the pipe". All the info out there says to change the client protocol settings. We spent over 2 hours on that alone, trying and retrying every combination. Everything was working fine on Friday.

Really frustrating. Our project has lost all of Monday. Its Tue morning now and we have the task this morning of rebuilding the TFS from scratch and hoping it all comes up okay. That means its probably more likely to be 1.5 days lost.

If you are thinking about using TFS in a high demand environment (one where you cannot afford to lose a couple of days) then it might be worth investing in some load balancing and clustering. Or at least some kind of standby hardware that you can call upon at short notice.

I am reading through the TFS move types at the moment and also reviewing the installation guide.

By lunch time I hope to have all the team able to check things in again (and our client be able to access the portal!).

PS: the updates installed before the SQL problem were 912475, 913446 and 911927.

The latest - we have reformatted the server, reinstalled RC from scratch. Now going through the process of "moving" the existing data back onto the tfs server.

Saturday, March 25, 2006

MVP in .NET

Something that the .NET framework class lib could do better is have base classes for things that are different between win apps and web apps, eg list controls, event args.

We are attempting the Model View Presenter (MVP) pattern for a project right now and the above hurdles have been the major ones so far. So we have had to create our own event args and List<SimpleListItem> that are not dependant on system.web.dll (using System.Web.UI.WebControls;). otherwise what is the point of decoupling from the view if you still have to reference system.web.dll in your presenter (eg when you use it in a win app)??

FCL people, is it possible to get this in future versions to avoid the work arounds?

PS, initially I thought the MVP pattern was to imitate your favourite Microsoft Valued Professional, so I got my hair cut off in an attempt to imitate Paul Glavich. It was only afterwards that I realised... it takes a long time to grow hair back. A lot longer than it takes for Glav to karate chop me for being so cheaky.

TFS, CCTray and emails

What a week. Looking forward to a weekend with the family (and cars
on the road, spending sat night out of town).

We are using the Khushboo CI tool for continuous integration. It does
a great job at triggering builds when a check in occurs. The gap
though is notifying the development team of the build result. IMHO CI
isn't CI unless you have immediate feedback to the team. Its too easy
to throw something into source control and get caught up doing
something else - I do it all the time. Only to find that I forgot to
check in the changes to the unit tests or something like that.. you
get the point. In TFS you can set up an email alert whenever a build
completes (Team menu > project alerts > build finishes?), or you can
use the RSS tool that is out there somewhere (sorry, its late here, no
links for this post). The email one is just annoying after the 100th
email. RSS seems too delayed.

TFS needs something like the CCTray. Pre-TFS we used CCNET and found
it was fantastic. I know there is the VSTSPlugin, but it doesn't take
advantage of subscribing to the checkin event, so has to poll all the
time (eg each minute). I also no longer have a need for the web app
that comes with CCNET since all that info is in TFS. That is why we
are using CI. Its just that the emails are cluttering up my inbox. I
already have alerts for all the document folders and discussion forum
in the TFS team portal since our client is able to post questions and
documents there...

So, has anyone managed to accomplish this with TFS and CCTray? If not
then I am going to investigate further.

Have a good weekend.

Scotty.

Tuesday, March 14, 2006

VSTS feature of the day

Not sure if you have realized but when you rename a class file it also
renames all references of the class. Also in Team Explorer you easily
rename files you have already uploaded to the portal (eg like when you name
project files with a date stamp only to realize you are using 2005 instead
of 2006), just right click it and click Rename. Too easy.

Sunday, March 12, 2006

TFS Experiences

At some point over the coming weeks I plan on writing about my TFS and VSTS experiences at Talman. Here are some of the things I will cover:



Having a virtual server to test everything.
Installation and licensing.
Choosing a process for your organization.
Continuous Integration, builds, web projects.
Project Management, what tool for what purpose.
Unit testing
Design patterns.


Feel free to ask any questions or request other topics/issues relevant to you.

Short hair

I got a hair cut on Sat, I used to have long hair, I don't any longer.
My wife and 11mth old son are still adjusting. It will be
interesting to see the reaction on Monday at work.

Thursday, March 02, 2006

MSBuild complete reference

If you are having trouble finding the complete reference for MSBuild like I
was, then look no further than right here. It is for MSBuild as the NAnt site is for NAnt in terms of reference material. I always found the NAnt site to be really useful while trying to do things like exclude projects, copy files and so on. I haven't had a chance yet but will be attempting to exclude a web setup project from the team build for our tfs project.