arcgis runtime sdk for .net: building windows apps › content › dam › esrisites › en-us ›...

Post on 07-Jul-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mike BranscombMorten Nielsen

ArcGIS Runtime SDK for .NETBuilding Windows Apps

Agenda

• Overview• ArcGIS Runtime Architecture• Getting Started• Enhancements

• Toolkit• Performance• .NET Core• Advanced Symbology

• Road Ahead

ArcGIS Runtime SDK for .NETOverview

• Develop native mapping and location analysis apps with .NET• 2D and 3D Visualization• Ready to use maps and data• Search and geocode• Directions and routing• Demographic data• Spatial analysis• Hosted data• Offline workflows

Overview: ArcGIS Runtime SDK for .NET

Apps

DesktopAPIs

Online

Enterprise

• Build native apps for popular platforms and devices- Standalone map-centric apps- Integrate GIS into your line-of-business apps

• Match the UI and UX conventions of the platform on which the app runs• Access native device capabilities e.g. GPS• Connected to ArcGIS Online or ArcGIS Enterprise• Offline with local data• Distribute through an app store

Overview: Why use ArcGIS Runtime?

• APIs- Windows Presentation Foundation (WPF)

- .NET Framework- .NET Core 3.1

- Universal Windows Platform (UWP)- Xamarin.Android- Xamarin.iOS- Xamarin.Forms (Android, iOS, and UWP)

• SDK- Templates, Toolkit controls, Doc, Sample code, Tutorials, Open Source Apps

• Cross-platform- Share your .NET C# business logic code across Android, iOS, and Windows

Overview

ArcGIS Runtime SDK for .NETArcGIS Runtime Architecture

Overview – ArcGIS Runtime SDK for .NETAn Architecture Designed to Maximize Performance and Reuse

C++ runtime core

WinLinux macOSAndroid iOS UWP

x86 x64 ARM64DirectXOpenGLOpenGL ES

Overview – ArcGIS Runtime SDK for .NETAn Architecture Designed to Maximize Performance and Reuse

C++ runtime core

x86 x64 ARM64DirectXOpenGLOpenGL ES

WPFUWPiOSAndroid

Xamarin.Forms

WinAndroid iOS UWP

ArcGIS Runtime SDK for .NETGetting Started

• Visual Studio extension (VSIX)- Install directly in Visual Studio

- Project templates for each supported platform- Download from developers.arcgis.com/downloads

- Project templates for each supported platform- Plus local NuGet packages for offline development

• NuGet packages on NuGet.org - WPF - UWP - Xamarin.Android- Xamarin.iOS- Xamarin.Forms (Android, iOS, UWP)- Toolkit- AR Toolkit

Installing ArcGIS Runtime SDK for .NET

Getting StartedDemo

• System requirements depend on the apps you plan to build

Prerequisites for development

• Toolkit• Performance• .NET Core• Modernizing Symbology

Enhancements

ToolkitArcGIS Runtime SDK for .NET

• Toolkit 100.7 – Released February 2020• Support for .NET Core with WPF• New Bookmarks control• Complete rewrite of Legend control and TableOfContents controls

- TableOfContents is currently in Preview

• Dark Mode support for iOS• New DocFX-based website with API reference and concept documentation

- Over time this will migrate to the ArcGIS Developers site

• Augmented Reality Toolkit incl. new project templates

Toolkit

PerformanceArcGIS Runtime SDK for .NET

• The dev team analyzed where time is spent and where memory is allocated• Reducing time

- = Faster response times

• Reducing allocations- = Fewer out-of-memory events - = Less work for the Garbage Collector

• Main focus has been on common customer scenarios e.g.- Creating and updating many Graphics, Features, and Geometries- Querying many Features and Graphics- Accessing and setting Feature and Graphic Attribute values

Performance Improvements

Performance Improvements - Graphics

0

0.2

0.4

0.6

0.8

1

1.2

100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0 100.8.0

Get Graphics Attributes

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0 100.8.0

Set Graphics Attributes

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0

Add 20000 Graphics

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

1.4

100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0 100.8.0

Update 20000 Graphics Attributes

Relative execution time Allocations

Performance Improvements - Geometry

0

0.2

0.4

0.6

0.8

1

1.2

1.4

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0 100.8.0

Set Graphics Geometry

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0

Create Spatial Reference

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

Create Point

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.6.0 100.7.0

Create Polygon

Relative execution time Allocations

Performance Improvements - Geometry

0

0.2

0.4

0.6

0.8

1

1.2

1.4

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0 100.8.0

Set Graphics Geometry

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0

Create Spatial Reference

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

Create Point

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.6.0 100.7.0

Create Polygon

Relative execution time Allocations

Performance Improvements – Feature Tables

0

0.2

0.4

0.6

0.8

1

1.2

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0 100.8.0

Query Feature Table

Relative execution time Allocations

0

0.2

0.4

0.6

0.8

1

1.2

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0 100.8.0

Add 40000 Features To Table

Relative execution time Allocations

Performance Improvements – MapView

0

100

200

300

400

500

600

100.0.0 100.1.0 100.2.0 100.2.1 100.3.0 100.4.0 100.5.0 100.6.0 100.7.0

MapView Control Load time (ms)

.NET CoreArcGIS Runtime SDK for .NET

• ArcGIS Runtime 100.7 supports .NET Core 3.1 with *WPF* for Windows Desktop apps• Removes dependency on system-wide .NET Framework

- Self-contained app folders- Deploys .NET Core to your app publish folder

• Benefit from .NET Core performance improvements

WPF & .NET Core 3.1

WPF & .NET Core 3.1

• Single File executables- Tooling packages your app- Includes .NET Core- Includes native libraries (e.g. ArcGIS Runtime)

• Full C#8 Support• Future enhancements with .NET 5, AOT compilation, etc.

• .NET Framework 4.8 is the last version of .NET Framework- Fully supported, but bug fixes only- Already several new .NET features not available with .NET Framework

• Open source:- Step right into source-code- Rapid and open development with the help of the community

Why .NET Core?

“While we do recommend that new desktop apps should consider targeting .NET Core, the .NET Framework will keep the high compatibility bar and will provide support for your apps for a very long time to come”

Can I move to .NET Core?

• Install the .NET Portability Analyzer Tool• Or run APIPort tool against binaries

- https://github.com/Microsoft/dotnet-apiport

• Move class libraries to .NET Standard if you can• Good porting resource from Microsoft

- http://esriurl.com/NetCorePort

Building and deploying .NET Core Apps

Demo.NET Core

• .NET Portability Analyzer- https://aka.ms/portabilityAnalyzer

• Try-Convert- dotnet tool install –g try-convert

• How to port desktop applications to .NET Core- http://esriurl.com/NetCorePort

• Modernizing the enterprise desktop application- http://esriurl.com/ModernDesktop

.NET Core Resources

Modernizing SymbologyArcGIS Runtime SDK for .NET

• Cartographic Information Model (CIM) - Published content specification used to persist and transfer cartographic descriptions - Works across the ArcGIS Platform- Represented in JSON

• Style files (.stylx)- Symbols can be stored, managed, and shared in collections called styles- ArcGIS Runtime uses Mobile Styles

• Symbols- Composed from one or more symbol layers with visual properties and geometry- Vectorized for crisp rendering on any device as any resolution

• Runtime API contains MultiLayerSymbol types- Replacement for the CompositeSymbol

• These concepts support the DictionaryRenderer

Modernizing Symbology

Symbol EditorDemo

• Source Available from:https://github.com/Esri/arcgis-runtime-demos-dotnet/

• Install right now with MSIX:• http://esriurl.com/SymbolEditor

Symbol Editor Sample

Road AheadArcGIS Runtime SDK for .NET

• Nullability• .NET 5• WinUI• iOS: Metal support

What will we be working in 2020?

Thank you!

Recommended session pairing:ArcGIS Runtime SDK for .NET: Building Xamarin Apps

Continue the discussion on: GeoNet: https://community.esri.com/

top related