# Developer’s Guide

Intended audience: developers, Programming language: all

In this section the process of how to write Tango device servers and clients (applications). In addtion to articles listed below you may be interested in Tutorials and HOW-TOs for developers or browse all documents marked for developers.

The section is organized as follows:

- Overview
  - C++ and Python
  - Java
- General guidelines
  - Tango object naming (device, attribute and property)
- 10 things you should know about CORBA
- Tango Client
  - Writing a TANGO client using TANGO C++ APIs
  - TangoATK Programmer’s Guide
  - PyTango - a Python binding to Tango
- Device Servers
  - Introduction to device server
  - TANGO Device Server Guidelines
  - The TANGO device server model
  - Writing a TANGO device server
  - Attribute alarms
  - Enumerated attribute
  - Memorized attribute
  - Forwarded attribute
  - Device polling
  - Generating events in a device server
  - Tango Device in Java
  - PyTango - a Python binding to Tango
- Debugging and Testing
  - Using Tango docker containers
- Advanced
  - Threading
  - Transferring images
  - Device server with user defined event loop
  - Tango Device Server Model
  - Tango REST API
  - The TANGO IDL file : Module Tango
  - Reference part
  - Known issues
- Tango Core C++ Classes Reference Documentation
- Contributing
  - How to work with Tango Controls documentation
  - How to contribute to Tango Controls C++ library (cppTango)