VS Live Toronto 2005 - 10% Discount Priority Code

VS Live is coming to Toronto again - April 13-16th. This year, the event will be right downtown on the lake at the Harbour Westin Castle hotel. Use Priority Code “BARRY” for a 10% discount when you register. You'll also save an additional $250 if you register early by March 16th. Toronto is a great place for a conference, especially when you factor in the exchange rate, this is very affordable for americans.

I'm speaking at this event, covering some of the methodology customization support in Visual Studio Team System and some new ADO.NET stuff too. Should be a lot of fun.

What are you doing for your summer job?

We have a very exciting internship project coming up this summer for a university student, perhaps co-op - but not mandatory.

This high-profile project is to develop a software system to monitor the various systems in a “green” home that is completely off of the power grid. The house is fed by batteries charged by solar and wind (and a backup generator). There are many other systems in place to optimize power usage throughout the house. Although this home is off the grid, it's not off the internet, so the software will have to publish it's information and allow remote access via it's 2-way satellite system. The software will also be developed in .NET, likely using the current whidbey beta.

You are a university student with some combination of electrical engineering and computer science. You are strong “quality-oriented” programmer. You have strong design skills and are good at listening and capturing requirement. The position will be located in southern ontario.

If you are interested, please send your resume to bgervin@Objectsharp.com .

.NET Celebrity Auction

Be a sport and click on this link:


Then make a generous bid. If you'll win, you'll get an hour (or more) of help from a .NET guru/celebrity (or possibly me). But more, you'll also be helping Tsunami relief efforts.

The top bid gets to pick their consultant. Then next, and so on and so on. If you are in southern Ontario, and you get me, I'll make it up to you by coming to your office - for a whole day, hang out, and bring donuts. What will I do? I can tell you everything I know about Visual Studio Team System (breaking all kinds of NDA rules, etc.), try to convince you to use data sets, do some code reviews, help debug something nasty, defrag your hard drive, organize your mp3's, tell you what DataGrid girl is really like, whatever.

I'm visiting Vancouver, Calgary, Ottawa, Montreal over the next 3 months so if you live/work near there, my offer stands, pending my schedule. I'll also be in Orlando possibly in June (for TechEd), LA in Sept (for PDC), and Chicago in August, so ditto on those as well.

For more info on how it all works....


And finally, special thanks to the other RD's who are volunteering their time (especially all those fellow Canadians). Last but not least, special thanks to Stephen Forte and Julia Lerman for organizing this.

Visual Studio Team System and XBox/Halo 2

What does project management, test management, defect tracking, build servers, methodology, automated testing, code coverage, and software diagramming have to do with Halo 2? I'm not sure really, but if you want both - then you need to come to the Toronto Visual Basic User Group meeting tomorrow night. I'll be doing a “powerpoint free” drive through of Visual Studio Team System AND raffling off an xbox console and a copy of Halo 2, worth about $270.  More details here: http://www.tvbug.com/

GDI+ Security Vulnerability

There is a new critical security vulnerability that affects a wide range of software that can't be easily patched through Windows Update. The vulnerability lies inside of GDI+ and can allow a maliciously formed JPEG image file to create a buffer overrun and inject malicious code - even through a web page's graphics...no scripting or anything.

Windows Update will go ahead and update major components but you also need to go to the Office Update site as well as update a bunch of other software you might have on your machine.

In particular for developers, the .NET Framework (pre-latest service pack) and even Visual Studio.NET 2003 and 2002 are affected and need to be separately patched.

The full bulletin with links for all the various patches are available here. http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx

If you go to Windows Update it will also provide you with a GDI+ Detection tool that will scan your hard drive looking for affected components. I strongly you recommend everybody jump all over this one quickly.

DevCan 2004

I'm co-chairing two tracks of DevCan coming up in Setp/Oct in Vancover/Toronto (exact dates to follow) - see www.devcan.com for more.

I'm doing the architect track and web track. If you have ideas for content you'd like to see, or have a topic you'd like to present in either of those categories, send them to me. You don't have to be canadian, but it helps :)

Unit Test Case Stub Generator for 100% Code Coverage

I've been a fan of Jonathan de Halleux's blog for a while now. He takes Unit testing to a new level with his mbUnit project. He's done some funky stuff with graphs. I really like his Reflector add in for generating call graphs and assembly references. For me, his add-ins were the reason for me to switch from an Anakrino to Reflector as my reverse engineering tool of choice (although I should have done that anyway).

I'm totally impressed with how much code this guy turns out in a given day. On Friday I was intrigued by his Automatic Unit Test Case generator - that is a Reflector add-in. He uses an IL graph to extract a code path to get full code coverage. OK so you still have to write the guts, but if  “the man” is making you write unit tests to demonstrate high %'s of code coverage, then this is what you need. Thanks Jonathan.

No wonder MS hired this guy.

.NET Rocks: Test Driven Development

I'm doing the .NET Rocks thing tonight regarding Test Driven Development with John Alexander. Now where is my harp.

Update: This show is now available for download. Click Here.

White-box Unit Testing - in whidbey

James Newkirk shows how to write a white-box test in Whidbey He shows how to test the value in a private field and invoke a private method. While you can (not so) easily do that today in NUnit, he demonstrates the PrivateObject class that lets you easily invoke private methods and look at private fields.

Could this “PrivateObject“ class be used for evil? Yes it could be used for evil - I imagine - but no more evil than that of reflection.

James has some great holy war type feedback about Should I or Shouldn't I white-box test. Those who say no probably haven't fought with unit testing a singleton class where we have to test it under multiple configurations that *normally* get set during the initial (private) constructor and/or the private methods called by the constructor. So yes, I can see a use. Is this an excuse? I haven't really thought of another technique....but to quote Michaelangelo, “I am still learning...” (via a silly set of fridge magnets I saw at Chapters today). The silly part of course is how one can learn from (and quote) a famous historical figure through something as silly as a fridge magnet.

Intro to Microsoft Solution Framework 4.0 and the Visual Studio Team System

I'm a certified MSF Practitioner. Great - how many of you know what MSF is? MS doesn't do a great job of marketing this “product” which is really a process or dare say methodology for the software development lifecycle. The angle MSF has over RUP is that it's derived from what MS does to build its own software and in the MCS group. Some key differences:

  • MSF talks about team roles much more that RUP does. It also talks about scalability and combining roles. The minimum team size that can use MSF is 3. Key take away: Never combine the testing & developer roles.
  • MSF is traditionally (and surprisingly) somewhat less iterative than RUP. I ignore that fact because iterations work and big design up front doesn't.

So along with the announcement of Visual Studio Team System, and all it's far reaches into the SDLC, it would only make sense that MS revamp MSF to fit in with this new toolset - and indeed MSF 4.0 is a deliverable of VSTS.

One of the new directions is that MSF now talks about competing process models...calling the existing one “Formal“ and the new one, you guessed it - “Agile“. Marco Dorantes' excellent blog has some interesting criticisms related to how those are distinguished.

For MSF 3.1 today, above and beyond all of the documentation to describe how it works, you also have a series of templates you can use in your own project. This would include an array of  “Plans“ related to Architecture, Development, Deployment, Performance, Security as well as various requirement and specification documents. There is also a handy Risk Assessment template which is great for prioritizing the project risks and if anything I recommend following a rigid risk mitigation discipline in your projects.

In MSF 4.0 you'll see other neato concrete things in VSTS like:

  • Work Items
  • Source Check-in Polices.
  • Document Templates (Word & Excel)
  • MS Project Templates
  • Reports
  • Project Portal/SharePoint site template

You can read more about this here.