47
GIS FOR A SUSTAINABLE WORLD 2019 Matthias Schenker CTO, Esri Switzerland - Zurich ArcGIS for Developers

ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

  • Upload
    others

  • View
    60

  • Download
    1

Embed Size (px)

Citation preview

Page 1: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

GIS FOR A SUSTAINABLE WORLD 2019

Matthias Schenker – CTO, Esri Switzerland - Zurich

ArcGIS for Developers

Page 2: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Presentation TitleThank You to Our

Sponsors

Page 3: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Options Building Custom Solutions

• Take existing ArcGIS Apps and configure

• Build custom web and mobile apps using builders

• Build custom apps using ArcGIS client APIs

• Extend ArcGIS Desktop

• A mixture of all of the above

- ArcGIS system architecture designed to support this interoperability

Page 4: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Apps

Desktop

APIs

ArcGISA Comprehensive Geospatial Platform

Supporting Individuals, Teams, and Organizations

Enterprise

& Online

Page 5: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Dashboards

Story Maps

Social MediaBrowser AppsProfessional

Desktop Apps

Server Admin

Apps

Mobile Apps

The ArcGIS System

A P I s

ArcGIS Developer Platform | Apps Empower Your Users

Page 6: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

500,000+ Web Apps Created and Deployed

AppStudio

Build Once, Deploy on Any Device

Simple and Powerful

Many Widgets

Web AppBuilder

3D

ArcGIS App Builders | Enable Everyone to Build Apps

Page 7: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Improved Developer Program

Supporting GIS, Enterprise, and Independent App Developers

• Performance

• Usability

• Functionality

New and Improved

JavaSwift

.NET

Qt

Xamarin

Objective-CC++

C#

KotlinQML

SDKs

ArcGIS Developer Platform | Extending GIS and Creating New Apps

For Devices,

Web, and Desktop

Web Apps

Pro Add-Ins

Python API

Pro SDK

JavaScript

API

ArcGIS

Native

Device Apps

Runtime

SDK

Deployable Independently

Connected andDisconnected

Page 8: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS for Developers - developers.arcgis.com

• Your starting point for finding ArcGIS Runtime SDK resources

- Sign up to receive credits for developing and testing your apps!

• Downloads

- ArcGIS Runtime SDKs for all platforms

• Documentation

- Developers guide, API reference, Samples documentation

• Samples

- Focused samples to illustrate API functionality

- Full example apps

• Tutorials

- DevLabs: Data, Design, and Develop

Start here!

D

Page 9: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS APIs

Page 10: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS APIs

• Extension APIs for customizing and extending ArcGIS

- Desktop

- Server

• Scripting and Automation

• Client APIs for building Apps

- Web

- Mobile

- Desktop

Page 11: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Extension SDKs

• Allow developers to customize ArcGIS for their specific workflows

• SDKs are designed and built specifically for this purpose

• ArcGIS Pro SDK for .NET

• ArcGIS Enterprise SDK

• ArcObjects SDK

Page 12: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS ProCustomizing and Extending ArcGIS Pro

• Extend with your own custom tools and solutions using the Pro SDK for Microsoft .NET

• Configure UI through settings and workflows through tasks

• Automate using geoprocessing and Python

Page 13: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Pro SDK for .NETCustomizing and Extending ArcGIS Pro

• Modern framework design specifically to support customization of Pro

• Microsoft .NET – develop with Visual Studio 2015 and 2017

• Three patterns:

- Add-Ins – Develop new tools and functionality, and customize UI

- Configurations – Deeper customization, branding, start-up experience, streamline UI

- Plug-in data sources – Develop new data source formats

Page 14: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Pro SDK for .NETCustomizing the UI with Add-ins

• Easy to share and install

• Deployed as a single zipfile package, with .esriAddInX extension

• Can be secured and licensed

Page 15: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Enterprise SDKExtending ArcGIS Pro Compatible Services

• Extending ArcGIS Pro based services

- Building Server Object Extensions (SOEs)

- Building Server Object Interceptors (SOIs)

• Supports Feature and Image services

• SDK for Java and .NET developers

• IDE integration for Eclipse (Java) and Visual Studio 2015 and 2017 (.NET)

• Help documentation and API reference

Page 16: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcObjects SDKSupporting ArcMap Based Development

• Customizing and Extending ArcMap

• Extending ArcMap based services

- Building Server Object Extensions (SOEs)

- Building Server Object Interceptors (SOIs)

• Supporting VS 2015 / 2017 and .NET 4.5

• ArcObjects continue to be supported

• ArcObjects resources available on GitHub

Page 17: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Scripting and Automation

Page 18: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Client APIs

• ArcGIS REST API

• ArcGIS API for Python

Page 19: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS REST API

• ArcGIS Online and ArcGIS Enterprise services are RESTful services

• Over 25 service types

• Grouped into 4 sub categories

- Location based services

- GIS services

- Users, groups and items services

- Enterprise administration services

• Higher level ArcGIS APIs wrap these REST services

- Simplifies development

- Presents capability in a more familiar environment

- The underlying REST service can still be access directly if required

https://developers.arcgis.com/rest/

Page 20: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Python APIA Whole New Way to Experience and Leverage ArcGIS

• Analytics - Data Science

• Scripting and Automation

• System Administration

Command Line

Scripts Jupyter

Notebooks

https://developers.arcgis.com/python/

Page 21: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Python APIProviding Answers to Questions Through Data Science

• What happened, where and when?

• Why did it happen?

• What will happen, where and when?

• What do we do about it?

Page 22: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Python APIThe 3 Stages of Data Science

• Data preparation

• Analysis

• Dissemination

Familiar

Experiences

Advanced Analysis,

Scientific Methods,

Tools, Algorithms

Page 23: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Notebooks with ArcGIS API for PythonYour Lab for Enterprise Data Science

• API Designed for Data Science

• Delivered via a familiar experience

• Brings Data Science to your Web GIS

• Designed for Machine Learning and Deep Learning workflows and models

- Build, train, iterate, test, deploy, infer

• Create reproducible research, share and collaborate

Page 24: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Spatial Analysis,

Geocoding, Geoenrichment

Raster Analytics & Image Processing,

Geoanalytics(Distributed Computing, Big Data)

Notebook Server

Where is the Analysis Done?

Page 25: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Automate WebGIS

Management

• Populate portal with users,

groups

• Reassign user content

• Create reports of users, their

items

• Clone portals and items

between portals

• Backup / Restore

Automate content

creation

• Automate content publishing

during off peak hours

• Update tiles and features from a

known database

• Replicate development

environment content to

production

Advanced

Housekeeping

• Front end

• Find/Remove test items

• Find incomplete groups and

items and alert owners

• Back end

• Find broken links

• Update references

Some administrative tasks are “better” when scripted

Page 26: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Python Notebook

Demo

Page 27: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Client SDKs

Page 28: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Client APIs Designed for Web GISWorking with the GeoInformation Model – ArcGIS Identity

• Users have a unique secure identity

• Content saved under user name

• Users can be assigned special privileges

• Users can share or keep content private

• Organize users, content and services

• Find, upload, share, configure, secure

Page 29: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS API for JavaScript

• 2D and 3D visualizations

• Simple and consistent API

• Rich visualizations possible with simple layer styling

• Works well with various JS frameworks and development environments

• High performance display

- WebGL driven

- Client side engines for local processing of data

https://developers.arcgis.com/javascript/

Page 30: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

JavaScript API

Intro Demo

Page 31: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS API for JavaScript2D and 3D Mapping

• Programming pattern similar between 2D and 3D views

- Views share implementation for layers, renderers, tasks, geometry, symbology, pop-ups, and navigation

• 3D adds specific capabilities for environmental aspects and camera

• Unique 3D symbology

• Data driven visualization

Page 32: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS API for JavaScriptHigh Performance Map Display

• Combination of fast rendering on the client and efficient delivery of content

• Tiled feature services support efficient delivery of GIS features

- Tiles generated on the fly on the server and cached

- Updated automatically when underlying data changes

- Geometry and attributes are sent to client

- Supports editing

• Vector Tiles supported when full features or data currency not required

- After initial creation less server load

Page 34: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS API for JavaScriptAnalytics Server and Client Side

• Local engines

- Geometry

- Projection

• Interactive scene analysis

• Network analysis on the server

• Geoprocessing on the server

Page 35: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS API for JavaScriptUser Experience

• Responsive user interface design

• Comprehensive widget set means rapid application development

- Over 25 widgets including; Legend, Coordinate conversion, Measure, Search, Popup, Print, …

- Rich popup implementation

- Consistent out of the box styling

• Possible to reuse business logic and style custom user interfaces

- Use themes, write your own CSS styles or customization via SASS

- Repurpose widgets to work with frameworks such as React, Angular, Vue and others.

Page 36: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Runtime

SDKs

Page 37: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Device

ArcGIS Online

ArcGIS

Enterprise

ArcGIS Runtime Overview

App

ArcGIS Runtime

API

ArcGIS

Runtime

OGC ServicesLocal Data

Page 38: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Overview – ArcGIS Runtime SDKsNative App Development

• Support 6 operating systems / platforms

- Android, iOS, macOS, Linux, Universal Windows Platform (UWP) and Windows

• 5 APIs

- .NET, Android, iOS, Java, and Qt

• You select the development environment of your choice

- Integrates with your solution

- Makes you productive

• Your users benefit from the optimum solution

https://developers.arcgis.com/arcgis-runtime/

Page 39: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Overview – ArcGIS Runtime SDKsWhy Build a Native App?

• Native apps give the best performance

• Fully leverage device capabilities

• Access all peripherals via their native SDKs

• Best debugging experience

• Offline use of ArcGIS

- Maps, scenes, editing, analysis, routing…

Page 40: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Overview – ArcGIS RuntimeAn Architecture Designed to Maximize Performance and Reuse

C++ runtime core

WinLinux OS XAndroid iOS UWP

x86 x64 ARM ARM64DirectX

OpenGL

OpenGL ES

Page 41: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Capabilities – ArcGIS Runtime SDKs

• Working with Layers from Services

- Also WMTS, WMS, KML and WFS*

• Working with local GIS data

- Mobile Geodatabase, GeoPackage, Shapefile, KML, Raster, various Packages in 2D and 3D

• Working with Maps

- Also offline or if you want to generate and share new maps

• Working with 3D content

- Now also with Pointclouds and integrated Meshes*

- Also offline

* Released in Q1 2019

Page 42: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Runtime SDKsAnalysis

• Works with services

- Geoproessing

- Network analyst

- Geocoding

• Local Engines

- Geometry

- Projection

- Network

- Geocoding

• Interactive 3D Analysis

- Viewshed

- Line of Sight

- Measure

Page 43: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Runtime SDKsUltimate Performance

• Device capabilities continue to grow

• Harnessing this power is critical for tomorrows Apps

• ArcGIS Runtime brings it all together

- Display

- Data access

- Analytics

• Online and offline

• ArcGIS Runtime enables you to build apps with large data volumes updating in real-time

Page 44: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Runtime AR / VR Beta Program

• Started November 2017

• Available for ArcGIS Runtime SDKs for:

- Android

- iOS

- .NET (Xamarin.Android, Xamarin.iOS)

• Targeting mobile devices

• Includes beta API to support building AR or VR

Request access to the beta program:

[email protected]

Page 45: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

ArcGIS Runtime – Augmented Reality

• Initial release will focus on capabilities of the predominant AR platforms

- ARKit – iOS

- ARCore – Android

• Available for ArcGIS Runtime SDKs for:

- Android

- iOS

- .NET (Xamarin.Android, Xamarin.iOS)

• Two scenarios

- Small scale representations of virtual content placed in the real world ‘Table top’

- Full scale real world view

D

Page 46: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET

Summary

• Extension APIs for customizing and extending ArcGIS

- Desktop

- Server

• Client APIs for building Apps

- Web

- Mobile

- Desktop

[email protected]

Page 47: ArcGIS for Developers - Esri · ArcGIS Pro SDK for .NET Customizing and Extending ArcGIS Pro •Modern framework design specifically to support customization of Pro •Microsoft .NET