Introduction

Each complete module has:

  • a Window Handling Object WHO: specifies the behavior of the controls

  • a BusinessObject busObj: data manipulation; direct access to the dataSet (and dataSet fields)

  • at least one DataSet

A Window Handling Object defines the behavior of the window itself and of the controls within it. It is the place where the „call-to-action” happens, i.e. it can respond to event handlers of any type. It responds to various events triggered by the window or by the controls, it holds references to the controls and can modify their properties at any given time. It does not contain business logic functionality; it delegates the functionality to the Business Object. It is the component that is able to handle exceptions and decide how the exception is handled (show message to user, retry, fail silently, etc.)

A Business Object is the part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might be concerned with lower-level details of managing a database. It is an executor of commands usually triggered by a Window Handling Object or a parent Business Object.

It should not implement events of any type; the responsibility of „call-to-action” belongs to the Window Handling Object.

It does not reference any visual components (WPF); it does not display user-level information.

It should not handle Exceptions in try/catch blocks; in the catch blocks, it should always call „throw;” after some action is performed such as Logging the error.

Uses LoggerSink sparingly (best practice: not at all).

Note: the code-examples used in section BusinessObject and Window Handling Object are code sequences from Production Feedback-Module (shortcut: PRM)

Module Overview
WHO Events

Last updated