Skip navigation
All Places > Developers > Native App Developers > ArcGIS Runtime SDK for .NET > Blog

We're hard at work getting an updated toolkit for the new Runtime SDK out.


Even though we have some ways to go, we wanted to share the progress with you all, and provide you with an opportunity to try things out, give us feedback, or simply just use what's there.


We have an active branch going on Github that you can download and use today.All the source code is there, and is really easy to build and use:


This includes a set of controls for WPF and UWP:

  • ChallengeHandler - (WPF only) Displays a UI dialog to enter or select credentials to use when accessing secure ArcGIS resources, as well as helper classes for storing credentials in Windows' credentials cache.
    • Compass - Shows a compass direction when the map is rotated. Auto-hides when the map points north up.
    • Legend - Displays a legend for a single layer in your map (and optionally for its sub layers).
    • ScaleLine - Displays current scale reference.
    • SymbolDisplay - Renders a symbol in a control.
    • TableOfContents (WPF)- Creates a tree-view of the entire map document. Optionally displays legend information for the layers as well.


    Please be aware that we might significantly refactor these controls, add more controls and helpers (or even remove some), so expect changes when you pull updated code from time to time. You can keep an eye on this Pull Request and monitor changes we're making.


    There's also a test app. It's not the prettiest (yet), and is mostly used to test the controls so far, but should help you get started. Further down the line we'll provide a proper sample app with documentation and various examples showcasing the use of these controls.


    What about Xamarin? It's on our roadmap, but we're first focusing on WPF, which in turn means we get UWP support almost for free.


    Feel free to comment below here to provide feedback etc.

    The ArcGIS Runtime .NET team is proud to announce that the Quartz betas of the ArcGIS Runtime SDKs for .NET and Xamarin are now available.


    The beta contains exciting new functionality not previously available in the 10.2.X releases, including: mobile map packages, vector tiled layers, and raster layers, plus full support for Windows 10 Universal Windows Platform (UWP) apps. Did I forget to say your awesome GIS C# code will also now run on Windows, AND Android, AND iOS?! Beta releases don't get more exciting than this!! Learn all about the Betas in the .NET release notes, Xamarin release notes and blog post. Download the Beta software from the Early Adopter Community site by signing in with your ArcGIS Online account or create a new beta account.


    We appreciate you taking the time to test our beta and look forward to hearing your feedback in the Early Adopter Community forum.




    The .NET team

    Lots of fixes and performance improvements, but most importantly: Support for 3D and KML!


    Full details here: ArcGIS Runtime SDK 10.2.6 for .NET is now available! | ArcGIS Blog





    We have uploaded demos that were shown in Developer Summit 2015 sessions to ArcGIS Online as a code samples.


    Please follow links below to the items for download.



    Also see related post about session recordings

    .NET Runtime - DevSummit 2015 Sessions

    The 2015 devsummit session recordings have started coming online.


    Below is a list of .NET Runtime related session recordings - More to come (I'll update the list as they do)


    .NET Specific sessions:

    Getting Started with the ArcGIS Runtime SDK for .NET | Esri Video

    The first steps to using the runtime in a .NET-based app and an overview


    ArcGIS Runtime SDK for .NET: Using MVVM | Esri Video

    Goes through rewriting an app to use good MVVM patterns


    ArcGIS Runtime SDK for .NET: Tips and Tricks | Esri Video

    The .NET Team's Top 10 tips - Lots of little good tidbits for you


    Preview of ArcGIS Runtime and Xamarin | Esri Video

    Get a sneak peak of the runtime for Xamarin


    Runtime sessions that apply to all the supported platforms

    Getting Started with the ArcGIS Runtime | Esri Video

    Intro about the runtimes in general


    ArcGIS Runtime SDKs: Building Offline Apps, Part I | Esri Video

    ArcGIS Runtime SDKs: Building Offline Apps, Part II | Esri Video

    Two-part series on going offline with the runtime


    ArcGIS Runtime SDKs: Core Display Architecture Performance Tips and Tricks | Esri Video

    Great low-level look at how the Runtime Rendering engine works and how you can optimize your rendering with this knowledge

    When using the MVVM style pattern to build your XAML-based app, you don't want to include references to your View objects from within your ViewModel. This means that the ViewModel won't be able to for instance call "Zoom" on the MapView, because this operation is on the MapView, and the ViewModel is not allowed to have a reference to anything on the View. You'll find similar common challenge with ScrollViewer, where you want to scroll to a certain item in a list, but again the scroll operation is on the view, since this is a view operation.


    The pattern to handle this is to create a controller your ViewModel owns, and you bind this to the view object, using an attached property. The ViewModel can then 'request' zoom operations on the controller, and if that controller is bound to a map view, it will handle executing the SetView call on the MapView.


    I've added an example of this to the WPF Desktop Sample App:

    arcgis-runtime-samples-dotnet/NavigateFromViewModel.xaml.cs at master · Esri/arcgis-runtime-samples-dotnet · GitHub

    arcgis-runtime-samples-dotnet/NavigateFromViewModel.xaml at master · Esri/arcgis-runtime-samples-dotnet · GitHub


    The attached property is shown here on line 1:


    <esri:MapView local:MapViewController.Controller="{Binding Controller}">
                    ServiceUri="" />


    The ViewModel class defines an instance of MapViewController, and exposes it in the property "Controller", which is what is being bound above.


    Inside the controller, code is triggered when it is bound to the MapView and will keep an internal weak reference* to the map view, so that it can perform the operation if it is bound. The Controller can also expose properties from the MapView back out, like in this example where the current 'Extent' property is available for use to add bookmarks. You could add more properties like the current Scale or Rotation, or add more commands to perform on the view.


    Using this pattern, the ViewModel never knows anything about the MapView, but is still able to perform zoom operations.


    This pattern works just as well with Windows Store and Windows Phone as well, and you can copy the MapViewController class over to use the as well.


    *We're using weak references to the MapView and it's events. It complicates the sample a little, but it ensure that if the ViewModel stays around for a long time, but you close the page/window that the MapView is on, the MapView control won't stay around in memory, but can be garbage collected.

    ArcGIS Runtime will support Xamarin in 2015!

    Read more here:


    We just published several demo apps on GitHub: Esri/arcgis-runtime-demos-dotnet · GitHub


    We'll be adding more demos over time, but currently these are the demos available today:

    • Geocode & Route on MouseMove - Demonstrates fast reverse geocoding and routing during mouse-move on Windows Store and Windows Desktop.
    • Turn-by-Turn Routing - A universal turn-by-turn app that shows routing and navigation on Windows Phone, Windows Store and Windows Desktop.
    • Simple Portal Browser - A universal ArcGIS Portal Map Browser app on Windows Phone, Windows Store and Windows Desktop.
    • Using an External GPS Device - A Windows Desktop app showing how to use data from an external GPS or NMEA log file to power the MapView's LocationDisplay.


    If you have suggestions for other demo apps, please feel free to share in this thread and we might be able to add them as well.