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

Post on 22-Apr-2020

33 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mark Baird & Mike Branscomb

Building Applications with the ArcGIS Runtime SDKs

for WPF and Java

Esri Developer Summit in EuropeNovember 19 | Berlin

Agenda

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

Agenda

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

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

Cloud

ServerMobile

Desktop

Web

ArcGIS is a complete system

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

ArcGIS Runtime SDK

• Client API for accessing ArcGIS Runtime capabilities

• Software developer kit for building applications with GISC++

Core

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

Apps and SDKs

Windows

Runtime SDK

WPF, Java

Linux

Runtime SDK

Java

Apps

ArcGIS

ArcGIS Explorer

Agenda

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

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

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

Demo: SDK Resources and IDE

Integration

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

Toolkit

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

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

Agenda

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

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

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

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

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

Demo: Building a map

Demo Summary

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

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

Agenda

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

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

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

Demo: Editing

Demo Summary

• Editing provided by feature services

• Author content in ArcMap

• Online and offline

• UI controls and components

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

Agenda

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

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

Demo: Querying data

Demo Summary

• Querying data is task based

• Same dev pattern

• Async for good behavior

• Online and offline

Agenda

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

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)

Geoprocessing Demo

Demo Summary

• Analysis provided by geoprocessing

• Same dev pattern as for other tasks

• Async for good behavior

• Online and offline

Agenda

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

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

Agenda

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

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

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

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

Licensing for deployment

• Enable Licenses using Software Authorization Wizard

• Use License Viewer to get license string

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

Demo: Deploying an

application

Demo Summary

• Identify functionality you need

• Determines deployment size

• Determines license

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

Agenda

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

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)

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

Thank you for attending

Questions?

Talk to us at the social…

Java => mbaird@esri.comWPF => mbranscomb@esri.com

Forums.arcgis.comIdeas.arcgis.com

top related