pmMDA.NET

PmMda.Net.Dog Namespace

[This is preliminary documentation and subject to change.]

Data object graph framework

Introduction

Modern client-server applications manipulate complex graphs of data objects. For example a contract with its positions and optional amendments is represented as a hierarchy of data information. These graphs are transferred from and to the client application. The user views data edits it and commits the changes to the database through server functions. The patterns commonly found in the literature describe thoroughly how to implement simple data transfer objects DTO, but ignore the complexity of how graphs of objects should efficiently be transmitted between server and client components. The intended audience is software developers interested in using DOG or implementing their own variant.
Further information: pmMDA dog

Design diagram

PmMda.Net.Dog diagram

PmMda.Net.Dog.Persistence
PmMda.Net.Dog.Reference
PmMda.Net.Dog.Paging
PmMda.Net.Dog.Remoting
PmMda.Net.Dog.Updates

Namespace hierarchy

Classes

Class Description
DataObjectCollectFunctor This functor collects all visited data objects.
DataObjectId The data object identifier class defines the identifier of any data object.
DataObjectImpl Base class for self-made data objects.
DataObjectManager The data object manager defines a coherent set of handlers responsible for providing all services to manipulate data objects and their lightweight representations.
DataObjectVisitorFunctor This visitor forwards the visited data objects to a specified IDataObjectFunctor.
IndexedPropertyChangedEventArgs Provides data for the IndexedPropertyChanged event.
LightweightObjectImpl Base class for all lightweight objects.
MyDo Summary description for MyDo.
PrimitivePropertyChangedEventArgs Provides data for the PrimitivePropertyChanged event.
PropertyChangedEventArgs Provides data for the PropertyChanged events.
PropertyChangingEventArgs Provides data for the PropertyChanging events.
PropertyNameConverter Helper class that can convert an identifier to different representations such as a conversion from singular to plural.
SinglePropertyChangedEventArgs Provides data for the SinglePropertyChanged event.

Interfaces

Interface Description
IAbstractVisitorFunctor The abstract visitor functor defines the interface of a visitor which applies a functor to each visited data object.
IDataObject Interface for all data objects.
IDataObjectFunctor An IDataObjectFunctor is an object oriented representation of a function which has a data objects as argument.
IDataObjectHandler Interface to retrieve and store data objects.
IDataObjectHandlerImpl Extended IDataObjectHandler which contains methods which are used within the pmMDA framework to reload paged items.
IDataObjectVisitor The IDataObjectVisitor interface defines the visitor pattern for the graph of all data objects.
IHasId The IHasId interface defines the characteristic of any object possessing an identifier.
ILightweightObject Interface for all lightweight objects.
ILwFunctor The functor defines the interface of a functor object, meaning the object oriented representation of a function.

Delegates

Delegate Description
IndexedPropertyChangedEventHandler Represents the method that will handle the IndexedPropertyChanged event.
PrimitivePropertyChangedEventHandler Represents the method that will handle the PrimitivePropertyChanged event.
PropertyChangedEventHandler Represents the method that will handle a PropertyChanged event.
PropertyChangingEventHandler Represents the method that will handle a PropertyChanging event.
SinglePropertyChangedEventHandler Represents the method that will handle the SinglePropertyChanged event.

Enumerations

Enumeration Description
IndexedPropertyAction Specifies whether the items of an indexed property were added, inserted, removed or replaced.