Download [GX Developer Toolkit
162 MB]

GX Developer Toolkit 8.0

March 25, 2013

Tools for creating custom GXs to add functionality to Oasis montaj.

 

Release Notes

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.

Key Functionality

  • 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)

Geosoft API

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.

Security

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.

GX Developer 8.0 - Release notes and changes

An important notice to all of our GX Developer users. With the release of Oasis montaj 8.0 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:

  1. 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.
  2. 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).
  3. 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.
  4. 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. It only becomes apparent when you recompile your code to target 8.0.

The most significant change that 8.0 brings is in the GX.Net APIs:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

A final note on documentation

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.

Some content has been updated in this release but there are still outdated sections that need to be updated. We hope to provide an improved update sometime before our next major release and will post a notice on GXnet when this new documentation is available.

Related Resources

GX Developer Manual

This help file contains all the documentation for GX Developer including the .NET and GXC references.

Download help file