Fowler Architectural Patterns
January 21, 2009 Leave a comment
I read the 1st couple of sections of Fowler’s Patterns of Enterprise Application Architecture. I had trouble grasping his description of Transaction Script so I went ahead and built a project in C#. I noticed a coupld of things.
1) APplication architecture is more about interfaces. For example, the complex business logic in the Domain Logic Layer is found in RecognitionService.CalculateRevenueRecognition. Instead of coding the logic in an Select…Case phrase, you can call a stored procedure and have the logic calculate on the database. Is the application no longer Transaction Script? If the function’s interface did not change, I would think it is still TS. Hwoever, the logic is actaully on the data layer – or can part of the data tier have the domain logic? I don’t see why not because the UI tier often holds the Domain Logic in fat-windows solutions. ALso, I carved out the domain logic classes from the UI project to it’s own project in the solution. Did I change the application architecture?
This got me thinking about 2-tier and n-tier use cases:
UI & DL & DB | SPS & DT where SPS only does CRUD to DT = n-tier
UI & DB | SPS & DT where SPS does CRUD and DL = 2-tier
UI & DB | SPS for CRUD, SPS for DL, & DT = 2-tier
Also, I am looking for patterns about types of Business Logic. Fowler defines Domain Logic and Application Logic. I don’t know to put rules regarding security – is that another area, or layered in these 2 buckets.
More questions than answers at this point