Developing Web Applications with the Web ADF  

What is the Web Application Developer Framework?



The ArcGIS Web Application Developer Framework (ADF) for the Microsoft .NET Framework enables you to integrate GIS data and capabilities into your Web applications.  The ADF includes a set of Web controls, classes, frameworks and APIs that youll use to build your Web applications.   To get started, you can use Manager, an administrative Web application included with ArcGIS Server and ArcIMS, to step through a comprehensive Web application designer to generate a predesigned Web site.  Alternatively, you can start building your Web application in Visual Studio with the Web Mapping Application template, which offers basic map display, navigation, and interactive capabilities.    You can also use the Web controls directly to create a Web site from scratch or develop your own specialized application in a style that conforms to your existing Web site.

The Web ADF is built on top of the Microsoft .NET 2.0 Framework and leverages many capabilities provided with ASP.NET 2.0 such as the callback framework and embedded resources.  The diagram below highlights the primary components and their basic relationships in the Web ADF.    There are four distinct sections to consider: Web controls, Task framework, Common Data Source API, and Web ADF graphics and consolidation classes.  All sections work in conjunction with one another.  Note that most of the Web ADF components reside solely on the Web server.  At runtime some client-side support content, such as Web ADF JavaScript libraries, will be loaded by the browser.  A set of data sources supported out-of-the-box by the Web ADF are included for reference, but are not required for the Web ADF to be utilized.  Depending on the data source, Web ADF JavaScript may be able to take advantage of browser technologies to interact directly with data source result and content, such as accessing a map image available via a public virtual directory.   



A set of assemblies are included with the Web ADF which contain tangible components associated with each section.  The following diagram highlights the standard nomenclature for Web ADF assemblies that will be discussed in this help system.

Web Controls


The Web ADF includes a set of AJAX-enabled Web controls that extend the ASP.NET 2.0 architecture.  The Web controls utilize a set of JavaScript libraries to process asynchronous interaction between browser and Web application components as well as remote resources.  By default, Web ADF JavaScript libraries are embedded in the Web ADF control assemblies.  Each Web ADF control supports AJAX via the ASP.NET 2.0 Callback framework.  State between the client browser and the Web application on the server is maintained using Web ADF CallbackResults.  The CallbackResults class is designed to store callback strings in a format that can be processed by Web ADF JavaScript to update browser content dynamically.   

Web ADF controls are also designed to support working with multiple data sources at the same time in the same Web application.  A set of controls termed resource managers broker interaction between Web controls and data sources via the Common Data Source API.   Resources can consolidated for display (for example, within a Map) and utilized for queries and spatial operations.             

Task Framework

The Web ADF Task Framework is an extensible architecture by which a developer can integrate and deploy custom functionality as "Web tasks" within a Web ADF application.  In general, a "Web task" is a Web control that encapsulates a set of related actions to generate results.  It is a modular component that can be distributed and "plugged into" Web ADF applications via Visual Studio or the ArcGIS Manager application.   The task framework provides the ability to effectively integrate a custom Web task into the Web ADF and Manager.  Task framework interfaces and classes are included in the ESRI.ArcGIS.ADF.Web.UI.WebControls.dll assembly.  Implementations of the task framework are included out-of-the-box with the Web ADF as task controls in the ESRI.ArcGIS.ADF.Tasks.dll and ESRI.ArcGIS.ADF.ArcGISServer.Editor.dll (EditorTask control only).   

Common Data Source API

Previous versions of the Web ADF, termed the ArcGIS Server ADF, were designed to support a single data source, namely ArcGIS Server via ArcObjects. The new Web ADF is designed to support data from multiple sources, including ArcGIS Server and ArcIMS. And two, the multi-source architecture allows you to integrate and interact with data from different sources at the same time, in the same application.   To accomplish this, the Web ADF needs a common framework in which data sources can be integrated with Web ADF components.  This framework is the Common Data Source API, or in short, the Common API. 

The Common API consists of a set of classes and interfaces in the ESRI.ArcGIS.ADF.Web.DataSources.dll assembly.   These classes and interfaces make up the generic framework that Web ADF controls use to interact with different data sources in a common way (thus "Common" API).   To utilize a data source as a resource within the Web ADF, the data source must provide an implementation of the Common API generic framework.  The capabilities of the data source will dictate the breadth of implementation.  A set of data sources are supported out-of-the-box including ArcGIS Server, ArcIMS, ArcWeb, OGC\WMS, and Web ADF graphics datasets.   Each Common API implementation is contained within a separate assembly included with the Web ADF.   

Some data sources have an explicit API used in the Common API implementation.  These are known as data source specific APIs.  For example, the Common API implementation of ArcGIS Server uses components in the ArcGIS Server library ESRI.ArcGIS.ADF.ArcGISServer.dll.  This library leverages the ArcGIS Server SOAP API to work with ArcGIS Server services via a Local or Internet connection.  Note, data source specific APIs can be utilized on their own, without Web ADF controls or Common API implementation. 

A set of connection libraries are also included with the Web ADF to support Local connections to ArcGIS Server and TCP or HTTP connections to ArcIMS.   

Web ADF Graphics and Consolidation Classes   
  
Different sources of data can be combined and utilized in a common way (Common API) in the Web ADF.  As a result, the Web ADF includes a set of components designed to support and enhance working with multiple resources in the Web-tier.   Most of these components reside in the ESRI.ArcGIS.ADF.Web.dll assembly.  

In general, the Web ADF must support some of the basic capabilities of a data source or service.  For example, it maintains a graphics dataset, which enhances an ADO.NET Dataset to provide spatial properties.  The graphics dataset can contain a collection of Web ADF graphics layers which enhance the ADO.NET DataTable and emulate feature class properties.  The Web ADF includes a set of geometry types, renderers and symbols to manage and display graphic elements in Web ADF graphics layers.  Since Web ADF graphics capabilities are managed in the Web-tier and an Common API implementation is provided, they can be integrated and utilized as map resources.   Web ADF graphics provide a pure Web ADF dataset type to manage selected features, dynamic data, and custom feature data sources.          

Other sections of the Web ADF rely on the Web ADF graphics and consolidation classes to do work and interact with one another.  The Map control needs to maintain a spatial reference and define display settings for a map resource to generate a map image.  A task control may use task results to display graphics on a map with Web ADF graphics layers.   A developer may use the generic interfaces of the Common API to execute a query using a spatial filter composed of Web ADF geometry.  In addition, a set of Converter classes are included in the Web ADF to provide convenient methods for converting between client, Web ADF and data source specific data types.   In a true consolidation environment such as the Web ADF, managing the translation of information between application tiers and source types is essential to maximizing usability.