Extensions Source Code Management With Integration Studio

Extensions Source Code Management With Integration Studio


Integration Studio introduced the ability to manage the Extension’s source code automatically. By allowing Integration Studio to manage your Extension’s source code you get:

- Automatic unpack/pack of the Extension’s source code to/from the file system: the Extension’s Resources (formerly dependencies) are now automatically unpacked to the file system after opening an Extension and packed back on save;

- Visual feedback of the changed source files: in the Resources tree you can get immediate visual feedback of which files changed since the Extension was last saved (they are the ones in red);

- Improved integration with the IDE: you can now click the “Edit Source Code” button that will launch the Extension’s solution on Microsoft Visual Studio;

- Automatic source code merge: after performing any change in the Extension’s definition (e.g. addition/change of Actions, Structures or Entities), Integration Studio will automatically merge these changes with your existing code (e.g. adding the C# signatures of new Actions and updating the C# signatures of changed Actions);

- Automatic compilation: Integration Studio will Verify, Compile and Publish the Extension during the 1-Click Publish process;

- Source Code version control: by including the source code as Resources, your Extensions will always have their implementation code available, plus, you can always rollback to a previous published version and still have the implementation code for that version available inside the Extension.

- Compare (Diff) with templates: you can now compare your current source code with the clean template corresponding file (formerly stub).

Resources Hierarchy

In the Resources tree of Integration Studio you can view and manage the Extension Resources. These Resources have the following hierarchy, regarding source code:
  • Resources - The root folder
    • Source – A folder with the source files

      • Bin - A folder with the Extension’s implementation .Net Assembly and related dependencies.

        • OutSystems.Nss<ExtensionName>.dll - The Extension’s implementation .NET Assembly
    • AssemblyInfo.cs

    • Entities.cs

    • Interface.cs – The Extension’s C# interface.

    • RecordLists.cs

    • Records.cs

    • <ExtensionName>.cs – The Extension’s C# implementation.

    • <ExtensionName>.csproj

    • <ExtensionName>.sln

    • Structures.cs

Newly created Extensions with Integration Studio already include the Extension’s source code and you get all the mentioned benefits without needing further instructions.

However, if you already have an Extension that was created before the existence of Integration Studio, that is, prior to Hub Edition 3.1, you will need to manually include the Extension’s source code as Resources to benefit from the new features of Integration Studio regarding source code management. See How to Migrate Extensions from Versions Prior to 3.1 for further instructions on this task.