This page provides details about enhancements in the 100.13 release of ArcGIS Runtime API for .NET. It also lists this release's deprecations, resolved issues, and known issues.
For 100.13.2 (iOS-only)
Issue Resolved
BUG-000148092 Navigating a scene view crashes or freezes on newer iOS devices running iOS 15.4.
ArcGIS Runtime 100.13.2 fixes a bug that causes 3D apps on iOS 15.4 crash or freeze on newer devices with A14 chip or later while displaying or interacting with scene view.
For 100.13.1
Upgrade version of Expat library to 2.4.6
BUG-000146895 The version of Expat library has been upgraded to 2.4.6.
Expat is a 3rd-party library used by ArcGIS Runtime to provide stream-oriented XML parsing functionality. The library is used in open-source software like Apache, Mozilla, Perl, PHP, and Python, along with most Linux distributions.
Expat has recently patched vulnerabilities that expose XML processors to at least two exploit vectors: arbitrary code execution, or denial-of-service. ArcGIS Runtime 100.13.1 includes the patched version of the Expat library.
For 100.13.0
Enhancements
WinUI 3
ArcGIS Runtime SDK for .NET now supports building desktop apps with Windows UI Library (WinUI) 3, the native UI framework for building Windows apps for Windows 10 and later. WinUI 3 can be used directly as the UI layer for your windows desktop apps instead of WinForms and WPF controls, enabling you to combine the modern aesthetic and performance of the WinUI 3 UX with ArcGIS Runtime capabilities targeting the Win32 desktop app platform where you are currently using WPF or WinForms. The ArcGIS Runtime SDK for .NET Project Templates Visual Studio extension includes two new .NET 6 application project templates with a WinUI-based user interface containing an ArcGIS Runtime MapView:
ArcGI
: This project template generates an application project with the package manifest and other support needed to build the app into an MSIX package without the use of a separate packaging project. To use this project template, you must also install the single-project MSIX packaging tools extension for Visual Studio.S Runtime App, Packaged ( Win U I 3 in Desktop) ArcGI
: In addition to the application project, the solution also includes a separate Windows Application Packaging (WAP) Project that is configured to build the app into an MSIX package.S Runtime App, Packaged with WA P ( Win U I 3 in Desktop)
More information and resources:
- Install tools for developing apps for Windows 10 and Windows 11 (Microsoft docs)
- Try out ArcGIS Runtime and WinUI with the sample view in the samples GitHub repo.
- Get started with WinUI (Microsoft docs).
- Migrate your apps to WinUI (Microsoft docs).
- WinUI Roadmap (Microsoft docs).
.NET 6
ArcGIS Runtime now supports .NET 6 when building WPF or WinUI apps. Targeting .NET 6 frees your applications from the system-wide .NET Framework dependency, offers greater performance, and offers deployment improvements such as entirely self-contained executables. With the release of ArcGIS Runtime 100.13, since .NET 6 is the current LTS release of .NET Core / .NET, .NET Core 3.1 and .NET 5 are no longer supported as target frameworks.
Resources:
- Upgrade your apps to .NET 6 with the .NET Upgrade Assistant (Microsoft docs).
- Example of migrating to the latest .NET (Microsoft docs).
Visual Studio 2022
The ArcGIS Runtime SDK for .NET Visual Studio extension now supports Visual Studio 2022, enabling you to take advantage of the latest tools and performance improvements. Two editions of the ArcGIS Runtime SDK for .NET Visual Studio extension are available:
ArcGI
extension contains application project templates that you can install directly in Visual Studio via the Manage Extensions dialog (Microsoft docs).S Runtime SD K for . NE T Project Templates ArcGI
extension contains application project templates plus a local NuGet package source for offline development. You can download the extension from the ArcGIS Developer site. See Install and set up for install options and instructions.S Runtime SD K for . NET
Memory management
Internal improvements to the lifecycle and destruction of native references have reduced memory usage in many common scenarios such as: frequently opening multiple mobile map packages (BUG-000141890); opening and closing multiple maps with polygon graphics or features (BUG-000116437); repeatedly recreating the map view, map, and layers (BUG-000138424); and adding and clearing map operational layers (BUG-000125701).
Scenes
Support for floor-aware scenes
The previous release added support for floor-aware maps, and ArcGIS Runtime 100.13 builds on that capability by adding support for floor-aware scenes. You can now filter data displayed by feature layers, point scene layers, and 3D object scene layers based on floor levels. This makes it easy to visualize building floor plans and explore indoor data in 3D.
Vector Tile layers in 3D
With this release, vector tile layers are now supported for basemaps in a scene. You can use ArcGIS vector tile layer basemaps with the default styles, as well as with your custom styles created with the ArcGIS Vector Tile Style Editor, or your own content. This can simplify the process of designing applications that work in both 2D and 3D, as well as data publishing workflows that support your apps.
Vector tiles basemaps provide high quality, resolution-independent display of complex cartography, and in general they deliver improved performance. In your ArcGIS Runtime applications, they provide an efficient way to deliver offline basemaps (whether exporting tiles from a vector tile service, or delivering vector tiles in vector tile packages or mobile scene packages, etc).
With support for vector tile layers in a scene, you can now take advantage of the API Key enabled basemap styles when working in 3D.
Indexed 3D Scene Layer (I3S) versions 1.7 and 1.8
ArcGIS Runtime now supports Indexed 3D Scene Layer (I3S) specification versions 1.7 and 1.8 for 3D Object Scene Layers and Integrated Mesh Scene Layers in applications deployed on Android and iOS devices. This enhancement delivers an improved user experience during the initial load and rendering of scene layers and during scene view interaction and navigation. Depending on the size, complexity, and i3S version of your data, you may see rendering time reduced by up to 60%.
I3S version 1.7 provides improved indexing of nodes within scene services and scene layer packages that enables ArcGIS Runtime to optimize requests for data, resulting in reduced network traffic or file access and faster layer load times. I3S version 1.8 adds support for textures encoded in Basis Universal, a GPU-optimized texture compression format that significantly reduces the image storage size while maintaining quality.
To ensure that you can take advantage of the latest improvements with your data, use the I3S converter in the I3S GitHub repository to update the version of an integrated mesh or scene layer package (.slpk) to the latest version. You can also use ArcGIS Pro's Create 3D Object Scene Layer Package and Create Integrated Mesh Scene Layer Package geoprocessing tools to create scene layers at the latest version.
Layers
Display filters on feature layers
ArcGIS Runtime 100.13 adds support for display filters (
FeatureLayer.DisplayFilterDefinition
) on feature layers. Display filters limit the number of features displayed to reduce clutter in a map or scene.
Use a display filter when you want to draw a subset of features while maintaining access to all of them. Unlike a definition expression, features hidden by a display filter are available for selection, identify, editing, and geoprocessing operations.
Display filters can be added to maps and scenes authored with ArcGIS Runtime, or published in web maps using ArcGIS Pro 2.9 or higher.
OGC API - Features
100.13 adds support for reading and writing web maps that contain OGC
.
Symbols
Composite and multilayer symbols for location display
With this release, you can use composite symbols or advanced (multilayer) Cartographic Information Model (CIM) symbols for different location display symbols. Note that if the symbol assigned is not appropriate for the geometry type, the symbol will not render. See the Device location topic for more information about customizing the location symbols.
Persisting CIM symbols in a web map
With 100.13, advanced (multilayer) symbols can be saved in a web map. At 100.12, only advanced point symbols (
MultilayerPointSymbol
) were persisted when saving a web map, while advanced polyline (
MultilayerPolylineSymbol
) and polygon (
MultilayerPolygonSymbol
) symbols were dropped. With this release, all types of advanced symbols can be saved to a web map.
New conversion helper for picture fill and picture marker symbols
A new method, To
, is now available on
PictureFillSymbol
and
PictureMarkerSymbol
. This helper method converts any simple picture symbol to a multilayer symbol.
Alternate symbols and scale-based symbols for unique value and class breaks renderers
At 100.12, ArcGIS Runtime only supported alternate symbols from a mobile map package (.mmpk). At 100.13, alternate symbols in a web map are now also honored. In addition to consuming the persisted symbols, you can define your own scale-based and alternate symbols for unique value and class breaks renderers in your app. If they are multilayer symbols, they can be persisted and saved to a web map.
Use of ordered anchor points for multipoint geometry
As announced in the 100.12 release notes, dictionary renderers support symbolizing control measure lines based on ordered anchor points according to standard military symbology specifications MIL-STD 2525 and APP-6. With the release of ArcGIS Pro 2.9, these updated military dictionary styles can be downloaded from ArcGIS Online.
Developers can now use these styles to render control measure lines by setting the
DictionarySymbolStyle
model configuration property to "
.
Geodatabase
Honor server logic for feature service client edits
Feature service geodatabases may execute business logic on the server in response to edits made on the client. A composite relationship, for example, causes a feature in the destination table to be deleted when a related feature is deleted in the origin table. Other examples include attribute rules and utility network association editing. At 100.13, ArcGIS Runtime incorporates these changes from the server appropriately. Use
ServiceGeodatabase
's
ServiceGeodatabase.ApplyEditsAsync()
to take advantage of this functionality rather than calling
ServiceFeatureTable.ApplyEditsAsync()
independently on the individual feature tables.
Contingent values support
Contingent values, sometimes referred as contingent attribute values, are a data design feature that allows making values in one field dependent on values of another field during attribute editing.
Attribute domains allow restricting the valid entries on a field to a defined list or range of values. Contingent values extend this model by making your choice for a value on one field further constrain the domain values that can be placed on another field.
ArcGIS Runtime now supports reading the contingent value definition from a feature service, an offline replica geodatabase, or a standalone mobile geodatabase as long as contingent values are defined for tables within these datasets. This can help you build a comprehensive UI for attribute editing.
ContingentValuesDefinition
provides information about contingent values. It contains a list of field groups, each of which defines contingencies for a set of fields. The
ContingentValuesDefinition
must be loaded after the table has loaded. If the list of field groups is empty after loading, no contingent values are defined for the table.
ArcGISFeatureTable
has methods that encapsulate validation logic and provide the available options for each field.
Labeling
Support for dimension layers
Dimensions are used to represent schematic distance information, and include symbology definitions, position information, and text content. See Dimensions in the ArcGIS Pro documentation for more information.
At 100.13, your ArcGIS Runtime app can read dimension layers from:
- Mobile map packages
- Known limitation: If an ArcGIS Pro map has a different spatial reference from the dimension layer spatial reference, and is published to an mmpk, then the dimension layer might not appear when the mmpk is imported (into ArcGIS Runtime or ArcGIS Pro).
- Mobile geodatabases
- Enterprise service layers
- When replicating an online geodatabase locally, dimensions are automatically loaded.
- Dimension layers are supported in versioned servers, but require Enterprise 10.9.1.
Dimension layers are accessible in the map's operational layers collection and support identify, selection, and visibility. A dimension layer, its feature table, and the individual features are all read-only, as are the layer and style properties.
Dimension graphics render with the same values and in the same locations as in ArcGIS Pro, but you may notice some differences in dynamic aspects of the drawing, such as when arrow heads flip from inward to outward to make room for text. This is because of differences in text and drawing metrics on different target platforms.
ArcGIS Runtime labels automatically avoid overlap with dimension graphics. If labels have a deconfliction strategy of dynamic
or dynamic never remove
, they move to avoid or minimize overlap.
Labels can avoid polygon and line features
At this release, ArcGIS Runtime labels can avoid or be excluded from overlapping polygon or line features if the label definition for the layer containing those features is defined to avoid such an overlap.
See
LabelDefinition
properties deconfliction
, feature
, and feature
. Note that the label definition for the obstacle feature layer does not need to produce labels, just specify an overlap restriction.
Labels automatically avoid annotation layers
With 100.13, ArcGIS Runtime labels automatically avoid overlapping annotation that is added to a map in an annotation layer. If labels have a deconfliction strategy of dynamic
or dynamic never remove
, they move to avoid or minimize overlap.
Arcade higher order functions
The Arcade script language has been extended with several higher-order functions. These can be used to apply other functions to arrays of values:
map([A], f(A) -> B) -> [B]
reduce([A], f(A, A) -> A) -> A
reduce([A], f(B, A) -> B, B first) -> B
filter([A], f(A) -> bool) -> [A]
any([A], f(A) -> bool) -> bool
all([A], f(A) -> bool) -> bool
none([A], f(A) -> bool) -> bool
See the Arcade documentation for more information.
Support Arcade Expects function
With 100.13, ArcGIS Runtime support for Arcade includes the Expects function. This allows you to predeclare attributes for a given feature or feature set that your script requires.
Support point scene layer labels stored in a web scene
In previous releases, only web scene labels defined at the feature server level were displayed. With 100.13, label definitions stored within the web scene rest description are displayed. This means that any label definitions added to a web scene via ArcGIS Online are honored in your ArcGIS Runtime app.
More accurate 3D label deconfliction
The internal calculation to handle conflict detection has been updated to improve accuracy.
Utility Networks
Full support for association deletion semantics
In a utility network, features that belong to a specific asset type can serve as containers or structures. Each of these containers or structures has association deletion semantics, which are rules that define what happens to associated features when the container or structure is deleted.
- Cascade: deleting a container causes its associated features to also be deleted.
- Restrict: deleting a container is not permitted if it contains associated features.
- None: associated features are not deleted when their container is deleted.
While previous releases provided limited support for association deletion semantics, full support is now enabled in 100.13. For example, content features may automatically be deleted when their container feature is deleted.
Display filters for utility network workflows
You can use display filters to show and hide features inside containers, replicating the functionality available in ArcGIS Pro. You can also use display filters to ensure that critical network features are returned in a trace result even if they are removed from view to simplify the display.
Device location
New Indoor Positioning API
With this release, ArcGIS Runtime introduces a new Indoor Positioning API. Indoor Positioning allows you to locate yourself and others inside a building in real time. Similar to GPS, it puts a blue dot on indoor maps and uses location services to help you navigate to any point of interest or destination.
See the Indoor positioning topic for more information.
GPS accuracy considerations for Geotrigger monitoring
With this release, the Geotrigger API has been enhanced to better handle potential inaccuracies with GPS locations. You can:
- Use an Arcade expression to filter location updates. This allows you to reject locations that don't meet a minimum level of accuracy.
- Choose how to interpret the accuracy information included with a GPS reading. This allows you to control whether a given position is considered to have entered a fence or not.
Coordinate systems and transformations
Enhancements to projection engine
- The plate carrée projection now supports an oblique variation.
- New geographic coordinate systems for high-speed rail lines in the UK have been added.
- New geographic/datum transformations for UK high-speed rail lines, Iceland, Chile, Germany, Serbia, Bangladesh, Canada, Italy, and Australia have been added.
- New projected coordinate systems have been added for high-speed rail lines in the UK, Italy, Canada, Illinois (ICS), GSK-2011 Gauss-Kruger zones for Russia, Bangladesh, and international feet-based California Teale Albers.
- New vertical coordinate systems have been added for Spain.
- Several new vertical coordinate systems and transformations based on geoids, quasi-geoids, or other conversion grids are available. You can use them to transform to or between gravity-related vertical coordinate systems for the following countries and areas: Australia, Austria, Azores (central and eastern islands), Canada, Canary Islands, Europe (EVRF 2007 and EVRF 2019), France, Ireland, Netherlands, Portugal, Slovakia, Spain, Switzerland, and the United Kingdom.
Toolkit
The ArcGIS Runtime SDK for .NET Toolkit is an open source project with controls and utilities to help simplify some common development tasks. Visit the GitHub repo for more information and a list of available components.
Enhancements for this release include:
- Bug fixes and improvements to documentation.
- New component:
Overview
displays an interactive inset map for a map or scene.Map - New component:
Basemap
shows basemaps, either from a Portal or a custom collection, and optionally applies the selected basemap to a map or scene.Gallery - New component:
Search
enables searching using one or more locators, with support for suggestions, automatic zooming, and custom search sources.View
Stand-alone developer documentation
You can download the developer documentation (for any ArcGIS Runtime API) as an archive from the downloads. The archive contains instructions to serve the documentation from a local web server so you can access it without a connection to the internet. The stand-alone documentation includes the developer guide, API reference, tutorials, and samples documentation. This documentation is designed to run on a local stand-alone computer or on an internal network and not on the public internet.
To serve the documentation locally:
- Download the documentation for the ArcGIS Runtime API(s) you want to use. The downloaded files are in a .zip archive format.
- Extract the archive to a local folder. The extracted archive has two subfolders:
public
andinstall
. - Open the
READM
file in theE.md install
folder and follow the instructions for your chosen web server.
Local Server
There are no Local Server updates with this release. You can use Runtime version 100.12 of Local Server instead by calling
LocalServer.InstallPath
method with the path to the Local Server installation.
Breaking API changes
There are no breaking changes with this release.
Behavior changes
-
To support the implementation of ENH-000135385 Add functionality to control the timeout for the
local
method, the default HttpClient timeout has been increased on theMap Service. Start Async() Start
methods onAsync Local
,Geoprocessing Service Local
, andFeature Service Local
to allow for the unpack of larger packages. To control or reduce the timeout, use the new StartAsync overload that takes a CancellationToken and set theMap Service Cancel
property of the token or call theAfter Cancel
method when required. -
GeometryEngine.BufferGeodetic and GeometryEngine.MoveGeodetic now allow specifying a negative distance.
- 3D labeling now allows overlapping labels.
LabelDefinition.DeconflictionStrategy
is now used for 3D labeling as well as 2D. By default, the property isstatic
, which places labels at their preferred positions but does not allow them to overlap - so less important labels are dropped. If set tonone
, the labels will place at their preferred position, regardless of overlap. - Loading a map now loads all the base layers in the basemap. This is required to correctly initialize the scale range of the map based on the combined scale range of all the base layers in the basemap.
- Geotriggers are no longer restricted to a maximum number of features. Prior to 100.13, geotriggers using online feature data were limited by the maximum feature setting for the service (generally 1,000 - 2,000). For fences based on a service with many features, notifications would only be generated for that subset of the data. With the current release, where supported by the feature service, this restriction has been removed by paging through all of the service's features.
- The
Job<T>.Cancel()
API now supports sending cancelation requests to server-side jobs, such as those that export map tiles or generate a geodatabase. Therefore, when a job is canceled in your ArcGIS Runtime applications, the back-end system will not continue to do unnecessary work. This can greatly reduce load on the servers. - Taking a feature service offline includes contingent value information. If a feature service has contingent values defined, then taking the service offline will include contingent values information by default.
Deprecations
There are no deprecations with this release.
Issues resolved
Issues addressed in this release are listed below.
Esri Community:MapOverlayPanel
cannot handle null SpatialReference
. BUG-000116437 Memory leak opening and closing multiple maps with polygon graphics or features.
BUG-000125701 Memory leak in ArcGIS Runtime SDK for .NET when repeatedly adding and clearing operational layers from a map service.
BUG-000135628 Changing raster TIFF image rendering sometimes crashes the application.
BUG-000138424 Embedding the Map control inside a Windows Forms using System.Windows.Forms.Integration.ElementHost
causes a memory leak.
BUG-000140743 Assigning a CompositeSymbol object to the LocationDisplay.CourseSymbol property results in an error.
BUG-000141890 MobileMapPackage.OpenAsync() causes a memory leak when called too often in ArcGIS Runtime SDK for .NET.
BUG-000143340 Map and Scene classes were sealed in 100.12.BUG-000143392 Opening mobile map packages containing a lot of symbols in ArcGIS Runtime 100.12 takes a long time compared to 100.10.
BUG-000144713 Mobile map package containing scale-dependent symbols is not honored.
BUG-000144729 Toggling between mobile map packages (.mmpks) results in a memory leak, leading to a crash in ArcGIS Runtime SDK for .NET in the Xamarin app on iOS and Android devices.
ENH-000122734 Clarify documentation and update sample Xamarin Forms OAuth authorization code workflow. ENH-000135385 Add functionality to control the timeout for the localMapService.StartAsync()
method.
ENH-000142671 The label engine does not respect barrier weights of an annotation class.
Known issues
Known issues for this release are listed below.
BUG-000124058 When the Imagery basemap is added to a map, it takes a longer time to identify the features.
BUG-000129618 The feature layer's fields return "null" value when the enumeration Enums.QueryFeatureFieldsLoadAll
is called asynchronously to query on the feature layer before calling the query enumeration Enums.QueryFeatureFieldsMinimum
.
BUG-000141496 Xamarin Forms iOS app does not honor additional map image sublayer queries when the extent parameters contain curved edges.
BUG-000142001 The offline workflow does not adhere to definition queries for read-only feature service layers that reference the same feature class source, which results in symbology overlap.
BUG-000143860 Certain labels on a mobile map package are not rendered correctly.
BUG-000143774 Using an ImageOverlay with an 8kx8k image is extremely slow.
BUG-000145159 Textured line styles do not draw correctly for vector tile layers in a scene view.
Changes in samples
Samples that demonstrate the use of ArcGIS Runtime API are described in the Sample Code section of this guide. You can download the source code for the samples viewer and all the samples it contains from the associated GitHub repository.
The following changes have been made to the samples since the previous release.
New samples
(WinUI only)
- Apply mosaic rule to rasters
- Browse OGC API feature service
- Display OGC API collection
- Edit with branch versioning
- Query with CQL filters
Enhancements
- Updated Perform valve isolation trace to demonstrate filter barriers.
- Updated Add graphics with renderer to demonstrate working with curved geometries.
- Updated data in Change feature layer renderer.
- Removed deprecated API from utility network samples.
- Updated ArcGIS Runtime API to version 100.13.
- Updated WPF sample viewer to .NET 6 (Visual Studio 2022 is required for using .NET 6).
- Updated WinUI OAuth workflows.
Bug fixes
- Fixed an issue with opening hyperlinks in the sample viewer.
- Fixed issue with improperly formatted sample source code.
- Fixed bug with Offline geocode.
- Fixed bug with file pickers in WinUI.