This page provides details about enhancements in the 200.8 release of ArcGIS Maps SDK for .NET. It also lists this release's deprecations, resolved issues, known issues, and more.
200.8.1
Issues resolved
-
BUG-000154800: Vertical labels overlap.
-
BUG-000161830: Change label ordering to account for layer draw order.
-
BUG-000164521: Labeling does not honor the z-index of graphics.
-
BUG-000170696:
Portalfails to get the correct item size for items larger than 2 GB.Item. Create Async -
BUG-000175907:
Mapwith hidden fields fails to load.Image Sub Layer
-
BUG-000176452: Values of
doubledata type do not populate correctly when opening a mobile map package. -
BUG-000177036: A
Featurebacked by OGC API - Features or WFS cannot be cloned.Layer -
BUG-000179924:
Servicefails when duplicate layers exist.Geodatabase. Apply Edits Async() -
BUG-000180102:
Servicefails when a field named "edit_date" exists.Geodatabase. Apply Edits Async() -
Queryfails to return features from aRelated Features Servicein manual cache mode.Feature Table -
Local queries with CURRENT_TIMESTAMP or CURRENT_DATE return incorrect results.
-
Unable to load some KML datasets with custom namespaces.
-
Downloaded KML icons with unconventional filenames do not display correctly.
-
KML tracks in a multitrack don't honor its altitude mode property.
-
The
isandPartially Visible isproperties are not updated correctly when a child is removed from aVisible KML.Container -
The value of
Featureis returned as theType.name Popupfield value rather thanCoded.Value.name -
A dictionary renderer referenced from service metadata fails to render features.
-
Unable to add an on-demand map area when working with classic IPS maps that use an 'IPS_Positioning' feature table.
-
Improved positioning experience during transitions between indoors and outdoors when working with geometry-aided IPS.
-
Improved the geometry-aided positioning engine with a smarter step propagation logic, giving users more accurate positioning when standing still.
-
BLE position does not transition to outside with on-demand offline map.
-
Federated services fail to load if their server info is missing the token URL.
-
Percent along value is not populated with an offline
Utility.Association -
A deleted
Utilityisn't recognized as actually deleted.Association -
Geotriggernotifications are triggered repeatedly.Monitor -
Geotriggerstartup is noticeably slower.Monitor -
Identifydoes not return unclustered graphics whenGraphics Overlay Async() Featureis enabled.Reduction -
Poor performance of
Identifyoperations when a map or scene contains many layers and features. -
An incorrect path is reported for projection engine data files.
-
Memory leak when projecting raster data.
-
Complex contingent values may cause a crash on low-memory devices.
-
Crash caused by concurrent
setoperations.Viewpoint() -
App crashes when
Surface.is called with a point that lacks a spatial reference.Get Elevation Async() -
Subtypes andFeature Layer Subtypes lose feature templates when they are stored in a web map.Sublayer
- OAuth login doesn't work when switching between ArcGIS Online organizations.
- Gesture conflicts introduced by iOS 26.
- Enhanced load time and identify operations for ArcGISSceneLayer.
- Memory leak on Windows while interacting with a
Scenethat contains aView Map.Image Layer
Other improvements
- An Advanced Editing extension license is no longer required for creating versions or for editing non-utility network features in branch versioned data.
- Updates to 3rd party components:
- Harfbuzz to 11.4.5
- libexpat to 2.7.3
- LibTiff to 4.7.1
- OpenJPEG to 2.5.4: Fixes security vulnerability CVE-2025-54874
- SQLite to 3.50.4
Enhancements
Toolkit
- Added support for clickable image links on MAUI, WinUI, and UWP.
- Removed template override for popup viewer letting the default PopupViewer show instead.
- Updated PopupViewer navigation to not change Popup property during navigation.
- Added converter class to handle nullable bindings to boolean.
- Fixed a MAUI windows bug where the DateTimePicker would enter an infinite loop.
200.8
Enhancements
Geometry editing
Customizable geometry editing workflows using the programmatic reticle tool
You can now configure your GeometryEditor to use the new ProgrammaticReticleTool to facilitate customized geometry editing workflows such as those using buttons rather than tap interactions. Unlike our existing tools the ProgrammaticReticleTool has no built in touch interaction. Instead, it is driven by programmatic operations allowing you to configure your own behavior and interaction using buttons or other triggers of your choosing.
Use ProgrammaticReticleTool.SelectElementAtReticle() and ProgrammaticReticleTool.PickUpSelectedElement() to select and pick up the GeometryEditorVertex or GeometryEditorMidVertex at the reticle position. Then, drop a picked-up vertex or insert a new vertex using ProgrammaticReticleTool.PlaceElementAtReticle().
The ProgrammaticReticleTool.VertexCreationPreviewEnabled property can be used to enable or disable the appearance of vertex feedback and feedback lines that are drawn underneath the reticle. It can also be used to enable or disable both visual and haptic snap feedback. This is useful when implementing workflows that do not allow for vertex creation.
Hovered and picked up element changed events
The GeometryEditor.HoveredElementChanged and GeometryEditor.PickedUpElementChanged events can be used in your app to react to state changes in the GeometryEditor, and are especially useful when working with the new ProgrammaticReticleTool.
For example, when GeometryEditor.HoveredElementChanged occurs, based on the GeometryEditor.HoveredElement, your app UI can display a button that selects and picks up the element currently underneath the reticle, as shown below. Similarly, when GeometryEditor.PickedUpElementChangedoccurs, your app UI can display a button that drops the GeometryEditor.PickedUpElement or places a new vertex, using ProgrammaticReticleTool.PlaceElementAtReticle(). You can check the GeometryEditor.PickedUpElement to indicate to the user whether or not they will be inserting a new vertex or dropping a currently picked up element.

Disable grow effect when hovering over geometry editor elements
Use the new GeometryEditorStyle.GrowEffect to enable and disable the visual effect of vertices and mid-vertices growing when hovered.
Vertices and mid-vertices can be separately configured using GeometryEditorGrowEffect.ApplyToVertices and GeometryEditorEffect.ApplyToMidVertices.
Identify geometry editor elements
Use the MapView.IdentifyGeometryEditorAsync() method to identify elements at a given position when using the GeometryEditor. This allows you to implement workflows such as selecting geometry editor elements or updating the viewpoint to be centered at that element on a long press.

Customizable precision with tolerance and resolution
Use the new SpatialReferenceBuilder to create new SpatialReference objects with custom tolerance and resolution values for high accuracy workflows and GeometryEngine.
The SpatialReference class exposes new read-only properties for SpatialReference.Tolerance, SpatialReference.VerticalTolerance, SpatialReference.Resolution, and SpatialReference.VerticalResolution.
This resolves the following enhancement request: EN.
Utility network
Utility Network creation and access
The UtilityNetwork object can now be created with a ServiceGeodatabase object. When these objects are created from the same feature service source, they share the same instances of FeatureTable. This new constructor emphasizes the explicit relationship between them. Similarly, when a Map object is created from a web map containing utility network data, the layers, tables, and utility networks all use the same underlying ServiceGeodatabase object. Instead of creating a standalone UtilityNetwork, consider accessing the Utility using the Map.UtilityNetworks property. All public samples containing utility network data have been updated to align with this change. For more detailed information, refer to the API deprecations section.
Add title property to utility association result
This release adds a title property to UtilityAssociationResult. It provides a user-friendly name for UtilityAssociations shown in a FeatureForm or Popup. The title is derived from the title of the FeatureFormDefinition or PopupDefinition of the associated feature's layer or table, with a suitable fallback if no Feature or Popup has been created.
Indoor positioning
Support for on-demand and pre-planned offline map area workflows
It is now possible to create offline applications using an IPS-aware web map and implement the on-demand and pre-planned workflows. Indoor positioning data will be taken offline using ArcGIS Maps SDKs' offline jobs and the offline application will display a blue dot in the respective offline map area indoors.
Geometry-aided positioning
The indoor positioning engine is now enhanced by a new advanced algorithm that utilizes floor-plan geometries. It delivers smoother motion and reduces wall-crossing. This makes positioning feel more natural, especially when walking through complex indoor layouts. This feature is only supported with Indoor Positioning Data Services shared with ArcGIS Pro 3.6 or above.
Faster initialization
The required indoor positioning data can now be downloaded faster, ultimately resulting in a faster initialization time of the IndoorsLocationDataSource (ILDS). This feature is only supported with Indoor Positioning Data Services shared with ArcGIS Pro 3.6 or above.
Query and identify optimizations
ArcGISFeature access optimization
Accessing ArcGISFeatures by performing query operations on a ServiceFeatureTable or UtilityNetwork, as well as through the identify methods with FeatureLayers, has seen a significant boost in performance. This improvement is particularly evident when working with a map or scene that contains a large feature dataset, as these asynchronous operations now return results more efficiently, even while all features are still being rendered.
Layers
Improved performance and user experience of KML layers in a scene
In this release, performance and user experience for KML layers in 3D have been improved. The changes focus on line and polygon geometries. You'll notice the biggest improvements when a layer contains a large volume of data. Interaction with KML layers is now smoother, providing a much better user experience.
PDF Support
PDF files are now a supported raster file format, including GeoPDF® and geospatial PDFs using the ISO encoding. They can now be directly added to maps or scenes as raster layers or basemaps without the need to first convert them to another format. The first page of a PDF will be read and georeferenced according to optional embedded spatial reference information, and at a default DPI of 300.
Symbology
Support for fetching Model Symbols from a mobile Style file
This release adds support to fetch a Model Symbol from a mobile Style file. You can search for a model symbol in the mobile style or fetch a symbol by providing list of keys. The type of symbol returned is a MultilayerPointSymbol and model symbol layer object is returned as a generic SymbolLayer type object. This workflow is already supported for WebStyles.
Arcade
Support for new Arcade version
The SDK now supports Arcade 1.33
- Geotrigger notification profile now supports
$.Fence Layer Translatefunction is not yet supported and will be supported in a future release.Text
Projection Engine
Geographic (datum) transformations
- Added geographic (datum) transformation method Molodensky-Badekas (Position Vector). The existing Molodensky-Badekas method uses the Coordinate Frame version of the rotation matrix.
- Added geographic (datum) transformation method NTv2_Velocity. Although the method is designed to support datum anchor epochs and data epochs, only frame epochs of the geographic coordinate systems are currently supported for interframe conversions such as between NAD83(CSRS)v2 and NAD83(CSRS)v8.
SDK enhancements
Credential persistence via Fluent Configuration API
- Extended fluent configuration API to allow setting
CredentialPersistence. You can now useAuthenticationExtensions.UseCredentialPersistence()extension method to enable credential persistence for an app. - Added
RuntimeImage-valued thumbnail properties toPortalInfo,PortalGroup, andPortalUser. This simplifies loading thumbnails for secured services compared to existing URL-valued properties.
Toolkit
This release adds several valuable features, enhancements and bug fixes to Toolkit.
-
File Download Helper and Portal Item Download: A new download helper for portal item data now allows downloads to be paused, resumed, and restarted. This helper can be used for large portal item downloads in the toolkit.
-
Toolkit support for utility network associations in popups: The popup toolkit component now includes support for
Utility, which offers a seamless viewing experience for utility network associations in both web and mobile maps. This enhancement allows users to access filtered associations that are organized by layers and tables, enabling easy navigation to their associated features, complete with percent along values, terminal connections, or visibility in a containment display. Maps featuring popups with utility network associations can be configured using ArcGIS Pro, MapViewer, or Native apps.Associations Popup Element -
FeatureFormView and PopupViewer Navigation: You can now navigate through utility network features from within
PopupandViewer Feature.Form View -
Validationhandling: FeatureFormView now displays validation errors only after a control gets focus orError Visibility Applyis pressed. -
PopupMediaView refresh interval: Support for auto-refreshing popup images using the
Refreshproperty is added, so images in popups can update at set intervals.Interval -
FeatureFormView : New ICommand properties simplify creating apply and discard buttons which automatically enable and disable respectively, based on pending edit states.
Toolkit bug fixes and improvements
-
FeatureFormView and text input borders
- Fixed missing borders for text areas on iOS and MacCatalyst.
- Fixed border visibility for
TextinBox Featurein dark mode on UWP and Windows.Form View
-
FloorFilter component on MAUI/Windows/Android
- Fixed crashes and navigation issues when switching or selecting sites.
- Addressed collection view issues that were present in .NET 9, with workarounds in place for MAUI and additional bug fixes for Android.
-
PopupMediaView and Portal Item Download
- Added the ability to pause, resume, and restart downloads for portal item data using a new download helper class.
- The download supports serialization and validation using etags and date stamps to ensure data consistency.
-
Basemap Gallery and
SceneViewissues- Fixed occasional crashes relating to "Canvas trying to use a recycled bitmap" error when scrolling quickly in the Basemap Gallery Appearance sample on Android.
-
SearchView Geocoder
- Fixed an issue where the
Enablesetting was not being properly honored in SearchView.Default World Geocoder
- Fixed an issue where the
-
New MapViewController MVVM control
- The new MapViewController now uses
IdentifyandGeometry Editor Async MapViewspecific methods to streamline MVVM workflows for map view operations.
- The new MapViewController now uses
-
Toolkit Controls – WinUI AoT Support
Updated BookmarksView, Legend, OverviewMap, and FloorFilter controls to support WinUI ahead-of-time (AoT) compilation, fixing rendering and binding issues.
-
Other Toolkit Improvements
- Added
Utilityto FeatureFormView for improved utility network editing workflows.Associations Form Element - Improved error handling and UI consistency across platform toolkits.
- Optimized
Featureperformance with large form definition.Form View - Improved accessibility for BasemapGallery and ScaleLine controls.
- Added
Local Server
ArcGIS Maps SDK for Local Server is deprecated. The last release of Local Server will be ArcGIS Maps SDK for Local Server 200.8. For more information, see the deprecation announcement.
ArcGIS Maps SDK for Local Server 200.8 is an incremental compatibility release that provides support for geoprocessing and map packages created with ArcGIS Pro 3.5.
ArcGIS Maps SDK for .NET 200.8 supports:
- ArcGIS Maps SDK for Local Server 200.8
- ArcGIS Maps SDK for Local Server 200.6
- ArcGIS Maps SDK for Local Server 200.1
- ArcGIS Runtime Local Server SDK 100.15
To use a specific version of Local Server, reference the version of the Esri. NuGet package that corresponds to the version of ArcGIS Maps SDK for Local Server or ArcGIS Runtime Local Server SDK. For more information see the Deploy Local Server guide topic.
Breaking API changes
There are no breaking API changes with this release.
Behavior changes
- With this release,
GeometryEngine.Reshape()now supports true curves. - With ArcGIS Online now supporting true curves, you can now apply edits to circular arcs in an ArcGIS Online hosted feature service.
- The
wkt2string description of aSpatialReferenceis now read in preference overwktforFeatureLayers andGeodatabases and is also contained in theirSpatial Referenceoutput json. JSONmethod now serializes properties from theSerializable.to JSO N() unknowncollection.JSON - This is the last release where creating an
IntegratedMeshLayerusing theArcGISSceneLayerconstructor workflow is supported. Starting from next release, it is recommended that you use theIntegratedconstructor to create a layer of that type.Mesh Layer
Deprecations
API deprecations
- Class
ArcGISHttpClientHandleris now deprecated. To make requests using the SDK's network stack, taking advantage of its authentication and caching features, use ArcGISHttpMessageHandler instead. If your app relied on HttpRequestBegin and HttpRequestEnd events, switch to IHttpMessageInterceptor instead. ArcGISproperty is deprecated. UseHttp Request Message. Handler Httpto change the default handler, or set anConfiguration Extensions Ithat implements custom handling for individual messages.Http Message Interceptor - ServerInfo class and related APIs are now deprecated. To configure OAuth for a server, create an
OAuthUserConfiguration. - ArcGISPortal.GetLoginTypeForUriAsync method and PortalLoginType enum are now deprecated. To determine login type, use
ArcGISwithPortal. Create Async login. Then checkRequired=true Credentialin the ChallengeHandler.Request Info Generateand related types such asToken Options Generateare marked deprecated with this release.Token Options Generateare only used by obsoleteToken Options Tokentypes. To configure token creation forCredential ArcGISCredentialsubclasses, use the configuration parameter to theCreateof those subclasses.Async()
- The
UtilityNetworkconstructors withURIare deprecated and will be removed in a future release. Use the constructor that accepts aServiceGeodatabaseinstead. unknownandJSON unsupportedproperties have been deprecated from the JsonSerializableJSON JsonSerializableinterface and objects which follow a similar pattern. Use theJSONinstead to get all JSON data for an object. SinceSerializable.to JSO N() MapandSceneobjects can be large and expensive to parse and serialize, a newunusedproperty has been added specifically to those root objects.JSON
-
The
FeatureSubtype.domainsproperty is deprecated and will be removed in a future release. Use theField.domainin theFeatureSubtype.fieldOverridesinstead. -
Integratedenum value is deprecated fromMesh SceneLayerDataType. -
OpenStreetMap (OSM) basemaps are in mature support and will no longer be updated. They will be removed in a future version of the ArcGIS Maps SDK for .NET. For more information, see the Overture Maps Data in ArcGIS blog. We recommend that you replace your OSM
BasemapStylewith the equivalent Open Basemap styles, as follows:OSM Basemap style Open Basemap style OSMStandard openOSMStyle OSMStandardRelief openOSMStyleRelief OSMStandardReliefBase openOSMStyleReliefBase OSMStreets openStreets OSMStreetsRelief openStreetsRelief OSMLightGray openLightGray OSMLightGrayBase openLightGrayBase OSMLightGrayLabels openLightGrayLabels OSMDarkGray openDarkGray OSMDarkGrayBase openDarkGrayBase OSMDarkGrayLabels openDarkGrayLabels OSMStreetsReliefBase openStreetsReliefBase OSMBlueprint openBlueprint OSMHybrid openHybrid OSMHybridDetail openHybridDetail OSMNavigation openNavigation OSMNavigationDark openNavigationDark
BingMapsLayerandBingMapsLayerStyleare now deprecated and will be removed in a future version of ArcGIS Maps SDK for .NET. Microsoft has deprecated Bing Maps for Enterprise, which will retire and be replaced by Azure Maps on June 30, 2028. As a result, use of Bing Maps in ArcGIS Maps SDK for .NET is also deprecated. You can migrate from Bing Maps to Azure Maps by following the instructions in the Microsoft Azure documentation.
OS and framework deprecations
Support for the following technologies is deprecated in ArcGIS Maps SDK for .NET 200.8:
- .NET Framework
- .NET Standard
- UWP
- x86 support on Windows
The last version of ArcGIS Maps SDK for .NET to support these technologies is 200.8 (including long-term support 200.8.x patch releases). ArcGIS Maps SDK for .NET 300.0 and later will not support these technologies. See this Esri Support knowledge base article for more details.
Issues resolved
Issues addressed in this release are listed below.
- Memory leak issues that occur when reloading a mobile map with a
UtilityNetworkcould lead to failures in trace operations. UtilityNetworkValidationJobdoes not propagate server errors when it is unable to acquire a lock.UtilityNetworkValidationJobencounters failures when provided with an extent that includes m-values.FeatureLayer.FloorDefinitionproperty is not honored by a floor-awareSubtypewhen included in a web or mobile map.Feature Layer ContingentValuesDefinitionfails to load with version 11.5 ArcGIS Enterprise reference feature services- Issue reported on Esri Community: Rapid zooming in using the mouse wheel causes a much higher zoom level than expected.
- Unable to evaluate
FeatureArcade function referencing aSet By Name() SubtypeFeatureLayerin pop-ups. - The
ServiceFeatureTable.UndoLocalEditsAsync()andServiceGeodatabase.UndoLocalEditsAsync()methods fail to revert the addition of features in a change-tracked non-spatial table.
- BUG-000174584 -
Polylinefeature symbol based onDictionaryRenderermoves instead of resizing when its length is edited in ArcGIS Maps SDK for .NET v200.6.
Layers configured with custom dictionaries do not display on the map when parsing dictionary version in a web style.- BUG-000174246 - When drawing a graphic line with static rendering mode, unnecessary graphics are drawn along with the graphic line in a 3D
SceneView.
- BUG-000177255 - Authentication fallback in ArcGIS Maps SDK for .NET v200.7 causes request queuing and slow map loading for maps with 7+ layers.
- Issue reported on Esri Community: Non-stop loop of authentication challenges are issued.
- Creating a
PolylinewithMapPointcontaining X,Y and Z generated a polyline with Z values. KmlPlacemarkextent not updating afterKmlPlacemark.KmlGeometryis changed.- Some items missing from
PortalQueryResultSetwhenPortalQueryParameters.CanSearchPublicis false.
Known issues
Known issues or limitations for this release are listed below.
- BUG-000152185 - Query fails when using a large geometry in (only in ArcGIS Runtime Local Server SDK or ArcGIS Maps SDK for Local Server).
- Workaround: Use GeometryEngine.Generalize() method to reduce the size of the request. In general, we recommend using the mobile geodatabase format instead of the Local Server component.
- BUG-000174311 - Space character replaced with + symbol when applying edits (only in ArcGIS Runtime Local Server SDK or ArcGIS Maps SDK for Local Server).
- Workaround: Use client-side logic to validate user attribute entry and avoid spaces in attribute strings. Alternatively, implement server-side post-processing logic to validate attribute strings and replace "+" characters. In general, we recommend using the mobile geodatabase format instead of the Local Server component.
Changes in samples
- Consolidated scene layer samples.
- Raster sample has been enhanced to demonstrate applying
HillshadeRendererto offline raster data.
Related topics
- System requirements for 200.8
- Install and set up
- Display a map (Tutorial)
- Product Life Cycle (Esri Support Site)