Select to view content in your preferred language

Announcing ArcGIS Runtime SDK for .NET 100.9

08-28-2020 08:19 AM
Labels (1)
Esri Frequent Contributor
0 0 1,244

We are pleased to announce the 100.9 release of ArcGIS Runtime SDK for .NET. This release includes significant new features, enhancements to existing features, performance improvements, and bug fixes. You can read about the highlights common to all ArcGIS Runtime SDKs in the shared ArcGIS Runtime blog post and additional details in the 100.9 Release Notes. For you - our .NET community - here are several more details we would like to highlight.


API : Nullability

This release continues the multi-release epic to incrementally annotate the ArcGIS Runtime SDK for .NET codebase for Nullable Reference Types, or Nullability. Introduced with the C# language version 8.0, Nullability enables you to explicitly declare in your code when a reference may be null and when it will never be null, with the goal of avoiding a `NullReferenceException` at runtime. Compile-time warnings will help to show you where you perhaps made an assumption that a variable will never be null and you subsequently missed implementing a null check and that could later cause a crash while users are running your app. Over the past year the ArcGIS Runtime .NET dev team has been preparing to support nullability of reference types and over the past few months this process has progressed to incrementally enabling the API source code to support nullability. As mentioned, adding this valuable information to our API is an epic that will span multiple releases and there is a not insignificant amount still for us to do. With our 100.9 release, if your project uses C# language version 8.0 and you have opted your project into the nullable reference types feature, you will begin to see information in Visual Studio declaring the expected null state of reference type variables. But note until we announce the API as fully supporting nullability you should consider this just a preview of this exciting feature.


API : UI and rendering

UI and rendering related enhancements to the experience for the end-user and for the developer:

  • Touch interaction on the SceneView control has been enhanced to provide a consistent experience across ArcGIS Runtime SDKs and across Android, iOS and Windows. The two-finger press and drag gesture will now tilt the view (observer) around the target instead of looking around a static observer.
  • On iOS 2D maps and 3D scenes are now rendered using Apple's Metal framework which provides near-direct access to the graphics processing unit (GPU). This provides a noticeable increase in rendering performance, particularly when displaying a large number of features or graphics in dynamic rendering mode on the GPU, and reduces the overall memory consumption of layers. Note Xcode does not support Metal based rendering in iOS 12 simulators on macOS Catalina, or in any version of iOS simulator on macOS Mojave. If you are developing map or scene based apps in these environments, you will need to test and debug on a physical device instead of the simulator.
  • Improved DirectX error reporting. Where previously you might only have seen an error message such as `Error creating index buffer` you will now also see the underlying error code returned from the graphics device for example `E_OUTOFMEMORY (0x8007000E)`.


API : Web and security

Enhancements as part of our ongoing work to enable efficient, secure access to remote content:

  • Credential persistence default storage options are now available for AndroidiOS, and UWP.
  • The locale of the device or machine is now respected in the OAuth authentication UI.
  • Improved handling of 498 Invalid Token status codes indicating a token refresh is required when maps and scenes contain both anonymous and secured content.
  • Improved authentication when working with OGC services requiring network credentials.
  • Optimized request handler usage on Android and iOS.
  • HTTP caching now enabled on Android.
  • A new HttpResponseEnd event has been added to Esri.ArcGISRuntime.Http.ArcGISHttpClientHandler. This event sets a global HTTP response listener called each time a response is received. Note this listener is called on each and every request made by the ArcGIS Runtime therefore any code you add here must be both thread-safe and designed with performance in mind.


API : Additions and enhancements

  • A static convenience method `CreateDefault()` has been added to LocationDataSource to provide access to the system location data source on each platform.
  • The `LocationDisplay.IsEnabled` and `LocationDataSource` `.StartAsync` / `.StopAsync` behavior has been hardened against issues encountered obtaining location status on mobile devices with slow or poor network connectivity.


API : NuGet packaging changes

The NuGet packages comprising ArcGIS Runtime SDK for .NET have been restructured to decouple the UI framework you use to develop your application, such as WPF, from the underlying platform runtime, such as Win32. The packages now better represent the contents and purpose of each package and the new scheme provides the flexibility we need in order to be able to support future new .NET UI frameworks. As with previous releases, the NuGet package(s) you add to your project will deploy the necessary runtime components according to your build configuration (AnyCPU, AnyCPU + Prefer 32-bit, x86, or x64).


SDK : Toolkit

The Toolkit for ArcGIS Runtime SDK for .NET is released in unison with ArcGIS Runtime 100.9 and includes components that support your development of apps when using WPF, UWP, Xamarin.Android, Xamarin.iOS, and Xamarin.Forms. Note Esri.ArcGISRuntime.Toolkit 100.9 or Esri.ArcGISRuntime.Toolkit.Xamarin.Forms 100.9 will require API references to version 100.9 or later.


SDK : Documentation

New and enhanced content added to the documentation for ArcGIS Runtime SDK for .NET (note the platform selector at the top of each Guide topic for selecting WPF | UWP | Android | iOS | Forms):


SDK : Samples

New samples, sample updates, and enhancements to the sample viewer apps (each sample is available for all platforms although links below typically go to the WPF example):


SDK : Open Source Apps


System requirements changes and deprecation notices

  • Version 100.9 will be the last release of ArcGIS Runtime SDK for .NET to include project templates for building WPF applications that target .NET Framework. It is recommended when starting new WPF applications that you use the included ArcGIS Runtime project template for WPF with .NET Core. While ArcGIS Runtime will continue to support development with WPF for .NET Framework, the industry guidance recommends using .NET Core for your new work.
  • Network Analyst resources that were previously compiled into the ArcGIS Runtime core dll have been separated into a standalone binary file which is automatically deployed to the resources subfolder in the `ArcGISRuntime100.9` folder. If you are not using routing or transportation network analysis capabilities you can opt out of this automatic deployment by adding the following setting to your project file: `<DeployArcGISNetworkAnalystResources>false</DeployArcGISNetworkAnalystResources>`.
  • For Runtime developers using ArcGIS Runtime Local Server we’ve extended the deprecation of ArcGIS Desktop 10.x packages. Version 100.9 will now be the last release to support ArcGIS Desktop 10.x packages (created in ArcMap). The next ArcGIS Runtime Local Server version will require packages to be created with ArcGIS Pro.


ArcGIS Runtime Local Server

There is an upcoming 100.9 release of the ArcGIS Runtime Local Server component to provide map and geoprocessing package compatibility with ArcMap 10.8.x and ArcGIS Pro 2.6.x. We anticipate being able to announce this release within the next few weeks. Until then you can update your existing WPF projects to reference Esri.ArcGISRuntime.WPF 100.9 and continue to reference Esri.ArcGISRuntime.LocalServices 100.8.


We thank you for your ongoing support and feedback and hope you will find these updates valuable as you continue to use ArcGIS Runtime to build amazing applications for your users.


The ArcGIS Runtime .NET Dev Team