Tools

First Impressions - Visual Studio 11

Last week I attended one of Microoft's "Windows Camp" developer days looking at Windows 8. The morning was a series of informative talks, followed by a hands on lab building a Windows 8 Metro app.

One of the highlights of the day was the opportunity to use the beta of Visual Studio 11, and the experience of working in such a visually different environment.

It doesn't suck.

Working with fxCop

So I've finally managed to get fxCop officially adopted on a work project (*). Better yet, thanks to an upgrade, we now are using the Ultimate Edition of Visual Studio: I no longer have to use the command line of fxCop . Instead, It's integrated right into the build.

Of course, no improvement goes unpunished.

Gource for Software Visualization

At this weeks .NET user group, a friend mentioned Gource, a tool that generates a dynamic visualization that shows how a project evolves over time, based on the commits made to source control.

After finding one movie on the Xero blog, I decided to have a go and see what it looked like when run over a large project I've worked on for the last couple of years.

It looks gorgeous:
[img_assist|nid=353|title=|desc=|link=popup|align=center|width=512|height=384]

Wierdness with Fitnesse

[img_assist|nid=242|title=|desc=|link=none|align=right|width=128|height=128]I ran into something really weird with FitNesse (the acceptance testing framework) today.

Chances are, it's something I've done wrong - but I can't work out what. If you know, please comment below!-- Updated below with the solution.

Boiling the whole thing down into a simple test case, what I've found is the following.

Synergy

[img:5 align=float_right]Synergy is a useful wee utility that allows you to share a single keyboard and mouse across multiple machines - kind of a software equivalent to a KVM switch, but for keyboard and mouse only. This is very useful if you have two or more machines located next to each other. While I've used it to link two Windows XP machines, Synergy has support for a wide range of operating systems, including Macintosh, Linux (and other Unix variants) and the Windows 9x series.

Here's a walkthrough of how I set up Synergy to share my keyboard and mouse between two Windows systems.

First Impressions of Google Wave

At their recent developer conference, Google gave the delegates a sneak peek of their new product, Google Wave. You can see the Google Wave demonstrations for yourself on YouTube.

Disclaimer: I've not used Google Wave at all, just viewed the release video and read a bunch of other commentaries. My comments below (in italics) are based on their developer early access preview and things are likely to change markedly between now and release.

So, what is Google Wave?

Going to Oslo

I’ve started looking into Oslo, the new model driven architecture from Microsoft.

In many ways, Oslo looks promising – finally, a way to move to a higher level of abstraction. If they do this right, they really could achieve their goal of improving developer productivity 10x.

What I’ve seen so far does raise some interesting questions though …

Tracking Warnings with TeamCity

A project I’m involved with is using JetBrains TeamCity as the continuous integration environment.

One of the metrics we wanted to track on this project was the count of warnings produced when compiling. We hoped that, by giving the warning count visibility, we’d be able to gradually reduce the number of warnings over time.

It turned out that adding this into the statistics tab of our TeamCity environment was pretty easy – easier in fact, than counting the warnings.

Reflector

Lutz Roeder, author of the Reflector tool, has sent out an email burst with this announcement:

"After more than eight years of working on .NET Reflector, I have decided it is time to move on and explore some new opportunities."

Roeder's Reflector software is one of my must have tools - a key instrument that helps me to answer "Why does it do that?" and "Is it possible to ...".

It's likely that the return address on his email burst is unmonitored, but just in case, I wrote back to say:

NUnit Best Practices

I'm always looking to do things better tomorrow that I did yesterday - and to that end, I find other peoples "Best Practices" posts endlessly valuable ... not that I always agree with them of course, but I do enjoy being challenged to think.

Go read NUnit Best Practices, a fairly recent post by Scott White.

How many of Scott's 7 NUnit practices do you agree with? How many do you follow? Why?

The Best RSS Reader

After using both RSS Owl and RSS Bandit for simply ages, I've finally found an RSS Reader that works the way that I want - and it was under my nose the whole time.

Mozilla Thunderbird.

That's right, Thunderbird. The RSS Reading experience is dead simple - you subscribe to a bunch of feeds, and they show up as mail folders. New postings appear as new messages. Couldn't be easier or simpler.

Living with StyleCop

I've been trying an experiment - having integrated StyleCop into my build scripts (using StyleCop.cmd), I've been working to reduce the number of violation messages that it reports.

The key is that I haven't spent very much time making changes just to keep StyleCop happy - rather, I've been continuing development as normal, writing code, fixing bugs and so on, but with half an eye on StyleCop's metrics.

More on StyleCop

Over the weekend I spent more time with StyleCop, bringing a representative sample of code in line with its recommendations.

Fridays intuition has proven correct - there are a handful of rules that I'll disable, but most of the rules are useful, leading towards more maintainable code.

One frustration I found was the lack of a commandline version - the standard download includes Visual Studio and MSBuild integrations, but no commandline version.

So, I've written one.

As soon as I've finished testing it, will post here as a download with source.

StyleCop for C# Coding Standards

StyleCop, newly released by Microsoft, is a tool for C# developers.

In some ways similar to stable-mate, fxCop, StyleCop analyses your C# source code for compliance against a set of rules that embody Microsoft's own style conventions for C# code.

Yesterday I trialed StyleCop against a representative sample of my own code, with interesting results.

Continuous Integration with TeamCity

I've been spending some time recently setting up TeamCity, the Continuous Integration server from JetBrains.

Why TeamCity and not CruiseControl.NET?

In my opinion, TeamCity is far more approachable and usable right out of the box. Configuration is through a polished web-based front end. Documentation is pretty good, but most of the time you don't need any docs at all because the UI walks you through the process.

Git

Today I was listening to a recent episode of Hanselminutes, where Scott Hanselmann interviewed three guys from Planet Argon about the source control tool Git. I originally heard about Git some time ago and didn't pay it any heed - having heard the show and done some follow-up research, I'm beginning to think that Git would be worth further investigation.