Monday, January 02, 2006
Every developer has some glaring omissions from his/her toolbox. I just found one of mine: Chris Sells' XmlSerializerPreCompiler. I honestly don't know how I managed without it thus far.

Now that I mention it, here's a short (?) list of tools I constantly use as a developer, at work and elsewhere:

  • I've said it once and I'll say it again, JetBrains' ReSharper is absolutely indispensable to any serious .NET developer. It's worth every penny.
  • Roy Osherove's The Regulator is so far the best regular expression IDE around. It has its issues, though, so I can't wait for version 3.0. Best of all, it's completely open source!
  • My XML IDE of choice is Stylus Studio, which I find preferable to Altova's XmlSpy. Both cost mundo bucks though.
  • Enterprise Architect combines the UML powerhouse features of XDE with near-Visio ease-of-use. It's not perfect (not even remotely) but is definitely the best modelling tool I've used to date.
  • Cygwin whenever I need anything from the GNU realm (in particular GCC and Unix-oriented open source tools).
  • NDoc is the best thing since sliced bread. I use this open-source tool whenever "hardcopy" design/code documentation is required, or whenever I want to provide an MSDN-like reference to an API.
  • GhostDoc saves many a pointless keystroke. Just Ctrl+D and you're 50% into your XML documentation. Brilliant in simplicity and absolutely stable. Best of all, it's free...
  • Total Commander has replaced Servant Salamander as my Norton Commander clone of choice. I still can't understand how people manage to be productive without an NC-type file manager.
  • NUnit comes in handly when writing test and test-driven code. I'm not a big fan of TDD (to be fair, I never got the chance to try TDD hands-on on a large scale project), but whenever it comes up it's practically synonymous to NUnit. Make sure to install TestDriven.NET as well.
  • One of the best debugging and reverse-engineering tools around, Ethereal, also happens to be open-source. I can't even begin to count the number of times this tool has saved my ass.
  • The single most comprehensive tool I've ever come across is the ubiquitous Google. Make good use of it...
  • I use Process Explorer, psexec and pskill from SysInternals about 20 times a day. Mark deserves knighthood (or maybe half the kingdom) for making these tools.
  • Any .NET developer would do well to know Lutz Roeder's classic Reflector. It is as indispensable as the .NET framework itself.
  • XMPlay and Sennheiser HD600. Music is life.
Tuesday, January 03, 2006 1:26:55 AM (Jerusalem Standard Time, UTC+02:00)
1/ 100% on ReSharper, can't wait until they will hammer out all the bugs in the 2.0 release.

2/ The regulator is cool, but it has two problems, it doesn't run as non-admin :-(, and it doesn't let you slice and dice the text the way you want it. The best tool for that that I've found was actually VS.Net text editor, since you can do all sorts of neat stuff. (By that I mean things like, turn those 500 inserts statements into update statements, etc).

3/ Don't do a lot of XML, so Notepad2 or VS is good enough for me.

4/ I can _read_ UML, but I've hard time writing it. I much rather write code and then play with the class digaram in VS.Net to produce the pretty pictures.

5/ Cygwin - I don't use that although I do use several tools from Unix (wget, grep, etc), I use the win32 bits.

6/ NDoc & XML Comments are the spawn of satan. I use Natural Docs when I can't get away with saying that good code doesn't need documentation :-)

7/ GhostDocs is great, 100%.

8/ I tend to just use a couple of explorer windows open. I now get _annoyed_ when I see half my screen being taken by another view of the file system.

9/ NUnit is cool, MbUnit is also nice. TestDriven.Net is a god sent.

10/ Ethereal, I used a couple of times, although usually to track what other applications are doing. I will probably need it one day soon.

11/ Anything from sys internals is worth using.

12/ Reflector should be integrated into the VS.Net IDE to the point where I can click on a method and it will show me the source from the de-compiled assembly.

13/ WMPlayer.exe works for me :-)
Tuesday, January 03, 2006 10:17:04 AM (Jerusalem Standard Time, UTC+02:00)
2. Those are the two least problems - it has loads of bugs and is very crash prone (plus, try entering a : anywhere without having to muck about with parentheses as a workaround). But it's still the best out there for creating and debugging regexes - VS doesn't run your regexes, nor does it have syntax highlighting.

3. I do quite a bit of XML, and Stylus Studio has proved indispensable. For editing XML Schemas and particularly XSLTs it's light-years above what you can do with just VS or Notepad2.

4. Knowing basic UML has IMO a lot of advantages when discussing code and design with colleagues, or when creating documentation -- it's a lot easier to explain your class structure when there's acceptance of a fundamental way to draw it on a whiteboard. It might seem trivial, but it's dead useful for big projects. I naturally prefer to write code, but it's no replacement.

5. wget is da b0mb :-)

6. There's nothing like XML documentation to save you the bother of having to look at your function definitions every now and then. Sure, right now it's obvious that a call to ControllerProvider.Navigate takes a certain enum as Direction and a float between [0..1] as Weight, but it's not going to be that obvious when you update the application in five months. Plus, if you have to document an API there's no better way of doing things - it's easy to maintain the documentation, you hardly ever forget to update it and you don't have to deal with the tedious bits of documentation templates.

8. My TC window is consistently hiding behind some other windows (say, Thunderbird or Visual Studio). Whenever I need to do any work with the file system I just switch to it. That said, whenever I do ANYTHING with Windows Explorer I feel like beating the shit out of whichever Microsoft UI designer is responsible for the original file manager in Windows 3 for not learning the lesson and imitating Norton Commander or even XTree Gold - or buying one of the two outright.

12. I think there's a plugin that does that, no? I basically prefer to keep the low-level stuff (disassembly, decompilation) outside the scope of my day-to-day development environment.

13. Ewwww. It's huge, it's slow and it has the worst EULA known to man. No way in hell, no way.
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, super, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview