View Full Version : New to Spring.NET. Can anyone guide me along on my doubts?
chuawenching
08-01-2006, 05:46 AM
Dear all,
I did searched the forum a bit. But I am not so sure about it. Wonder anyone can guide me along please.
a) There is so many application framework out there. Should I just use spring.net for my enterprise projects using asp.net 2.0 technology? Or can I actually use other app frameworks side by side with spring? Example CSLA? I know CSLA is a business object framework (something like that), are they the same with SPRING?
How about enterprise library? Is enterprise library having similar functionalities like SPRING?
b) Is there any code generators for spring.net framework? or maybe GAT/GAX, DSL, software factory etc???
c) I studied the movie finder getting started tutorial. I was impressed with the DI feature. Very cool. But how about other features like bi-directional data binding with automatic type conversions, superior data validation, etc? I can see some of the examples in the springframework.net website. But is there any step by step tutorials on that one? Any tutorials on that?
d) Is the latest spring stable enough for enteprise development projects. I mean real projects. I am worried as it is still in build phases. I believe this framework is free right? Correct me if I am wrong.
e) One thing about DI, or IoC which involves alot of XML. I saw some tutorials of RubyonRails, they encouraged to reduce the amount of XML for web projects. This makes me more confuse. Is having lots of xml a good thing or a bad thing? Can anyone share any opinion on this one? If is bad, by doing DI, isn't that bad as well?
Thanks.
Aleks Seovic
08-02-2006, 03:50 PM
A lot of good questions in a single message :)
a) There are definitely many frameworks available, and Spring is one of them. What differentiates Spring from many others is that it exists for both J2EE and .NET, and supports the same programming model on both platforms. This is very valuable in the enterprise environment because it makes developer transition from Java to .NET and vice-versa much easier.
Spring is not the same as CSLA, Rocky Lhotka's Business Objects framework. CSLA is more about designing your applications using business objects (or domain model) and providing a patterns for persistence and location transparency of those objects. It has some nice features, but it also does certain things in a way I don't necessarily agree with. Nevertheless, there is nothing that would prevent you from using Spring and CSLA in the same application.
The same applies to Enterprise Library, which is simply a collection of useful "blocks", where each block encapsulates best design practices. EntLib blocks do not overlap with Spring in any way, because they focus on things such as caching, logging, etc. where Spring focuses on providing a solid programming model and architectural foundation for your application. One area where might be quite abit of overlap is EntLib Data Acces Block and Spring.Data module, because they both provide an easier and more consistent way to write data access code. In cases like this, you really need to evaluate both options for yourself and decide which one works better for you.
Things get trickier if you start comparing Spring and Castle. There is a lot of overlap in functionality between the frameworks, but they both do things a bit differently. Each one has some things that the other one doesn't, so based on your particular needs you might prefer either of the two.
In general, what you need to look at when comparing the frameworks is what areas of application development it addresses, while keeping in mind that both Spring and Castle are modular and non-invasive -- you can use only the modules that you are interested in and ignore others, or replace them with a third party solution such as EntLib block. What you really need to be looking for is how many typical deevlopment problems framework solves in a way that is acceptable for you.
b) There are no publicly available tools yet, but there were some attempts to write add-ins for VS.NET for thinsg such as visualization of object dependencies. I believe someone posted such tool on the forum, but it was a while back.
c) You can take a look at SpringAir (ASP.NET 1.1) and SpringAir2 (ASP.NET 2.0) sample web applications to see all those features (data binding, validation, page and control DI, localization, etc.) in action. If you download one of the latest nightly builds you will find those apps under the examples directory.
d) Core and AOP have been stable for a while, and I've used and am aware of people using Spring.Web for production applications as well, even though it's not officially released. However, all of us doing that are early adopters and circumstances allowed us to use pre-release code. If you are in a conservative environment where frameworks used must be completely stable, I would advise against using anything but Spring.Core and Spring.AOP for a production system before the official 1.1 release.
e) It really depends on how you look at it.
I tend to think about Spring's context files as a source code more than configuration files. They are created and maintained by developers, versioned in the source control system, and ultimately determine how things are gonna be wired together when the application starts. The fact that you can also use them to configure some true configuration properties of your objects is really a side-effect and more often then not those things should be externalized using property placeholders. I do believe that the information captured by Spring context files should be captured explicitly (unlike some other frameworks, where most of the wiring can happen automatically based on object types), so the decision really becomes whether to capture it in the source code or externally.
So, from my point of view, XML is neither good nor bad -- it's simply a better way to define object wiring rules than the source code, as it doesn't have to be recompiled and it allows you to have different wiring configurations for unit testing and production without having to change the code at all.
Regards,
Aleks
chuawenching
08-03-2006, 07:35 AM
Thanks Aleks. I am downloading the SpringAir. Hope it will guide me along.
Ya I saw castle too...
[Sorry to be off topic]
Are you the core owner of spring.net? I mean the core developer?
Aleks Seovic
08-03-2006, 02:32 PM
Great, keep us posted how it goes and do not hesitate to post questions on this forum.
Yes, Mark Pollack and myself are leads for Spring.NET, and there are a number of core developers that are regularly posting on the forum as well, such as Bruno Baia, Erich Eichinger and Rick Evans.
Regards,
Aleks
dave paulino
08-17-2006, 02:20 AM
Hi guys! I'm from Philippines. I'm new in Spring Framework, I just started playing Spring.Net last 2wks ago. :)
I'm would like to ask if can use Spring.Data in my project I mean if its advisable to use it? :)
Thanks!
Regards,
Dave
Erich Eichinger
08-17-2006, 11:52 PM
Hi guys! I'm from Philippines. I'm new in Spring Framework, I just started playing Spring.Net last 2wks ago. :)
Welcome to Spring - you'll like it! There's plenty to play with ...
I'm would like to ask if can use Spring.Data in my project I mean if its advisable to use it? :)
I don't know it's exact state. I'm using it in my own projects - but only a few features. Since it is not released yet, you should be careful when using it in a production project and thoroughly test the features you are using. And of course: please tell us your experiences!
cheers,
Erich
dave paulino
08-18-2006, 07:08 AM
Welcome to Spring - you'll like it! There's plenty to play with ...
I don't know it's exact state. I'm using it in my own projects - but only a few features. Since it is not released yet, you should be careful when using it in a production project and thoroughly test the features you are using. And of course: please tell us your experiences!
cheers,
Erich
Thanks for the advise! :) and you are correct there's so plenty to play with spring. hehehe :)
LiamGrossmann
08-01-2007, 10:21 PM
Hi Alex
in your response you said "that CSLA also does certain things in a way I don't necessarily agree with".
Could you expand on this a little.
I have been using CSLA for over 5 years and have found it to be excellent in helping deliver large scale applications. The latest version has answered every gripe I had with the original 1.0 framework. The only negative I find is that it takes a long time to learn and that it does require some fine tuning of the business objects at the end which is not really documented anywhere.
I'd be really interested in your thoughts.
steinard
08-02-2007, 12:51 PM
Hi Chuawenching!
Spring is really great. I like it a lot, and we are using it's Core, AOP, NMS and NHibernate-integration modules in our software (energy trade and risk management).
Conserning XML configuration, my advice is to keep it to a minimum. I have spent hours debugging various xml-config files, and they are quite often a source of bugs.
You can read about a pretty bad case here (http://www.brodwall.com/johannes/blog/2007/05/05/spring-youve-failed-me/).
The blog owner will also be speaking at this year's JavaZone: http://www4.java.no/web/show.do?page=65&articleid=5256
Cheers,
Steinar.
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.