building applications with the arcgis runtime sdks for wpf and … · 2014-06-04 · what is the...

49
Mark Baird & Mike Branscomb Building Applications with the ArcGIS Runtime SDKs for WPF and Java Esri Developer Summit in Europe November 19 | Berlin

Upload: others

Post on 22-Apr-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Mark Baird & Mike Branscomb

Building Applications with the ArcGIS Runtime SDKs

for WPF and Java

Esri Developer Summit in EuropeNovember 19 | Berlin

Page 2: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 3: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 4: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

• Online• Desktop• Server• Mobile• Developer• Solutions

Cloud

ServerMobile

Desktop

Web

ArcGIS is a complete system

Page 5: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

What is the ArcGIS Runtime?

• Set of lightweight components- Embed mapping and GIS capabilities into your

applications

• New Architecture- Native 64-bit and 32-bit - Exploits hardware (CPUs, GPU)- Uses asynchronous programming patterns for

responsive applications

• Simplified deployment- No installation required - Deploy only what you need- Side by side

GPSGeocoding

Geoprocessing

PythonScripting

Network Analyst

Spatial Analyst

3D Analyst

LocalServices

MapDisplay

Page 6: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

ArcGIS Runtime SDK

• Client API for accessing ArcGIS Runtime capabilities

• Software developer kit for building applications with GISC++

Core

Page 7: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Apps and SDKs

Windows Mobile

Windows iOS Android

Runtime SDK

.NET CF / .NET

Runtime SDK

WPF, Java

Linux

Runtime SDK

JavaRuntime SDK

Objective C

Runtime SDK

Java

Windows Phone 7

Runtime SDK

Silverlight

Apps

ArcGIS

Apps

ArcGIS

ArcGIS Explorer

Apps

ArcGIS

Apps

ArcGIS for iOSApps

ArcGIS

Page 8: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Apps and SDKs

Windows

Runtime SDK

WPF, Java

Linux

Runtime SDK

Java

Apps

ArcGIS

ArcGIS Explorer

Page 9: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 10: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Getting started

• Part of ESRI Developer Network (EDN)- Subscribers – Download from EDN website (or get DVD)

• Install SDK• Lays Down:

- Central ArcGIS Runtime- API libraries / assemblies- Samples- Conceptual / API reference doc- IDE integration

• Get licensed for development

Page 11: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Getting started

• WPF- .NET 4.0- WPF- XAML, C#, VB.NET- Visual Studio 2010 - Blend 4

• Windows x86 & x64:- XP, Vista, 7

• Java- Java SE JDK 6 or 7- Java- Eclipse

- Juno, Indigo or Helios

• Windows x86 & x64:- XP, Vista, 7

• Linux x64:- Red Hat 6.0, 6.1, 6.2- Ubuntu 10.04, 12.04

Page 12: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo: SDK Resources and IDE

Integration

Page 13: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo Summary

• Sample app, links and tools in the Start Menu

• Resource Center full of great content- Questions – forums.arcgis.com- Enhancement requests – ideas.arcGIS.com

• Sample App

• IDE Integration

Page 14: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Toolkit

• UI Components- Editing- Popups- Scalebar- Navigator- Security

• Source Code Available- Use as is- Extend- Learn

Page 15: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 16: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Map Display

• 2D display• ArcGIS cartography• Hardware accelerated

- WPF: DirectX (explicitly enable via API)- Java: DirectX / OpenGL- Update your display driver !

• Navigation via mouse, keyboard shortcuts or touch (WPF)• Content built up as Layers

Page 17: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Building the Map

• Webmaps• Add layers to map control via API• Online / Local Content is authored through Desktop

- Tiled map services / Tile Packages (TPK)- High performance base maps

- Dynamic map services / Map Packages (MPK)- Editing, querying, mapping

- Locator services / Locator Packages (GCPK)- Geocoding

- Geoprocessing services / GP Packages (GPK)- Models and Scripts

Page 18: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Building the map

• Map Control

• Live / temporary data- Vehicles, people, events…- Graphics and Graphic Layers

• Operational data- Facilities, zones, networks…- Map Services / MPK

• Basemap- Imagery, topography…- Tiled Services & TPKs

Tiled

Dynamic

Graphics

Page 19: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Provisioning content

• Packaging /publishing process runs analyzers• Specific analyzers for runtime identify:

- Errors that prevent package from working in the Runtime- Runtime deployment requirements- Runtime licensing requirements- Performance improvements

Page 20: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo: Building a map

Page 21: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo Summary

• Build up map in layers- Tiled basemaps, dynamic operational, graphics

• Content authored in ArcGIS for Desktop- For services or for packages

Page 22: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 23: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Editing

• Office-based connected scenarios - Edit RDBMS- Edit Feature Services via ArcGIS for Server

and ArcGIS Online.

• Field disconnected scenarios• Edit File Geodatabases deployed to

device with application

Page 24: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Editing features

• Edit feature geometries and attributes- NOT behaviors (networks, topologies, etc)

• Edit Environment Authored in ArcGIS for Desktop• ArcGIS Runtime SDKs Include:

- UI controls / widgets for editing- Fine-grained API components

Page 25: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo: Editing

Page 26: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo Summary

• Editing provided by feature services

• Author content in ArcMap

• Online and offline

• UI controls and components

Page 27: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Geometry Service / API

• ArcGIS Runtime SDKs have a local, lightweight geometry capability

• Geometric calculations and utility methods- Buffer, clip, distance, project, densify, relate, simplify,

union, difference, disjoint, symmetric difference…

• For Editor widgets / controls geometry services help perform common editing operations e.g. cutting and reshaping features

Page 28: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 29: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Querying Data

• Task based framework- Async (and Sync if required)

• Task types- Identify Operations- Attribute and Spatial Queries- Geocoding and Reverse Geocoding

• Handled by Specific Task Classes• Similar Programming Pattern for Each Task

- Define input Parameters- Wire up event handlers- Execute task asynchronously- Process and display results

Page 30: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo: Querying data

Page 31: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo Summary

• Querying data is task based

• Same dev pattern

• Async for good behavior

• Online and offline

Page 32: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 33: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Using Geoprocessing in the Runtime

• Geoprocessing is the Source of Advanced GIS Analysis in the ArcGIS Runtime

- Functionality that goes beyond the API

• Connected- ArcGIS Server’s and ArcGIS Online’s Published Services

• Disconnected- Local Geoprocessing from Geoprocessing Packages

(GPKs)

Page 34: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Geoprocessing Demo

Page 35: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo Summary

• Analysis provided by geoprocessing

• Same dev pattern as for other tasks

• Async for good behavior

• Online and offline

Page 36: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 37: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

User Experience – Asynchronous Patterns

• API has an Asynchronous Programming Model• Application Responsiveness is Paramount• Async Lets You:

- Perform time-consuming tasks in the background- Execute multiple operations simultaneously- Wait for resources to become available without hanging

your application

• Event Based Async Pattern- ExecuteAsync(…) / ExecuteCompleted

• Synchronous Methods Available but Should be Reserved to Special Cases e.g. Console Application

Page 38: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing

Page 39: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Preparing to Deploy

• License the Application With an ArcGIS Runtime Deployment License String

- Take note of ArcGIS for Desktop analyser warnings- Ensure it’s the correct level and includes any extensions

• Make sure the license string is not accessible via reflection e.g. use obfuscation.

• Create an ArcGIS Runtime Deployment • Select the Client Assemblies Required

- in the build output directory

• Include your app alongside deployment• Deploy with maps and data

Page 40: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Deploy only what you need

• Core- 2D Mapping

- Full ArcGIS cartographic model- Enterprise and File Geodatabases

- Simple feature & attribute editing- ArcGIS Server services

• Geocoding• Geoprocessing• Python scripting• Additional Data Formats

- SDE Direct Connect, Rasters, Shapefile,…

• Additional Projection Support• GPS

Page 41: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Licensing for deployment

• Basic- Full client to ArcGIS Server services- Local Tile Packages & GPS Support

• Standard- Local Map, Geoprocessing and Locator Packages- Geodatabase Editing & Routing

• Extensions- Spatial Analyst, 3D Analyst, Network Analyst

• Determine the Type and Number of Licenses• Purchase Runtime Licenses

Page 42: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Licensing for deployment

• Enable Licenses using Software Authorization Wizard

• Use License Viewer to get license string

• Call ArcGISRuntime.setLicense(“runtimestandard,.....”)

Page 43: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo: Deploying an

application

Page 44: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Demo Summary

• Identify functionality you need

• Determines deployment size

• Determines license

• Easy to deploy- XCopy, Setups, ClickOnce (.NET), etc

Page 45: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Agenda

• Introduction• SDK• Building the Map• Editing• Querying Data• Spatial Analysis• Programming patterns• Deployment and Licensing• Summary & roadmap

Page 46: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Roadmap – Winter release

• Display improvements• New layer types• Security enhancements• Improved Routing support• Geocoding enhancements• Configurable application (WPF)• Support for Windows 8

- For dev/deployment in classic desktop mode

• Support for VS 2012 (WPF)

Page 47: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Roadmap – 2013

• 3D• Edit sync framework• New ArcGIS Runtime SDKs

- Windows 8 WinRT- Support for Windows 8 modern UI style and ARM processor

- WinPhone 8- Mac OS X

Page 48: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities

Thank you for attending

Questions?

Talk to us at the social…

Java => [email protected] => [email protected]

Forums.arcgis.comIdeas.arcgis.com

Page 49: Building Applications with the ArcGIS Runtime SDKs for WPF and … · 2014-06-04 · What is the ArcGIS Runtime? • Set of lightweight components-Embed mapping and GIS capabilities