NFX.ApplicationModel NamespaceNFX Class Library

[This is preliminary documentation and is subject to change.]

Stipulates base contracts for application containers - ApplicationModel. Application Containers unify the way how different types of applications are written (i.e. console, service, web, GUI)
Classes

  ClassDescription
Public classApplicationComponent
An abstraction of a disposable application component - major implementation/functionality part of an app. Components logically subdivide application container so their instances may be discovered by other parties, for example: one may iterate over all components in an application that support instrumentation and logging. Services are sub-types of components. Use "ApplicationComponent.AllComponents" to access all components in the container
Public classBaseSession
Implements base ISession functionality
Public classCommonApplicationLogic
Provides base implementation of IApplication for various application kinds
Public classExecutionContext
Provides access to execution context - an entity that groups Request, Response and Session object. This class has nothing to do with Web. Execution contexts are supported as easily in console, service, web, and Windows forms apps. All objects may be either application-global or thread level. This class is useful for technology-agnostic implementations of Record Models i.e. in a Record class one may write: " if (ExecutionContext.Session.User.Kind==UserKind.Administrator)..."
Public classNOPApplication
Represents an application that consists of pure-nop providers, consequently this application does not log, does not store data and does not do anything else still satisfying its contract
Public classNOPSession
Represents a session that does nothing and returns fake user
Public classServiceBaseApplication
Provides base implementation of IApplication for applications that have no forms like services and console apps. This class IS thread safe
Public classTestApplication
Application designated for use in various unit test cases. This class is not intended for use in production systems!
Interfaces

  InterfaceDescription
Public interfaceIApplication
Describes general application model - usually a dependency injection container that governs application initialization, state management, logging etc... An applications is usually implemented with a singleton class that has static conduits to instance properties. Applications may be passed by reference (hence this interface) to simplify mocking that otherwise (in case of static-only class) would have been impossible
Public interfaceIApplicationComponent
Provides marker contract requirement for an ApplicationComponent. This interface must be implemented only by ApplicationComponent class
Public interfaceIApplicationFinishNotifiable
Represents an entity that can get notified about application finish
Public interfaceIApplicationStarter
Represents an entity that performs work on application start. This entity must be either invoked directly or declared in config file under "starters" section
Public interfaceISession
Describes user session
Enumerations

  EnumerationDescription
Public enumerationSessionLoginType
Denotes types of session login