PmMda.Net.Dog.Reference namespace

Introduction

A reference code is an enumeration of values defining a domain relevant type and its legal values. For example the set of currencies defined in the related ISO standard is a reference code. Each code is identified by the type it belongs to - represented as a C# class derived from IReferenceCode - and a unique code identifier. Reference codes can have a hierarchical structure. For example the department structure of a worldwide company can be represented through a hierarchical reference code.
The framework knows the concept of reference code and uses the reference code manager (ReferenceCodeMgr) to access values of codes. The implementation of the framework never stores reference code objects or send them over the wire. Only the identifier of the code is stored or transmitted. Reference code objects are always transient ones. The mapping to the type is done implicitly.
The database definition connects the identifier of the code to the reference code table. Therefore persistent properties can only contain persistent reference codes. Technically, codes are mapped to 1-0..1 or 1-1 relationships.
The transformer factory knows the dependency between identifier and type. The name of the identifier is hard coded in the transformation routines. This approach is congruent with the concept of a reference code being a typed business enumeration.
Transient reference codes are build in the application logic and are not part of the data object graph framework.
The framework provides services to transfer reference codes from the server to clients. Incremental updates are available to minimize network overhead.

Design decisions

This package is a copy from the java-pmMDA framework.

Design diagram

Descriptions for the classes, interfaces and types can be found in the API.