
Octopus.GUI
This software layer contains all windows of Octopus Client. We use the MDI (Multiple Document Interface) window management. It allows user to have multiple windows at the same time : 2 clients and 2 c ontracts for example.

For drawing charts, we use ZedGraph (LGPL library).
For reporting we use Crystal Reports. These reports are defined in RPT files, but parameters and sometime SQL queries are injected from the C# source code.
Octopus.Services
This software layer contains all services provied to GUI. They call the Octopus.CoreDomain classes for running all business rules, and the Octopus.Manager classes for retreiving & updating data in database.
Octopus.CoreDomain
This software layer contains all business rules.
These classes :
- do not manage errors (done by Octopus.Services layer)
- do not calls Octopus.Manager classes (done by Octopus.Services layer)
- contain ALL business rules
Octopus.Manager
This software layer contains all database management classes (SELECT, INSERT, UPDATE, DELETE).
They do not use stored procedures, All queries are directly in these classes.
For database management we use up to 4 ADO.Net connections :
- Primary SQL connexion for normal usage
- Secondary SQL connexion when we need to run 2 queries at the same time.
- Special SQL connexion used for database restore operations (needed to kill all existing exclusive lockes)
- Special SQL connexion on master database for database schema operations (database creation & database upgrades)
SQL Database
We are compliant to MSDE SQL. That means that you can use:
- MSDE
- SQL Express (recommended)
- SQL Server
All what we use is tables and views. There are no stored procedures, no functions an no triggers.
