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.
- 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.