views:

97

answers:

5

This is question for those who work in .Net and are curious enough to expand their toolset, including also things beyond Microsoft's solutions.

Coming from the Java world, there is a toolset I would consider using every new project, such as:

  • Spring for IoC and MVC.
  • JPA/Hibernate for persistence and ORM.
  • JUnit/TestNG for unit testing.
  • Maven for build management.
  • Sonar for code quality metrics.
  • CruiseControl/Hudson for continuous integration.
  • Etc.

Question:

What would be the similar toolset for high quality .Net projects?

My (basic) knowledge tells me that I should look into NHibernate and NUnit. Also, that I could still use CruiseControl for CI as long as my build procedure and testing scripts are sound. Does it makes sense? Any other worth looking tools? (coming from MS or from the community)

Some people has told me about Microsoft latest tools for CI (Team System, etc.), but they didn’t have real on-hands experience. If you have such experience, please feel free to share it.

+4  A: 

Our current stack at work is as follows:

  • Castle Windsor for IoC
  • NHibernate for persistence/ORM
  • NUnit for unit testing (I'm also working on adopting a mocking framework like Moq or Rhino.Mocks)
  • MSBuild for builds
  • TestDriven.NET for unit testing within Visual Studio
  • TeamCity for CI (although we've used CruiseControl.NET/NAnt in the past)
Anna Lear
Thanks. Can you summarize under what circunstance would you recommend TeamCity over CC.Net+NAnt?
Sebastian
Anna Lear
I should add that TeamCity also supports NAnt and a few other runners. We just opted to go to MSBuild for simplicity of not having to maintain extra build files on top of already MSBuild-based solution and project files.
Anna Lear
Your answer is really helpful.Thanks!
Sebastian
+1  A: 

I would have used TeamCity as a continuous integration server - it's easy to use and install and can run NAnt, MSBuid and more.

If you plan on using NUnit make sure you have a way to run your tests from within the IDE - eith TestDriven.NET or Resharper/CodeRush runners would do.

You can use Spring.NET or StructureMap for IoC (although any other framework would be just fine).

Dror Helper
A: 

Visual Studio 2010 Ultimate with TFS and TFS Build.

This covers all the areas you list (and more). If we need more (e.g. for IoC) would then look at other tools (the first would be for mocking which VS doesn't directly include, and then likely Moq (but it has been a while since I tooled at what's good in that area)).

Richard
+3  A: 

Just replace the 'J' by an 'N' and you're almost done...

  • Spring.Net (or Windsor/Castle or LinFu)
  • NHibernate
  • NUnit (or MbUnit, which I prefer, or xUnit.Net)
  • NDepend for code quality metrics
  • CruiseControl.Net (or, even better: TeamCity)

also definitely useful:

  • NCover for code coverage analysis
  • MS StyleCop/FxCop for textual/static code analysis
  • Simian for Code clone detection

HTH
Thomas

Thomas Weller
+1  A: 

Surprisingly different, our current stack is:

  • StructureMap for IoC
  • We rolled our own ORM
  • MbUnit and Moq for Unit Testing
  • MSBuild for builds
  • Gallio Icarus/Visual Studio test runner for running unit tests
  • TeamCity for CI
  • FxCop/StyleCop for code quality
Patrick McDonald