Size: 1094
Comment:
|
Size: 1286
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
The next few sections discuss the overall approach to programming the database interface. WARNING: This was done in a frenzy and will most likely need to be reworked! Time was much more important than neatness. Later we WILL be introducing some better "software engineering" practices. At the time of this writing we already have over 57 KLOC. | The next few sections discuss the overall approach to programming the database interface, business objects and backeend systems. We are considering the following technologies: * SQL CE synchronized to a backend system (See http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx and look for Synchroniz corporate data) * NHibernate (http://nhforge.org/Default.aspx) and possibly Fluent NHibernate (http://fluentnhibernate.org/) for database business objects. * SpecExpress framework for specifying property rules validation |
C# Programming Object Model
The next few sections discuss the overall approach to programming the database interface, business objects and backeend systems. We are considering the following technologies:
SQL CE synchronized to a backend system (See http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx and look for Synchroniz corporate data)
NHibernate (http://nhforge.org/Default.aspx) and possibly Fluent NHibernate (http://fluentnhibernate.org/) for database business objects.
SpecExpress framework for specifying property rules validation
Visual Design
We are using Menus and tabbed panels within tabbed panels. Until we have time, look at the design for more info.
Object to Database Integration Model
FORM CONTAINS:
HashMap<FieldRomanNumeral,FieldData{Field Information, List<SquareData>}>
HashMap<FieldRomanNumeral|SquareDesignation, SquareData{Square Information, List<BaseLocusData>}>
Incidentally the List<SquareData> should match the tabs shown under the squares tab for that Field. Can we map it directly?
Also, the List<BaseLocusData> maps the the list of tabs showing the loci - even though these are not "controls" each BaseLocusData element will contain controls.