Simple IController interface implementation with backing fields. Members are marked as virtual so it is possible to override them in subclasses.
|ControllerBase<(Of <(TTask, TView>)>)|
Base generic implementation of the IController<(Of <(TTask, TView>)>) interface. Has strongly typed associations to the linked task and view (of generic parameter types TTask and TView respectively) therefore eliminates the need of typecasting when accessing the task and the view.
Members are marked as virtual so it is possible to override them in subclasses.
Navigator subclass which has no real functionality except for modifying the task state. The views manager is not used at all, and no actual view switching is done. This class is intended primarily for tests.
|IController<(Of <(TTask, TView>)>)|
Generic extension of the IController interface. Has strongly typed generic associations to the task and the view. Therefore no typecasting is required when accessing the associated task or view.
Istead of implementing this interface manually you might better use the generic base controller class - ControllerBase<(Of <(TTask, TView>)>)