July 2006 Entries

Free Visual Studio Tips and Tricks ebook

I can't remember how I found this on the web (update:  This was found in the July 31st MSDN Flash newsletter written by John Bristowe), so if it was your site that pointed me to it, thanks. Infoq has a free ebook on Visual Studio .NET Tips and Tricks available here (registration required). It's a great resource for finding little things that you might not have known were possible within the 2002, 2003 and 2005 (Beta 1) versions of the IDE. It's a nice resource to take a read through. Most likely one thing will stick out and then stick...

Poker Night

Last night I was out playing some poker with friends (both new and old) at Justice's place. Although I've played a fair bit of poker online, this was my first attempt at playing live. This certainly was no high stakes game but it was one of the most entertaining evenings that I've had in quite a while. The mix of people ranged from experienced to a couple of guys that had never played the game at all. I figured that playing a live game would be quite a bit different than online, but I never thought...

Richard Campbell at Edmug Tonight

Tonight Edmug is having it's July event. Richard Campbell is in town and talking about SQL Querying Tips and Tricks along with some SQL 2k5 stuff. Drop by and watch his presentation. We will be handing out a number of different swag items including books, magazines and software.

NDoc 2 is dead

The fact that NDoc 2 will no longer be pursued by Kevin Downs is a drag. NDoc has been on my list of things to integrate into my build process for quite some time and losing it means that the Sandcastle project will now be unopposed in the .NET 2.0 arena. I'm not going to go off on some rant about how Microsoft has a monopoly and this is just one more area. I do however like competition in an area. I'm sure Sandcastle is going to be great, but in order to keep any product...

Code Monkey

Ah yes....finally an anthem we can all sing proudly. I've really been getting tired of Kumbaya in our cubicle. I'm especially happy about the section where "...manager can go and write logon page himself..." For your listening pleasure...Code Monkey

BSG Season 3 trailer

Season 3 of Battlestar Galactica is looking good. Gotta love the tune they picked for this trailer too. A little Hanna Alberta blue collar rock from Nickleback. Gotta love the Alberta boys.Battlestar Galactica Season 3 trailer

INETA Live Presentation on User Group Best Practices

I noticed to day that the Best Practices for Running a User Group webcast has been put up on the INETA Live site. Have a listen to Chris Williams, D'Arcy Lussier, Robin Edwards, Doug Ware and myself discuss a number of different topics relating to the operation of a user group.

Why I'm pushing for code coverage

Right now I'm make a push at work to increase the percentage code coverage by our unit tests. Let's just say that the numbers are very very low. But they are increasing. This morning as I was lying in bed I was wondering why I was fronting this initiative. I certainly have no qualms about making this push, but I'm trying to figure out all the reasons why. In the end I figured I would just put my thoughts down here.Last winter I spent a bunch of time working as a maintenance/support programmer on this...

Naming SQL Server Objects

In the final post of my series on naming conventions, I'm going to discuss some different ways to name some of the objects in your SQL Server databases. This topic alone could turn into it's own series, but for now I'm going to limit the discussion to naming tables, stored procedures and user defined functions. With all of these object types I have had two different naming constraints to deal with. The first one is where the development/data team has full control over the conventions used for naming all objects. Of course this is the perfect...

Naming Conventions for UI Controls

Moving from backend code that I've concentrated on in the rest of this series to the UI, today I'm going to discuss some of the naming conventions available for controls that are used on the user interface. Although the two types of controls (Web and WinForm) are quite different in their usage and functionalities, for the purpose of this post I'm going to treat them the same. Unlike data types where you commonly have the potential for an infinite number of custom domain objects, controls are usually pulled from a much more finite list (those included with Visual...

Naming Interfaces and Super (Base) Classes

The number of options when choosing conventions for the naming of interfaces and super classes is fairly limited. Like so many other things in programming, naming of these two things is most effective when the names are clear, meaningful and consistent. These three things will stand out far more than the choice of naming convention or spelling.InterfacesOf all the items that I'll write about in this series, naming conventions for interfaces will be the easiest. I have only ever seen one way of naming interventions in any project that I've worked on. Not only that, I...

When are scheduled code drops not enough?

In the past week and a half I've had some great conversations with one of my coworkers about the scheduling of our code drops. As background to those of you who don't work with me (which is darn near all of you), our current project has a set of scheduled two week iterations. Every two weeks we release the completed code to the testing team and they begin to test the most recent additions and fixes to previously found defects. While they are testing we developers carry on our merry way, writing code for the next set...

Class Naming Conventions

I'm over half done my Naming Conventions series and I'm starting to notice that my posts are getting shorter and shorter. Again, this post will not be large, but there are a few important points I want to touch on as I discuss the naming of classes.One of the very first things that I want to say is that, like any other variable, class names need to be meaningful. If the name of the class doesn't properly represent the business/domain object it represents or the functionality it provides it will not be effective. From a developers perspective...

User Group Leadership Taskings and Meeting Locations

Marcia McLean from the Cape Cod .NET User Group left a couple of great comments for me today. First, thanks Marcia for pointing out two things that I should have further discussed in my User Group series.Meeting LocationsMarcia's first comment was about the difficulties in finding adequate locations to hold events. We here in Edmonton have been very luck to get sponsorship of the facilities we require from the Edmonton Public Library. She makes a valid point that some places, such as Cape Cod, might not have the facilities readily available to them. One of the things that I want...

Property Naming

Once again I'm writing on naming conventions. This time I'm sure will be a short post to talk about conventions for publicly exposed properties. Like variables, functions, methods, classes, etc. property names need to be meaningful and informative to the programmer who is using the classes that you are writing. From the Framework Design Guideline book I found a great little excerpt by Krzysztof Cwalina which recommends that you worry about the tenses and readability of your properties when they are being used. Write a few lines of code that consumes your properties and see how...

Function and Method Naming Standards

After a brief pause, I'm all liquored up and ready to continue with the next post in the Naming Conventions Series. Today I'll discuss name standards that are used with functions, methods and overloaded constructors. I've decided to roll these three together as all, from a naming convention perspective, are the same. Unlike the past two topics that I've discussed (Local and Module variables), function, method and overloaded constructor naming conventions have two components. Of course there is the convention for the function or method name itself (non-issue for constructors as they must be the same as...

Women in IT

I've been in the not so standard situation to have worked with a number of females during my IT career. One place I worked at even had a 50-50 ratio of men to women (no it wasn't a two person shop). Never once have I had issue with the technical skills of any of the geekier ladies that I've worked with. I was reading the Sydney Morning Herald today and found this article about a calendar of Ladies in IT. You can go and peruse their website at www.itgoddess.info and you will notice that without question...

Module Variable Naming

As part of my Naming Conventions series I'm going to discuss the naming of module level variables. Naming conventions for module level variables are quite similar to those you might use for naming local variables. Rather than regurgitate the same information that exists in my previous post on Local Variable Naming, I'm going to concentrate on how to differentiate module level and local level variables.The list of naming conventions considered for use at the module level is usually quite similar to those considered for use in local variable situations. This list can include camelCasing, PascalCasing, Hungarian Notation,...

Cruise Control .NET in a multi domain environment Part 2

I wanted to revisit my post on Cruise Control. NET in a multi domain environment now that I have the problem solved. Well the problem wasn't really "solved" by me. Instead I was the beneficiary of a series of bad events. First, our build servers run on virtualized boxes. At some point in the last two weeks one of our virtualized build machines just disappeared from the network. When I requested that it be recreated it had to be done from scratch and in that process the server was mistakenly added to the domain. ...

Local Variable Naming

In the second post of my Code Naming Conventions series I'm going to explore how we could name our local variables. One of the nicest things about local variables is that their scope is quite limited. If the functions, methods and properties in your classes are kept short and readable you will find that tracing local variables back to their definition point is not very difficult. Just because It's easy to search out a variables definition that doesn't mean that you should neglect the way you name them. Having your local variables named consistently from one...

Consistency through Convention

Code naming conventions are a very touchy subject. Many developers will get very defensive about 'their way' and will be quite offensive, or offended, by 'your way'. In these posts I'm not going to try to change the minds of the easily riled. Instead I'm going to present options and opportunities with the hopes that they will be useful in the rare moments that developers are known to be lucid and open minded. I'm not going to pretend to be an expert who can pontificate on the subject. What I will do is present all...

Code Naming Conventions, The Series

While I was writing my last series (User Group Startup Stories) I noticed that the series idea helped to focus my attention, consolidate my ideas and forced me to put the digital pen to the digital paper. In light of this I'm going to start another series on a very contensious topic....naming conventions. I understand that people are very passionate, somewhat belligerent and quite opinionated about their favourite naming convention. Rather than trying to preach as an expert, I'm going to pick areas in code where naming conventions are used and I'm going to try to discuss...