is spring.net being actively maintained/developed/documented? - spring.net

In the course of evaluating .net IoC frameworks, I gave spring.net a try first, seeing as how much I liked spring in java. However, I'm rapidly getting the feeling that it is a stale/stalled/dead project. The forums have almost no activity; the documentation, though verbose, is infuriating with its self-referencing, poor examples, and incomplete sections; spring.net questions don't seem to get much traction on stackoverflow; and googling for spring.net issues usually leads to pages documenting somewhat obscure scenarios. I'm close to making the jump to Ninja or Castle, but I can see that their documentation doesn't exactly sparkle either. Still, if everyone has poor documentation, I'd rather pick an active project. What are your suggestions?

Spring.NET is pretty active.
Take a look to their bug tracking system :
https://jira.springsource.org/browse/SPRNET
They have 2 full-time committers working on it.

Spring is pretty active, as pointed out by Paul. Their IoC container is excellent, in my opinion. As I write this, they're actively working on a code-config project at github .

Related

What's a good tutorial for developing professional MVC applications with ASP.NET?

I am hoping this doesn't get flagged as subjective since everyone's idea of "good" can be different. However, I know that you know what I mean, so, instead of flagging this question, feel free to edit the subject if you think it could be presented in a more objective manner. This is also not a duplicate of a good tutorial for .Net development with MVC, spring.net and NHibernate.
I come from WebForms and need to learn MVC. I came upon this tutorial on MSDN which has been great for understanding the basics of the MVC design pattern. However, it's just enough to teach someone the bare minimum so that they have everything they need to know to build a rudimentary ASP.NET MVC application. From what I've seen, the methods illustrated there aren't exactly what I'd put in a professional, enterprise solution which is exactly what I am about to start working on. I'd like to jump straight from the basics to advanced development, so I am interested in a tutorial/guide that has achieved popularity for being a solid resource for MVC development and best practices.
I realize that this question could have multiple answers, only one of which can be selected. However, there's still the upvote system, so answerers can still get points and the upvotes will still serve as indicators for helpful answers which is really what SE is all about.
I think a good starting point, it would be to check the www.asp.net site. it's certainly a good place to start. There would you find many tutorials for your purpose.
Furthermore, if you are about to buy a book, check PRO ASP.NET MVC 4 by Adam Freeman, http://www.amazon.com/Pro-ASP-NET-MVC-Adam-Freeman/dp/1430242361/ref=sr_1_1?ie=UTF8&qid=1387461608&sr=8-1&keywords=Pro+ASP.NET+MVC.
It's really a masterpiece.
It's been a while since I've looked at it, but NerdDinner helped me out when I was getting started -
http://nerddinner.codeplex.com/
http://nerddinner.com/
I'd like to jump straight from the basics to advanced development, so I am interested in a tutorial/guide that has achieved popularity for being a solid resource for MVC development and best practices.
In my opinion, using a framework in enterprise level requires deep knowledge of every part of it. why a component/class is designed, what is the purpose of it, how do we use it, what's the best practice, etc.
In this way I have found the Programming Microsoft ASP.NET MVC by Dino Esposito very helpful. The book's aim is to explain the mechanics of the framework and effective ways to use it.

Good learning resources for JNDI implementation (JBoss 5)

I have been working with JavaEE/EJB3 web apps for about half a year now. Until recently, I haven't had to touch a lot of the behind-the-scenes stuff, just the meat of the code. I have been wrestling with JNDI problems, and though I've solved a couple of them, I'm pretty much just doing the whole cargo cult copy-paste routine. It would really help me to better understand JNDI; my understanding of it right now can be summarized as "it's that thing these classes sometimes do to find other classes."
My question is, has anyone had success learning JNDI/EJB3/related topics from a book or online content? I've googled for it but the stuff that comes up is old or specific to a certain framework I'm not using. I'm looking for something that's either JBoss-specific or generic enough to be useful anyway.

Is Microsoft CCR gaining any traction?

Microsoft's Concurrency and Coordination Runtime quite literally saved a project that was running into major issues with deadlocking. Since then I find that I use it more and more frequently for almost anything that requires asynchronous coding producing results that run lighter and faster than before. I can honestly state that it has transformed the way I think about multithread/multicore dev. Despite my personal love for CCR, there appears to be very little buzz surrounding it on the web and was wondering if anyone can offer any reason for this. Are there better alternatives, or is it a lack of promotion from MS, or are people simply happy with the existing tools?
I would suggest that TPL Dataflow, to be released as part of .Net 4.5, will eventually supersede the CCR. Most concepts in the CCR have an analogue in Dataflow although it isn't necessarily a straightforward porting exercise.
That said, the Robotics Studio Developer 4 Beta 2, released November 2011, does include a version of the CCR for Silverlight 4.
The licensing around it is a bit of a pain, from what I remember.
I think most people are waiting for Parallel Extensions in .NET 4.0. I know it's not quite the same thing, but it's still a lot better than what's in the framework at the moment - and although the continuations don't work the same way, at least they're there :)
I suspect that Parallel Extensions has had rather more work on it than CCR - although I'm sure the CCR work inspired some of the design of PFX as well.
I, too, have a personal love for the CCR... I certainly have not seen anything quite the equivalent of it in .NET or elsewhere. I think it's too bad that I think Jon's right and it will likely be relegated to a niche of enthusiastic fans like us, while most mainstream .NET multithreading will probably be done with the Parallel Extensions.
I'm particularly disappointed in this prognosis because I think more could be done to promote it - say maybe fit it into an enterprise reliable async message bus-type framework, which I think is lacking a coherent story in .NET. Also, from looking at the Microsoft CCR/DSS Site I would probably never have thought to try it... I don't understand why it was packaged up this way - other than the fact that several companies ripped it out of the Robotics toolkit and just ran with it before MS thought it had a purpose beyond robotics.
Anyway, you're not alone... and there are lots of other CCR 'enthusiasts' as well. Here's a neat 'flow' based CodePlex project that wraps the CCR in an interesting flow paradigm.
I have been enjoying using the CCR in two major projects so far. The first one is terrible (didn't really get the Causality pattern idea) And the second one is coming along brilliantly (Web crawler)
Both projects are utilize the message based paradigm to avoid waiting for slow running IO operations. The CCR is quite good to work with once you solve the lack of a compatable ORM mapper. (I'm considering releasing some of the plumbing code that i've written to save other people the heart ache)
Having said that, RX looks quite interesting. I'm curious how it compares in terms of Error handling, speed and reliability.
Microsoft Robotics Studio 2008 R3 is now available and now free for everyone to use.

Oxite or S#arp Architecture for new Asp.net CMS site

I'd like to build a CMS site based on Asp.Net Mvc and I want to choose my starting point.
I have seen that there is a lot of interest in the new Microsoft Oxite project also if it seems to be pretty early to adopt it in a production project.
I've also looked at S#arp Architecture but it does not properly compare to Oxite as is just a starting point for general Asp.Net Mvc sites.
For me S#arp Architecture has some advantages over Oxite as is far less complex and it uses Nhibernate for the data access layer.
Oxite code uses Linq2Sql for it's DAL and has already a project in the solution that requires the DB version for VS2008.
Oxite seems to me more blog oriented than CMS oriented but I haven’t looked the code deeply.
Here are some of the choices that would point me to S#arp Ar. for starting.
Simple clean architecture
Nhibernate Dal
Community supported
Oxite:
Microsoft project
Potential huge community
Early stages but very good code quality
Provider model that permits to easily switch the DAL
If anyone has looked at the code of these two projects please advice on your opinions.
Thanks
Oxite might be feature rich, but the code quality is very low.
I was very surprised when I checkout the code and found controller actions with 100+ lines of very unclean code, tagsoup views, no unit tests, etc.
The criticism has been well summed up in these blog posts:
http://blog.wekeroad.com/blog/some-thoughts-on-oxite/
http://codebetter.com/blogs/karlseguin/archive/2008/12/15/oxite-oh-dear-lord-why.aspx
As always, it depends on your needs. It sounds like you need something more CMS based. Oxite happens to have some CMS-like features, but it's not really a CMS. It might be in the future as it's a community project, but right now it isn't (all you can do is add content pages).
We're glad everyone seems to like Oxite overall, but it is pretty early. Not to deter anyone from using it in production, because we do. We run MIX Online on it, but totally understand if you're not comfortable with it. We need a stabilization period. At the same time we also need people running it so we can make it stable. Chicken and Egg I'd say. :)
I didn't get much of a response at my question about Oxite here at SO (found at Oxite: What are you going to do with it?), but it is really new so it'll take some time for people to warm up to it and fully check it out. The architecture of Oxite is really easy to get started with; that's its strongest suit.
I'd never heard of S#arp before I read your question so I'll definitely check it out.
Oxite is well detailed already, entirely negatively.
I'll just add that I've been using S#arp architecture for several months and found it very maintainable and flexible. There's also a very solid, growing and active community of users around it.
It is very clean, and quite easily upgraded to Fluent NHibernate RC 1.0

How is Spring.Net making my life easier?

"Spring.NET is an open source application framework that makes building enterprise .NET applications easier."
Springframework
They say that Spring makes .Net development easier. Then I see the manual which is long as anything.
Chapter 5. The IoC container
And then I see some mysterious stack trace errors when I run a project that has Spring. How is Spring making my life easier, when everything is so hard?
Edit: The errors come when I run the project, not when I compile like I first wrote. I understand that Enterprise applications need more complex frameworks than normal applications. But they shouldn't be complicated even in that case. I mean, if I want to write some logic, I shouldn't need to go through lots of other stuff.
Edit: I don't have a choice but use Spring, if I start using an existing project that has it.
Note that it says it makes enterprise .net applications easier. Enterprise applications are not really the same as normal applications. They are very large scale applications, requiring designing around massive scalability, portability and extremely flexible configuration. Frameworks that simplify this process are still going to be difficult to use, but are less difficult and more reliable than doing all of that work from scratch.
I would be dubious of using an enterprise framework in a 'normal' project though, as it is most likely extremely overengineered for non-enterprise requirements and could end up being more difficult than coding from scratch in that circumstance.
It provides an IoC container. Yes, using that to its full requires reading quite a lot. The same is true of almost any powerful tool. If you're going to use LINQ, that needs some study too - does that make LINQ useless in your view?
It provides useful utility classes for various things. Often these are things you might roll yourself in other circumstances.
Now, as for why you're getting mysterious stack trace errors when compiling a project which uses Spring.NET... that sounds very odd. We'd need to hear more about the errors to know what's going on.
If you don't understand, you might ought not use spring.....
But Spring.NET is a good framework. It is more than IoC, alot more....
If you don't understand dependency injection/IOC or Aspect Oriented Concepts, spring may not do too much for you and you might as well stick to service locator type things and explicit try/catch blocks all over your code....
I agree with you that it has some learning curve, but that alone should not discourage anybody from learning this really awesome tool.

Resources