To all of you who interested on designing the application model, i want to discuss what i have done in my last project, and if you don't mind please share your opinion and your design technique so i can learn from all of you.

This is the design :
I divided my application into 4 major category.
1. entity part
- this part consist of classes and will be compiled into activex dll.
- all classes are representing the database entity. as example, if i have a table named employee
the class will be CEmployee with properties represent the table entity. in this class i also implement the variable filtering (length of the string variable for example)
- all classes in this part will be used during data process.
2. database part
- this part consist of classes and will be compiled into activex dll.
- all classes are representing the database process. one process (sql statement) one method.
- the function will only return recordset for sql select.
- direct reference on entity part.
3. controller part
- this part consist of classes and will be compiled into activex dll.
- all classes are representing the programming logic. no sql statement on this part. database operation will refer to functions on database part.
- direct reference on database and entity part.
4. interface part
- this part is standard application EXE with form.
- all the programming logic will reside on controller part.
- direct reference to controller and entity part.

This architecture makes a clear separation between interface, logic, database operation and entity.
and i found this is quiet clear. but since the application is consist of many dll, i still have problem with
compatibility and packaging (dll-hel*). if you guys have any comment, suggestion, or you want to share your design technique, or anything, it would be great.


Thanks in advace, Happy coding.