Saturday, June 23, 2007

Springframework is the best tool to lead VB6-ers to AOP (with IOC) world

I guess my previous two or three blogs make it clear already; just in case, for my boss, I still choose springframework as the first try.

I do not choose EntLib 3.0 -- I will mention it as a reference, and at the same time saying that springframework is much more mature and reliable; and although EntLib 3.0 means that IOC and AOP is definitely the way to go, using EntLib 3.0 is likely to lead to problems.

I do not choose Castle for the first try for former VB6-ers or M$-only people, because they can get distracted and frustrated very easily by Castle-- even its AOP is the most advanced and most mature (can do virtual methods, instead of just interfaces -- springframework can do it only recently).Springframework is the choice, for the following reasons:

(a) It has a very "authoritative" look and feel;
(b) The tone of its documentation is systematic, and, again, "authoritative". It is even better than MSDN.
(c) It has many pragmatic features that are useful directly for VB6-ers:

(i) Portable logging wrapping;
(ii) Lightweight ado wrapping (in addition to Nhibernate);
(iii) Centralized transactions;
(iv) Centralized remoting/services;
(v) Centralized logging
(vi) With all AOP examples, it is easy to add centralized security also.
(vii) Validation framework, ASP support, WPF etc.
(viii) Unit testing, large examples to show how to unit testing and how to design the system to enable unite testing (i.e. put all logic outside UI layer – sounds simple, but requires many techniques and instincts). Again, all of those are clearly and prominently in the “build-in” documentation. Just to be fair to Castle, I noticed that Castle has a good tutorial, but it is not “build-in”: ).

Perhaps you have noticed that those eight items are exact those items in my “8 core techniques” (see my other blogs) – at least, I am consistent.

As a result, I believe that springframework it is the best tool to lead used-to-be-VB6-ers (most programmers in M$ were VB6-ers) to the new AOP with IOC world. This is exact the same approach as using UP to lead used-to-be-VB6-ers to TDD, in the sense that Castle is more AOP-IOC, but you cannot use it for now, just as you cannot use TDD directly for a team that does not have the stomach yet.


Post a Comment

Subscribe to Post Comments [Atom]

<< Home