---
title: "Software Development Kit (SDK) Overview"
slug: "sdk-overview"
description: "This document provides an introduction to the Decisions Software Development Kit (SDK).  The document discusses some of the customization options the SDK offers to Users such as, the ability to add to the product, control the product, and customize some of the initialization and installation options of the product. "
tags: ["SDK", "Developer Tools"]
updated: 2025-01-10T16:15:08Z
published: 2025-01-10T16:15:08Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.decisions.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Software Development Kit (SDK) Overview

## Overview

The Software Development Kit (SDK) allows developers to extend, control, configure, and customize the environment to fit any business needs.

Operating behind the philosophy of being a very comprehensive yet low barrier-to-entry feature, the SDK allows developers to create custom code that runs inside the Decisions environment to support simple complex features.

Using the SDK, developers are able to

- Integrate into other systems such as [Visual Studio](/v9/docs/setting-up-environment)
- Manage Business Domains by creating a [custom login page](/v9/docs/sdk-custom-login-page)
- Simplify or Control Designer Experience with custom Elements such as [Flow Steps](/v9/docs/flow-steps-simple)
- Utilize the full breadth of a database's functionalities with [Custom SQL Reporting](/v9/docs/custom-sql-reporting-overview)
- Build a custom Module

---

## Adding .dll file to Product

Starting from version 9, users can now load the .dll file directly from the platform instead of needing access to the file storage. For detailed information, refer to the article [Projects SDK Extension](/v9/docs/project-sdk-extensions).

---

## Example Extensions

Developers may expand the list of supported integrations or edit an existing Decisions integration. For example, building a specialized set of Flow steps to communicate to a database via a web service.

- [SDK: Flow Steps (Basic)](/v9/docs/flow-steps-simple)
- [Create Custom Data Types with SDK](/v9/docs/flow-steps-rule-steps-simple-creating-custom-data-types)
- [Custom Reporting Data Source (Basic)](/v9/docs/custom-reporting-data-source-simple)
- [SDK: Rule Steps (Basic)](/v9/docs/rule-steps-simple)
- [Embed Decisions Form in a Web App](/v9/docs/embed-decisions-form-web-app)

---

## Controlling the Product

Controlling the product gives Designer-level users a customized view of Decisions to focus on the necessary and/or desired types of Rules and business objects within the environment. For example, in an invoicing system containing numerous Rules to function, the Rule engine should only know about invoices.

- [Flow Behavior](https://documentation.decisions.com/v9/docs/flow-behavior-rule-behavior#custom-flow-behavior)
- [Folder Behavior](https://documentation.decisions.com/v9/docs/creating-custom-folder-behavior)
- Rule Behavior

---

## Initialization and Customization

Initialization and customization code can run at install time or when extensions are added to improve processes like re-branding the product or installing specific features from Decisions.

Please keep in mind that initialization and customization are not used for deployment; that is the role of the [designer repository](/v9/docs/repository-faq) or deployment images.

- [Accessing System Settings](https://documentation.decisions.com/v9/docs/system-settings-overview-settings-xml)
- [Creating Settings Objects](https://documentation.decisions.com/v9/docs/creating-settings-objects)

---

## [Object Relational Mapping (ORM)](/v9/docs/orm-basics)

Decisions utilize ORM to store and retrieve entities within the main Decisions database. Developers build with ORM to automate changes to the database and its data without the need for SQL queries. All changes with ORM must be written in the same coding language of choice as demonstrated in C#. While changes are done in this manner and adhere to the DRY ("do not repeat yourself") principle of software development, ORM demands time and patience to learn and set up. Given its advanced, heavyweight method, preparation is key to its success.
