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.