NFX.Wave NamespaceNFX Class Library

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

 
Classes

  ClassDescription
Public classExceptionExtensions
Provides various extension methods
Public classExceptionMatch
Used for matching of exceptions passed to Make(context)
Public classFilterPipelineException
Thrown by filter pipeline
Public classHTTPStatusException
Thrown to indicate various Http status conditions
Public classMVCActionException
Wraps inner exceptions capturing stack trace in inner implementing blocks
Public classNotAuthorizationExceptionMatch
Used for matches to bypass AuthorizationExceptions, requires EXCEPTION passed in Make(context)
Public classPlatformUtils
Public classPortal
Represents a web portal that controls the mapping of types and themes within the site. Portals allow to host differently-looking/behaving sites in the same web application
Public classPortalHub
Portal hub - a registry of portals, It establishes a context for portal inter-operation (i.e. so one portal may locate another by name) when some settings need to be cloned. This is an app-started singleton instance class
Public classResponse
Represents Response object used to generate web responses to client
Protected classStringConsts
A dictionary of framework text messages. Localization may be done in this class in future
Public classSysConsts
Non-localizable constants
Public classTheme
Represents a portal theme. Theme groups various resources (such as css, scripts etc..) whitin a portal. Do not inherit your themes from this class directly, instead use Theme(TPortal)
Public classTheme TPortal 
Represents a portal theme. Theme groups various resources (such as css, scripts etc..) whitin a portal. Inherit your themes from this class
Public classURIPattern
Represents a URI pattern that can get matched against URI requests. The pattern is formed using regular URL grammar and captures segments denoted by "{}". Example: '/profiles/{controller}/{action="dflt value"}/{*params}' The class uses CSharp lexer, so it allows to use string escapes and unicode chars like CSharp
Public classWaveException
Base exception thrown by the WAVE framework
Public classWaveServer
Represents "(W)eb(A)pp(V)iew(E)nhanced" web server which provides DYNAMIC web site services. This server is not meant to be exposed directly to the public Internet, rather it should be used as an application server behind the reverse proxy, such as NGINX. This server is designed to serve dynamic data-driven requests/APIs and not meant to be used for serving static content files (although it can). The implementation is based on a lightweight HttpListener that processes incoming Http requests via an injectable WorkDispatcher which governs the threading and WorkContext lifecycle. The server processing pipeline is purposely designed to be synchronous-blocking (thread per call) which does not mean that the server is inefficient, to the contrary - this server design is specifically targeting short-called methods relying on a classical thread call stack. This approach obviates the need to create surrogate message loops/synchro contexts, tasks and other objects that introduce extra GC load. The server easily support "dangling"(left open indefinitely) WorkContext instances that can stream events (i.e. SSE/Server Push) and WebSockets from specially-purposed asynchronous notification threads.
Public classWaveSession
Represents a session in a WAVE server application
Public classWaveTemplateRenderingException
Wraps WAVE template rendering execptions
Public classWorkContext
Represents a context for request/response server processing in WAVE framework
Public classWorkDispatcher
Represents a default dispatcher that dispatches WorkContext calls on the same thread that calls Dispatch(work). May extend this class to implement custom dispatchers, i.e. the once that maintain their won work queue/worker threads
Public classWorkFilter
Represents a base for all work filters. Unlike handlers, filters do not necessarily handle work rather augment the work context
Public classWorkHandler
Represents a base for all work handlers. Handlers are final work execution destination
Public classWorkMatch
Decides whether the specifies WorkContext matches the requirements specified in the instance. The match may consider Request and Items properties of work context for match determination. Work matches do not belong to particular handler or filter, so they ARE STATELESS and their instances can be used by multiple different processors (i.e. handlers and filters).
Public classWorkMatch Variable
Represents capture variable
Structures

  StructureDescription
Public structureWorkMatch NameValuePair
Represents name/value tuple
Enumerations

  EnumerationDescription
Protected enumerationPlatformUtils HTTP_SERVER_PROPERTY
Public enumerationPortal DateTimeFormat
Public enumerationPortal MoneyFormat