6

I'm currently evaluating the technologies we want to use for our next project. It will mainly be a backend for automatic data manipulation. It has some dependencies and we can only build it on top of .Net 3.5 at the moment.

Spring.net seems like a good match for our requirements, since it brings a DI container, ADO.Net helpers, NHibernate, Unit testing helpers and other goodies in one maintained package. How established is Spring.Net in the community and what's the state? It seems like being actively maintained, but who uses it and can share some experience? I'm esp. interested in the DI container it has and the ADO.Net module. Does the DI container support proper auto wiring?

Rene Schulte
  • 2,962
  • 1
  • 19
  • 26
  • 2
    Perhaps Castle will fit your requirements as well. It's being very actively maintained and actually has a longer history on .NET than Spring.NET: http://castleproject.org/ – Mark Seemann Jan 06 '11 at 10:37
  • Related: http://stackoverflow.com/questions/4558638/spring-net-configuration-fluently – Mark Seemann Jan 06 '11 at 10:39
  • Related: http://stackoverflow.com/questions/4581791/how-do-the-major-c-di-ioc-frameworks-compare – Mark Seemann Jan 06 '11 at 10:39
  • When I looked at Spring it seems very interesting. It is from Java, so kind of following rather than a .NET only solution. I wasn't able to judge the size of its .NET community. – kenny Jan 06 '11 at 10:40
  • 1
    @Mark Seemann, Spring is much more than a IOC container so your second link 4581791 isn't directly related. – kenny Jan 06 '11 at 10:41
  • as well as Castle there is StructureMap, Ninject,AutoFac, Microsoft Unity all being activially updated – Iain Jan 06 '11 at 10:44

2 Answers2

4

I've been actively using spring.net for over a year now and like it a lot.

What I like:

  • it is non-obtrusive; gives you all the freedom you need
  • well documented
  • it guides me to building understandable, testable and maintainable software, by moving out almost all infrastructural code from my presentation and domain objects; I find that I can easily and reliably make changes to my code

I think it could use improvement:

  • learning curve at the start can be steep
  • the xml di congfiguration isn't really friendly to starters; I don't think it's as bad as many suggest though, especially when using Resharper and installing the xsd schema's in Visual Studio
Marijn
  • 10,367
  • 5
  • 59
  • 80
  • I haven't used autowiring yet, because I read some (old) blogposts advising not to. However, I intend to use it the coming month or so. I'll try to remeber to post my findings here. – Marijn Feb 01 '11 at 16:38
  • Thanks for the answer. In the mean time we decided to use Castle Windsor. – Rene Schulte Feb 02 '11 at 08:00
3

I've used Spring.NET for several years. First starting with just the DI stuff, gradually learning more about the techniques and applying more and more functionality from the framework. AoP, services, ado.net templates. If you know where to find the items you need it really is a time-saver, it takes quite some time though to get acquainted with it. Although there is a lot of documentation, you'll find yourself trying out a lot of things.

I got some posts on my blog on Spring.NET: http://blog.bennymichielsen.be/category/springnet/

BennyM
  • 2,796
  • 16
  • 24