Every time i take my car into the garage for repairs I am amazed at the size of the tool boxes and the number of tools each mechanic has. Once, I asked my mechanic, “why do you need so many different tools? Many of them are quite similar.” He said, “We never know what might tool might be needed. Each repair job is different and may require a different tool. Each tool has a different purpose.” I thought about that and remembered the carpenter who had worked on one of my homes. He had various types of hammers and screwdrivers.
In the world of tools there is no one tool that does all things or one size fits all. Each tool has a distinct purposef for which it was made. Carpentry and car mechanics are a lot like software development. As developers we are craftsmen and craftswomen just like that mechanic or carepenter. We build software. We put together lines of code. We need tools to help us in our job also.
When i first began programming back in the mid-eighties there were not a lot of tools available for software developers. I coded in a text editor. I saved my code and then went out to DOS. I compiled the code with a compiler and if no errors were found, I then linked the modules together to produce an .exe. If i wanted a tool i had to pretty much make my own. The internet wasn’t like it is now. In factU didnt use the internet. I used Bulletin Board Services (BBS). I didnt start using the internet until about 1991. As i look back now after almost 30 years in the industry if I had the tools I have today and the books and the on-line help avaiable to today’s programmers….. Well let’s just say my early programming years would have been different.
Getting back to the subject at hands. Tools. If a carepenter or a mechanic needs a good toolbox, well so do we as software developers. Over the last few years of programming in the dot net world, I have seen and tried a lot of different tools. Some were good and some were well!!!!! Enough said. I am now working on a book and a series of tutorials to show programmers how to write a line of business in WPF/Silverlight using a set of tools and controls I use on a day to day basis. The application will be in C# and use the MVVM framework. But first, I am going to produce a series of articles on the tools we will be using. Each tool will be discussed and analyzed in a different article.
In this first blog I want to list the tools we will be using. Note this is not the only list of tools available. These are the ones I have found to be the best and have helped me to be successful as a developer. Take a look at these tools and try them out. If you are not happy then try another and another until you find the ones you love and are comfortable with.
Here is my list: Now first off I must issue a disclaimer, I am an independent contractor. I do not work or make any income from any of these companies. They did not ask me or pay me to say or write these things I approached them and some gave me free copies to work with in return. They gave me access to support and advice. So this is my unbiased opinion. It is a given that we will use Visual Studio 2012 and C#. We will use the dot net 4.5 framework. I am not planning to cover smart devices or Win RT at this point. So here is my list. I will just provide a brief statement as to what the tool does in this blog and in the succeeding blogs, I will discuss the tool in more detail.
1. Intersoft WebUI Studio 2012 R2 – This software will be used for the UI controls in WPF/Silverlight and for the MVVM framework.
2. IdeaBlade DevForce 2012 – This will provide us with the Entity Framework. We will use this software for relational mapping and linq
3. TypeMock Isolator V7 / NUnit – This software will be part of the unit testing along with NUnit.
4. NDepend version 4 – This software is a little like a Swiss army knife. It has many uses. It does build compares and differences, code quality and code metrics, analysis of code and finding references down to the function level and dependencies between modules and much more.
5. Red-Gate Memory and Performance Profiler – These two tools we will discuss together. They will help us to detect memory usage and leaks, the performance of our application and the detection of bottlenecks.
6. Red-Gate SmartAssembly – This software will provide for Automated Error Reporting.
7. XAML Spy – This software will be used to debug our XAML.
8. Red-Gate .Net Reflector – Tnis software allows us to look inside any .net code.
This is not a complete list. We may add other tools as we go. In future blogs. we will take a look at each tool in much more detail. We will also discuss the application that we will be creating in more detail. Hope you are as excited about this project as I am. Well, take care and we will see you soon when in part 2, we will discuss the Intersoft Web Studio 2012 R2.