c.Domain Model

It is a cutting  age  modeling meathodology used for building complex business application 
  1. Motivation
    1. To Create an object model for business that handles all the rules and data data flow.
  2. Summary
    1. Domain model is an OO representation of business logic.
    2. use it when business logic is very complex or prone to frequest change.
    3. An OO domain model will often look similar to a database model.
    4. Simple Domain Model (Source MSDN)
  3. Types of Domain Model
    1. Simple Domain Model
      1. A simple Domain Model looks very much like the database design with mostly one domain object for each database table. 
      2. A simple Domain Model can use Active Record, whereas a rich Domain Model requires Data Mapper.
    2. Rich Domain Model
      1. A rich Domain Model can look different from the database design, with inheritance, strategies, and other patterns, and complex webs of small interconnected objects. 
      2. A rich Domain Model is better for more complex logic, but is harder to map to the database.

  4. When to Use
    1. In those cases where the behavior of the business is subject to a lot of change, having a domain model will decrease the total cost of those changes.
    2. Business logic is very complex.
  5. Related Patterns
    1. TODO
  6. Related Technologies 
    1. TODO
  7. References
    1. Overview Tutorials
      1. http://martinfowler.com/eaaCatalog/domainModel.html
      2. http://msdn.microsoft.com/en-us/magazine/ee236415.aspx
    2. Further Study
      1. MSDN:Employing the Domain Model Pattern
      2. MSDN:Design of a Domain Model
      3. Blog:How to create a good domain model. Top 10 advices