Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have a server object extension (SOE) that returns a list of legend items based on symbols that fall within a specified extent. This allows the client to update a legend to reflect on the symbols that fall within the map extent.

To do this requires access to renderers. This is simple with with mxd based mapservices, however Msd based mapservices don't support access to renderers. As a workaround I'm using IMapDocument to open the mxd and keep a reference to the layout as a member variable.

Is this safe?

Support for mxd mapservices will be deprecated at 10.1, so I really need to figure this out.

Update

This video from the Dev Summit doesn't explicitly address this question. However, given how the printing gp service uses mxd files, this implies mxd access is safe. If it isn't, I suppose I could re-deploy my SOE as a gp service.

Update2

Here's a related question on CodeReview.Stackexchange.

share|improve this question
    
Are there now after the DevSummit more informations about using fine-grained objects in SOE10.1? Specially using the ILayer and IPageLayout objects? –  tomlux Mar 13 '11 at 13:59
    
Is that right that local DCOM connections (and creating a server context) will not be possible at all at 10.1? –  Petr Krebs Mar 22 '11 at 17:50
    
@petr k, that's the way I read it. –  Kirk Kuykendall Mar 22 '11 at 17:54
    
here you can see news blogs.esri.com/Dev/blogs/arcgisserver/archive/2011/04/26/… –  usergis Apr 27 '11 at 10:51
add comment

4 Answers

This is a great question. I've been, like many of us, using fine grained ArcObjects on the server to perform some of the more advanced tasks which cannot be done through the coarse-grained API.

Here's my two cents. The deprecation plans for ArcGIS 10.1 (I am sure you've seen the What are the deprecation plans for ArcGIS 10 and the upcoming release of ArcGIS 10.1 post, also do check out the comments under the post) are truly worrying. The way ESRI is trying to to go in the long run is quite clear - use the coarse grained APIs, use symbolization features available in the various web APIs (Silverlight, Flex etc.) and leverage geoprocessing on the server. In the light of this information, I am personally trying to turn away from fine-grained ArcObjects API as much as possible. This is of course not possible for many existing applications, which access individual layers, renderers (including custom layers and renderers), layout etc. heavily and in which a significant investment has been made.

So in short, no, I do not think accessing MXD-specific features on the server is safe in terms of future ArcGIS development.

share|improve this answer
1  
thanks for adding the link. Another thing not clear in the doc is support for non-pooled services. Do they mean that support will end only for webadf non-pooled services, or for all non-pooled services? I'm using a non-pooled GP service for pdf exporting. Somewhere in arcobjects there's a memory leak. The easiest workaround is to make it non-pooled. Esri says pooled services scale better. In my case the opposite is true. –  Kirk Kuykendall Jan 27 '11 at 14:22
    
@kirk Non-pooled services are going away completely at 10.1 –  Philip Mar 23 '11 at 16:17
add comment

An Esri rep declined to post an answer here, but was kind enough to reply to me by email.

ArcGIS 10.1 will provide easier programmatic access to the renderers in a map underneath a map service, so you’ll be able to have an easier solution down the road. I believe there is a “road ahead” session at the Dev Summit that may show this, or you could ask the presenters about it at that time. For your 10.0 app, there’s probably no immediate need to change what you are doing if it is working for you.

share|improve this answer
    
I recommend attending that session. You can also find me or one of the other map service team members at the island for a detailed discussion. –  Craig Williams Feb 19 '11 at 7:05
add comment

If you open msd (xml zipped) you can see what information you have available...

For now I use same your technique I get mxd in same directory of msd for info not available in msd

share|improve this answer
    
Thanks nicogis, I hadn't realized msd's are zipped xml files. –  Kirk Kuykendall Feb 18 '11 at 14:07
add comment

Are there now after the DevSummit2011 more informations about using fine-grained objects in SOE10.1? Specially using the ILayer and IPageLayout objects?

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.