Compared to the validation and enumeration apps discussed in Volume 1, we have to deal with a number of new technical issues:
In the model code we now have to take care of reference properties that require
maintaining referential integrity;
choosing and implementing one of the two possible deletion policies discussed in Section 2 for managing the corresponding object destruction dependency in the
destroy method of the property's range class;
conversion between internal object references and external ID references in the serialization function
toString() and the conversion function
toRecord(), as well as in the constructor function.
In the user interface ("view") code we now have to take care of
showing information about associated objects in the Retrieve/List use case;
allowing to select an object from a list of all existing instances of the association's target class and add it to, or remove an object from, a list of associated objects, in the Create and Update use cases.