I am new to ArcGIS and the sdk, and I am trying to figure out some of the basic principles. In the Runtime SDK for .Net I am presented with the concept of the “Local Server”. I need to use this in order to perform some operations, like importing an image or a shapefile. I do not understand this – what is the benefit of creating a server, that can only be accessed locally?
It is my understanding that ArcGIS Runtime is based on a client-server architecture, in which your application is the client and the GIS data and functionality are provided by one or more servers. The main benefit I've seen using Local Server is that it allows me to interact with my data in the same manner regardless of where the data is hosted (i.e. Local, Enterprise, or Online).
Have you been having trouble using the Local Server for your workflows?
The LocalServer gave us a powerful way to enable a lot of functionality in the early days of the ArcGIS Runtime APIs, which started off life as services-based APIs. The LocalServer was used by the WPF and Java and more recently by the .NET and Qt APIs as well. Over the last few years we've been extending the native functionality of the ArcGIS Runtime core to provide capabilities such as direct read of data, geocoding, routing, 3D, etc. These are core ArcGIS Runtime functions which supersede functionality previously provided by the LocalServer.
The best way to think about the LocalServer is really as a local geoprocessing server, where it can run scripts and models containing any of hundreds of ArcGIS geoprocessing tools to provide analytical capabilities ranging from the simple to the advanced. For the current list of supported tools see Local Server geoprocessing tools support—ArcGIS Runtime SDK for .NET | ArcGIS for Developers and if you have any more requests for tools please let us know and we'll try our best to include them!
Everything related to the LocalServer is contained within the LocalServices namespace which should make it clear what functionality relates to the LocalServer and what is part of the core ArcGIS Runtime API.
I hope that helps clarify the architecture.