Namespace Azos.Apps
Classes
ApplicationComponent
An abstraction of a disposable application component - major implementation/functionality part of any app. Components logically subdivide application chassis 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
ApplicationComponent<TDirector>
Represents app component with typed ComponentDirector property
ApplicationDontAutoStartDaemonAttribute
Designates service-derivative classes that should NOT be auto-started by the app chassis
ApplicationRealmBase
Provides base implementation for IApplicationRealm
ApplicationSingletonManager
Implements a disposable IApplicationSingletonManager
AzosApplication
Provides base implementation of IApplication for applications that have no forms like services and console apps. This class IS thread safe
BaseSession
Implements base ISession functionality
BootConfLoader
Gets the boot configuration for app chassis. Reads the local process config to determine where the metabase is and what file system to use to connect to it. Once metabase connection is established get all information from there identifying the host by sky/Host/$name. If the name of the host is not set in config, then take it from SKY_HOST_NAME environment var. If that name is blank then take host name from: DEFAULT_WORLD_GLOBAL_ZONE_PATH+LOCAL_COMPUTER_NAME (NetBIOSName)
CommonApplicationLogic
Provides base implementation of IApplication for various application kinds
CompositeDaemon
Represents a daemon that contains other child daemons. Start/Stop commands translate into child sub-commands. This class is used to host other services in various job/background process hosts
CompositeDaemonException
Thrown by CompositeDaemon
Daemon
Represents a lightweight daemon(background in-app process) which can be controlled by Start/SignalStop-like commands. This class serves a a base for various implementations (e.g. LogDaemon) including their composites. This class is thread-safe
Daemon<TDirector>
Represents daemon with typed ComponentDirector property
DaemonWithInstrumentation<TDirector>
Provides base implementation for Service with IInstrumentable logic
ExecutionContext
Infrastructure class that should never be used in business applications Provides access to execution context - that groups Application and Session objects. All objects may be either application-global or (logical)thread-level. Effectively ExecutionContext.Application is the central chassis per process. The async code flows Session context automatically via Thread.Principal, however custom contexts should flow via passing it to functors.
GuidTypeAttribute
Provides information about the decorated type: assignes a globally-unique immutable type id
GuidTypeResolver<T, A>
Provides default type resolver implementation which looks for types in listed assemblies looking for types decorated with the specified attribute
HubModule
Defines a module that does nothing else but provides a hub/namespace grouping for child modules that it contains. This module is a kin to NOPModule - the difference is only in the intent. NOPModule signifies the absence of any modules, whereas HubModule holds child modules
ModuleBase
Provides base for IModuleImplementation. The descendants of this class are always injected via configuration injection process and never by code because modules are not practically expected to be created dynamically at runtime - they always get created by application chassis at boot.
NOPApplication
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
NOPApplicationSingletonManager
Implements IApplicationSingletonManager by doing nothing
NOPModule
Defines a module that does nothing
NOPSession
Represents a session that does nothing and returns fake user
SkyApplication
Provides Sky distributed application chassis implementation of ISkyApplication contract
TestApplication
Application designated for use in various unit test cases. This class is not intended for use in non-test systems
Structs
ApplicationRealmArea
provides default implementation for IApplicationRealmArea
CompositeDaemon.ChildDaemon
Child daemon entry as managed by CompositeDaemon class
Interfaces
IApplicationComponent
Provides marker contract requirement for an ApplicationComponent. This interface must be implemented only by the ApplicationComponent class. Components are the base building block of application tree - they get "mounted on app chassis"
IApplicationFinishNotifiable
Represents an entity that can get notified about application finish
IApplicationRealm
Provides status of the surrounding environment (realm) in which application gets executed. This realm is sub-divided into uniquely-named areas each reporting their status. This is used by various app components and services to assess the environment status in which they execute, for example: a logger may suppress error messages from network in a cluster when the area is about to be upgraded to new software. One may consider this status as a "message board" where services/system check/report the planned or unexpected outages and adjust their behavior accordingly. Azos provides only the base implementation of such classes delegating the specifics to more concrete app containers.
IApplicationRealmArea
Defines a runtime status of the named area. Azos application root provides access to IApplicationRealm.Areas
IApplicationRealmImplementation
Denotes implementation of IApplicationRealm
IApplicationSingletonManager
Provides singleton instance management (get/set/remove) functionality. The implementor gets allocated once per application context. All methods are thread-safe. Singleton instances are keyed on their type - this is designed on purpose as components should not create global ad hoc object instances (see remarks). The manager disposes all singleton instances on its own dispose, to bypass this behavior remove all items yourself prior to disposing ApplicationSingletonManager itself
IApplicationStarter
Represents an entity that performs work on application start. This entity must be either invoked directly or declared in config file under "starters" section
IDaemon
Defines abstraction for an entity that is controlled by Start/Stop commands and has a status
IDaemonView
Defines abstraction for an entity that is controlled by Start/Stop commands and has a status
IGuidTypeResolver
Describe an entity that resolve type guids into local CLR types
IModule
Describes application modules - entities that contain business domain logic of the application or general system logic (e.g. financial logic, complex image rendering service, social network mix-in etc.)
IModuleImplementation
Describes module implementation
ISession
Describes user session
Enums
AreaStatus
Defines general-purpose Statuses of runtime areas which can denote different things depending on application. For example an area may be a zone of a cluster which gets reported as being down or planning to get an upgrade
DaemonStatus
Stipulates service control phase statuses like: Active/Inactive etc...
SessionLoginType
Denotes types of session login