Use existing symbology in Runtime Application

06-06-2016 01:08 PM
Occasional Contributor

I have many ArcMap Layer Files (.lyr files) that I would like to use in a ArcGIS Runtime SDK .Net Desktop application.  The Layer Files reference data in an ArcGIS Enterprise Geodatabase (SDE).  Layer Files are not directly supported by Runtime applications.

My original idea was to use create Map Packages from the Layer Files, that reference the geodatabase data.  However, I quickly found out that this is using a LocalServer and thus requires additional Standard Licensing. I wish to keep my application at the Basic Licensing level. The application will only run on the internal network on Windows PC’s. No offline access is needed.

How can I use this existing symbology in an ArcGIS Runtime SDE .Net Desktop application ( or Quartz release)? 

0 Kudos
2 Replies
Esri Frequent Contributor


If your data is in an Enterprise Geodatabase and your client apps are connected the best approach is to publish feature services from your maps and consume those in the ArcGIS Runtime as ServiceFeatureTables and FeatureLayers. If your apps do need to go disconnected

See About publishing services—Documentation | ArcGIS for Server and What is a feature service?—Documentation | ArcGIS for Server for more information.



0 Kudos
Occasional Contributor

Yes, I see how that would work, however I do not see that as an optimal solution for a desktop application.

By publishing the layers to ArcGIS for Server, I'm offloading all the rendering to the server. Instead of the individual PC's being responsible for reading the data and rending the map, ArcGIS Server has to do all this. I'm wasting the processing power of the PC and requiring the server to do all the work.  I'll need a beefier server just to handle the rendering, when the PC is only being reduced to a "browser" displaying dynamically rendered tiles. 

This is desired when building a web application, but it is not optimal for a desktop application. It seems like a major shortcoming for the desktop runtime api that it cannot utilize the symbology created in desktop products.

It seems like my only options with Runtime is to:

  1. Use LocalServer to display Map Packages created from MXD's using my .lyr files.  Downside: Requires additional licensing
  2. Use Feature Layers to display feature services published on AGS from MXD/SD using my .lyr files. Downside: Requires a production-level ArcGIS Server.
  3. Use Runtime Symbology to display layers. Downside: Requires recreation and hardcoding of existing symbology.

How exactly is the unified symbology model being handled in the Quartz release? I've looked through the beta version documentation, but nothing was jumping out at me. Does this change my options?

0 Kudos