05 July 2005

Guidance Automation Toolkit

"Using the patterns & practices of the Guidance Automation Toolkit, you can make reusable code and pattern assets directly available in Visual Studio 2005."

As long as there is still something left for a programmer to do...

02 July 2005

Agile Advice

Agile Advice

01 July 2005

Agile Summer School

Agile Summer School - 8-12th August, 2005. Training for Agile Developers.

Alas, I shall not be attending this one. I have spent my training budget for this year on an event at MS in Reading and Dr Neil's Extreme .NET. But it gives me hope for the future of the industry that there seem to be an increasing number of agile groups, events and courses.

This looks like a very good course, with days devoted to Mock objects and FIT.

30 June 2005

Let's go!

This is very retro... The classic game of Lemmings is now available online.

29 June 2005

Google maps

Google have added satellite images for the whole globe to google maps, very impressive, although the resolution is a bit patchy in areas. Also the UK seems a bit squashed.

AJAX Wars

Microsoft probably wouldn't like to admit it, but their products improve when there is competition. AJAX is an example of this.

22 June 2005

Lots of tools

Scott Hanselman has an impressive list of developer tools that he recommends. But surely you don't put all of these on one machine?

19 June 2005

Extreme .Net

On Friday I attended another Microsoft event presented by Dr Neil Roodyn, on the subject of Extreme .Net. Dr Neil is an entertaining presenter, very laid back. I was so impressed I even bought his book.

It was a packed day, and the slides should be available for download soon. Here are some of my rough notes:-

XP puts people first, then practices then technology, as it says on the Agile Manifesto people are more important than processes.

One book he recommended was "Software for your head" by Jim McCarthy. I remember hearing Jim McCarthy speak at VBits in 1996/7, he was fun too. His ideas seem to have been quite influential in the Agile movement. Certainly I remember him saying something about building early and often. Dr Neil suggests having a machine dedicated to doing automated builds continuously. And, rather like NUnit it should display red if it fails or green if it succeeds. He demonstrated a simple batch file that he uses for this. Simple things work. In a project the first things you should sort out are the build process and intallation. This is iteration zero.

I liked the idea of killing bugs as soon as you find them, rather than putting them in a database where they can reproduce.

He also talked about promoting XP within organisations, you need to sell it as being faster and cheaper. I would honestly never have thought of that, but apparently it helps.

A recommended tool was SSW Code Auditor which is a flexible rule checking engine.

He described using MSBuild from the command line and calling custom processes from the build process.

User stories should not take more than 2-3 days to implement. Break them down into tasks of less than 4 hours, and don't spend too long on planning, maybe a couple of hours a week.
Creating tests before code is building quality in up front. It makes you think as a user of the class rather than an implementor. Changes the way you write code.

There were some good demo's of refactoring support in VS Team System. Also Team System supports a TestProject type and a nice test coverage tool.
He also showed us code for testing GUI's, it seems to take more code, but using reflection you can automate GUI testing. Another demo was of testing ASP.NET and load testing a web server.

He talked about the MS Solutions Framework and it seems there may be an XP version of this on the way.

Mehra Nikoo has blogged on his experience of the event.

17 June 2005

Autistic Pride Day

June 18th is Autistic Pride Day.

Theme for 2005: Acceptance not cure


12 June 2005

MS Acrylic

Microsoft Acrylic - a new graphics package. Obviously, acrylic pixels dry much faster than the traditional oil ones.

04 June 2005

Acceptance testing

James Shore... Beyond story cards... and Fit.

Visio Stencil for UML 2

Download from here.

Grumpy Old Programmers

What do grumpy old programmers believe?

23 May 2005

Storytelling

Today's word is...

Storytelling.

17 May 2005

Smuntzwood

Have I mentioned Smuntzwood? It's the perfect site for anyone thinking of buying some handmade wooden furniture. Especially if you live near Ashcott in Somerset.

DeveloperDeveloperDeveloper Day

The slides from the Microsoft Developer Day at MS in Reading are now available.

There were some really good sessions, I enjoyed:-
Patterns of Data Access in .NET: described a lot of patterns and NHibernate.
Test-Driven Developer Toolbox: Unit Testing, Mocks Objects Stephan Schoenig: A very good demo of NUnit and NMock.
What's new with web services in .NET 2.0: I don't know enough about Web Services.

It was really difficult to decide which sessions to attend.

04 May 2005

Time travellers convention

I don't understand this Time Travellers Convention thing...

"If the time travelers don't leave us their secrets, we won't be able to go back in time and see our convention in all its glory unless it is publicized in advance. "

Surely it doesn't matter if you publicise it in advance or after if someone is coming from the distant future. Hold the convention and then spend the rest of your life publicising it. But, if no one comes then you don't need to bother to publicise it and you can do something useful instead. I know there is a paradox here somewhere.

Personally, I think we are all time travellers, but it's a one way trip.

And if I am proved wrong, thank heavens I can come back and edit this. Hooray for Blogger's edit facility.

29 April 2005

FxCop gives interesting advice. With it's help I've gone from a very simple and incorrect...
using System;
namespace calc

To a much more impressive and correct...
using System;
using System.Reflection;
using System.Security.Permissions;
using System.Globalization;
[assembly:CLSCompliant(true)]
[assembly: AssemblyVersionAttribute("0.9.0.0")]
[assembly: System.Runtime.InteropServices.ComVisible(false)]
[assembly: SecurityPermission(
SecurityAction.RequestMinimum, Execution = true)]
[assembly: PermissionSet(
SecurityAction.RequestOptional, Name = "Nothing")]
namespace Calc

What all this means is as follows:
[assembly:CLSCompliant(true)]
This marks the code as CLS Compliant

using System.Reflection;
[assembly: AssemblyVersionAttribute("0.9.0.0")]
Allows versioning by adding an instance of AssemblyInfo.cs. This is also seems to be where you can specify a keyfile for strong naming.

using System.Security.Permissions;
[assembly: SecurityPermission(
SecurityAction.RequestMinimum, Execution = true)]
[assembly: PermissionSet(
SecurityAction.RequestOptional, Name = "Nothing")]
Marks the code as having the minimal security permissions.

[assembly: System.Runtime.InteropServices.ComVisible(false)]
The code is not COM visible.

using System.Globalization;
Allows for some culture info to be used when converting strings to double sor vice versa. Nice to be told about this now, before I decide to sell my calculator in France. :)

And finally...
namespace Calc
The namespace identifier should use PascalCase. Tut, tut.

It's a fairly impressive start to a program, and I can understand why they keep all this out of all the simple example code you see. The other recommendation is that the assembly should have a strong name, which is definitely something I should look into.

27 April 2005


FxCop. A very nice utility indeed... Posted by Hello

FxCop

I downloaded FxCop and installed it. It is something like NuMega Code Review.

I opened my calculator project .dll and ran the FxCop analysis...

FxCop scans the code and checks it against it's built in rules database which is based on Microsoft's .NET Framework Design Guidelines.

Apparently there are 1370 rules to follow, so I forgive myself for making 12 mistakes. The code review is very helpful, for each problem it finds it tells you how critical the fault is and provides a link to a help page that tells you how to resolve the problem. This is a very good way to learn about the design guidelines.

For example, it picks up on any instances where you have used the wrong case for identifiers. Obviously the more experience you have the fewer issues there should be. Definitely something to run regularly before checking code in.