In the current project we are working we have several classes/interfaces implemented to come together as a solution.
We the following tasks using the these classes:
- Validation/Cascading Behavior (Class Extension);
- IWorkspaceExtension for hiding internals;
- ArcMap Extensions (capture of certain events that allow or disallow user to continue with such operation);
- Edit Tasks for complex create operations;
- A in-memory cache, synced via class extension (this is used to reduced the round-trips to database when cascading updates)
We mostly handle relationships with subsequent queries, instead of using relationship classes, althought they are present in the schema.
The maximum distance we could go here is to have most of the default behavior on each feature class, ´but enforcing our business rules. We could go and create such datatype as cadastral networks, the effort would not pay off: http://edndoc.esri.com/arcobjects/8.3/?URL=/ArcObjectsOnline/Samples/ArcMap/Layers/DatabaseLayers/DatabaseLayers.htm