Skip to content
ToJans edited this page Nov 16, 2011 · 1 revision

Let us start with the first: Scritchy is definitely a framework IMO.

I checked wikipedia (http://en.wikipedia.org/wiki/Software_framework) :

In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. It is a collection of software libraries providing a defined application programming interface (API).

Frameworks contain key distinguishing features that separate them from normal libraries: inversion of control

  • In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework.[1] default behavior
  • A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops. extensibility
  • A framework can be extended by the user usually by selective overriding or specialized by user code providing specific functionality. non-modifiable framework code
  • The framework code, in general, is not allowed to be modified. Users can extend the framework, but not modify its code.

To quote the first line of the rationale:

The designers of software frameworks aim to facilitate software development by allowing designers and programmers to devote their time to meeting software requirements rather than dealing with the more standard low-level details of providing a working system, thereby reducing overall development time

So, this makes me conclude that Scritchy is indeed a software framework.

Now, about the CQRS part:

I wrote the framework to enable others and myself to build an app respecting the CQRS architecture where almost every single line of code you write has business value (think lean/startup mentality).

Let us take a look again at the original quote:

Quite simply, creating a framework tool for CQRS is like trying to create a tool for SRP or one of the SOLID principles.

I would like to counter this quote in a metaphor: there is a difference between Lego and Playmobil. My oldest son loves Lego, and loves to build something before he can play with it. My youngest son is more of a Playmobil kind of guy: he wants to pick up a toy and just let his imagination go wild. Just because kids can build anything with Lego does not imply that we do not need Playmobil; some like to build , while others just love to get down to business asap.

Clone this wiki locally