31
Esri UC2013 . Technical Workshop . Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Creating .NET Add-ins for ArcGIS for Desktop John Hauck, Chris Fox

Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Technical Workshop

2013 Esri International User Conference July 8–12, 2013 | San Diego, California

Creating .NET Add-ins for ArcGIS for Desktop

John Hauck, Chris Fox

Page 2: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Introduction to .NET

Page 3: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

• Development framework to build applications for the Windows Platform

• Key Features - Common Language Runtime - Interoperability - Base Class Library - Windows Forms

What is .NET?

Creating .NET Add-Ins for ArcGIS for Desktop

Page 4: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

• Coded solutions to common programming problems

- Interacting with databases - Parsing XML - File reading and writing - String manipulation - Working with collections

Base Class Library

Creating .NET Add-Ins for ArcGIS for Desktop

Page 5: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

• Tools and Controls to build GUIs - Toolbars and Menus - Text Box, Combo Box, List View, Button - Layout and Data Binding

• Events driven

Windows Forms

Creating .NET Add-Ins for ArcGIS for Desktop

Page 6: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

• When building your add-in you need to target a specific version of .NET

• 3.5 is recommended for 10, 10.1 and 10.2 - .NET 3.5 is required for ArcGIS Desktop

• 4.0 is supported at 10.1 and 10.2

Supported .NET Versions

Creating .NET Add-Ins for ArcGIS for Desktop

Page 7: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

• VB.NET - Syntax closest to VBA and VB6

• C# - Syntax similar to C++ & Java

• No difference in performance • Same access to .NET BCL and ArcObjects API

Selecting a Language

Creating .NET Add-Ins for ArcGIS for Desktop

Page 8: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Where to write your code?

• Integrated Development Environment (IDE) - Source code editor, Debugger

• Visual Studio

- Visual Studio 2008 (10.0) - Visual Studio 2010 (10*, 10.1, 10.2) - Visual Studio 2012 (10.2) - Free express version is supported

- *2010 VS Express not supported at 10.0

Creating .NET Add-Ins for ArcGIS for Desktop

Page 9: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

• One IDE for all .NET projects - Templates

• Code Editor - Syntax highlighting, code completion

• Debugger • Windows Forms Designer

- Drag/Drop controls

Visual Studio Key Features

Creating .NET Add-Ins for ArcGIS for Desktop

Page 10: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

What are Add-Ins?

Page 11: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

ArcGIS Desktop Add-Ins

A better way to customize and extend ArcGIS Desktop applications.

- Easier to build - Easy to share - More secure - C#, VB.NET, Java, and Python

Creating .NET Add-Ins for ArcGIS for Desktop

Page 12: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Add-In Types supported at ArcGIS 10.2

• Buttons • Tools • Combo Boxes • Multi-Items • Menus • Context Menus • Toolbars • Tool Palettes

• Dockable Windows • Application Extensions • Editor Extensions • Editor Construction Tools • SOE (Server)

Creating .NET Add-Ins for ArcGIS for Desktop

Page 13: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Add-in Wizard

Creating .NET Add-Ins for ArcGIS for Desktop

Page 14: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Add-In File Anatomy

Assemblies/JARs/PYDs Resources

AddIn File (zipped folder) .*.esriAddIn

XML Metadata

Creating .NET Add-Ins for ArcGIS for Desktop

Page 15: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Anatomy - Declarative Aspects

• ID • Target • Author • Version • Company • Website • Descriptions • Captions

• Images • Category • Toolbars content • Menu content • Docking state • Docking position • Tooltips • Help

<ESRI.Configuration xmlns=http://schemas.esri.com/Desktop/AddIns xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Name>CASE Tools</Name> <AddInID>{f390c49d-a7a9-4b9f-a627-20f1ee3d5ca6}</AddInID> <Description>Case Tools</Description> <Version>1.0</Version> <Image>Images\CaseTools.png</Image> <Author>ESRI</Author> <Company>ESRI</Company> <Date>04/23/2010</Date> <Targets> <Target name="Desktop" version="10.0" /> </Targets>

<AddIn language="CLR" library="ESRI.ArcGIS.SchemaGenerationWizard.dll" namespace="CaseUI.SchemaGenerationWizard"> <ArcCatalog> <Commands> <Button id="SchemaGenerationWizard_SchemaGenerationWizard" class="SchemaGenerationWizard" tip="Use the Schema Generation Wizard..." message="Schema Generation Wizard" caption="Schema Generation Wizard" category="CASE Tools" image="Images\SchemaGenerationWizard.png" /> </Commands> </ArcCatalog> </AddIn>

<DockableWindows> <DockableWindow id="ESRI_Example_DockableWindow" class="ExampleDockableWindowClass" caption="Example Dockable Window"> <InitialPlacement height="300" width="300" state="pinned" position="right" neighbor="esriArcMapUI.TOCDockableWindow" /> </DockableWindow> </DockableWindows> </DockableWindows>

Creating .NET Add-Ins for ArcGIS for Desktop

Page 16: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Anatomy – Resources & Localization

Creating .NET Add-Ins for ArcGIS for Desktop

Page 17: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Anatomy - Programmatic Aspect

• Add-In Behavior coded using - Visual Studio / Eclipse wizards and templates - Base classes for each Add-In type - Full ArcObjects API + programming environment (.NET/Java)

public class SimpleButton : Button { protected override void OnClick() { MessageBox.Show("Hello World"); } }

Creating .NET Add-Ins for ArcGIS for Desktop

Page 18: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Anatomy - Classic (managed) COM Button comparison

Creating .NET Add-Ins for ArcGIS for Desktop

Page 19: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Entry Points for Customization

• Add-In Wizard creates static classes depending on your type of customization.

public class SimpleButton : Button { protected override void OnClick() { ArcMap.Application.Caption = "Hello"; ArcMap.Document.ActiveView.Refresh(); } }

Creating .NET Add-Ins for ArcGIS for Desktop

Page 20: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Authoring an Add-In Demo

Page 21: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Add-In File Discovery & Sharing

• Add-In files are automatically discovered in well known local folders and incorporated into the Desktop applications at runtime.

• Folders are per user and per ArcGIS version %UserProfile%\My Documents\ArcGIS\AddIns\Desktop10.2

Internet

Creating .NET Add-Ins for ArcGIS for Desktop

Page 22: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Add-In File Discovery & Sharing

• Administered network shares

• Simplifies Updates

Intranet

Creating .NET Add-Ins for ArcGIS for Desktop

Page 23: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Installation Utility

• Double-click “Install”

• Customize - Add From File

• XCOPY

Creating .NET Add-Ins for ArcGIS for Desktop

Page 24: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Add-In Versioning Policy

• Add-ins built for previous version will load automatically in newer versions - No need to rebuild or reinstall

• Backward compatibility within a major version

Creating .NET Add-Ins for ArcGIS for Desktop

Page 25: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Add-In Manager Dialog

• Shows detailed information on all installed Add-Ins

• Mine vs. Shared

• Deleting Add-Ins

Creating .NET Add-Ins for ArcGIS for Desktop

Page 26: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Sharing & Security

• Custom search folders

• Security Settings

Creating .NET Add-Ins for ArcGIS for Desktop

Page 27: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Additional Security Settings

• Admin Controls • Do not load any add-ins

• Load from administrator folders only

• Admin security level lock

Creating .NET Add-Ins for ArcGIS for Desktop

Page 28: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Digitally Signing Add-Ins

• IETF/WC3 XML-DSig standard (within OPC archive)

• Trust - Source Traceability - Tampering

• ESRISignAddin Utility

Creating .NET Add-Ins for ArcGIS for Desktop

Page 29: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Managing Add-Ins Demo

Page 30: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop .

Please fill out the session evaluation

First Offering ID: 1270 Second Offering ID: 1454

Online – www.esri.com/ucsessionsurveys Paper – pick up and put in drop box

Thank you…

Working with Temporal Data

Page 31: Creating .NET Add-ins for ArcGIS for Desktop · 2013-07-10 · Esri UC2013 . Technical Workshop . Technical Workshop . 2013 Esri International User Conference . July 8–12, 2013

Esri UC2013 . Technical Workshop . Creating .NET Add-Ins for ArcGIS for Desktop