Developing Custom Apps

Th Apps Framework enables anyone to build apps that extend or bring new functionality to Gemini.

Technology Stack

Underlying the Apps Framework is built on Microsoft .NET technology.

  • Microsoft .NET 4.0 Framework
  • ASP.NET MVC 4
  • ASP.NET Razor View Engines
  • JavaScript and JQuery

Samples

The Countersoft GitHub repository contains sample applications that are built using the Apps Framework.

This documentation references those samples.

Structure

Every app has the following common elements.

References

The Gemini assemblies that compose the Apps Framework must be referenced.

Views

The views folder consists of Razor views - the user interface for your app if applicable.

Manifest

The app.manifest file describes your app.

App.Manifest

The manifest file describes your app and is used during deployment.

Option Description
GUID Globally unique identifer (GUID) for your app
Name Application title displayed in Screen setup for Administrators to identify your app
Description Brief description of the application
Version Major Semantic versioning for your app
Version Minor
Version Patch
Publisher Name of the organization/individual who owns the app
Released Date the app was released
Debug Can be true or false. When true app is not cached and can be changed on disk (useful during development)

Packaging

Every app is ZIPPED with the following folder structure.

Views

The views folder consists of Razor views - the user interface for your app if applicable.

Manifest

The app.manifest file describes your app.

Assembly

The dll file represents the compiled code for the app.

Deployment

Apps are deployed to the App_data/Apps folder which is located where you installed Gemini on your web server.

The packaged apps represent ZIP files which are then extracted and deployed for use.

To deploy the apps, recycle Gemini's App Pool in IIS. This will restart Gemini, which deploys new apps on startup.

To redeploy an existing app, stop Gemini's IIS App Pool and delete the GUID-named folder of the app, then restart the App Pool. Gemini will not redeploy an app if its GUID-named folder already exists and you cannot delete the folder if the App Pool is running.