Posterous theme by Cory Watilo

Filed under: Tools

What's on my development laptop?

Fingerprints. A little peanut sauce. A Cthulu '08 sticker (why vote for the Lesser Evil?).

Oh yeah. I also have these program which are little anthropomorphized series of data which fight each other to death on a giant battlefield inside my computer in order to keep Norton Antivirus from controlling my internet connection. I've upgraded my main computers to Vista x64 (UAC OFF!), mainly because I like pain. Now that I've been hostage to Vista for a while, I must say this about my captor: it's not as as bad as people say. As long as you've got a steaming hot lap warmer with 4gb of RAM, it performs just fine and with UAC off, it's not really annoying. Second....I don't know what MS was thinking with this thing. It's got exactly ONE feature that I give a sh-- about as a user. For all of the pain of a new operating system and Microsoft's compulsion to MOVE EVERYTHING AROUND SOMEWHERE ELSE, Vista doesn't really offer much to give you a better user experience. I like the command/search/launcher box in the Start Menu. That's it. That's the only reason I don't just run back to good old XP. One feature.

Anyways. We were talking about tools....

Development Tools

  • Notepad++: Monolithic IDEs and design surfaces and friendly talking A.I.s notwithstanding, coding is still about text. Notepad++ is a solid replacement for the pathetic text editor dumped in the O.S. by 'One Feature' Vista. Syntax highlighting. Regex search and replace. Tabs. If I'm not in Visual Studio, I'm editing text in Notepad++.
  • TortoiseSVN: All of the 'new developer' resources I read seem to beg their readers to use source control. I was using source control before I started working in code. Having a system that backs up your information...and it's changes...is magic. The amount of pain saved for very light cost is amazing. TortoiseSVN is a windows UI for the Subversion source control system. I use hosted SVN at Beanstalk even though it's simple to run your own repository. A couple of bucks a month is a bargain value for not worrying about the safety of your data.
  • CodeRush and Refactor Pro!: Currently I use CodeRush primarily for it's templating engine. I think this is because I'm a bit too lazy to figure out a code generator. I may need to give that a little bit of thought. I like MyGeneration, but it's CSLA templates seemed to be inadequate for my needs...perhaps I haven't paid the right attention. Anyways. CodeRush is like Code Snippets on Spinach! At the flick of your fingers it creates classes and properties and all of the boilerplate code that we seem to write constantly in our development processes.  Writing in a high-ceremony language like C# can be a pain. CodeRush takes the pain away. And it does a million other things as well. CodeRush will amaze you in your first 10 minutes. And then you'll still be learning amazing new things months later.
  • Nullsoft Installer System: I started deploying my projects with the MSI project built into Visual Studio. Maybe it was too wizardy. Maybe I just never learned how it worked well enough. The fault was probably mine. However, what I ended up with was installers that wouldn't upgrade to new versions, that were overly complex, and that I had to manually work with in deploying. NSIS is an installer from a simpler day. It zips all the files together and then copies them to where they belong on the users system. Some simple scripts define the files to include, where to put them, and where to put shortcuts. Upgrading is simply about running a newer version installer. Building is as simple as running a script. NSIS made my deployments simple and understandable.
  • NUnit: Test Driven Development seems to be talked about everywhere these days. It's an awesome methodology for making better code. I don't do that. TDD means writing well architected code from scratch, all the time. I'm not sure what well-architected code is yet. I keep learning new things, and I'm coming along, but starting with perfection is a bit hard for now. However, Test-Enabled Development? I can see if the things I'm writing without firing up a GUI or IIS. I can make changes and check for breakage. I can refactor. And...well...making tests makes me thing about how my code could be better designed. Occasionally I do a little Test Refactored Development. That just makes me a better coder.
  • Telerik RadControls: The basic .NET controls leave your application looking so generic, and while you can develop serious functionality, it's a lot of work. Telerik's UI controls make your product look beautiful, and most advanced functionality is just a matter of doing a good data binding. Grab your CSLA .NET objects, and you're riding a giant rocket mounted to a railway sled! Exhilarating. 
  • Mailbee .NET: I have barely used these, but I bought them to create a IMAP automation tool, and the result was quick, easy, and reliable. If your application needs to interact with email, I recommend these components. They aren't very expensive, and the developer keeps updating them (updates are free for the folk who have paid).
  • StyleCop: Code which is written to a formatting standard is easier to read, faster to understand, and safer to change. I'm not particularly religious about the Code Style you choose, but you should have one. Style Cop takes the uncertainty out of the process, since it has a 'One Microsoft Way' standard style for you to use, and it will check your code for you. Start checking your code with it, and your code will look better for the process. Plus it gives you some cool busywork to do, when you're staring blankly at your screen after the boss yells at you for showing up late to work after you chase that rabbit around all night.

That's my list for now. There's more stuff added  to it all the time. The focus of the next installment will be selecting the proper athame and grimoire for writing a daemon. Or maybe something having to do with cake.