Software Factory


Fundamentally, Salamanca is designed around a set of libraries that are designed to help developers implement our architecture. The code generated in the software factory is based on these libraries :
  1. Data Access is the easiest to explain in a few words : think of it as (yet) an (other) Object-Relational Mapping (ORM) library. Why another ? We believe that there is not nor will ever be a perfect solution for this problem ; call us "ORM limitations acceptors". Our belief is that an ORM solution has to be designed to fulfill a specific set of issues under a specific set of constraints (definitely sounds like a product line). After all, if you want to go around and around in circles without going anywhere, you are more likely to win the race with a formula one car. If you want to drive home, you will be better off with a standard commercial car : it has been designed for average roads, and priced accordingly. This library will help us handle business specific data in a Data Access Layer (DAL).
  2. Data Activities is a library that helps define the business data lifecycle into a specific layer. The latter is a state machine which lies at the core of our architecture : it manages business data, drives the HMI, and as such acts as a perfect (?) separator of concerns.
  3. Data Rules is a validation framework. It will be used to implement our business rules in our activities transitions and our data.

To help you understand how these libraries typically fit together in a business application, we have set up a quick start, split in two parts :
  1. Part 1 : how to set up a domain model. Based on an overly simple model (1 object, 1 property, 1 database table), we will be able to create our first application, based on our domain model, with virtually no coding.
  2. Part 2 : how to create and implement an activity. Based on the previous domain model, we will implement our first basic activity as an application. We will also show how our activity can easily be unit tested.

Last edited Oct 22, 2009 at 8:28 AM by cartoixa, version 5


No comments yet.