Esri International User Conference | San Diego, CA
Technical Workshops |
ArcGIS API for Microsoft
Silverlight/WPFAn Introduction
Morten Nielsen
Rex Hansen
July 13-14, 2011
Agenda
Silverlight platform
API Overview
- Getting Started
Building Apps
- Configurable Viewer
Road Ahead
ArcGIS 10 A Complete System
Easier
More Powerful
and Everywhere
Cloud
Enterprise
Local
Discover
Create
Manage
Visualize
Analyze
Collaborate
Mobile
Desktop
Web
Microsofts Silverlight Platform
Premier Web and Mobile platform
Backed by Microsoft and Esri
Silverlight 5+
Support on future systems
ArcGIS API for Silverlight
Powerful Web Mapping API
Use ArcGIS Server/Online, Bing Maps & other data
services
Integrates with Microsoft development environments
Common, rich development experience
Requirements
Tooling
- Microsoft Visual Studio 2010
- Silverlight 4 Tools for Visual Studio 2010 -or- SP1
- Expression Blend 4
Platforms
- Silverlight 4
Libraries
ESRI.ArcGIS.Client.dll
- Map, ArcGIS Layers, Graphics, Geometry, Symbols
ESRI.ArcGIS.Client.WebMap.dll
ESRI.ArcGIS.Client.Bing.dll
ESRI.ArcGIS.Client.Behaviors.dll
ESRI.ArcGIS.Client.Toolkit.dll*
- Common set of controls for map interaction
ESRI.ArcGIS.Client.Toolkit.DataSources.dll*
- Common set of data sources
* CodePlex URL: http://esrisilverlight.codeplex.com
API Highlights
WebMap Documents
Read, process, utilize WebMap documents
- Created and hosted on ArcGIS Online, ArcGIS Portal
Wrap Around
Continuous pan East to West
Works with:
- Dynamic Maps
- Features
- Editing
Supported in
- WGS84, Web Mercator
InfoWindow control
Available in Toolkit
Similar, but different than MapTip
- Can be displayed any time
- Show on map action
- Can remain visible after interaction
- Anchored to a position relative to the map
Support for Touch and Gestures
- Map Navigation, Draw support
Touch/Gestures
Graphics and Editing
Edit and draw magnifier
- Interactive editing experience to support
touch devices
New arrow, circle, ellipse, triangle types
Rotate, scale, move geometry
Legend Control
Available in Toolkit library
Legend is Templatable
- Controls can be added to layer items
- Radio buttons,check boxes, etc
Symbol swatches for Feature Layers
and ArcGIS Dynamic Map Service
Layers can be retrieved and displayed
ScaleLine and Attribution controls
Attribution automatically shows copyright text from
all visible layer services
Fully style-able
IDE Integration
Design-time support
- Expression Blend 4 and Visual Studio 2010
Application templates
Building Apps
XAML and Code Behind
UserControl has container class to layout elements
xmlns declarations using statement in C# and Imports in VB.NET
<UserControl x:Class="MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="LayoutRoot">
</Grid>
</UserControl>
Layout containers in XAML
Container classes or layout controls group and
position controls
Core container classes
- Grid: grid format with rows and columns
- StackPanel: stacked horizontally or vertically
- Canvas: absolute x,y positioning
Microsoft Silverlight Toolkit container classes
- WrapPanel: fill out available space horizontally and then
wrap around
- DockPanel: dock left, right, top, bottom or center
XAML : Creating a Map 101
<UserControl x:Class="ArcGISSilverlightSDK.Map"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:esri="http://schemas.esri.com/arcgis/client/2009">
<Grid x:Name="LayoutRoot" >
<esri:Map x:Name="MyMap">
<esri:ArcGISTiledMapServiceLayer ID="MyLayer"
Url="http://domain/.../MapServer" />
</esri:Map>
</Grid>
</UserControl>
C#:
using ESRI.ArcGIS.Client;
VB.NET:
Imports ESRI.ArcGIS.Client
C#:
Map MyMap =new MyMap();
LayoutRoot.Children.Add(MyMap);
VB.NET:
Dim MyMapAs MyMap =New MyMap()
LayoutRoot.Children.Add(MyMap)
C#:
ArcGISTiledMapServiceLayer layer =
new ArcGISTiledMapServiceLayer();
layer.ID =MyLayer;
layer.Url =http://domain/.../MapServer;
MyMap.Layers.Add(layer);
VB.NET:
Dim layer As ArcGISTiledMapServiceLayer =
New ArcGISTiledMapServiceLayer()
layer.ID =MyLayer
layer.Url =http://domain/.../MapServer
MyMap.Layers.Add(layer)
Getting Started
Demos
A simple application
Resource Center
Interactive SDK
Documentation
Samples
CodePlex
Silverlight Viewer
Configurable ready-to-deploy Web client
- Built with ArcGIS API for Silverlight
Easily and quickly create Web mapping applications
- Complete set of core GIS tools and functionality
No programming required
- Ideal for novice Web application creators
Extend with Add-Ins
- Tools, Behaviors, Layouts, Layers, Controls
Status
V 2.2 - released June 2011
- ArcGIS API for Silverlight
- ArcGIS API for WPF
- ArcGIS API for Windows Phone
V 3.0 beta - Q3
- WPF part of 10.1 ArcGIS Runtime SDK for WPF
V 2.3 early Q4
More Silverlight sessions!
Advanced Silverlight
- Wed 1:30 PM - 2:45 PM Room 8
- Thu 3:15 PM - 4:30 PM Room 32 B
Silverlight Viewer - Intro
- Tue 3:15 PM - 4:30 PM Room 5 A/B
- Thu 1:30 PM - 2:45 PM Room 5 A/B
Silverlight Viewer - Add-Ins
- Wed 11:00 AM 12:30 PM Exhibit Hall C (Web Demo
Theater)
- Wed 4:00 PM 4:45 PM Exhibit Hall C (Web Demo
Theater)
More Silverlight sessions!
Road Ahead - Silverlight
- Wed 3:15 PM 3:35 PM
Room 6 A
Road Ahead WPF
- Wed 12:00 PM 1:00 PM
Exhibit Hall C (Desktop Developer Demo Theater)
Please fill out your session surveys
www.esri.com/sessionevals