Ayende @ Rahien

It's a girl

On tools, CAB and EJB

Glenn Block has a post that does a lot to explain why the CAB is complex.

I just wanted to share the way I think about complexity, if you need a tool in order to effectively use a piece of software, then you are already in a losing position.


Glenn Block
05/28/2007 06:00 AM by
Glenn Block

Actually you don't NEED SCSF in order to effectively use CAB. SCSF simply makes CAB easier to approach, and takes care of some of the repetitive tasks involved with building a CAB application. The larger percentage of our customers that use CAB do NOT use SCSF. Mostly these are customers who have been using CAB since before SCSF existed.

As to the tooling, does not Monorails use tools? I seem to remember from a videocast that there are a bunch of nicely integrated IDE tools that allow you magically drag and drop your datasource in order to create your model. Is this tool "needed"?

Should we should also assume that Eclipse, JBuilder, Visual Studio are in a losing position as they all provide tools?

Glenn Block
05/28/2007 07:20 AM by
Glenn Block

"I assume this is because it signficantly changes the experience of using it"

It makes things simpler and means you need less knowledge of the API to get off the ground and running.

"There is Active Writer, which is a DSL for Active Record, but it is not neeced for model-first approach (recommended)"

In the same way our tooling is not needed, though recommended :)

"let us cover the ugliness with tools"

I am not a fan of this approach as someone ends up maintaining the code that the "tool" spits out.

"Is there a reason that the framework can take care of this? (True question, not a jab.) "

Sure, the framework (Application blocks) does a lot of this already. In SCSF / WCSF, the codegen is NOT the framework, the codegen basically creates skeletal projects and classes in a standardized fashion. The classes do not have a lot of code. At the end of the day regardless of how rich a framework is, you usually still end up having to write some starter classes that implement certain interfaces or perhaps inherit from base classes, or you need to implement certain patterns of method invocation, etc. You also may have some wiring to do by hand. Most of this is repetitive stuff that’s just part of using a framework. The recipes in our factories simply go a bit further and help you to build this “stuff”.

But again, it’s not a requirement that you use them. For example all of our quickstarts and RIs were not created using the recipes. We simply call CAB and CWAB directly.

Comments have been closed on this topic.