Skip to main content

Technology Layers

Every NS applicationNS Application (NSApplication). A pre-built software stack that provides common enterprise application functionality such as CRUD, search, authentication, and business process modeling out of the box. is organized into 6 layersLayerLogical separation of functionality within a single system/application, focused on code organization.. Each layerLayerLogical separation of functionality within a single system/application, focused on code organization. encapsulates a distinct responsibility, and each is built using its own set of technologies.


The Shared LayerLayerLogical separation of functionality within a single system/application, focused on code organization. is used by all other layersLayerLogical separation of functionality within a single system/application, focused on code organization. (except the View LayerLayerLogical separation of functionality within a single system/application, focused on code organization.) to communicate and pass data between without directly depending on each other.

The View, Control, and Proxy layersLayerLogical separation of functionality within a single system/application, focused on code organization. together handle getting a request from the user interface to the backend, while the Proxy, Logic, and Data layersLayerLogical separation of functionality within a single system/application, focused on code organization. handle getting that request from the backend interface down to the database. Splitting responsibilities this way means each layerLayerLogical separation of functionality within a single system/application, focused on code organization. only needs to know about its direct neighbors, not the whole chain.

Why multiple application instances?​

An ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. doesn't commit to one technology per layerLayerLogical separation of functionality within a single system/application, focused on code organization.. That choice is made by its ApplicationInstance, and you can define more than one. This matters whenever your technology needs differ by deployment target or environment: a production deployment might rely on proprietary infrastructure you can't (or don't want to) run on a local development machine, so you'd define one instance for each, sharing the same underlying model.


For the exact class conventions each layerLayerLogical separation of functionality within a single system/application, focused on code organization. generates, and how they interact between components, see the Layers reference.