Esri International User Conference | San Diego, CA Technical Workshops | Writing and Deploying Your First Applications for ArcGIS Engine John Hauck and.

Slides:



Advertisements
Similar presentations
Publishing GIS Services to ArcGIS for Server
Advertisements

Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
Clark County & the Web Application Development Framework.
Intro to ArcGIS for New Users. ArcGIS Desktop Advanced GeoprocessingArcInfo ArcReader Data Access Map Viewing Query Advanced EditingArcEditor ArcView.
Technical Workshops | Esri International User Conference San Diego, California Building Applications with ArcGIS Runtime SDK for Windows Phone Rex Hansen.
Esri International User Conference | San Diego, CA Technical Workshops | What is a Web Application? Ben Ramseth July 13, 2011.
Technical Workshops | Esri International User Conference San Diego, California Customizing ArcPad solutions Marika Vertzonis, Gareth Walters, Stephen Quan.
Esri International User Conference | San Diego, CA Technical Workshops | Migrating Custom Desktop Solutions from 9.3 to 10 John Hauck and Ralf Gottschalk.
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS Viewer for Flex An Introduction Canserina Kurnia and Derek Law July 12,
Esri International User Conference | San Diego, CA Demo Theater | Using Spatial Data in ArcGIS with Query Layers Brent Pierce Thursday, July 14 th.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California ArcGIS Explorer Desktop.
Esri UC 2014 | Technical Workshop | Developing Qt Apps with the Runtime SDK Thomas Dunn and Michael Tims.
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS for SharePoint, An Introduction Art Haddad Rich Zwaap.
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS Runtime Euan Cameron Mary Harvey Ralf Gottschalk Road Ahead.
Introduction to ArcGIS Add-Ins Exercises GIS/LIS Conference, 2014 Rochester, MN.
Esri International User Conference | San Diego, CA Technical Workshops | Managing and Editing Annotation Natalie Vines Samantha Keehan July 14, 2011.
Technical Workshops | Esri International User Conference San Diego, California Building Applications with the ArcGIS Runtime SDK for WPF Euan Cameron &
Esri International User Conference | San Diego, CA Technical Workshops | ArcGIS for Server Road Ahead Ismael Chivite, Anne Reuland.
Sharing imagery and raster data in ArcGIS
Sharing Geographic Content
Editing With ArcGIS Pro
ArcGIS Workflow Manager An Introduction
Technical Workshops | Esri International User Conference San Diego, California ArcMap: Tips and Tricks Miriam Schmidts Jorge Ruiz-Valdepena July 23 – 27,
Copyright © 2014, 2015 William R. Vaughn All rights reserved William R. Vaughn.
Sep , 2006 v FME Worldwide User Conference - Vancouver What’s New in ArcGIS Data Interoperability Extension Kim Avery, ESRI, California, USA, and.
Introduction to ArcGIS API for JavaScript
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Creating.NET Add-ins.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Esri International User Conference | San Diego, CA Technical Workshops | Windows Phone – Developing Applications Kylie Donia and Eager Ip July 13, 2011.
Introduction to Spatial Analysis and Spatial Modeling
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Extending ArcGIS for Server
9. Introduction to ArcObjects Most GIS analysis carried out within a GIS consists of a labor- intensive sequence of steps. Automating a GIS makes it possible.
Enabling High-Quality Printing in Web Applications
Portal for ArcGIS An Introduction
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Developing.NET Applications.
Preparing and Deploying Data to ArcPad Juan Luera.
Understanding our world.. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Editing Versioned Geodatabases.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
ArcGIS Server for Administrators
Esri UC 2014 | Demo Theater | Using ArcPad in the Field Juan Luera.
Office Business Applications Workshop Defining Business Process and Workflows.
Esri UC 2014 | Technical Workshop | Editing Versioned Geodatabases : An Introduction Cheryl Cleghorn and Shawn Thorne.
Esri UC 2014 | Technical Workshop | Developing Offline Apps with ArcGIS Runtime SDKs Euan Cameron Justin Colville Will Crick.
Extend the Operations Dashboard with Custom Widgets (and more)
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Sharing Workflows with.
Working with Feature Services Gary MacDougall Russell Brennan.
Getting the most out of ArcMap Jack Horton & Jorge Ruiz-Valdepeña.
Esri UC 2014 | Technical Workshop | Creating Geoprocessing Services Kevin Hibma.
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Customizing the Operations.
Extending the Operations Dashboard
Esri UC2013. Technical Workshop. Technical Workshop 2013 Esri International User Conference July 8–12, 2013 | San Diego, California Migrating Parcel data.
Connect with life Vedant Kulshreshtha Technology Solutions Professional – SharePoint | Microsoft India
Developing Cross Platform Apps with the ArcGIS Runtime SDK for Qt
Publishing GIS Services to ArcGIS Server
Esri UC 2014 | Technical Workshop | ArcGIS API for JavaScript: An Introduction Kelly Hutchins Derek Swingley.
Python: Building Geoprocessing Tools David Wynne, Ghislain Prince.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Sharing Maps and Layers to Portal for ArcGIS Melanie Summers, Tom Shippee, Ty Fitzpatrick.
ArcGIS for Server Security: Advanced
Introduction to ArcGIS API for Microsoft Silverlight
Introduction to ArcGIS Add-Ins
Geoprocessing with ArcGIS for Server
Editing Tips and Tricks
Automating and Validating Edits
Introduction to Portal for ArcGIS
ArcGIS Pro: An Introduction Overview
Presentation transcript:

Esri International User Conference | San Diego, CA Technical Workshops | Writing and Deploying Your First Applications for ArcGIS Engine John Hauck and Ralf Gottschalk July 11 th 2011

Agenda Introduction to Engine - Controls - SDK and Requirements Runtime Binding and Licensing Working with Packages Adding Functionality to Engine - Custom Components - Using Geoprocessing in Engine - GraphicTracker ArcGIS Runtime

What is ArcGIS Engine?

Product used to build custom standalone GIS solutions - ArcObjects and ArcGIS Engine Controls Leverage the power of ArcGIS Desktop and Server - Use Desktop to author content - Consume Maps, Models, Geodatabases, Basemap Layers, Layer Packages, Query Layers, Services, and more…

What is ArcGIS Engine? Engine Controls - Components that can be added to windows forms - Add mapping and supporting GIS functionality to your custom application - 8 Controls - Over 200 built in commands - Editing, Add Data, Open Document, Select, Find, and more…

What is needed to Develop.NET Engine Applications? Visual Studio 2008 sp 1 Visual Studio 2010 VS Express 2008.NET Framework sp 1 ArcGIS Requirements - ArcGIS Engine Runtime - ArcObjects.NET SDK - ArcGIS Engine Developer Kit License

ArcGIS Engine Resources Visual Studio 2008 / 2010 IDE Integration - Tools to make development easier and faster ArcObjects.NET SDK - Walkthroughs, samples, code snippets, Object Model Diagrams, API reference ArcGIS Desktop Help - GIS and data concepts Resource Centers, Blogs, and Forums Support Center - Technical Articles, white papers, downloads

ArcGIS Engine Controls and SDK Tools

Runtime Binding and Licensing

Runtime Binding At ArcGIS 10 each product has it’s own runtime - Products have separate install locations - Service pack products separately - Uninstall service packs ArcObjects must be pointed to a runtime to work - Before any other ArcObjects calls - Required for all standalone applications - Engine applications can bind to either Desktop or Engine Runtimes What is Runtime Binding?

Runtime Binding Bind using the RuntimeManager static class Add reference to: ESRI.ArcGIS.Version How to bind to a runtime

Runtime Binding Add the following code, before any other ArcObjects calls: Preferably in the main method or in the application events Tip: - The Assembly is called ESRI.ArcGIS.Version - The Namespace is ESRI.ArcGIS - Bind method returns a Boolean that you can use to handle binding errors ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine); How to bind to a runtime

Runtime Binding RuntimeManager.BindLicense - Bind and License with one method RuntimeCollection - Identify Installed Runtimes RuntimeInfo - Identify the Path, Product, & Version ActiveRuntime - Currently bound runtime ESRI.ArcGIS.Version Additional Functionality and Uses

Licensing Engine applications must check out a license at runtime - Either Desktop or Engine License - Product Licenses are checked out for the life of the application - Extensions can be checked out and returned as needed At ArcGIS 10 Engine concurrent Engine licenses are available Licensing is not the same as binding - Binding specifies the runtime - Licensing specifies the product functionality

Licensing ArcInfo Engine ArcView Geodatabase Update Geodatabase Update ArcEditor Single UseConcurrent

Binding and Licensing

Binding and Deployment ArcGIS Engine is not required on the target machine - Engine applications work with either a Desktop or Engine Runtime Can mix and match Licensing and runtimes for flexible Engine applications - Leverage existing Desktop runtime and licenses on client’s machine

Additional Tips

64 Bit Support ArcGIS Engine is a 32 bit application - Run as a 32 bit applications on a 64 Bit OS - Set platform to x86 in Visual Studio Configuration Manager - Default is “Any CPU” At Version 10 ArcGIS applications are Large Address Aware - On 64 Bit OS 32 bit processes can take up to 4 gigabytes of RAM if available When compiling VS 2010 applications on a x64 machine - Follow KB

UAC and Engine Applications User Account Control (UAC) on Windows - UAC restricts access certain parts of the system - Program Files directory - Parts of the registry Can be changed in the application Manifest - Enables application to be run as an administrator

Disabling Windows Aero Themes Esri recommends disabling Windows Aero themes in Engine Applications KB Use P/Invoke - Load the Desktop Windows library if it exists - Remember XP does not support Aero - Disable Aero for the life of the application

Authoring Content for Engine

Working with Packages Packages are a single file that contains a map or layer[s] and supporting data - Also can contain references to SDE data Easy to share - Single file ArcGIS 10 supports - Layer Packages (.lpk) - Map Packages (.mpk) What are packages?

Working with Packages At Engine 10 sp 1 - Programmatically consume packages IMapDocument.Open - Map Packages - Layer Packages - Web Maps ILayerFile.Open - Layer Packages Just point to the path of the package Using Packages in Engine

Working with Packages Opening Layer Packages Opening Map Packages Using Packages in Engine

Working with Packages Consume data on ArcGIS Online - Pass in a URL with the id as the filename URL to ArcGIS Online Data - Point to the item.pkinfo file online Using Online Content

Working with Packages

Provides a mechanism to easily deploy maps and data with your Engine solution - Simple deployment single file - Easy to update data off cycle Data can be uploaded to ArcGIS Online - Once a packages is downloaded it can be used locally - Use ArcGIS Online groups to manage access to data Why use Packages in Engine?

Adding Functionality to Engine

Leverage the existing commands and tools included in the Engine SDK - On a Toolbar Control - Programmatically Build your own components - Such as Commands, Tools, Extensions, Custom Layers, etc… - Specific to your Engine application - Generic for all Engine applications - Work in both Engine and Desktop applications

Adding Functionality to Engine

Using Geoprocessing in Engine Why use geoprocessing in Engine? - Why reinvent the wheel? - ArcGIS comes with hundreds of Geoprocessing tools - Developed by specialists in their field Provides a framework to author Model and Script tools in ArcGIS Desktop - Consume these tools in Engine

Using Geoprocessing in Engine Running system tools Imports ESRI.ArcGIS.Geoprocessor ‘System Toolboxes have their own Assembly Imports ESRI.ArcGIS.AnalysisTools Dim gp As Geoprocessor = New Geoprocessor ‘Create the clip tool Dim clipTool As Clip = New Clip clipTool.in_features = “C:\Data\Test.gdb\InFeatures” clipTool.clip_features = “C:\Data\Test.gdb\ClipFeatures” clipTool.out_feature_class = “C:\Data\Test.gdb\ResultFeatures” ‘Execute the Tool gp.Execute(clipTool, Nothing) Imports ESRI.ArcGIS.Geoprocessor ‘System Toolboxes have their own Assembly Imports ESRI.ArcGIS.AnalysisTools Dim gp As Geoprocessor = New Geoprocessor ‘Create the clip tool Dim clipTool As Clip = New Clip clipTool.in_features = “C:\Data\Test.gdb\InFeatures” clipTool.clip_features = “C:\Data\Test.gdb\ClipFeatures” clipTool.out_feature_class = “C:\Data\Test.gdb\ResultFeatures” ‘Execute the Tool gp.Execute(clipTool, Nothing)

Using Geoprocessing in Engine Running custom tools Imports ESRI.ArcGIS.Geoprocessor Dim gp As Geoprocessor = New Geoprocessor ‘Add the toolbox gp.AddToolbox(“C:\Data\MyToolbox.tbx”) ‘Populate the paramenters Dim parameters As IVariantArray = New VarArray parameters.Add(“C:\Data\Test.gdb\InFeatures”) parameters.Add(“C:\Data\Test.gdb\ProcessFeatures”) parameters.Add(“C:\Data\Test.gdb\ResultsFeatures”) ‘Execute the Tool gp.Execute(“MyTool”, parameters, Nothing) Imports ESRI.ArcGIS.Geoprocessor Dim gp As Geoprocessor = New Geoprocessor ‘Add the toolbox gp.AddToolbox(“C:\Data\MyToolbox.tbx”) ‘Populate the paramenters Dim parameters As IVariantArray = New VarArray parameters.Add(“C:\Data\Test.gdb\InFeatures”) parameters.Add(“C:\Data\Test.gdb\ProcessFeatures”) parameters.Add(“C:\Data\Test.gdb\ResultsFeatures”) ‘Execute the Tool gp.Execute(“MyTool”, parameters, Nothing)

Background Geoprocessing Framework to allow Geoprocessing tools to execute in a separate processes - Great alternative to multi-threaded application Allows User Interface to remain responsive while processing What is Background Geoprocessing

Background Geoprocessing Execute tool using ExecuteAsync method on the Geoprocessor object Wire in the events - ToolExecuted - Must handle to know when tools completes - ProgressChanged - MessagesCreated - ToolExecuting Run system tools, models, and script tools. What is Background Geoprocessing

Using Geoprocessing in Engine

Geoprocessing Tips: - Set OverwriteOutput = True - Tools require different license levels or extensions - Desktop help is your friend - Provides extensive documentation on how to run and interpret the results of geoprocessing tools - Understand GP Messaging - Learn about the Result Object Tips for working with the Geoprocessor

GraphicTracker

Simple API - Add, remove, update, and move graphics - Pass in a geometry and symbol - Works with Points, Lines, and Polygons Same API for Map, Globe, and Dynamic Display - GraphicTracker manages the display All objects passed in ByValue - Objects managed by the GraphicTracker What is the GraphicTracker?

GraphicTracker Pause with IGraphicTracker.SuspendUpdate - For adding groups of items IGraphicTracker.Add method returns an integer to reference the graphic - Store this integer into a table for easy reference to use later - GraphicTracker Ids may not be sequential Use multiple GraphicTrackers - Separate GraphicTrackers for points, lines, and polygons Tips when using the GraphicTracker

GraphicTracker Demo

GraphicTracker How many graphics does the GraphicTracker support? - Number of graphics - Complexity of the graphics and symbols - Complexity of your map - Update interval for moving graphics - Using labels VS. Performance Considerations

ArcGIS Runtime

ArcGIS Runtime for Windows and Linux New at 10.1 – Lightweight GIS Developer Solution XCopy deployable Program against it using WPF, Java, and C++ Qt APIs Not a replacement for Engine - Maybe be an option depending on your workflow - Certain workflows still will only be possible in Engine

ArcGIS Runtime, how does it relate to Engine? ArcReader ArcGIS Runtime ArcGIS Desktop ArcGIS Explorer ArcGIS Engine

Questions? Please don’t forget to fill out online surveys