GX Developer Toolkit 8.1November 13, 2013
Tools for creating custom GXs to add functionality to Oasis montaj.
Geosoft's GX Developer Toolkit provides basic resources for creating custom GXs to add functionality to Oasis montaj. The Toolkit includes code compiler, resource compiler, manual and the Geosoft External API.
- Modify an existing GX to meet your needs. Usually this is a simple modification for more efficient use of the system.
- Create your own custom GX to do something special in Oasis montaj. The GX would use the GX API.
- Call your own algorithm in a separate DLL from Oasis montaj.
- Enhance your own processing environments by creating or opening Geosoft files (databases, maps) and/or applying Geosoft processes to your data.
- Create and market add-on products (eg third-party developers)
The Geosoft External API is a public domain programming interface that provides access to Oasis databases and other functions to support the use of Oasis databases by third parties.
This small set of DLL's is installed by third parties with their applications and provide access to Geosoft databases, maps, grid file formats and other functions to support the use of Geosoft files by third parties. The Geosoft API does not require installation of Oasis montaj or other Geosoft applications.
GX Developer and .NET
Geosoft supports the Microsoft .NET development environment. With .NET, a GX developer can build single functions or suites of functions into a .NET DLL that is run directly from Oasis montaj. This brings the significant benefit of a more advanced and powerful development and debugging environment, support for functions and the ability to create richer user dialog tools.
In response to Security concerns over third-party GXs, Oasis montaj 6.0 or later will only run GXs signed by Geosoft or its partners. For other GXs, the user will be asked to "trust" the GX before it is run for the first time.
Custom Resource Pack Generator
The Custom Resource Pack Generator can be found in the following location:
The Custom Resource Pack Generator is an application in the GX Developer Installer that will package your custom GX files and all of the associated files, such as, the OMN, GER and CSV files. The Custom Resource Pack Generator will assign the same structure as the Resource file directory in Oasis montaj and package them into a single resource pack file (.resource_pack) for distribution. This resource pack file can be applied in Oasis montaj 8.1 or higher through the Help > Install Custom Module menu.
You will notice that the documentation that ships with GX Developer has been merged into a single html help (CHM) guide (as opposed to a PDF and 2 CHM API references). This is available in the related resources panel at the top of this page. Updates to the help documentation will be announced on GXnet as they become available.
GX Developer 8.0 and 8.1 - Release notes and changes
GX Developer 8.1 (Nov. 13 2013) issue fix
IS127767 - The GX Developer application now has reinstalled source code files for C# and can be found in "..\Geosoft\GX Developer\apps\examples".
An important notice to all of our GX Developer users
With the release of Oasis montaj 8.0 and 8.1 there are some minor changes of which GX Developers should be aware. We always strive to maintain compatibility for GX Developers as far as possible between versions. Within the 8.0 development cycle some major restructuring of some of our modules occurred which reduced the compatibility significantly. At first it appeared that we would need to ship 8.0 with these breaking changes, but after some extra effort and time we managed to maintain the compatibility to at least the same extent as we have for our previous releases.
To provide clarity here are the impacts are:
- Existing custom C/C++ DLLs (linking to geogx and geodist) will continue to function as they did before with no need to recompile on top of GX Developer 8.0 or 8.1.
- Existing custom GX.NETs (.NET GXs) will continue to function – as long as the versions of the Geosoft .Net assemblies they were built against is available in the GAC (as outlined in the GX Developer Guide).
- Existing custom GXs will run correctly, however they must be installed in a new folder location, namely resourcefiles\gx. 4. Existing custom C/C++ dlls (exposing GX wrappers to GXC code) are unaffected and can be called from your custom GXs.
- As always some API calls might have been obsoleted which might affect code in any language. Note however that we attempt to keep obsoleted functions available for existing code and it should continue to function in 8.0 and 8.1. It only becomes apparent when you recompile your code to target 8.0 or 8.1.
The most significant change that versions 8.0 and 8.1 bring is in the GX.Net APIs:
- The geonet.dll and geoxnet.dll assemblies have been split into two assemblies each; geoengine.core.gxnet.dll, geoengine.core.gxnetx.dll, geosoft.desktop.gxnet.dll, geosoft.desktop.gxnetx.dll.
- Most code should now reference one of the core and one of the desktop assemblies and add use one or more of following namespaces; GeoEngine.Core.GXNet, GeoEngine.Core.GXNetX, Geosoft.Desktop.GXNet Geosoft.Desktop.GXNet.
- This should be all that is necessary to get existing code to compile as is, but in some cases it might be necessary to disambiguate between the Constant class in each of these. The C# examples of the Geosoft GX.Net GXs contains numerous examples of this.
- There is also a number of new constant classes which should be the preferred method of passing constant options into methods for new code. Browsing the generated documentation in the GX Developer guide (or using Intellisense in Visual Studio) will make this clearer.