# Server development

> Develop servers with the OPC UA .NET SDK: introduction, getting started, and all topics from the address space to configuration and deployment.

> This content was machine translated and may contain errors. [Read in German](https://www.traeger.de/docs/development/opcua/server/)

Develop OPC UA servers with the OPC UA .NET SDK.

This chapter shows you how to develop OPC UA servers with the OPC UA .NET SDK. If you are new to the SDK, start with the introduction and getting started. You can read all other pages independently of each other.

## Basics

- [Introduction](https://www.traeger.de/en/docs/development/opcua/server/introduction): The concepts that every server development with the OPC UA .NET SDK builds on: starting and stopping the server, address, endpoints, and security.

- [Getting started](https://www.traeger.de/en/docs/development/opcua/server/getting-started): Set up your first server with the OPC UA .NET SDK: import the namespace, create the server, start it, and stop it again.

- [Configuration](https://www.traeger.de/en/docs/development/opcua/server/configuration): Configure the server: application, certificate, server endpoints and network binding, data transfer limits, and XML configuration.

## Provide data

- [Provide data from a device](https://www.traeger.de/en/docs/development/opcua/server/device-gateway): Provide the values of a PLC or field device as an OPC UA server, with data quality on failure, write access, and polling only on demand.

- [Manage nodes](https://www.traeger.de/en/docs/development/opcua/server/node-management): Create nodes in the address space of the server, control their visibility, and update them at runtime.

- [Read and write values](https://www.traeger.de/en/docs/development/opcua/server/read-write-values): Provide the values of nodes in the server and handle read and write access from clients.

- [Historical data](https://www.traeger.de/en/docs/development/opcua/server/historical-data): Store historical values of nodes and provide them to clients, with your own history provider or the OpcNodeHistorian.

## Information models

- [Node types](https://www.traeger.de/en/docs/development/opcua/server/node-types): Create and implement method, file, data type, variable, and data item nodes in the server, including analog values.

- [Data types at runtime](https://www.traeger.de/en/docs/development/opcua/server/dynamic-data-types): Define structures and enumerations at runtime, publish them in the address space, and provide their values without your own .NET types.

- [State machines](https://www.traeger.de/en/docs/development/opcua/server/state-machines): Define finite state machines in the server with enumerations and attributes, and change their states at runtime.

- [NodeSets](https://www.traeger.de/en/docs/development/opcua/server/nodesets): Import information models as NodeSets into the server and implement their nodes.

- [Node models](https://www.traeger.de/en/docs/development/opcua/server/node-models): Use OpcNodeModel to define which child nodes are created with a typed node, and take initial values from the type definition.

## Events and alarms

- [Events](https://www.traeger.de/en/docs/development/opcua/server/events): Publish global events from the server and provide local events through event nodes.

- [Alarms and conditions](https://www.traeger.de/en/docs/development/opcua/server/alarms-conditions): Provide event nodes with conditions: dialog and acknowledgeable conditions, alarm conditions up to limit alarms.

## Operation

- [Monitor requests](https://www.traeger.de/en/docs/development/opcua/server/request-monitoring): Monitor the request and response messages of the server, for example for logging or your own checks, and query server metrics.

- [Deploy the application](https://www.traeger.de/en/docs/development/opcua/server/deployment): Deploy a server application: files and dependencies, application certificate, XML configuration, ports, discovery server, and licensing.

- [Manage certificates with GDS](https://www.traeger.de/en/docs/development/opcua/security/gds-push): Manage the application certificate and the trust list of the server remotely with GDS: prerequisites, procedure, and limitations.

- [Secure servers](https://www.traeger.de/en/docs/development/opcua/security/server): Secure the server: endpoints, certificates, users, roles and access control lists, audit events, and a checklist for production.
