The "Tech. Arch."

Architecting Forward ::>

Tools

My absolute top-10 tools:

  1. CodeRush – Coding in C# using CodeRush is amazing as it makes it so much easier to see the structure of your code (e.g. identing, where transfer of control statements like throw/continue/break go to , visibility/scope of your members, …), allows extremely fast coding through the use of control keys (e.g. ps creates a string property) in a way that goes way beyond the notion of code snippets since it is using a macro-like mechanism, as well as refactor your code effortlessly (e.g. you can extract code fragments into their own methods, extract strings into constants, …). I defy you to use it for a month and then give it up!!! (Watch the intro here).
    Btw, Mark Miller, the author of CodeRush is amazing. Listen to him on some of the DotNetRocks podcasts and you’ll know what I mean…!
  2. Poseidon UML (and its new cousin Apollo) – I have used many modeling tools (and have even participated in commercial development of some during my Foundation and Eagle days at Accenture) but Poseidon has outstanding high usability which allows you to “whip” a model in no time at all. Gentleware was one of the first companies to support UML 2.0 and their expertise shows. Even though I am not necessarily a fan of all things UML and am following the DSL & MS camp, I will take Poseidon for a ride any day over the Visual Studio Team Suite designers. Microsoft has a lot of catching up to do in usability there. Plus as much as I like automatic round trip engineering in VSTS, I don’t like the idea of creating code when I am just modeling so I can either understand a business domain or design at a conceptual level. Microsoft, please try this tool and learn from it to make VSTS great!
  3. Microsoft Visual Studio Team Suite – I have used all versions of Visual Studio, NetBeans, Eclipse, and proprietary IDEs (TurboPascal anyone?). Microsoft really raised the bar with VSTS.
  4. Ruby In Steel – I love Ruby and VSTS, so Ruby In Steel lets me indulge in Ruby (and Rails) development straight from inside Visual Studio. Then you forget all about C#, .NET, ASP.NET and LINQ, why all that if you have Ruby On Rails! :-). Did I mention they also have a free personal edition?
  5. Adobe Photoshop Elements – I got hooked after buying a Wacom Intuos tablet, which bundled the software. It’s great for image design and editing for either web development or personal picture editing. (I also love Premiere Elements btw)
  6. Firefox – I have been faithful since the early days. For work, the plugins such as Web Developer, XML Developer, Live Http Headers, Tamper Data, and Grease Monkey, are absolute must-haves if you develop web sites and web applications.
  7. .NET Reflector – Lutz Roeder wrote a formidable tool which let’s us inspect any .NET assembly. Great to learn how a 3rd-party assembly works. But also great to verify the version of the assembly you have in a given environment to make sure it contains your precious latest changes! A huge time saver.
  8. TcpTrace – Back to the basics of what the http protocol looks like. If you are a web service developer, this tool will save you time and time over. You can setup a capture/port forwarding and inspect all traffic between the web service consumer and the web service provider. You will see exactly what is being sent at the http protocol level. This is where you will discover the nasty typo in your SOAP which is preventing proper deserialization for example.
  9. Wink – This open source functional equivalent to Camtasia is very powerful and allows you to record screen activity, edit it, add callouts etc, and turn it into a Flash movie. This is great to create tutorials and demos.
  10. Beyond Compare – This is an excellent and blazingly fast file replication and comparison tool. Could not live without it.

A few other tools I could not live without:

  • WhiteBoard Photo – As an architect I am very often drawing diagrams on the whiteboard during meetings. Then when the meeting is over, you usually don’t have time to draw it on paper. WhiteBoard Photo comes to the rescue! I usually take a picture using my phone (even at an angle), download the picture to my PC, open it up in WhiteBoard Photo, pin the 4 corners of what I want, click Clean, et voilà ! The perfect one-trick pony: the software stretches back the image using the corners you specified, filters out colors others than the white of the whiteboard and the standard colors of the markers and make the picture completely amazing. See the before and after here. Wow! Cool!
  • Audacity
  • ProcessExplorer