A very common question that I get asked by people is; what tools do you use to complete your development and what type of system do you use. Now, I believe I have written a bit about this in the past, but I thought I would take some time to go through and give a bit of a detailed overview of what I use for development and why I have selected the hardware and software that I have. I will cover this in detail from both the hardware and software point of view.
When it comes to hardware I have two systems that are primarily used for development purposes my desktop where about 80-90% of my development is completed and my laptop which is used for the rest of the time. The details of each will be laid out below.
My desktop was actually purchased from BestBuy late in 2008. Prior to this system, I had always built my own, but prices recently have been so cheap that it wasn't cost-effective for me to build my own. The following are general specifications on the system.
- Intel Core 2 Quad-Core Processor (2.66 Ghz)
- 6 Gb of 800Mhz DDR2 Ram
- NVIDIA Graphics Card (Cannot remember specs)
- 640 Gb 7,200 RPM hard drive
- Windows Vista 64-bit (Enterprise Edition)
- Dual 22" widescreen monitors
Overall this desktop was the winner when I went to find a new system due to the massive amounts of RAM and overall performance. It is a screamer and I can truly multitask when using the system, I regularly have 4-6 instances of Visual Studio, 1-2 Instances of SQL Server Management Studio, Firefox, iTunes, and other applications running and I notice no slowdowns, and very few issues with memory usage.
For me finding the proper laptop was a very hard process. I needed to find something that was, small enough and light enough to easily transport, but that was powerful enough to handle regular usage. I wanted to be sure that I had a laptop that could be used as a desktop replacement should anything happen to my desktop. After many months of searching, I landed on a Del M1330 and I have been very happy thus far. Below are the specs for that system.
- Intel Core 2 Duo T8300 (2.4 Ghz)
- 8Gb of 667Mhz DDR2 Ram
- 128MB NVIDIA GeForce 8400M GS
- 500Gb 7,200 RPM Hard Drive
- Windows Vista 64-bit (Home Premium Edition)
- 13.3" WLED Display
Overall, this machine has by far been the best laptop that I have ever used, the keyboard is very easy to use and the battery life is quite impressive. Very thin and lightweight as well.
Now, with the hardware out of the way it is time to get talking about software, some of these items are just your standard run-of-the-mill software packages. So for this section, I am going to break it out into; Common Tools and Additional Software to try and cover all of the details.
For my development projects, we work primarily with .NET 2.0 and 3.5 and the C# language. I do stuff for DotNetNuke as well as some windows and other similar development. I use Visual Studio 2008 exclusively for development. Below is a listing of "common" tools that should be familiar to all developers that I have installed on both machines.
- Visual Studio 2008 Professional Edition
- SQL Server 2005 Developer Edition and Management Studio
- SQL Server 2008 Express Edition and Management Studio (For testing)
- SourceGear Fortress Client (For my source control system)
- Telerik RadControls (ASP.NET and WinForms)
- Microsoft Chart Component (.NET 3.5)
There is nothing unusual with this list as these are just the basic items needed to start development in a structured environment. The following section explains all of the "other tools" that I use for development, and for each a bit about why I use that tool.
The following is a listing of other tools that I use, they are listed in no particular order.
This tool sits at the top of my tool chest simply because it can really help with identifying performance bottlenecks, or for improving overall code performance.
This is a suite of SQL tools, and yes they are a bit expensive, but literally one or two times of use per year and they more than pay for themselves. They make testing, deployment, synchronization and other operations easy as can be!
This tool is a great way to help speed the building of your BLL and DAL classes. I have just started working with CodeSmith in the past few months, but great reductions in development time can be realized using this tool.
When it comes to helping document a project, design a database, or any other architecture processes. I have found no better tool than this, its power is amazing, and it is very easy to use and get up and running.
This has been a recent addition to my library, a full-featured, free text editor. I compare it to "what I would have wanted from notepad". It is a great tool, very helpful for random file edits, support syntax coloring for many languages.
This is another somewhat recent addition to my library of tools, great for digging into assemblies and finding references, code information and more.
When writing code it is all too often that there is a bug, and a file lock is accidentally left or you need to get more information on what all is being loaded by a specific application. Well, this helpful tool from SysInternals is by far one of my favorites. In fact, I strongly recommend that you look at and download most of the items from SysInternals, they are some of the best utilities out there, and they are all free!
I hope that you have found this information useful if there is ever any specific demand for detail on any of the above-listed items I can do a detailed blog post on my usage of them. I am planning an article on CodeSmith and how I use it for DotNetNuke module development. This list is a fairly comprehensive list of the tools I use, I'm sure I have left some out. Feel free to share your favorites below!