Developing Applications

Manifold applications may be developed using a variety of approaches, from simple scripts within Manifold, to code that functions as add-ins within Manifold, to standalone applications utilizing Manifold through the object model, to web applications. See the Programming Manifold topic for an introduction to the range of possibilities.

 

This topic provides some supplemental notes for programmers creating external applications which utilize Manifold through the object model, via COM or .NET.

 

Licensing

 

Every machine than runs Manifold or any part of Manifold must have a Manifold license. A purely external application that utilizes Manifold only through the object model needs only a Manifold runtime license. At the present writing there are two Manifold runtime licenses available:

 

·      Professional Runtime x64 - This license provides access to most Manifold API features and is used for applications that do not need Enterprise Edition features or features in Manifold extension options.

·      Universal Runtime x64 - This license provides access to all Manifold API features including Enterprise Edition, Business Tools, Geocoding Tools and Surface Tools features. It is used in cases where Enterprise features such as access to a spatial DBMS like Oracle Spatial are required or when some specific feature within an extension is required.

 

Note that an x64 license will run in 32-bit Windows as well as 64-bit Windows. See the 32-bit and 64-bit Manifold Editions topic for a discussion of 32-bit and 64-bit licenses and issues.

 

Volume discounts are available for runtime licenses. See the manifold.net website for the volume discount price schedule. See the Advice for Applications Developers section in the Programming Manifold topic for a discussion of serial number and activation issues of interest to developers.

 

Learning and Support

 

Microsoft Visual Studio is the most common development tool used for developing applications that utilize the Manifold API. Visual Studio is used to create Manifold itself and is the only development environment supported by Manifold Technical Support when processing developer support incidents. It is therefore wise for programmers who wish to have maximum support resources from manifold.net and from other programmers in the Manifold user community to utilize Visual Studio as well. Visual Studio Express editions are available for free download from Microsoft.

 

General tips for programmers developing their first applications using the Manifold API:

 

·      Gain proficiency with Visual Studio - Programming a sophisticated, complex and extensive API like Manifold is not a project for beginners. The better your programming skills are in general and the greater your expertise with Visual Studio, the smoother your projects with Manifold will go.

·      Master accessory technologies - Many applications will involve other software: web applications, for example, will require the usual web development skills such as precise familiarity with IIS, administrative and security expertise and so forth. Almost all sophisticated web applications and many standalone applications will utilize a DBMS. Solid mastery of such accessory technologies will help avoid confusion while learning Manifold.

·      Learn Manifold as an interactive application - Manifold is an immense application with numerous controls that help manage the intrinsic sophistication and complexity of GIS. If you don't learn Manifold interactively you won't have the conceptual and practical foundation to use the API effectively.

·      Study documentation - Information of interest to programmers will often be found in the documentation within topics aimed at interactive users as well as within the programming reference.

·      Study examples - Carefully study all examples published on the manifold.net web site, in the documentation, on other sites and in the forum.

·      Use the forum - Become a master at using the GeoReference forum, at http://forum.manifold.net as of this writing. Follow threads, learn to search deep into the forum, study examples and contribute to discussions on Manifold programming in the forum.

·      Leverage tech support - Read the Technical Support topic and the Support page on the manifold.net web site. Programmers who have mastered Visual Studio, who have learned Manifold interactively, who read documentation and study examples effectively and who participate in the forum will usually never seek technical support. Nonetheless, should you need to use a developer technical support incident it is important to use that incident effectively.

 

The above assumes that programmers have a basic foundation in those GIS concepts they will need that cannot be learned through Manifold documentation. If a programming project involves sophisticated manipulation of projections, for example, it could be that the developer will need some supplemental education through distance learning, use of a consultant or attendance at a local university course.

 

Updates and New Releases

 

Manifold frequently issues routine updates to existing releases and every year or so issues a major new release. Programmers upgrading either to an update or to a new release should carefully study the release notes for the update or new release, as small changes (or major changes) may require rewriting of code for compatibility.

 

In general, upgrading between major versions of Manifold, for example, from Release 7x to Release 8, requires a recompilation but upgrading within routine updates, such as any updates published for Release 8, does not.

 

Following are step-by-step examples of using Visual Studio to upgrade applications in typical scenarios involving a new Manifold release:

 

Upgrading a console application or class library written in C#, that only uses Manifold.Interop.dll:

 

1. Launch Visual Studio, open the project, open the Solution Explorer pane, open the References node for the project,

2. Remove the reference for Manifold (right-click the reference and select Remove),

3. Right-click the References node, select Add Reference, switch to the COM tab, select Manifold System Type Library, click OK,

4. Rebuild.

 

Upgrading a Windows application written in C#, that uses the Manifold ActiveX control:

 

1. Remove both the bin and obj folders

2. Launch Visual Studio, open the project, open the Solution Explorer pane, open the References node for the project,

3. Remove the references for AxManifold and Manifold,

4. Right-click the project node, select Add - Windows Form, click Add, open the Toolbox pane,

5. Drop any old items for the Manifold ActiveX control you might have,

6. Add an item for the currently installed version of the Manifold ActiveX control (right-click the empty area in the toolbox, select Choose Items, switch to the COM Components tab, check Manifold MapControl Object, click OK),

7. Drop the item for the Manifold ActiveX control onto the form (to re-generate the dropped references),

8. Switch to the Solution Explorer pane, remove the new form,

9. Rebuild.

 

Upgrading a console application or class library written in VB .NET, that only uses Manifold.Interop.dll:

 

1. Launch Visual Studio, open the project, open the Solution Explorer pane, double click the My Project node,

2. Switch to the References tab, remove the reference for Manifold,

3. Click Add and select Reference, switch to the COM tab, select Manifold System Type Library, click OK,

4. Rebuild.

 

Upgrading a Windows application written in VB .NET, that uses the Manifold ActiveX control:

 

1. Remove both the bin and obj folders,

2. Launch Visual Studio, open the project, open the Solution Explorer pane, double click the My Project node, switch to the References tab,

3. Remove the references for AxManifold and Manifold (which will turn blank after you remove AxManifold - that's OK),

4. Right-click the project node, select Add - Windows Form, click Add, open the Toolbox pane, drop any old items for the Manifold ActiveX control you might have,

5. Add an item for the currently installed version of the Manifold ActiveX control,

6. Drop the item for the Manifold ActiveX control onto the form,

7. Switch to the Solution Explorer pane, remove the new form,

8. Rebuild.

 

Many of the mechanical details of creating and maintaining applications are specific to the choice of a particular development environment such as Visual Studio, as can be seen in the examples above. Programmers are therefore strongly encouraged to use Visual Studio to get the benefit of as many support and informational resources as possible.

 

See Also

 

Programming Manifold