What’s on my development laptop?

Fingerprints. A little peanut sauce. A Cthulu ’08 sticker (why vote for the LesserEvil?).

Oh yeah. I also have these program which are little anthropomorphized series of datawhich fight each other to death on a giant battlefield inside my computer in orderto keep Norton Antivirus from controlling my internet connection. I’ve upgraded mymain computers to Vista x64 (UAC OFF!), mainly because I like pain. Now that I’vebeen hostage to Vista for a while, I must say this about my captor: it’s not as asbad 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’tknow what MS was thinking with this thing. It’s got exactly ONE feature that I givea sh– about as a user. For all of the pain of a new operating system and Microsoft’scompulsion to MOVE EVERYTHING AROUND SOMEWHERE ELSE,Vista doesn’t really offer much to give you a better user experience. I like the command/search/launcherbox in the Start Menu. That’s it. That’s the only reason I don’t just run back togood old XP. One feature.

Anyways. We were talking about tools….

Development Tools

  • Notepad++: MonolithicIDEs and design surfaces and friendly talking A.I.s notwithstanding, coding is stillabout text. Notepad++ is a solid replacement for the pathetic text editor dumped inthe 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 sourcecontrol before I started working in code. Having a system that backs up your information…andit’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 hostedSVN at Beanstalk even though it’s simple to run your own repository. A couple of bucksa month is a bargain value for not worrying about the safety of your data.
  • CodeRushand 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 needto 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 paidthe right attention. Anyways. CodeRush is like Code Snippets on Spinach! At the flickof your fingers it creates classes and properties and all of the boilerplate codethat we seem to write constantly in our development processes.  Writing in ahigh-ceremony language like C# can be a pain. CodeRush takes the pain away. And itdoes 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 starteddeploying my projects with the MSI project built into Visual Studio. Maybe it wastoo wizardy. Maybe I just never learned how it worked well enough. The fault was probablymine. 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. NSISis an installer from a simpler day. It zips all the files together and then copiesthem to where they belong on the users system. Some simple scripts define the filesto include, where to put them, and where to put shortcuts. Upgrading is simply aboutrunning a newer version installer. Building is as simple as running a script. NSISmade my deployments simple and understandable.
  • NUnit: Test Driven Development seemsto be talked about everywhere these days. It’s an awesome methodology for making bettercode. I don’t do that. TDD means writing well architected code from scratch, all thetime. 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 aGUI or IIS. I can make changes and check for breakage. I can refactor. And…well…makingtests makes me thing about how my code could be better designed. Occasionally I doa little Test Refactored Development. That just makes me a better coder.
  • Telerik RadControls: The basic .NET controlsleave 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 mostadvanced 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, butI bought them to create a IMAP automation tool, and the result was quick, easy, andreliable. 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 freefor the folk who have paid).
  • StyleCop: Code which iswritten to a formatting standard is easier to read, faster to understand, and saferto change. I’m not particularly religious about the Code Style you choose, but youshould have one. Style Cop takes the uncertainty out of the process, since it hasa ‘OneMicrosoft Way‘ standard style for you to use, and it will check your code foryou. 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 screenafter the boss yells at you for showing up late to work after you chase that rabbitaround all night.

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