Teaching ESRI course

Recently I was teaching a 2 day course ‘Creating effective Web applications using ArcGIS Server’. The course is focused on using ESRI Web mapping APIs which provides developers with mapping, analysis, and data processing tools so they can embed GIS functionality in their Web applications.

During the course, students had to make a choice which API they will use throughout the course – JavaScript API, Flex API, or Silverlight API. This choice would be based on several criteria – development experience, available resources, and licensing concerns. 90% of my students have decided to stick with JavaScript API since ArcGIS API for JavaScript is perhaps the simplest way to get started with developing Web GIS applications using ESRI ArcGIS Server services, tools, and development platform.

The course went very well and the students thought that the work carried out was fruitful. Naturally, it is really hard to dive really deep into the Web GIS development for those who do not have any experience with developing for ArcGIS Server within such a short amount of time. Even though most of the students have been at another relevant ESRI course – Introduction to ArcGIS Server – and are familiar with such concepts as client-server architecture, web browser work principles, I was forced to roll back to provide the necessary background knowledge about such things as ArcGIS Server Web ADF, Microsoft Visual Studio, and IIS web server workflows on the regular basis.

Being an instructor for the course was extremely productive for me too. Since the course content was designed for use specifically with ArcGIS 10 and was released just a couple of months ago, there were a few things many users have not worked with that much. I think that new feature service type introduced in ArcGIS Server seems to be very interesting. Among other useful things at the 10 release, introducing a compact cache, Sharepoint support, advanced feature data editing logic use, and client-side feature layers can be mentioned. To get the idea what we have in ArcGIS Server 10, please refer to the ArcGIS Server 10 functionality matrix.

To extend the lecture that involved consuming map services in the web application, I have added some info on REST API interface and commands which can be very useful to have at hand when developing an interface for interrogating map service content by using any ArcGIS Web mapping API. Consuming published services via accessing their REST endpoints at ArcGIS Services Directory was necessary throughout two days, so getting to know REST API syntax would be an advantage. Full information on REST API is available at ArcGIS Help system at the ArcGIS REST API Help system.

Some useful REST API URLs are listed below:

To get the general information about the server:

http://<host>/<instance>/rest/info

To come to the server catalog to see the services available:

http://<host>/<instance>/rest/services

To access REST admin interface:

http://<host>/<instance>/rest/admin

Using local map services in Web applications involve choosing a proper well-known ID (WKID) for either the geographic or projected coordinate system in the web application code. To save users’ time, ESRI has provided the long list of all systems supported, which is available at ArcGIS API for JavaScript Help under the Coordinate System IDs section for geographic coordinate systems and for projected coordinate systems.

Here are some of the raised questions I needed to cover during the course:

1.       How to add a default document for an application or site in IIS 7?

As a standard behaviour, when a web browser sends a request to the root directory, IIS 7 retrieves the document based on the default document configuration. The list of default file names for the IIS can be configured, for instance, at the IIS management console (Start > Run > inetmgr) or by using the <defaultDocument> element in the ApplicationHost.config file and at the Web site Web.config file.

2.       Is JavaScript case sensitive?

Yes, JavaScript is highly case-sensitive as well as XML and XHTML yet pure HTML is case-insensitive.

3.       What is required to create a Silverlight application in the MS Visual Studio?

Silverlight Tools for Visual Studio and Silverlight developer runtime

4.       Are C# and MXML case-sensitive language?

Yes, C# and MXML (Flex platform) are highly case-sensitive as well as XAML (Silverlight platform).

5.       Why crossdomain.xml is important and should be copied to the IIS root folder?

This file is required to allow accessing data from a server other than the one hosting one’s Flex application.

6.       What is the REST end-point of the map service and how do I get it?

REST endpoint represents the entry point for an ArcGIS Server service, i.e. the unique URL by using which the service can be reached by different applications and other web services.

REST endpoint for a map service <Basemap> on the machine <gisdev> would be:

http://gisdev/ArcGIS/rest/services/Basemap/MapServer

7.       How can I get an URL for a map of a map service that will be zoomed in to a certain area?

You will need to use a special format of a REST API response. You might use f=image operation which will result in a streamed image. Bbox will define the extent of the sent image.

http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export?bbox=-117,35.79,-122,42.38&f=image

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s