arcgis pro sdk for .net: introduction to …...•develop pro add-ins which allow extending and...

Post on 25-Aug-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Christopher Zent

ArcGIS Pro SDK for .NET: Introduction to Customization and Extensibility

Session Overview

• SDK overview

• DAML – Declarative Application Markup Language

• Developing with Pro’s extensibility patterns- Add-Ins

- Configurations

- Plug-in datasources

- CoreHost applications

ArcGIS Pro SDK Overview

ArcGIS Pro SDK for Microsoft .NET

• Develop Pro add-ins which allow extending and customizing of Pro

• Microsoft Visual Studio 2017 & 2019 – code in C# or VB.NET

• Templates and tools streamline add-in development

• Modern framework using .NET – WPF, MVVM, LINQ, etc.

• ArcGIS Pro APIs come with ArcGIS Pro out-of-box

• Asynchronous – work with multiple threads

Project Templates

Item Templates

Pro Add-Ins – Built with the Pro SDK

• Two main patterns:- Add-Ins – Develop new tools and functionality, and customize UI- Configurations – Deeper customization, branding, start-up experience, streamline UITwo additional patterns:- Plug-in datasources – Make a custom data source available for use in the Pro UI- CoreHost applications – Standalone apps with limited API access

-

Animated Symbols Add-In ArcGIS Pro for Intelligence Solution

How does a Pro add-in work?

• Extends ArcGIS Pro through:- Pro buttons, tools, dockpanes, controls, etc.- Custom functionality you create with Pro APIs

• Packaged within a single, compressed file with an .esriaddinX file extension

- C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro

• As Pro starts, it looks for add-ins placed in well-known folders and loads them

Core Components

• Config.daml- DAML – Desktop Application Markup Language- XML format, declarative-based framework to define the UI elements - Contains ArcGIS Pro framework elements (buttons, dockpane, galleries) and add-in UI elements

• The Module class- Hub and central access point for a subsystem- Similar to the Extension object used in the ArcObjects 10.x framework

Samples and Documentation

• Documentation and tutorials • Over 175 community samples available• SDK releases are in sync with ArcGIS Pro

Realtime Stream Layers API

Scene Layers API

Map Exploration API

Demo: Building an Add-in

<ArcGIS defaultAssembly="WorkingWithDAML.dll" defaultNamespace="WorkingWithDAML"xmlns="http://schemas.esri.com/DADF/Registry"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://schemas.esri.com/DADF/Registryfile:///C:/Program%20Files/ArcGIS/Pro/bin/ArcGIS.Desktop.Framework.xsd">

<AddInInfo id="{c6226a24-d69b-46c6-b5e7-9eee4ddad45d}" version="1.0" desktopVersion="1.1.2850">…</AddInInfo><modules>

<insertModule id="WorkingWithDAML" className="Module1" autoLoad="false" caption="Module1"><tabGroups>

<!--The new Tab Group is created here--><tabGroup caption="Example State Solution" id="working_with_DAML_ExampleStateTabGroup">

<color A="255" R="238" G="170" B="90" /><borderColor A="0" R="251" G="226" B="195" />

</tabGroup></tabGroups>

Declarative Markup for Pro UI Elements: DAML• Add-ins use “Declarative Markup” (DAML) language for UI Elements

- Buttons, Dockpane, Galleries, Property Sheets, Tools, …

• DAML uses XML Syntax - stored in a Config.daml file• Using DAML, you can add, modify, delete any User Interface element • Pro also uses DAML: <Install Location>\bin\Extensions folder

• DAML is transactional and is processed in the order the Pro Extension or Add-in is loaded- 3 distinct actions: Insert, Update, and Delete- The type of action is determined by the element name: updateModule, updateGroup, deleteButton

<updateModule refID="esri_mapping"><groups>

<updateGroup refID="esri_mapping_navigateGroup"><deleteButton refID="esri_mapping_bookmarksNavigateGallery“ /><insertButton refID="working_with_DAML_ToggleStateButton" />

</updateGroup></groups>

</updateModule>

In the DAML transactional model –the ‘last’ transaction wins

Declarative Markup for Pro UI Elements: DAML

How to use existing Pro UI elements in Your Add-in

• Use any existing ArcGIS Pro framework elements on your Add-in tab including Buttons, Tools, Galleries• Find the Unique Element Id of any existing ArcGIS Pro Control and use the Id in your config.daml markup

to add, delete, modify that Element• Example: Add Pro’s Navigate Bookmarks button to my Add-in toolbar

- button tag references existing Element ID: esri_mapping_bookmarksNavigateGallery

<group id="HookingCommands_Group1" caption="Hooking Commands" keytip="G1"><button refID="esri_mapping_bookmarksNavigateGallery" />

</group>

How to find Pro Element DAML IDs• SDK Help: ArcGIS Pro DAML ID Reference

https://github.com/Esri/arcgis-pro-sdk/wiki/ArcGIS-Pro-DAML-ID-Reference• Pro Generate DAML IDs tool in Visual Studio

- Allows IntelliSense to find IDs:i.e. DAML.Button.esri_mapping_addDataButton

- ArcGIS Pro ‘Customize the Ribbon’: Show IDs option

WorkingWithDAML Framework Sample

Demo: Add-in using ArcGIS Pro Buttons, States & Conditions

ArcGIS Pro Managed Configuration• Includes all functionality of an add-in plus

- Change the application title and icon- Change the application splash, start page, and about page- Optionally customize and streamline the UI (the Pro Ribbon) for a specific workflow

• Packaged within a single, compressed file with a .ProConfigX file extension:C:%Homepath%\Documents\ArcGIS\AddIns\ArcGISPro\Configurations

Default start page Custom start page

ArcGIS Pro Managed Configuration

• Running an ArcGIS Pro Managed Configuration- Use the ArcGIS Pro “/config” command-line option

- Only one configuration can run per instance of Pro

• ConfigurationManager class - Defined in DAML (generated automatically by the template)- Provides a set of methods by which a developer can override “that” aspect of Pro

public abstract class ConfigurationManager {protected internal virtual Window OnShowSplashScreen();protected internal virtual FrameworkElement OnShowStartPage();protected internal virtual FrameworkElement OnShowAboutPage();...

C:\ArcGIS\bin\ArcGISPro.exe /config:Acme

Demo: Configurations

ArcGIS Pro CoreHost Application

• Stand-alone application with a subset of Pro Assemblies- ArcGIS.CoreHost assembly – API to manage CoreHost functions- ArcGIS.Core assembly – Includes Geodatabase and Geometry classes

• CoreHost Applications have limited access - Geodatabase classes - Geometry classes

• CoreHost Application options

- Windows Console application - WPF application

C:\Data\Admin\AdminData.gdb

Demo: CoreHost GDBSample

ArcGIS Pro Plugin Datasource

• The Plugin Datasource framework allows developers to make custom datasources available for use in Pro

- Access in Pro is read-only- Access is in form of tables or feature classes- Access is file based (my data source is a file)

• Examples of custom data sources – Image files, GPS data, proprietary file formats

ArcGIS Pro Plugin Datasource

• ArcGIS Pro supports data from a large variety of data sources and formats from shape files to Oracle databases

• Plugin Datasources allow access to other data sources like relational databases such as MySQL, non-relational databases such as MongoDB, and a myriad of other proprietary and file-based data stores

Demo: ProDataReaderSample

Pro SDK Resources

• Landing Page – Main resource page - https://pro.arcgis.com/en/pro-app/sdk/

• Links to:- API Reference, Samples and Documentation

- ArcGIS Tutorials

- ProConcept documents

- Pro SDK Group on GeoNet

- Tech session video recordings

- Blog posts

Collaborate and Send Feedback

• ArcGIS Pro SDK Group on GeoNet- Ask technical questions and search on existing questions

- Collaborate with the developer community

• We welcome your input and feedback on the Pro SDK- New requirements and the workflows these would support

- Feedback and suggestions on the SDK documentation, code samples and snippets

Questions?

Print Your Certificate of Attendance

Print Stations Located in 150 Concourse Lobby

Tuesday12:30 pm – 6:30 pmExpoHall B

5:15 pm – 6:30 pmExpo SocialHall B

Wednesday10:45 am – 5:15 pmExpoHall B

6:30 pm – 9:30 pmNetworking ReceptionSmithsonian National Museumof Natural History

Download the EsriEvents app and find

your event

Select the session you attended

Scroll down to “Survey”

Log in to access the survey

Complete the survey and select “Submit”

Please Share Your Feedback in the App

top related