building applications with the arcgis runtime sdks for wpf and … · 2014-06-04 · what is the...
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 => [email protected] => [email protected]
Forums.arcgis.comIdeas.arcgis.com