Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Recommended TDD/Agile/Source Control plugins for Visual Studio 2008 [closed]

I am looking for a set of nice plugins to use when developing software. Currently I am soloing a project where I simultaniously experiment with TDD as I go through the project. Recently I have been quite hyped about agiles processes and wonder how I can further integrate tools that will aid in my task of both completing the project and learn TDD. Further I am looking into integrating with SVN, or other version source control repositories. I would also want to include version information into the build as I will publish version milestones publicly, for feedback. It is my desire to finally learn how to create robust and maintainable software, and take a leap out of the cowboy coding world that I have so long stayed in.

I am a bit catious about getting too many plugins at first, because I feel that may cause more harm than good if I get lost, or not utilize them as intended. Some that do come to my mind are Style Cop/Fx Cop for maintaining coding standards, Visual SVN for SVN integration, Testdriven with NUnit (and possible Moq, but that is only because I haven't looked into NUnits mocking library). I haven't yet tried out tools like resharper, but I am considering to try it out as I have heard a lot good about it.

I am coding exclusively in C#, writing a class library for use in Unity3D, a free game engine with support for .NET 2.0. However, the tests themselves can be any .NET version that my installation supports. I have heard something about automated tests that will cause you to fail a commit, and I am excited about getting my toes dipped in this as soon as I can, as I believe that will push me to learn TDD better.

If you know of any other plugins that would suit my needs, or if you think I should choose one over another, please let me know.

As I am quite new to plugins, I wouldn't mind if you could motivate why and when to use them. I am really excited about getting a nice environment to hone my skills in.

Thank you for taking your time reading this. I hope you have something to add in :)

Edit

I realize now from some playing around with Style Cop that it might not be the best suited plugin for TDD and agile approaches with its default settings. While I do think the code I produce holds a very high standard using it, I feel many of the rules (such as strict documentation) are less than agile since you have to pay for that up front. In TDD, the tests themselves serves as documentation and specification. Thinking agile you should not do what you don't need to do.

In my specific case, I do not need extra documentation because this library is not intended to be shared among other developers. It might do in the future however, and then we land in another ball park. I am a bit dubious about overriding these rules. I suppose on one hand I want clean and solid code to practice "good coding", on another hand I want to narrow in a little bit more on TDD, and in the end I want production value.

I wanted to post my thought about using Style Cop with default settings in case a new developer reads the original article and blindly decides to use it because it was listed here, only to find it more cumbersome than worthwhile. I think the key is to understand your needs and identify if a certain feature contributes toward your production values.

like image 530
Statement Avatar asked Dec 23 '22 05:12

Statement


1 Answers

Test Driven.NET

Includes a free version for personal development. A nice simple plugin, not expensive in terms of memory usage, or the time you need to dedicate to actually learning how to use it.

For Test Driven Development, running the tests internally of the IDE is a must. You'd be surprised at how much time you save by not having to switch to an external runner for every test you want to run.

I have heard something about automated tests that will cause you to fail a commit

Check out build automation - MSBuild or NAnt to name a few. Essentially unless the build process is successful you don't commit your code to your repository. For example, if you had broken some code, the build process would fail. If it passed, you could commit your code safely.

For .NET users, MSBuild (Visual Studio uses it internally) would be a nice start. Check out the official site on MSDN and do some searches for more articles on why build automation is a good idea.

Other Tools

Your question asks about the use of FxCop, StyleCop and so forth. Rather than running these externally you can link them in as part of the build process. This will take some effort setting up, but the time saved by using them and embedding them into the build process is massive. On a side note, your code will improve by using these regardless of when you use them.

Free Resharper

Resharper is expensive for personal development. If your company provides it, by all means use it. Could I justify buying it for personal development? No chance. Instead check out CodeRush Express. It's similiar, and less memory hungry than Resharper. I find it doesn't lock up Visual Studio constantly. Plus some of it's features are pretty nice.

like image 57
Finglas Avatar answered Dec 24 '22 17:12

Finglas