Day 2 Programming And Design Patterns For The ArcGIS Mobile SDK At The ESRI Developer Summit 2008

It was good to see ESRI talking about and placing quite a bit of focus on ArcGIS Mobile. Since it’s introduction ArcGIS Mobile has evolved into a powerful product with a great SDK. At version 9.3 a new out of box, configurable application called ArcGIS Mobile Editor is also available.

I have been working on ArcGIS Mobile for quite a few months and we implemented a very similar mobile editor to what was showcased at the plenary session so it was good to attend this session to get an insight into some programming and design patters for the ArcGIS Mobile SDK. Some of my notes for this session is below:

For those that didn’t know, the SDK is supported on Microsoft Windows Mobile 5.0 and 6.0 devices. If you are thinking of getting into the ArcGIS Mobile development, you should have an understanding of .NET and the .NET compact framework as well as ADO.NET concepts. The .NET compact framework is slightly different to the full .NET framework. I think about 80% of the classes/methods exist in the .NET compact framework so it’s a good idea to get to know this before.

So what’s a typical workflow of producing a map for ArcGIS Mobile?

Author the map
Remove unnecessary layers
Set scale dependencies
Render editable layers to define feature types

It’s a pretty easy workflow. At ArcGIS 9.3 you have to consider base data vs operational data as this will make a big difference to the performance of your application.

ArcGIS 9.3 has been extended to include new features for ArcGIS Mobile. A create mobile base map tool has been added so users can easily create base maps. This also supports large datasets. Generating a mobile map cache is even easier now as well in ArcGIS 9.3, a tool has been added which uses a GP script to do this. You can extract layers with this tool as well.

To fit in with the ArcGIS Server 9.3 security model, ArcGIS Mobile has been updated to support the token based security.

A few things to take into consideration when developing mobile applications include:

Screen layout/orientation
Closing of forms
Form navigation
Menu vs tool consideratons
ArcGIS Mobile supports been run in a multi-threaded environment. You can use beginInvoke to push arguments to the UI.
Dispose of objects that implement IDisposible
Use try/catch blocks where appropriate
Understand how the garbage collector in .NET works. This is pretty important as it can effect the performance of your application or even cause your application to crash at times.
Use the requestedCompleted event to monitor the synchronization data from the server.

A new layer named custom layers is available in ArcGIS Mobile 9.3. This layer can be used when you need to pull data from other datasources. this does not sit in the local cache. You will have to implement your own ADO.NET storage method.

In Microsoft Visual Studio, support has been added for 2008. The MapCache protocol has been renamed MobileService. There are also richer controls which make it easier to do a bundle of things. The MobileService manages the synchronization between the client and services. The sketch control has been updated with new features.

So as you can see there are loads of new features and functionality coming in ArcGIS Mobile 9.3. To summarise some of this:

New map graphics layer, map label classes, map layers for drawing. Greater support for mobile services and datasources. .SDC is now supported as well.

ArcGIS 9.3 has been updated to include tools to create base maps and mobile service caches. Support has been added for larger maps. There is improved editing/sketching capability. The GPS API has been updated. All projections are now supported and ArcGIS 9.3 will ship with two free applications for your use.



2 Responses to “ “Day 2 Programming And Design Patterns For The ArcGIS Mobile SDK At The ESRI Developer Summit 2008”

  1. Ehab El-Masry says:

    I dont know if u can help..

    I have installed ArcGIS Server 9.3 and published a map service named ‘California’.

    I have enabled security for the map services, with token based authentication.

    I created a web application named ‘TestProxy’ which contains a web page that tries to access the map service.

    I opened the token service to generate the required token string with these parameter:

    - UserName : qs

    - Password : qs

    - Identifier : web application : http://localhost/testproxy – Exp : 10 days

    i copied the generated token, and in my html page i typed this script

    ….

    dojo.require("esri.map");

    var map;

    function Init() {

    map = new esri.Map("map");

    var layer = new esri.layers.ArcGISDynamicMapServiceLayer("https://localhost/ArcGIS/rest/services/California/MapServer?token=BPnVOUnN8uKwFY7j3msQc3k5I1s9yTejonPrZpq1R7OLHvBnxIfYZCk0p8v6r8eN");

    map.addLayer(layer);

    }

    dojo.addOnLoad(Init);

    ….

    but unfortunately the map does not appear..

    however i can open this map service from the service URL with these credentials, which proves that this account ‘qs’ is authorized to access this service.

    But when i open the service directory and log in with this account, i can not find any service published.

    What Am I Missing ?!

  2. very nice info, thanks. it’s so useful for me.

Leave a Reply