Richmond Code Camp 2 : review

At 5:00am on Saturday morning, I headed in to downtown DC to get some prizes and a few books from the Thycotic office.  Then off to collect Ryan Olshan at 5:30, and John Morales at 5:45.  We hit 95 and headed south for Richmond.  The drive was uneventful with most of us still in pre-coffee haze and Bob Marley playing.  We got to the Code Camp at the ECPI center well before the kickoff time and claimed our hard earned coffee and bagels (outstanding cream cheese from Panera!).

The turn out was good – over a 100 people I think.  I started with a session by Joe Waldin on VSTO – I had tried downloading the new beta of VSTO and had problems getting a sample add-in to compile.  Joe worked through all the quirks and gave some great tips and advise for deployment.  It sounds like Microsoft has made huge progress on the ease with which add-ins can be developed but still have a few wrinkles to iron out on the deployment process.  Next up was a Podcasting session by Frank La Vigne (Tablet PC MVP) – we have recently been videotaping a series of Thycotic development team presentations and the idea of a podcast to share some of the public stuff had come up.  Frank walked through the tools and tricks of recording your own podcast and also got into the gory details of the XML to publish your feed.  Look for an initial Thycotic team podcast soon …

Now it was my turn, my session was titled simply “Refactoring”.  I went slideless during the last Code Camp in Reston and had so much fun that I wanted to do it again.  First problem, the projector didn’t work – not expected at all since I was not the first session of the day!  I walked through the introduction to Refactoring where I used Bob Martin’s explanation about “if ain’t broke, don’t fix it” and explain that software can be considered broken if it doesn’t meet all 3 requirements:

  • it works (hopefully this means that your unit tests pass)
  • it is easy to change
  • it is easy to read and communicates its purpose clearly

Next we jumped into the code and used Bryant Smith’s (another Thycotic team member) C# conversion of Martin Fowler’s refactoring example.  This involved Movies, Rentals, Customers and a nasty looking Statement method.  Lots of discussion occurred including why static methods are often a bad idea and how data and operation should be related.

Next was John’s session on “ASP.NET Performance Tuning”.  This is something close to John’s heart as he really likes to get in there and tweak away whenever possible but he has a method! (standard best practices for Performance Tuning … measure, measure, measure!) and the tools to support it.  John used Application Center Test to produce a repeatable test to produce load and get some timing numbers for some simple tasks in the web application.  After finding the slow points in the application (the application under test was our very own Secret Server), he pulled out DotTrace 2.0 from JetBrains and showed how to drill down into the problem area.  John had made some initial guesses as to the cause of the slowdown but then showed through careful measurement and profiling that the cause was something else!  Veterans of Performance Tuning will be smiling right now – it is very common to find that your guess is completely and totally wrong.  This was John’s first solo session at a Code Camp and he did a great job both with his pace through the material and engaging with the audience.

Last up was my session on “Web Application Testing ASP.NET with NUnitAsp and WATIR (and even WatiN!)” which was a hands on coding session playing with all 3 tools and talking about best practices.  We also talked through the contrast in testing techniques since NUnitAsp tests at the HTTP level whereas WATIR and Watin use Internet Explorer automation.   In the age of AJAX and sophisticated Javascript this is a big plus (NUnitAsp cannot test Javascript).  The WatiN framework was a happy surprise when John IM’ed me about it at 11pm on Friday (yes, the night before).  It is the equivalent of the WATIR framework but for .NET … why is this cool?

  • All our existing tools work with it (TestDriven.NET, NUnitGui, Build scripts)
  • The developer team doesn’t have to learn a new language (no matter how much fun that might be!)
  • <flameretardant>It also seemed to execute much faster than WATIR!</flameretardant>

I hope to post more about Watin as we experiment with it.  We have a HUGE amount of testing code in NUnitAsp so a migration is probably out of the question but it would be fun to try it on new work. 

Jonathan Cogley is the CEO and founder of Thycotic Software, a .NET consulting company and ISV in Washington DC.  Thycotic has just released Thycotic Secret Server which is a secure web-based solution to both "Where is my Hotmail password?" and "Who has the password for our domain name?".  Secret Server is the leader in secret management and sharing within companies and teams.

No Comments