So, as a .Net developer, there are a few “primary” tools I use, all for under $100.
I thought I would spend a quick blog post to describe these tools a bit, how I use them, as well as what they are.
First and foremost, over my many years of development, notepad has been my friend, some people will say “notepad++” or “notepad2” or some other derivative of the same application with a bunch of extra functionality. But to be honest, sometimes I prefer the simplicity of notepad over a lot of other applications for simple scripting, html programming, PHP programming, as well as quick build of applications (more on that in another post).
Some great features for notepad are number one, the speed, the application is super fast with a super small memory foot print. There are restrictions on the size of files, and it is possible to crash the application, but by far, it is probably one of the most stable programs on my computer. Another great feature is the line/column position that shows up in the status bar, *you do have to enable it from the View menu*.
This is literally another “have to have” applications. For about $40, you can’t beat the basic feature set. I use this program for taking notes during meetings with staff, customers, or just for myself to remember. With the ability to have multiple notebooks with multiple categories that contain multiple pages with the addition of sub-pages to those pages, it really helps my organizational pet peeves really find a home. Each notebook is stored in a single “always saved” file, it can be shared, or ran locally, as well as transported between multiple computers with much ease. The “always saved” feature basically means, you never have to press save, you just click and type and its saved. As far as simplicity and ease of use, this is “the” note taking software. I am actually writing my book in this application, then when I finish chapters, I transfer them over to Word (formatting is kept). You get simple formatting, everything that you would expect from a Microsoft text editor, as well as full customization of the background and templates. Finally on the note taking part of the application, you simply have to press WIN+N to open up a new note, or WIN+SHIFT+N to open the last notebook you where editing.
Another HUGE feature for the application is the screen capture utility, simply press WIN+S and all screens get an opaque overlay that allows you to select any area on the screens. From there you have a few options in how that data is captured, it can either be saved to the clipboard only, placed in a new “note” and kept on the clipboard where it then displays, or simply “filed” in a new note and kept on the clipboard. This has been THE tool that I use for making tutorials, some people rave about other screen capture tools, but for me, this is the easiest for me, one key stroke, and I can quickly choose what I want a screenshot of. By the way, all screenshots in this blog are taken with OneNote.
The application runs in the Tray, and has a “light” memory footprint (250k), for what it does, I would rather run this than the alternatives. The tool is so great, that it replaced Notepad for my note taking tasks.
Some people will definitely argue with this one, but this is a key communication point for myself, whether working with people in the office, or people working remotely, this application is much better than a phone call or getting up to walk across the office to speak to someone who might not be there. For most “non-critical” communication I will simply fire off the question to the person I need to talk to, and when they come available, or online. The offline messaging ability for the newer messengers really allow me to communicate better with people, especially those in other time zones. Sometimes questions or communication is so small that an email just isn’t necessary. I log everything that I say or do in MSN Messenger, which makes it easier to go back previous communications, and I backup all of my history. I have literally 6 years worth of MSN Messenger logs that I can pull back to search for questions I have asked other people, links people have given me, or simply try to remember some specific communications.
I turn off a lot of options, specifically the window flashing and sound notifications, as when I am programming I don’t like to get interrupted with flashy distractions.
Microsoft Visual Studio
This one is kind of one of those no-brainers. If you are doing .Net development, you are probably going to be using Visual Studio. The great thing about this piece of software is that you can get some stripped down “Express” editions for free from Microsoft, and shelling out a few hundred bucks, you can pick up the standard edition with multi-programming language solution support. I’m not going to really go into detail why I use this software, but it does grant a mention in this post as it is one of the “tools of the trade.”
.Net Reflector, recently purchased by Red Gate Software, is a tool that allows you to disassembly and read reverse engineered code from .Net assemblies in all supported managed programming languages. If you ever wanted to know how someone did something, simply use this tool to view the source code in your own programming language. There are a few issues where you cannot copy/paste source code directly from the disassemble and compile it, but you shouldn’t be stealing source code anyway, this tool is for educational purposes, as well as debugging only. There are MANY plug-ins for the application available open source from Codeplex. I personally use the Code Search Add-in. Red Gate promises to keep the software free, but you probably will never find the source code for the application available to the public.
Bug Tracking Software
I’m going to cover this as fast as possible, but basically you “must” use bug tracking database of some sort, Joel Spolsky of Fog Creek Software says so in his 12 Steps to Better Code, and me, I believe him. But no really, using bug tracking software helps you identify, track, and plan features and application bugs. Depending on your bug tracking software, you can get a lot more, or a lot less. If you don’t have the extra money laying around to afford some huge software bundle (such as Test Track, or FogBugz), use notepad, use OneNote, use something, period.
Source Control Software
This is another one of those “if you don’t have it, you are wrong” pieces of software. Also discussed in the 12 Steps to Better Code. A good source control package should contain at the minimal, versioning, rollback support, “some” sort of integration into either your file system (such as CVS and SVN), or into Visual Studio (Surround SCM, Team Foundation Server). Source control is another subject less talked about, but most needed, and in later articles I will go over some of the practices that I have implemented as the Source Control “master” for my company.
And there you have it, those are the tools that I use on a daily regular basis, without these tools, I literally would just be lost and unable to function, they are that important to me. There are some other tools that I use as well, such as this application (the one I am typing this blog with) Windows Live Writer. It allows me to easily publish blogs, and spend as much time as I want tweaking them, writing them, etc… with local draft support, and multiple blog posting from a single post.