This page provides details about enhancements in the 300.0 release of ArcGIS Maps SDK for .NET. It also lists this release's deprecations, resolved issues, known issues, and more.
Enhancements
Scenes (3D)
Local scene support
Introducing support for local scenes. Local scenes are used to visualize 3D data on a flat plane rather than a globe. They are well suited for data that lies within a small extent. As a result, we now support loading local scenes in a web scene or MobileScenePackage. Additional constructors have been added to the Scene class to enable creating it in either Local or Global viewing modes.
Building scene layer
Support added for BuildingSceneLayer, which are layers designed for visualizing buildings. These building models are usually created from Building Information Modeling (BIM) and the layer can be used to visualize detailed building information. Since this information can be highly complex, data filters can be used to show and hide specific features. Different filter modes, which define how the features are drawn while the data filter is active, are also available. This layer is currently only supported in the new LocalSceneView.
New view for local scenes
Introducing a new view, LocalSceneView, to support rendering a Scene that is in a Local viewing mode.
Scenes with WG or CGC spatial reference defined in the local scene view will report a view spatial reference of Plate Carrée. The following will return points in Plate Carrée:
This view has limited functionality and layer support at this time, and will continue to be enhanced with additional layers and functionality in future releases. However, LocalSceneView will not work on an Android Emulator because it requires the device to support OpenGL ES 3.2. In addition, the deprecated OpenStreetMap (OSM) 3D Buildings Layer will not be supported with LocalSceneView.
KML Photo Overlay
Support for rendering KmlPhotoOverlay has been added. In the current release, only rectangular shaped photo overlays are supported.
Apply surface elevation to geometry
A new Surface.ApplyElevationAsync(Geometry, CancellationToken) method has been added to the Surface class. This method accepts a MapPoint, Polyline, Polygon, or Multipoint geometry and returns a copy of that geometry with all vertex Z‑values populated using the surface’s elevation source(s).
Improved performance of identify in feature layers
The performance and user experience for identify in feature layers in 3D has been improved. The biggest improvements can be seen when a layer contains a large volume of data where improvements up to 30% can be observed.
Realistic stars background
The SceneView has been updated with a realistic stars background.

Geometry editing
Editing curves with the GeometryEditor
You can now edit geometries with true curves in the GeometryEditor. Using the existing geometry editor tools, you can now interactively adjust the start and end vertices of true curve segments, and also scale, rotate, and move the whole geometry or its parts.

You cannot interactively insert vertices on curve segments or create new curve segments at this release.
Taking true curves offline
True curves are now included by default in maps and data taken offline in on-demand workflows. A new Geodatabase.IsTrueCurveClient indicates if the geodatabase preserves true curves and acts as a true curve client when synchronizing edits with the service. This property is maintained for the lifetime of the geodatabase replica; delete and regenerate any existing mobile geodatabases and mobile map packages if you require them to preserve true curves. Consider setting ArcGISRuntimeEnvironment.ServiceCurveGeometryMode to ServiceCurveGeometryMode.DensifyCurves if your application does not preserve true curves throughout editing workflows.
Supported true curve types in feature services
A new ArcGISFeatureServiceInfo.SupportedCurveTypes property on ArcGISFeatureServiceInfo and ArcGISFeatureLayerInfo indicate the types of true curve segment supported in geometries stored as features in the service. You can refer to this value when your app creates and edits feature geometries, allowing you to match your app functionality to the curve types supported by the data source being edited. For example, ArcGIS Online feature services support only circular arc true curve segments represented by EllipticArcSegment where EllipticArcSegment.IsCircular is true.
Displaying true curves in 3D
Display, identify, and selection of true curves in SceneView is now supported for polygons and polylines using SurfacePlacement.DrapedFlat. See Known issues for details of curve geometry support in SceneView.
Well-known text OGC standard support (WKT2) for coordinate systems and transformations
A new Wk property on SpatialReference, SpatialReferenceBuilder, GeographicTransformationStep, and HorizontalVerticalTransformationStep returns a string using the OGC-defined international standard for well-known text representation of coordinate reference systems. WKText2 strings support advanced and modern coordinate reference system constructs, such as dynamic datums and compound systems, which cannot be correctly represented by the existing WKText property.
Analysis API
High-performance spatial analysis API
This release introduces a new high-performance analysis API built to leverage the power of modern GPUs for lightning-fast computation and display. The initial release of this API includes ViewshedFunction, LineOfSightFunction, and map algebra functions. The API provides a framework that allows you to chain functions to build complex analysis scenarios while maintaining performance. Analysis results can be persisted on the device or displayed in an AnalysisOverlay for fast rendering and responsive user experiences.

See the Spatial analysis topic for more details.
Symbology
Model symbol layer
This release introduces a new symbol layer: ModelSymbolLayer. It can create a MultilayerSymbol that renders a 3D model. The symbol layer provides enhanced capabilities compared to the legacy MarkerSceneSymbol.
Some advantages provided by ModelSymbolLayer include:
- Support for multi-LOD (Level of Detail) for model symbols rendered in a
LocalSceneView. Please note that this feature is not available in aSceneView. - You no longer need to use the legacy
ModelSceneSymbolorSimpleMarkerSceneSymbolto create a model symbol. The newModelSymbolLayerworks directly withMultilayerSymbol. - It can be used to create a primitive shape or a 3D model. Previously, different object types were required to represent primitive shapes and supported model types.
- Display primitive shapes or models using either real-world or screen units (this feature was previously exclusive to
ModelSceneSymbol). - You can create a
ModelSymbolLayerfrom a remote source.
There are currently some known limitations:
- If multiple model symbol layers are added, only the first model symbol layer found is rendered; all others are ignored.
- If there is a mix of model symbol layers and other symbol layers, only the first model symbol layer found is rendered; all other symbol layers are ignored.
Size unit when displaying symbols in 3D
A new property called MultilayerSymbol.SceneSizeUnit is added to MultilayerSymbol. This property determines whether 3D symbols are drawn in real-world units (meters) or screen units (device-independent pixels). It only applies to 3D symbols, and has no effect for 2D symbols (which are always drawn in screen units).
Raster renderer improvements
-
This release adds support to create custom color ramps for use in the
StretchRendererclass by creating aColorRampfrom a collection ofColorStops. You can create each color and define its relative position along the color ramp for precise control over how colors blend, allowing you to create weighted gradients and custom color palettes. -
Use the API to create a
ColorRampfrom a collection ofColorobjects to create linear gradients from a list of colors, for example from a JavaScript Maps SDK color ramp. -
You can also create a
Colormapto map integer values in a raster to a specific color when rendering raster data. Create aColormapRendererfrom aColormapwith custom defined values and colors.
Dynamic entities
Query dynamic entities by track ID
You can query dynamic entities using one or more track IDs. This provides a convenient way to query for specific dynamic entities, without constructing a WHERE clause, allowing you to zoom to its location, follow it on the map, or start monitoring its notification events for updates.
Geodatabase
Shared templates
When used as a ISharedTemplateSource, the ServiceGeodatabase and Geodatabase classes now support shared templates from ArcGIS Enterprise 11.3+ or ArcGIS Online feature services, and from standalone mobile geodatabases exported from ArcGIS Pro 3.6+, respectively. These capabilities are available through the QuerySharedTemplatesAsync(), CreateFeaturesAsync(), and AddFeaturesAsync() methods. A SharedTemplate defines default attributes, symbology, tools, and geometry construction settings for creating sets of features across multiple layers and tables within a database.
Templates can be of the following types:
- Feature: Creates a feature with related records.
- Preset: Adds a predefined set of features with a single tap.
- Group: Generates part features by applying Feature builder transformations — such as offsets, buffers, and intervals — to the base geometry of a feature.
For utility network datasets, preset and group templates can also optionally create utility associations for the features.
The SharedTemplateFeatureCreationSet returned by ISharedTemplateSource.CreateFeaturesAsync() can be added in its entirety or none at all using ISharedTemplateSource.AddFeaturesAsync().
Shared templates simplify feature creation by minimizing repetitive manual edits, promoting consistent data collection, and supporting data integrity. The SharedTemplateQueryParameters class enables you to query and filter templates based on criteria such as layer, tag, visibility, or source.
In previous releases, FeatureTemplate enabled users to create individual features at the layer level. These templates can be included in a SharedTemplate query by setting SharedTemplateQueryParameters.SourceType to Layer or All. When a FeatureTemplate is returned in the query results, it is automatically upgraded to a SharedTemplate with a feature type definition. This functionality is particularly useful for building template pickers that support both layer-defined feature templates and datastore-accessible shared templates.
SharedTemplate support for curve geometry will be available in future releases.
Both ServiceGeodatabase and Geodatabase now support querying shared templates from ArcGIS Enterprise 11.3+ or ArcGIS Online Feature Services, and standalone mobile geodatabases exported from ArcGIS Pro 3.6+, respectively, using the SharedTemplateSource.QuerySharedTemplatesAsync() method.
A SharedTemplate provides default attributes, symbology, tools, and settings for geometry construction of a set of features across different layers within the database. This template can be one of the following types: a feature with related records, a preset that adds a pre-arranged set of features in a single click, or a group that creates part features relative to the primary feature's geometry. A preset and group template in a utility network dataset can optionally create utility associations with the features as well.
The SharedTemplateQueryParameters enable querying for specific templates and filtering templates by layer, tag, visibility, or source. With the SharedTemplateQueryParameters.SourceType set to layer or all, an existing FeatureTemplate which can create a single feature and is only available at the layer level, may be returned as a SharedTemplate of feature type. This is useful for building a template picker that supports both layer-defined FeatureTemplates and datastore accessible SharedTemplates.
Subtype feature layer
The SubtypeSublayer.SearchId, which uniquely identifies a layer, now allows applications to enable Web or Mobile Map search by using a string identifier.
Support for reading classification schema
This release introduces PortalInfo.HasClassificationSchema, which allows you to determine whether a classification schema is defined for a portal. ArcGIS Enterprise administrators set the item's data sensitivity level, specify who can access and share the information, and outline when information can be made publicly accessible. If a classification schema exists, you can leverage new APIs to retrieve it and view classification information for a specific PortalItem. This information allows you to overlay the data's classification information, as defined by the administrator (such as Restricted, Sensitive, or Confidential), on your application user interface.
Attachments
Keywords
Use the new Attachment.Keywords property to read keywords assigned to existing attachments. ArcGISFeature has new overloaded methods to add and update attachments. In addition, you can set and edit keywords when creating or updating an Attachment. Attachment keywords are supported when connected to feature services and in stand-alone mobile geodatabases.
Pop-up filters
AttachmentsPopupElement can be authored to filter attachments by one or more keywords and/or by content type (for example, images, video, and so on). When these filters have been configured, fetching attachments returns only Attachments that match the filter criteria.
Add and update directly from a file
ArcGISFeature has new overloaded methods that take a file path for attachment content instead of a memory buffer. When Attachment content is supplied from a file, the .NET Maps SDK application can avoid the large memory allocation required for a buffer, thus making the operation more memory efficient.
Improved memory management
Memory optimizations of the .NET Maps SDK mean that an application is better equipped to handle larger Attachments compared to previous releases. Combining these optimizations with the file-based APIs described above and the ArcGIS Maps SDK for .NET can support attachments up to approximately 1 GB when the device memory allows for it.
Map view
Change map spatial reference
You can now change a map's spatial reference on-the-fly even after it is loaded or being rendered on screen. This can be useful, for example, if you want to specify a particular spatial reference for a programmatically created map, or if you want to change the spatial reference of a pre-authored web map or mobile map to match a custom basemap.
When the spatial reference changes, existing layers in the map that support reprojection automatically update their content to display in the new coordinate system. This includes layer types such as ArcGISMapImageLayer, WmsLayer, FeatureLayer (including FeatureCollectionLayer and SubtypeFeatureLayer), AnnotationLayer, DimensionLayer, EncLayer, KmlLayer, and RasterLayer. However, tiled layers are strictly bound to their tiling scheme’s spatial reference and cannot be reprojected. This includes ArcGISTiledLayer and ArcGISVectorTiledLayer, WmtsLayer, and WebTiledLayer. You can inspect the layer’s LayerViewState to get information about the underlying error when these layers fail to render.
GeoView content, such as graphics overlays, grids, location display, the geometry editor, and operations such as identify and set viewpoints can handle updates to the map’s spatial reference. However, image overlays do not support reprojection and will not be rendered if their spatial reference does not match the map’s spatial reference.

Navigation
New motion smoothing filter default value
The motion smoothing filter is now disabled by default. The Is on IndoorsLocationDataSourceConfiguration is initialized to false to eliminate lag previously observed with geometry-based positioning. Improvements to our internal pipeline and newer, outlier-resilient algorithms have rendered this secondary filter redundant. However, it can still be manually enabled if additional smoothing is required.
Improved Bluetooth Low Energy beacon scanning on Android
We improved the process of scanning for Bluetooth Low Energy (BLE) beacons on Android devices. To minimise the chance of the Android OS shutting down the scanning process, e.g. to save battery, even when running in the foreground, we are restarting the BLE scan after 5 minutes.
Pedestrian navigation
RouteTracker now supports both vehicle and pedestrian navigation outdoors. The algorithm has been optimized for pedestrian-specific dynamics, including varied speeds, frequent orientation changes, and non-linear movement. To configure, set the Navigation parameter to Driving for vehicle navigation, or Walking for pedestrian navigation upon initialization.
Feature forms
Utility network association editing
The Feature toolkit component supports utility network association editing out-of-the-box. You now have the ability to add and delete associations, as well as listing all existing associations, when editing features that are part of a utility network in a feature form. When adding associations, the component presents a list of possible candidate features that a new association can be created based on the feature being edited.
Developers can also use the UtilityAssociationsFormElement API to delete existing associations, get the list of potential UtilityAssociationFeatureSource objects, choose from the possible UtilityAssociationFeatureCandidate and get the available options for the user to select in the form.
Changes made to associations can be saved with a call to FeatureForm.FinishEditingAsync() and undone with a call to FeatureForm.DiscardEdits(). When edits are complete, changes must be applied to the remote service.
Layer
Oriented imagery layers
This release introduces support for rendering oriented imagery layers. You can create an OrientedImageryLayer by providing either a URL, a portal item, or a feature table. This layer type is also supported when opening web maps, web scenes, or mobile map/scene packages that contain them. Functionally, an OrientedImageryLayer behaves similarly to a FeatureLayer, offering capabilities such as identify, selection, query, and displaying pop-ups. In future releases, OrientedImageryLayer will be enhanced with additional operations, such as finding the best image and generating dynamic footprints.
Symbol layer drawing order
Symbol layer drawing overrides the default drawing order of symbols on a GeoView. When symbols have more than one symbol layer (such as a cased road symbol), symbol layer drawing controls how those individual symbol layers are ordered across symbol classes. You can set the symbol layer drawing order for a published feature service, web map, or web scene. The symbol layer drawing order established during authoring and publishing is preserved and respected when rendering symbols in Native Maps SDK. The example below shows a multi-layer symbol: the first image illustrates when symbol layer drawing is not enabled, while the second image demonstrates the effect when the symbol layer drawing order is defined and enabled.
| Without symbol layer draw order | Symbol layer draw order applied |
|---|---|
|
|
New metadata properties
Added new metadata properties on ArcGISFeatureLayerInfo:
-
Supports: indicates if the query operation supports quantization designed to be used in edit mode (highest resolution at the given spatial reference). You can use this property to make an appropriate choice forQuantization Edit Mode FeatureTilingMode. -
Supports: indicates if the query operation supports quantization or not (View or Edit mode).Coordinates Quantization -
Definition: indicates an optional SQL clause that limits the features returned by the service for the layer. A definition query can only be configured by the service administrator.Query
Raster
Access raster metadata
After a Raster has loaded, you can retrieve the new RasterInfo class to access source metadata such as cell size, extent, and spatial reference. This information is useful when you need to work with source resolution, for example, to calculate a map scale for zooming to native raster resolution, or to set meaningful min and max map scales.
Specify the resampling method
The RasterLayer.ResamplingType property has been added to RasterLayer, which controls how raster cell values are calculated when the layer is rendered at a different resolution than the raster's native cell size, or when the raster is transformed, for example, scaled or reprojected. The RasterResamplingType defaults to Automatic and can be set to Nearest or Bilinear. When set to Automatic, raster properties will be used to determine what type of data the raster is, and set the resampling method accordingly. For example, discrete data will use Nearest, and continuous data will use Bilinear.
Authentication
Token credential
Added a new static factory method for creating an AccessTokenCredential for a token-secured federated resource using an existing owning system (portal) credential.
Arcade
Support for new Arcade version
The SDK now supports Arcade 1.34 and Arcade 1.35.
New data types
- Added new
Pixeltype to represent a cell in an imagery layer.
New dictionary functions
The following new dictionary functions have been added:
CountEraseGetKeys GetValues InsertTimeReceived
The following Pixel function has been added:
- Updated
Default,Value Has, andKey Hasto work with theValue Pixeltype.
Updated functions
Isfunction has been updated with an extra parameter allowing it to work with containers.Empty
New profiles
The following profiles have been added:
Imagery PopupImagery Popup Element
New language feature
- Added the safe access operator (
?.) for accessing properties that may be empty.
Localization
Extend support for select styles
Basemap Styles support a range of Open Basemap styles. These styles now support the BasemapStyleParameters.SpecificLanguage parameter allowing developers to display Open Basemap styles in their language of choice.
Projection engine
Updates to coordinate systems, transformations, and projection data
- Available coordinate systems and transformations have been updated to EPSG v12.049. ETRS89 revisions are not included in this release.
- The anchor epoch date parameter has been added to some geographic and vertical coordinate systems with semi-dynamic datums. There is a table for them in the geographic coordinate systems PDF. Anchor epoch information from the source and target geographic coordinate reference systems is used with the new NTv2 velocity grid transformation method. Transformations using this method were added for Canada.
- The anchor epoch date parameter is included in the list of supported geographic and vertical coordinate systems available in the geographical and coordinate systems PDF file inside a .zip file on the downloads page with semi-dynamic datums. Anchor epoch information from the source and target geographic coordinate reference systems is used with the NTv2 velocity grid transformation method and may cause the use of WKT2 when converting a coordinate system or transformation to string format. Transformations using this method have been added for Canada.
- The documentation of supported geographic, projected, and vertical coordinate systems contains tables of deprecated coordinate systems. An explanation of why a coordinate system may be deprecated is included with each table.
- New projected coordinate systems have been added for Montana RMTCRS, Hall County in Nebraska, several Ohio counties, Indonesia, and other regions.
- Projection Engine Data include new geographic transformation grids for Bhutan, Canada, Greece, Japan, Latvia, and the United Kingdom, as well as new vertical transformation models for the Baltic Sea, French Antilles, Germany, Greece, Greenland, Japan, Mayotte (France), and Mexico.
- The list of geographic and vertical coordinate systems and list of projected coordinate systems, each available in a PDF file inside a .zip file on the downloads page now contain tables of deprecated coordinate systems. An explanation of why a coordinate system may be deprecated is included with each table.
SDK enhancements
.NET 10
ArcGIS Maps SDK for .NET version 300.0 supports .NET 10.
HTTP/2 enabled by default
HTTP/2 is now used by default for services that support it. This can result in significantly faster load times for layer-heavy maps.
Calcite .NET Toolkit
Final version of Calcite .NET toolkit 1.0 is now available. The toolkit draws inspiration from the Calcite Design System. The libraries offer a wide range of styles, icons, and more that help enhance the styling of your application.
Authentication
An Identity-Aware Proxy (IAP) is a security feature that enables organizations to manage access to their on-premises web applications and services based on user identity. Typically, it functions as a reverse proxy, acting as a gatekeeper to ensure that only authenticated and authorized users can access specific resources. The authentication process for IAP occurs within a web session using protocols such as OAuth, SAML, or OpenID Connect. During this session, security tokens and cookies are generated, which remain valid throughout the session until they are invalidated.
ArcGIS Maps SDK for .NET now supports accessing ArcGIS Enterprise Portal and Services behind Microsoft Entra Application Proxy via Microsoft Identity Platform.
Accessibility Enhancements
-
Support for keyboard navigation for .NET MAUI Android.
-
Support for iOS keyboard Navigation when Full Keyboard Access is enabled on an iOS device.
-
Enhanced callout title and font size to scale with OS settings.
Convert to ImageSource
This release adds a new synchronous method to convert a RuntimeImage to an ImageSource. Note that this method is only available on .NET MAUI and WinUI.
Miscellaneous
-
Imageproperty for setting custom attribution on tiled layers.Tiled Layer. Attribution -
IJobinterface onJob<T>, enabling working with heterogeneous job collections without knowing the result type. -
Credentialhas newRequest Info ErrorandPreviousproperties providing context about why an authentication challenge was issued.Failure Count -
Added
Scenefor WPF and WinUI, providing screen reader support for SceneView controls.View Automation Peer -
"Powered by Esri" is now a clickable hyperlink.
Local Server
There are no Local Server updates with this release. ArcGIS Maps SDK for Local Server version 200.8 is the current and final release. ArcGIS Maps SDK for .NET 300.x versions are compatible with and are supported for use with ArcGIS Maps SDK for Local Server version 200.8.
Breaking API changes
-
The
unknownandJSON unsupportedproperties have been removed from theJSON JsonSerializableinterface and objects which follow a similar pattern. Use theTomethod instead to get all JSON data for an object.Json() MapandSceneobjects also have anUnusedJsonproperty to get the data not used by the SDKs without having to parse the entire web map or web scene document. -
The following types in
Esri.have been renamed with an "Exploratory" prefix to distinguish them from the new spatial analysis APIs:ArcGIS Runtime. U I. Geo Analysis Old name New name LineOf Sight ExploratoryLineOfSightLocationLine Of Sight ExploratoryLocationLineOfSightGeoElement Line Of Sight ExploratoryGeoElementLineOfSightViewshedExploratoryViewshedLocationViewshed ExploratoryLocationViewshedGeoElement Viewshed ExploratoryGeoElementViewshedLocationDistance Measurement ExploratoryLocationDistanceMeasurementLineOf Sight Target Visibility ExploratoryLineOfSightTargetVisibility
Behavior changes
-
An
Advanced Editingextension-license is no longer required to edit branch-versioned geodatabases that do not contain utility networks. You can now create a new version or edit features in a version, including replicas generated by sync-enabled feature services. -
This release introduces a change to the license string option for licensing an application for production use. Licensing a version 300.0 app requires a license string that is specific to 300.x versions. License strings for versions prior to 300.0 will be considered invalid and will not authorize APIs for production use. Note that the user authentication option for licensing your applications remains unchanged.
-
The default
ArcGISRuntimeEnvironment.ServiceCurveGeometryModeis nowServiceCurveGeometryMode.TrueCurveClient. By default, curve geometries are fetched from feature services, including when taking maps and services offline on-demand, and your app indicates that it is a true curve client when editing feature services and synchronizing edits. It is your responsibility to ensure data integrity by correctly preserving any curve segments throughout your application, or to setArcGISRuntimeEnvironment.ServiceCurveGeometryModetoServiceCurveGeometryMode.DensifyCurvesif your app does not preserve true curves. See Known Issues for details of curve geometry support in scene views. -
GeometryEnginemethodGeometryEngine.AutoCompletenow supports true curves. -
Starting with this release, a
Scenein a webscene or aMobileScenePackagewill no longer fail and will load successfully when the viewing mode isLocal. A scene in aLocalviewing mode will be in the projection that is defined in the webscene or theMobileScenePackagescenes. When aSceneis created withLocalviewing mode, theSpatialReferenceof theScenewould be the same as theSpatialReferenceof the first layer within theScene, which in most cases is the first layer in theBasemap's baselayer collection. -
The tiling scheme of the
Sceneis set toAutomaticwhen a constructor withviewingis used. Once theMode Scenehas loaded, the appropriate tiling scheme would get set. However, in the case ofLocalviewing mode, the tiling scheme would remainAutomatic. -
A
GeotriggerMonitorwill now account for feature updates to fences created from aServiceFeatureTableinFeatureFenceParameterswhen tiling mode is disabled (Feature).Tiling Mode.disabled -
Raster data may render differently in this release, due to the addition of the
Rasterproperty and the automatic determination of a default resampling method. For example, a raster that previously defaulted to Bilinear Interpolation could now default to Nearest Neighbor.Layer.resampling Type -
SceneView.ScreenToLocationAsync()returns an empty point instead of aPoint(0, 0, 0)for a location that is above the surface. -
Default value for
Refreshhas been changed to 24 hours.Token Exchange Interval -
The relative file paths of transformation grid files returned by
GeographicTransformationStep.ProjectionEngineFilenamesandHorizontalVerticalTransformationStep.ProjectionEngineFilenamesnow reflect the updated file structure for Projection Engine Data files. See the Projection Engine Data download for more information about file structures used.
-
Version 300.0 ships major under-the-hood changes to the authentication framework. For users who have already migrated away from deprecated APIs, the upgrade should be smooth. However, there are some behavior changes:
-
Exception changes: Authentication errors that previously surfaced as generic
ArcGISorWeb Exception ArcGISnow throw specific exception types such asRuntime Exception Invalid,Credentials Exception Token,Required Exception Token,Expired Exception Invalid,Token Exception Invalid, andApi Key Exception O. Forbidden (403) responses and other HTTP-level auth failures that previously threwAuth Exception ArcGISnow throwWeb Exception Httpwith the appropriateRequest Exception Status.Code -
Invalid credentials are retained until replaced: When a credential becomes invalid or is revoked,
AuthenticationManagerno longer immediately removes it. The invalid credential remains inCredentialuntil a new credential is successfully generated via the challenge handler. -
Federated services can use different identities: It is now possible to authenticate against a portal and its federated services as different users simultaneously. Previously, signing into a federated service as a different user would replace the portal credential. Generating a federated credential no longer automatically stores the owning portal credential in
AuthenticationManager. -
Credentialhas newRequest Info ErrorandPreviousproperties providing context about why an authentication challenge was issued. TheFailure Count Responseproperty is no longer populated for token authentication challenges. -
Credentialsemantics changed: For federated services, it now contains the owning portal URL rather than the original service URL. For other services, it contains the resource path without query parameters.Request Info. Service Uri -
Credential serialization uses JSON:
BinaryandFormatter Dataare no longer supported for credential persistence. UseContract Serializer To/Json() Credential..From Json() -
If you are still using deprecated authentication APIs, check out How to Migrate to the New Authentication System in ArcGIS Maps SDK for .NET on ArcGIS Blog.
-
-
Licensingis now thrown for licensing-related errors such as using an unlicensed feature or an expired license. These previously threw genericException ArcGIS.Runtime Exception -
Symbol.now returnsCreate Swatch Async Taskinstead of<Runtime Image? > Task. 3D-only symbols such as<Runtime Image > Modelcannot render a 2D swatch and returnScene Symbol null. -
Statisticis nowRecord. Statistics Iinstead ofRead Only Dictionary <string, object? > I. Values can beRead Only Dictionary <string, object > nullwhen a statistical aggregation has no applicable data (for example, MIN/MAX/AVG on an empty result set).
Deprecations
OS and framework deprecations
- Windows 10 reached end of support on October 14, 2025 and is no longer supported.
-
Support for iOS/iPadOS 17 is deprecated. The last release to support this version of iOS/iPadOS is 300.0. A minimum of iOS/iPadOS 18 will be required at the next release.
-
Support for macOS Sonoma (version 14) is deprecated. The last release to support this version of macOS is 300.0. A minimum of macOS Sequoia (version 15) will be required at the next release.
- 300.0 is the last release to support .NET 9 for .NET MAUI. A minimum of .NET 10 will be required at the next release when building .NET MAUI apps.
Issues resolved
Issues addressed in this release are listed below.
-
BUG-000118443 - The KMZ file does not display image as a photo overlay.
-
BUG-000161830 - When two labels overlap, the label which loads last is displayed regardless of the layer order.
-
BUG-000164521 - The LabelDefinition class does not honor the z-index of the graphic.
-
BUG-000154800 - Vertical labels in Japanese overlap.
-
Labels disappear too far from the screen edge when panning on mobile devices.
-
CVE-2025-54874: Updated OpenJPEG third-party library to v2.5.4.
-
BUG-000179119 - Enabling the Background option of the Label style in Map Viewer causes the text to disappear when viewing the map.
-
BUG-000182489 - An extra label appears at (0,0) but disappears after panning or zooming away from (0,0) or the country polygon.
-
BUG-000175907 -
ServiceFeatureTablefails to load when the renderer uses a hidden field and coded values have integer and float types. -
BUG-000179924 -
ServiceGeodatabase.ApplyEditsAsync()fails when more than one table references the same service layer. -
BUG-000180102 -
ServiceGeodatabase.ApplyEditsAsync()fails when aneditor_date editfield exists._op -
BUG-000182950 -
GenerateGeodatabaseJobcrashes when the extent contains Z or M values. -
The network source association filter set for a
UtilityAssociationsPopupElementis not applied when the web map is taken offline. -
The default
FeatureTemplates for aSubtypeFeatureLayerare not retained when the layer is created from a web map. -
Issue reported on Esri Community - Rotation Expression: Arcade expression issue. The Renderer.RotationExpression set to a value is not honored.
-
Renderer.set to a numeric value is not honored.Rotation Expression
IndoorsLocationDataSourceincorrectly populatesLocation.coursewith the device's magnetic heading instead of the user's actual course of motion.
-
BUG-000173009 - A mobile map package (MMPK) of 300MB or larger crashes in ArcGIS Maps SDK for .NET MAUI apps when quickly zooming in or out on an iOS device.
-
BUG-000170696 - ArcGIS Maps SDK for .NET MAUI fails to get the correct item size when using
Portalfor items bigger than 2 GB.Item. Create Async -
Issue reported on Esri Community - Photo overlays in .NET 100.4.
-
Issue reported on Esri Community - Exception in CacheManager.
-
Issue reported on Esri Community - Mac Catalyst: Universal publish failure.
-
Issue reported on Esri Community - MapView ignores first left-drag pan after right-click.
-
GeoViewsizing on Android does not honor surrounding layout elements in grids withAutoand*row definitions. -
Incorrect back-navigation gesture triggering on iOS 26 when dragging left-to-right on the map. Swiping from the screen edge still navigates back.
-
Callouts disappear at incorrect locations on MAUI iOS and Mac Catalyst when the GeoView is surrounded by other controls.
-
Subtypedeletes the given feature instead of updating it.Subtable. Update Feature Async -
Using
IndoorsLocationDataSource, the blue dot freezes on Android after approximately 10 minutes due to the OS stopping BLE scans. -
Unable to differentiate between 0 and "unavailable" velocity and course values. Unavailable values are now represented by
Na.N -
SystemLocationDataSourceon Windows incorrectly reportsHasas true when no valid altitude data is available.Z -
Horizontal dilution of precision key in
Location.is misspelled. This has been updated from "hpop" to "hdop".Additional Source Properties -
Issue reported on Esri Community - How to set attribution correctly on a WebTiledLayer.
Known issues
Known issues or limitations for this release are listed below.
-
True curves are not supported in scene view using dynamic rendering mode. Workarounds are to densify true curve geometries, or alternatively to use
GraphicsRenderingMode.StaticorFeatureRenderingMode.Staticinstead. See Performance considerations for more information about these modes. -
LocalSceneViewdoes not adhere to Min Scale and Max Scale on Layers. -
LocalSceneViewdoes not support the deprecated WOSR (Web Object Symbol Resource) specification -
LocalSceneViewdoes not support rendering preset layers. -
Changing the Symbol Layers on Multilayer Symbols is currently not supported. Workaround is to create a new symbol.
- In order to manage resources, some Android devices may abort long-running GPU-based analysis operations before they complete, causing those operations to fail. If this occurs, consider reducing the size of the analysis.
-
The
ViewshedFunctionis only supported withContinuouss in a projected coordinate system. Future releases will support geographic coordinate systems such as WGS84.Field -
A
FieldAnalysiscan only be displayed in aMapVieworSceneViewif the result spatial reference matches the view. -
Raster data with 64-bit float or integer-based pixels are not supported.
-
Raster data with u32 integer-based pixels are supported, but only if the values are within an i32 range. u32 integer-based pixels with values outside an i32 range are not supported.
-
In map view, a
BlendRenderercreated using aColorRampis supported, but only if the color ramp is constructed from aPresetColorRampType. All constructor types forColorRampare supported in aSceneView. -
The maximum size of raster used to populate a
ContinuousField,DiscreteField, orBooleanFieldis 2 GB, which equates to 23170 x 23170 pixels. -
The maximum size of a
ContinuousField,DiscreteField, orBooleanFieldused in aFieldAnalysisis 1 GB, which equates to 16384 x 16384 pixels.
Sample updates
New Samples
All previous 200.x samples have been migrated to 300.0. Version 200.8 was the last release to support Universal Windows Platform (UWP) and .NET Framework. The following new samples have been added in this release:
- Apply renderers to scene layer
- Add building scene layer
- Display local scene
- Query dynamic entities
- Add building scene layer.
- Filter building scene layer.
- Configure scene environment.
- Apply map algebra.
- Show interactive viewshed in analysis overlay.
Enhancements
- Updated all Sample Viewer apps to use the Calcite .NET Toolkit. Note that some samples in the viewer now require the Calcite toolkit when built outside of the Sample Viewer solution.
- Updated OAuth login prompts to use WebView2.
- Downloading sample data workflow has been enhanced to present a permission dialog before downloading the sample data.
- Added XAML converters for RuntimeImage-to-ImageSource on MAUI, simplifying image display in several samples.
- Updated Filter features in scene with a new workflow that allows searching buildings layer by name.
- Updated Set spatial reference to allow users to set spatial reference at runtime.
- Renamed samples and Analysis APIs to include the Exploratory prefix.
- Added WinUI implementation of Display overview map.
- Updated several sample READMEs for clarity and consistency.
- Removed references to ArcMap from sample descriptions.
Updates required for migration to version 300.0
- Removed the UWP Sample Viewer app.
- No option to build WPF samples using .NET Framework.
- Eliminated Windows x86 build targets.
- No use of obsolete layer creation APIs in XAML.
- Removed references to deprecated
Esri..ArcGIS Runtime. Http. ArcGIS Web Exception
Bug fixes
- Resolved threading issues in Display device location with NMEA data sources.
- Replaced deprecated portal items in Navigate route with rerouting and Offline routing.
- Certificate authentication with PKI no longer attempts to connect to the server before obtaining a certificate on WinUI.
- Fixed broken results view on the WinUI Statistical query group and sort and updated UI to more closely align with the WPF version.
- The WPF SampleViewer now updates the sample description tab after loading the first sample.
- Addressed MAUI XAML binding compilation warnings.
- Fixed various UI issues.
- Added voice guidance to WinUI Navigate route.
- Fixed Show viewshed calculated from geoprocessing task making requests to the wrong endpoint.
- Fixed exception handling in Snap geometry edits.
- Fixed List KML contents display issue.
- Fixed a navigation bug in .NET MAUI Navigate route sample.
- Updated Navigate route to use RouteTrackerLocationDataSource.
- Fixed Generate offline map with local basemap by replacing a deprecated web map and adding a local basemap selection dialog.
- Fixed Configure subnetwork trace (MAUI, WinUI) and Perform valve isolation trace (MAUI) not applying user-configured trace settings.
- Fixed Feature layer rendering mode (Scene) point layer rendering order.
- Fixed contingent value validation error in Add features with contingent values when changing status selection in MAUI.
- Fixed UI issue on Mac Catalyst where sample control panels were not displaying in smaller window sizes.
- Various UI/UX improvements for improved usability and experience.
Toolkit updates
This release includes several deprecation updates, support for the new LocalSceneView control, various improvements to Popup, and a new Job class.
Platform support updates
With this release, support for the following platforms is removed from the toolkit:
- Universal Windows Platform (UWP)
- .NET Framework
New features and enhancements
- Added support for
LocalSceneView. - Added a new
Jobclass for managing long-running server tasks when an app gets backgrounded.Manager Popupenhancements:Viewer - Added audio and video support for WPF, WinUI, MAUI iOS, and MAUI Windows.
- Added support for showing the localized edit summary of when a popup was last edited or created by a known editor or author.
- Added support for selecting and copying fields text on Windows.
- Implemented use of the WinUI
Pipscontrol.Pager - Added support for opening web links without specific intent configuration on Android.
Basemapin WinUI has been improved with automation properties to enable accessibility workflows.Gallery
Bug fixes and technical improvements
MeasureToolbar - Replaced use of the deprecated
Sketchclass withEditor GeometryEditor.
- Replaced use of the deprecated
SearchView - Fixed search source dropdowns not expanding on WinUI and WPF.
- Avoided a debug-only exception when switching search sources on MAUI.
PopupViewer - Fixed fields view not honoring dark mode on MAUI.
- Removed the use of
Selectablefor hyperlinks as it can cause issues with the tap gesture recognizer.Label
FeatureForm View - Fixed an edge case where
Radios would not render.Button
- Fixed an edge case where
- Guarded against
Dispatcherbeing null on shutdown.Queue
Removed components
The following were deprecated in version 200.8. With this release, they have been removed from the code.
PopupManager - Removed deprecated property
Allthat was misspelled. The new property is calledDisplay Levels Selecteded All.Display Levels Selected
Known Issues
- As per Microsoft .NET design for Android dependencies, adding ArcGISRuntime.Maui.Toolkit reference causes compilation error on .NET MAUI Android targeting .NET 10. Workaround is to add following lines to our project:
Use dark colors for code blocks Copy <ItemGroup Condition="'$([MSBuild]::GetTargetPlatformIdentifier($(TargetFramework)))'=='android'"> <PackageReference Include="Xamarin.AndroidX.Tracing.Tracing" Version="1.3.0.1" /> <PackageReference Include="Xamarin.AndroidX.Tracing.Tracing.Ktx" Version="1.3.0.1" /> <PackageReference Include="Xamarin.AndroidX.Concurrent.Futures" Version="1.3.0.1" /> <PackageReference Include="Xamarin.AndroidX.Concurrent.Futures.Ktx" Version="1.3.0.1" /> </ItemGroup>
Related topics
- System requirements for 300.0
- Install and set up
- Display a map (Tutorial)
- Product Life Cycle (Esri Support Site)