Skip To Content

What's new in 3.2

This topic provides an introduction to the updates and enhancements in version 3.2 (including breaking changes), a complete list of changes between 3.2 and the previously released ArcGIS API for Silverlight version 3.1, and issues resolved between the 3.1 release and the 3.2 release.

For changes in the previous version, see What's new in 3.1.

Updates and enhancements

  • In version 3.2 of the ArcGIS API for Silverlight product, the assembly version is 10.2.1.0 (Build 431). To maintain parity with other ArcGIS Web APIs (Flex and JavaScript), the product retained a 3.x version. Note, the ArcGIS API for Silverlight shares logic with version 10.2 of the ArcGIS Runtime SDK 10.2 for WPF.
  • Project templates, controls, and assembly references are now integrated with Visual Studio 2013 and Visual Studio Express 2013 for Web. The templates require the latest Blend SDK for Silverlight, which is only included with Visual Studio 2012 for Blend or Visual Studio 2013 for Blend.
  • Support for asynchronous Tasks across the API simplifying the code you need to write to build and maintain responsive applications. In general, class methods that support the new async\await pattern include the term "Task" in the method name, such as QueryTask.ExecuteTaskAsync or ArcGISPortal.SearchItemsTaskAsync. This functionality requires installing the "Async for .NET Framework 4, Silverlight 4 and 5, and Windows Phone 7.5 and 8" NuGet package. The NuGet package requires Visual Studio 2012 at a minimum and will not work with Visual Studio 2010. For more information see the NuGet project page.

    In the example below, a Locator task is used to geocode the location of two addresses and a Route task is used to calculate the route between them. Declarations of some variables are not listed to maintain brevity of the code sample and highlight the simplified programming experience of the task based asynchronous pattern (TAP). In general, a developer benefits from a more logical presentation and execution of code, while the underlying framework is responsible for handling asynchronous calls. For more information, see Asynchronous Programming with Async and Await.

    private async void GetDirections()
    {
        try
        {
            AddressToLocationsParameters fromAddress = new AddressToLocationsParameters();                
            fromAddress.Address.Add("SingleLine", "5454 Wilshire Blvd");
    
            AddressToLocationsResult fromResult = 
                await _locator.AddressToLocationsTaskAsync(fromAddress, _ctsGeocode.Token);
    
            AddressToLocationsParameters toAddress = new AddressToLocationsParameters();
            toAddress.Address.Add("SingleLine", "12305 Fifth Helena Drive");
    
            AddressToLocationsResult toResult = 
                await _locator.AddressToLocationsTaskAsync(toAddress, _ctsGeocode.Token);
    
            SolveRouteResult routeResult = await _routeTask.SolveTaskAsync(_routeParams, _ctsRoute.Token);
                    
            DirectionsFeatureSet _directionsFeatureSet = routeResult.RouteResults[0].Directions;
    
        } catch (Exception ex) { }
    }

  • TaskBase.CustomParameters property can be used to set custom parameter names and values to be included in web requests initiated by a task.
  • Use the Locator.GetServiceInfoTaskAsync method to retrieve service information from a geocode service.
  • New languages: Latvian, Estonian, and Finnish.

Map, layer, and symbology enhancements

  • A new WebTiledLayer is available to support using third-party tiled or cached map services such as those hosted by MapQuest, MapBox, and OpenStreetMap in a map. Be sure to consider terms and conditions before using third-party map services.
    <esri:Map>
        <esri:WebTiledLayer 
    	TemplateUrl="http://{subDomain}.tiles.mapbox.com/v3/examples.map-vyofok3q/{level}/{col}/{row}.png"
    	SubDomains="a,b,c,d" />
    </esri:Map>

  • Angle and AngleAlignment properties are now available on all marker symbols.
  • Support has been added to renderers for rotation of symbols based on an attribute. This involves two properties, the RotationExpression which represents an attribute field enclosed in square brackets and RotationType which represents a value in the SymbolRotationType enumeration, either Geographic or Arithmetic.
    <esri:SimpleRenderer x:Key="RotationDefinedSymbolRenderer" 
          RotationExpression="[WINDDIR]" RotationType="Geographic">

  • New ArcGISDynamicMapServiceLayer.TimeInfo property provides access to the time properties of dynamic map services, such as time extent, units, interval and whether the service has live data.
  • Ability to define how labels are displayed within dynamic map service layers via the LabelClass and LabelOptions classes.
  • Support for the new image service features in ArcGIS for Server 10.2. For more information see: What's new in the ArcGIS REST API.
  • Requests to ArcGIS map services will include the map rotation allowing for server-side rotation of labels within the returned map image.
  • TextSymbol class now exposes properties for FontWeight, FontStyle and TextDecorations.
  • GetDetails and GetAllDetails on ArcGISDynamicMapServiceLayer supports rendering changes defined via the DynamicLayers capability (DynamicLayerInfos and LayerDrawingOptions).
  • Support for returning features in Action Message Format (AMF) when submitting queries to ArcGIS for Server. This is set via the PreferredQueryResponseFormat property on feature layers. AMF represents a binary serialization of the JSON response from the server and therefore improves performance by minimizing the transport overhead and processing time.

ArcGIS Online, Portal for ArcGIS and security enhancements

  • A WebMapViewModel has been created to facilitate working with web maps.
                ArcGISPortal portal = new ArcGISPortal() { Url = "http://www.arcgis.com/sharing/rest" };
    ArcGISPortalItem portalItem = new ArcGISPortalItem(portal) { Id = "00e5e70929e14055ab686df16c842ec1" };
    WebMap webMap = await WebMap.FromPortalItemTaskAsync(portalItem);
    
    if (webMap != null)
    {
      var myWebMapViewModel = await WebMapViewModel.LoadAsync(webMap, portal);
      MyMap.Extent = myWebMapViewModel.InitialExtent;
      MyMap.Layers = myWebMapViewModel.Layers;
    }

  • Support for adding/removing/updating portal items, sharing/unsharing portal items, and adding/removing/updating comments and ratings on portal items.
  • Get the layer definition, refresh interval, and show legend properties for layers in a web map.
  • Create a WebMapLayer from a service item using WebMapLayer.FromPortalItemTaskAsync.
  • Support for OAuth2 authentication workflows.

Breaking changes

  • DynamicMapServiceLayer method declarations for GetSource and GetUrl changed to support rotation of dynamic map services.
  • AddressCandidate.Score property type changed from an int to double.

Complete list of changes

For a complete list of changes in the API between versions 3.1 and 3.2, see the following assembly comparisons:

Resolved Issues

The following issues are resolved with the 3.2 release:

  • NIM086411: Custom style for FeatureDataGrid column headers are ignored for custom columns.
  • NIM087259: Feature templates are not created if any renderer other than a SimpleRenderer is defined in the feature service.
  • NIM088742: Locator.AddressesToLocationsAsync method fails to parse JSON that contains score values as type float.
  • NIM089116: SnapToEdgeEnabled does not start snapping until the first point is placed.
  • NIM089165: UniqueValueMultipleFieldsRenderer fails to assign the correct symbol if Infos contain an empty string as one of expected values.
  • NIM089769: Dynamic Map Layer will not refresh when you pan the map using keyboard input if the Panduration property of map is set to "00:00:00".
  • NIM089913: Gesture.Hold is never raised on MapGesture event.
  • NIM089959: NullReferenceException is thrown after an ArcGISTiledMapServiceLayer has initialized and an attempt is made to immediately modify the Url property.
  • NIM090924: PrintTask: When serializing a FeatureLayer from FeatureCollection some field information is omitted which results in a service error.
  • NIM091002: TextSymbol: Add support for FontWeight, FontStyle, and TextDecorations. And allow retrieving TextSymbol using Symbol.FromJson().
  • NIM092004: Using a FeatureDataGrid, when attempting to 'Move Previous” with no feature selected, an unhandled exception is thrown.
  • NIM092582: FeatureLayer: Multiple edits on an editor-tracking enabled service are alternately ignored.
  • NIM092786: Selection box is drawn at wrong location when using stylus or finger.
  • NIM093236: When calling Map.Layers.Clear() with a layer collection which includes one or more GraphicsLayers rendered by the accelerated display, the following error occurs: "Exception has been thrown by the target of the invocation".
  • NIM093463: FeatureLayer.HasEdits property returns false after a second edit to the same feature.
  • NIM093707: Adding and removing graphics with a collection of edits gives unexpected output.
  • NIM095196: Out of range exception thrown when MeasureAction is active while rapidly clicking on the map.