I'll address briefly the questions put forward. A lot of things are already discussed in this thread.
csmac3144 wrote:
I know these topics have been covered in other posts, and I've read through most of the posts, however I'm hoping to get an up-to-date assessment of where we are with respect to using LLBLgen Pro in conjunction with other frameworks.
I hear good things about Aspect Oriented Programming and would like to move in that direction.
- To what degree is LLBLgen an AOP solution?
As with all these kind of techniques, you could debate for years about a definition, so I won't do that. AOP is about weaving aspects into runtime code at defined spots, so you can extend existing code without modifying it, keeping things separated. LLBLGen Pro doesn't use weaving, though has a mechanism which offers this for authorization, auditing, validation and concurrency predicates: through the objects which are plugged into entities and which are called from inside the framework. So in a sense the weaving has already been done, you just have to write the aspect. It's not really AOP, so I won't call it that, but in essence it uses similar things, only not weaving: where the framework calls what is pre-determined.
- How much overlap is there between say, Spring.net and LLBLgen?
Spring.net is a total different framework. So you can use both together to extend eacthother. ActiveRecord isn't part of spring, is it?
Not that I know of, CSLA is a different framework altogether which dictates how business objects should be written and behave. I don't know the inner workings of CSLA so I don't know how much they have in common.
- What are the implications of .Net 3.5, LINQ, etc. on all of this? Is it premature to worry about that?
Linq is a language construct and allows the specification of select statements. It's just a part of the whole set of things you can do with data in a database, so you will have to use the O/R mapper code as well.
I'm currently busy with writing Linq to LLBLGen Pro. It's not stuff I enjoy: there's little documentation and it simply comes down to boring code which actually adds little to nothing to the LLBLGen Pro framework other than a different way to specify some types of queries. People assume they can formulate all select statements in linq but that's not true, you can't formulate prefetch paths for example, so I have to find a way to specify these as well... You can follow my progress on my weblog.
csmac3144 wrote:
One thing I noticed is that LLBLGen 2.5 supports DI (Depdency Injection). This exotic-sounding technique sent me on a circuitous path that led me to Fowler's book on Enterprise Patterns (many of which are in Spring.Net), and well as Jimmy Nilsson's book on applying these patterns in C#/.Net.
DI as I understand it (and I only hazily understand it so far) is part of the AOP approach. Is it fair to say that LLBLgen is moving in the direction of tha AOP approach to development?
"dependency injection" is simply a much overloaded term, especially caused by mr. Fowler (no I'm not a fan of mr. Fowler). Check the wikipedia page about dependency injection and the discussion page of it .
Dependency injection is very simple: inject an instance of a class X into an instance of a class Y because Y depends on X at runtime, and you don't want to set the instance of X INSIDE the instance of Y. That's it.