About what's new for ArcGIS Engine developers at 9.2
Existing ArcGIS Engine developers will find the Migrating and upgrading your code topic helpful in updating existing code and applications to 9.2. It includes the following:
The following topics provide an overview of additions, enhancements, and modifications in ArcGIS 9.2 Engine that impact developers and their work with ArcObjects:
A key focus of the 9.2 release for ArcGIS Engine was the addition of more advanced extensions. The new extensions to ArcGIS Engine Runtime—Data Interoperability, Maplex, Schematics, and Tracking—follow the existing Engine Runtime extension pricing and licensing model.
Data Interoperability—Provides real data interoperability that works with all the major formats. The extension includes direct data access, transformation, and export capabilities and enables custom ArcGIS Engine applications to dynamically fuse together various data sources. The Data Interoperability license is needed when a custom application requires the functionality exposed via the extension. This functionality is exposed to developers through geoprocessing tools, new in ArcGIS Engine at 9.2.
Maplex—Enables automation of high-quality cartographic text placement and labeling. Without the Maplex extension, the baseline labeling functionality prioritizes label placement based on which layer a feature is in. This powerful and flexible extension allows features from many layers to be prioritized equally and independently. This functionality is exposed to developers through the Maplex assembly, now available in ArcGIS Engine.
Schematics—Provides the ability to manage and view network data in a wide variety of geoschematic and schematic representations. This functionality is exposed to developers through the Schematic assembly, now available in ArcGIS Engine.
Tracking—Allows your application to explore, visualize, and analyze change relative to time and location. The extension provides tracking of temporal data from a Global Positioning System (GPS) and other tracking and monitoring devices in real-time and includes the playback and analysis of the time series data. This functionality is exposed to developers through the Tracking assembly, now available in ArcGIS Engine.
New assemblies
In addition to the assemblies noted in the New extensions section that expose new extensions to ArcGIS Engine Runtime, several assemblies previously only available to ArcGIS Desktop developers are now available to ArcGIS Engine developers and are licensed as part of the core ArcGIS Engine Runtime.
Application Developer Framework (ADF)—Contains the .NET base classes, component category unique IDs (CATIDs), and utility classes that were previously delivered in the ESRI.ArcGIS.Utility assembly that has been deprecated for the 9.2 release. Also includes the following new base classes: BaseCommandBar, BaseMenu, BaseToolbar, CustomLayerBase, and GlobeCustomLayerBase.
ADF.Connection—Contains .NET classes to establish connections with ArcGIS Server and ArcIMS services. Also provides a set of classes to manage failover and round-robin properties of a connection.
Animation—Contains objects to work with animations in ArcMap, ArcScene, or ArcGlobe. An animation in ArcMap, ArcScene or ArcGlobe is composed of animation tracks (AGAnimationTracks), which are further composed of keyframes (AGAnimationKeyframes) of the same type. Each keyframe stores properties of the animation objects. When an animation is played, keyframes are interpolated and the interpolated properties are then applied to the animated objects to create the dynamic visual effect.
ArcWeb—Provides objects to access a Simple Object Access Protocol (SOAP)-based collection of ArcWeb Services. ArcWeb Services communicate with any local application that can connect to the Web and understand Extensible Markup Language (XML). ArcWeb Services use a SOAP wrapper to transfer information back and forth to a local client application using Hypertext Transfer Protocol (HTTP).
Controls—Provides access to all ArcGIS Engine Controls (LicenseControl, MapControl, PageLayoutControl, GlobeControl, SceneControl, ToolbarControl, TOCControl, SymbologyControl) and all out-of-the-box ArcGIS Engine commands, menus, palettes and multi-items. All controls, commands, and HookHelper objects have been moved from the ControlsCommands, 3DAnalyst, and GlobeCore assemblies to the new Controls library.
DataSourcesNetCDF—Provides objects to access a netCDF file as a workspace and to create a raster layer, feature layer, or table view from a netCDF.
GeodatabaseExtensions—Contains objects to aid in the creation, management, and use of terrain datasets and cadastral fabrics.
At the 9.2 release, the cadastral fabrics-related objects are not yet fully implemented and it is recommended that developers not utilize them until the Cadastral Analyst extension is released.
GeoprocessorandGeoprocessing—ArcGIS Engine Runtime at 9.2 includes the geoprocessing framework. The geoprocessing tools available to custom ArcGIS Engine applications depend on the license the application is using. ArcGIS Engine applications can run ArcView level geoprocessing tools and edit shapefiles and personal geodatabases using an ArcGIS Engine Runtime or ArcView license. ArcGIS Engine applications can run ArcEditor level geoprocessing tools and edit enterprise geodatabases using an ArcGIS Engine Runtime with Geodatabase Update extension or ArcEditor license. To run an ArcInfo level tool, an ArcInfo license is required.
The Geoprocessor assembly is a .NET-specific assembly containing a managed class called the geoprocessor. In most cases, .NET developers would interact with this assembly rather than the Geoprocessing assembly, which exposes geoprocessing objects via a component object model (COM). To read more about using the geoprocessing framework, refer to Getting started with geoprocessing.
Deprecated assemblies and controls
The following assemblies and controls have been deprecated at the 9.2 release:
Utility—.NET base classes, CATIDs, and utility classes that were previously delivered in the ESRI.ArcGIS.Utility assembly have been moved to the ADF assembly. It is recommended that the new ADF assembly be used for all future developments.
ReaderControl—Instead, use either the ArcGIS Desktop Publisher ArcReaderControl or the ArcGIS Engine Controls, such as the MapControl, PageLayoutControl, TOCControl, and ToolbarControl.
Key enhancements to existing assemblies
Carto—Exposes the new cartographic representation functionality. Custom applications can view and work with cartographic representations using an ArcGIS Engine Runtime or ArcView license; however, creating or editing a cartographic representation requires an ArcGIS Engine Runtime with Geodatabase Update extension or an ArcEditor license.
Additionally, the Carto and Display libraries both include objects needed to support the new display system available in ArcGIS 9.2 Dynamic Display. Dynamic Display is a core map rendering engine based on OpenGL technology, designed to support the requirements for a very active display environment. This includes the capability to move a large number of display objects at subsecond refresh rate and the manipulation of the entire display to support smooth panning, zooming, and rotation.
The following layer factories have also been added to the Carto library:
CadastralFabricLayerFactory
EngineCadAnnotationLayerFactory
EngineCadFeatureLayerFactory
EngineCadLayerFactory
EngineCoverageAnnotationLayerFactory
EngineIMSLayerFactory
EngineNetworkLayerFactory
EngineTopologyLayerFactory
EngineWMSMapLayerFactory
FeatureLayerFactory
NetCDFLayerFactory
RasterCatalogLayerFactory
RasterLayerFactory
TerrainLayerFactory
TinLayerFactory
DataSourceRaster—Includes a new set of components that perform raster transformations such as polynomial transformation, Rational Polynomial Coefficients (RPC) transformation, coordinate transformation, Spline transformation, and adjust (rubber sheeting) transformation. In addition, APIs to build and retrieve raster attribute tables for all raster data sources are now available and the SaveAs capability has been extended to enable saving to more raster formats such as PNG, JP2, BMP, JPG, PCRaster, X11 PixelMap, BIL, BIP, BSQ and file geodatabase.
Display—Provides new components for editing feature class representations so that cartographic editing and finishing maps are more convenient processes. Representation is symbology stored in the geodatabase for each feature. Representation rules define how a set of features in a feature class will be drawn, using representation symbology rather than standard ArcGIS symbols. New symbols called Basic symbols (BasicMarkerSymbol, BasicLineSymbol, BasicFillSymbol) are provided with ArcGIS 9.2. In addition, methods are provided to convert standard ArcGIS symbols to Basic symbols.
Basic symbols are then used along with GeometricEffects to define RepresentationRules. GeometricEffects are special processes that allow you to dynamically alter the geometry of features as they are drawn on your map, without affecting their underlying shape or spatial relationships. GraphicAttributes enable you to define attributes for GeometricEffects (width, dash style, simplify options, etc.), MarkerPlacements (x, y offsets), Basic symbols (patterns, strokes, etc.), and feature class representation properties (visibility). Features can be displayed using the feature geometry or shape overrides from the representation or as a free representation graphic.
Additionally, the Display and Carto libraries both include objects needed to support the new display system available in ArcGIS 9.2 Dynamic Display. Dynamic Display is a core map rendering engine based on OpenGL technology, designed to support the requirements for a very active display environment. This includes the capability to move a large number of display objects at subsecond refresh rate and the manipulation of the entire display to support smooth panning, zooming, and rotation.
GeoAnalyst—Two new interfaces have been added to the GeoAnalyst library. The new interfaces are IInterpolationOp3 and IRasterNeighborhood2.
Geodatabase—New components have been added that create and manage feature class representations. Representation is symbology stored in the geodatabase for each feature. Creating new representations for a feature class results in the addition of two new fields (RuleID and Override) to the feature class. A new workspace extension called RepresentationWorkspaceExtension maintains information about representations present in a workspace. RepresentationClass, RepresentationClassName, RepresentationClassNames, and Representation are some of the new classes added to this library.
GeodatabaseDistributed—Now provides components for geodatabase replication and a high-level object model for using this functionality with ArcGIS Server.
Geometry—Now enables the creation of high-precision spatial references and supports vertical coordinate systems to vector data, including shapefiles and feature classes.
A spatial reference is composed of two parts. The first includes the horizontal and vertical coordinate systems. The second includes storage and processing parameters for a dataset. Prior to this release, storage parameters for a dataset were defined by the domains or area of interest (x, y, z, and m) and the precision or scale values. The maximum precision value was 2147483647 if a domain had an extent of 1. This type of spatial reference is now called low-precision. A high-precision spatial reference, new at 9.2, has a maximum precision value of more than 9,000 trillion (9E15). The spatial reference concept of precision is difficult to understand so a new concept of "resolution" is now in use. The resolution is the inverse of the precision and directly reflects the data's accuracy. Tolerances values are also supported. They are used with all geometric and relational operators.
The spatial reference coclass now supports ISpatialReferenceResolution and ISpatialReferenceTolerance interfaces. With the ISpatialReferenceResolution.ConstructFromHorizon method, you can automatically set the x, y domain to the valid area of interest for a projected or geographic coordinate system. Use ISpatialReferenceFactory.ConstructHighPrecisionSpatialReference to create a high-precision version of an existing low-precision spatial reference.
Vertical coordinate system metadata is now supported for vector data including shapefiles and feature classes. A vertical coordinate system includes information on the origin and linear unit of z-coordinates of a dataset. Use the ISpatialReferenceFactory3.CreateVerticalCoordinateSystem method to instantiate a predefined vertical coordinate system. Use IVerticalCoordinateSystemEdit.Define to create a custom vertical coordinate system. Set or retrieve the vertical coordinate system on a spatial reference with ISpatialReference3.VerticalCoordinateSystem.
SpatialAnalyst—Two new interfaces, IHydrologyOp2 and ILogicalOperatorOp2, have been added to the SpatialAnalyst library. All GPValue, GPDataType, GPValueTableType, GPDomain, and a few other objects have been moved from SpatialAnalystUI assembly to SpatialAnalyst assembly.
New SymbologyControl
The SymbologyControlprovides members a way to display the contents of server style files, style files, and custom symbology. The control displays the contents on one symbology style class at any time (for example, marker symbols or color ramps) and provides members a way to select, remove, and preview individual symbols. Selected symbols can be used to update part of an application, such as a layer's renderer, an element's symbol, or cartographic marginalia such as scale bars and north arrows.
Enhancements to existing controls
ToolbarControl—The toolbar control now includes the following:
Appearance properties for vertical orientation, transparency, background color, and shading
Support for Windows XP themes
Hidden items menu when the ToolbarControl is not large enough to display all items
Support for multi-item objects on ToolbarMenus
ToolbarPalette object providing a popup palette of tools
Right to left ToolbarMenus and ToolbarPalettes
Customizable ToolbarMenus and ToolbarPalettes
Support for buddy swapping
Persisting and loading ToolbarControl items
Context sensitive help
TOCControl—The table of contents control is enhanced with the following:
Getting and setting the selected layer
Layer drag and drop from ArcMap
Layer reordering by drag and drop
Copying layers
MapControl—The mouse wheel and keyboard display navigation has been enabled.
PageLayoutControl—The mouse wheel and keyboard display navigation has been enabled.
LicenseControl—The license control has been updated with new ArcGIS Engine Runtime extensions and licensing levels.
Add Data command—Provides support for file data sources (coverage, VPF, CAD, Data Interoperability), personal geodatabase, file geodatabase, server data (SDE, ArcIMS, ArcGIS, ArcWeb), raster data (known file extensions) and schematics data.
Full Screen command—Toggles between full-screen and windows mode.
Map and Globe Inquiry commands—Provides find, identify, measure, hyperlink, swipe, and transparency commands.
Ink commands—Provides ink markup pens, highlighters, and erasers, together with a find ink command. In addition the EngineInkEnvironment object manages the ink environment used by these commands and any custom commands you create.
ArcWeb Services commands—Provides commands for signing in and managing an ArcWeb services account, and performing ArcWeb routing and place finding.
Editing commands—Provides commands for managing an edit session (starting, stopping, saving), managing selected graphics or features (cut, delete, copy, paste, move), managing the snapping environment, editing attributes, sketching and displaying sketch properties, and a context menu for managing the current sketch (direction, deflection, length, endpoint, midpoint, vertex, streaming, absolute x, y, delta x, y). In addition, the EngineEditor object manages the editing environment used by these commands and any custom commands you create. Custom ArcGIS Engine applications can edit shapefiles and personal geodatabases with these commands using an ArcGIS Engine Runtime or ArcView license, or enterprise geodatabase data using an ArcGIS Engine Runtime with Geodatabase update or ArcEditor license.
Network commands—Provides commands for managing network locations (creating, selecting, moving), solving networks (route, closest facility, service area, origin-destination (OD) cost matrix), and displaying directions. In addition, the EngineNetworkAnalystEnvironment object manages the network environment used by these commands and any custom commands you create. Custom ArcGIS Engine applications must have a Network extension checked out to use these commands.
Schematics commands—Provides commands for managing schematics diagrams (create, update, save), managing schematics elements (edit, move, select), and managing label and symbol size. Custom ArcGIS Engine applications must have a Schematic extension checked out to use these commands.
Licensing modifications
All custom ArcGIS stand-alone and executable applications must perform license initialization at application start time using the LicenseControl or the AoInitialize object. Any existing 9.0 or 9.1 custom ArcGIS stand-alone applications not containing license initialization will fail when run on the 9.2 platform.
ArcGIS 9.2 Desktop can run ArcGIS Engine applications
You can now run your ArcGIS Engine applications on an ArcGIS Desktop machine. Basically, if you want to run an Engine application and you already have 9.2 Desktop installed, you need not install the Engine Runtime to run your applications.
Visual Studio integration
Developer resources and tools have been integrated into the Visual Studio 2005 and Express integrated development environments (IDEs) to make developing ArcGIS Engine applications easier. These include:
Code Converter—A wizard that converts Visual Studio projects and solutions built against ArcGIS 8.3 to work with ArcGIS 9.2. You can either convert the projects in the current solution or use the batch option to convert many solutions or projects at a time.
Project Templates—Help you quickly get up and running with your ArcGIS Engine application.
New Item Templates—Provide a simple, quick way to create common customizations such as commands and tools.
Code Snippets—Small sections of ArcGIS code that perform common tasks and can be pasted into your project using Visual Studio's Insert Snippet feature.
Add ArcGIS Class—A wizard that creates a .NET class for a range of typical ArcObjects components.
Add Reference—A dialog box enabling you to add ArcGIS references to your project based on product, functional area, or feature area.
Component Category Registrar—Registers classes in the current project to ESRI component categories.
License Initializer—Selects which ArcGIS product and extension licenses your application will initialize upon startup.
ArcGIS Toolbox Reference—Creates a managed assembly for your custom ArcGIS toolbox of geoprocessing tools.