Recommended TDD/Agile/Source Control plugins for Visual Studio 2008 [closed]
开发者_StackOverflow
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this questionI 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.
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.
You sound very hung up on plugins and tools, and of course tools can be a great help, but I would focus on the actual stuff that you want to learn, rather than tools and frameworks.
What you definitely need is:
- SVN (TortoiseSVN is fine)
- Testdriven.Net for running your tests
- Teamcity or equivalent for doing continous integration
What you don't need yet are all sorts of plugins and frameworks for improving on these basics. Focus on the TDD and the "story of the build", and maybe release management - and while learning this, you will discover what needs you have for tools.
I believe that the pluggins you are interested in are all fine.
Resharper is nice and powerful, but it requires a lot of memory.
As some others have said, TestDriven .Net is almost a must. It lets you run your tests from the VS IDE. It works fine if your tests are in NUnit.
And at last, I would recommend NCover to keep track of your test coverage. It has a community version and it can be executed from the IDE with TestDriven .Net too.
And of course nAnt and / or MSBuild for automated builds. I would recomend nAnt better.
Hope it helps
You may want to look into NDepend, which helps you analyze your code base and keep it clean. (Otherwise, I second advice for TestDriven.Net and ReSharper).
精彩评论