Getting started with the Web ADF


In this topic


Using ArcGIS Server Manager

The Web Application Developer Framework (ADF) offers a number of ways to create Web applications. To create a Web application without writing code, use ArcGIS Server Manager (Manager). Manager creates a predefined Web application, based on the Web Mapping Application template that is ready for deployment. Although Manager provides a number of options to customize your Web application, you can extend it further.
For additional information on Manager, in the Web Help system's TOC, click Creating ArcGIS for Server solutions or access the Help system in the Manager application. For additional information on customizing the Web application generated by Manager, see Customizing the Web Mapping Application.

Using Web technologies

While generating Web applications via Manager offers a quick and easy solution to create and deploy a Web ADF application, the Web ADF is a full featured development environment with a set of controls, frameworks, and application programming interfaces (APIs) to create custom Web solutions. Because the Web ADF is built on Microsoft ASP.NET, you should be proficient in the techniques and technologies of ASP.NET Web development.
Web application development can take many forms. Client-side development leverages Web browser technologies—for example, Hypertext Markup Language (HTML), JavaScript, and Cascading Style Sheets (CSS)—to provide an interactive interface and to off load application logic for processing on the client. However, Web browser capabilities are often limited; security restrictions hinder resource access, remote services can be utilized via Hypertext Transfer Protocol (HTTP) only, and the scripting environment provides a somewhat rudimentary (sometimes unstable) platform for execution logic. Server-side development involves packaging application logic in the server or Web-tier with access to internal proprietary services and resources.
The full featured, stable, true object-oriented development environment of the .NET Framework is accessible and extensible. ASP.NET Web controls encapsulate business logic on the server or Web-tier and provide presentation content to the client browser. Some client-side support content is provided (for example, JavaScript) to enable client-side interactivity with the server, but the majority of application logic resides on the server.
The ArcGIS Web ADF combines both in a hybrid approach to Web development by including client and server logic to balance performance and functionality. The Web ADF includes server-side Web controls with a scriptable interface so they can be utilized directly via JavaScript in a Web browser. The ASP.NET AJAX JavaScript library provides a foundation for the Web ADF JavaScript library to manage client events and synchronize state with server-side Web controls.
As an ADF developer, you should become familiar with various Web technologies to take full advantage of Web ADF components in a custom ASP.NET Web application. These technologies include the following:
  • C# or VB.NET in ASP.NET
  • Event handling
  • Page life cycle
  • Custom Web controls
  • AJAX in ASP.NET
  • ASP.NET AJAX Partial Postback pattern
  • ASP.NET AJAX Web controls (ScriptManager, UpdatePanel)
  • ASP.NET AJAX JavaScript library
  • HTML
  • JavaScript
You also need to be familiar with Internet Information Services (IIS), the platform on which you deploy your Web applications. Information related to enhancing performance, managing scalability, maintaining state, and monitoring ASP.NET worker process operations are beneficial to you when deploying a custom solution.
As an ASP.NET Web developer using Web ADF components, application requirements combined with your skill level dictate how functionality is added to and integrated in a Web application. In general, functionality is added to Web applications or components to handle user actions, process inputs, and generate results. How functionality is packaged for use in a Web application depends on whether you are a page developer or a server control developer.

Page developers

Page developers add functionality to a Web page by using Web controls, handling events on controls or the page, wiring up custom events, adding logic for custom actions to a code file, or packaging related content into user controls. These options are shown in the following illustration. Business logic is for a specific Web application and the developer knows exactly what the application contains.
Most ASP.NET developers use Visual Studio to create custom Web applications with Web ADF controls and components. To get started as a page developer, you can open a Web application generated by Manager, use the Web Mapping Application template integrated with Visual Studio, or create a custom Web application from the beginning. You can also modify an existing Web application by adding Web ADF controls or components. For more information see Template applications.
A set of tutorials starts with the template and progresses through more complex topics, such as custom tool implementation and data source specific interaction. For more information, see Tutorials.
The Web ADF includes out-of-the-box Web controls on which you can handle events. For more information, see Web controls.
Adding custom functionality can involve adding a custom toolbar item that uses Web ADF core classes, using the task framework to display results, creating a custom user control that contain Web ADF controls, or leveraging the Web ADF JavaScript library to take advantage of Web browser capabilities. For more information, see Working with the Toolbar control, Working with graphics and core classes, Working with the Task Framework, and Web ADF JavaScript library

Server control developers

Server control developers extend or create custom composite Web controls that encapsulate business logic in a distributable component. These functionality options are shown in the following illustration. Creating custom Web controls means understanding how to construct a control interface programmatically and leverage control life cycle with business logic as it operates within a page.
The custom Web control can be dependent on another control but generally it cannot depend on other page code, controls, or content. As a result, server control developers must include logic to check for the availability of a component. For example, the page developer knows that if a ScriptManager is on a page, the developer can work with the control reference on the page. Server control developers might not know if the Web control they created is being utilized on a page with a ScriptManager. As a result, logic within the custom Web control must check for the presence of a ScriptManager and handle situations where one is not available.
While creating custom Web controls is more flexible than adding functionality to a page, implementation is more complex. In some cases, an ASP.NET Web developer operates as a page developer and a server control developer to take advantage of both patterns when creating a custom Web solution. 
Server control developers extend an existing Web ADF control to add or modify functionality, or create a custom composite Web control that contains Web ADF controls. This includes leveraging the Web ADF task framework to extend out-of-the-box Web ADF tasks or create custom Web tasks (Web controls) that can be integrated with Visual Studio and Manager.
Another common situation involves packaging custom Web ADF controls and content in a single composite Web control for deployment in a portal (for example, SharePoint), multi-view, or template. You start this process by creating a custom class library project in Visual Studio and implementing the appropriate interfaces, or extending the appropriate classes to generate a custom Web control for the applicable deployment environment.

Web ADF data sources

In either case, business logic on a page or control can require working with one or more data sources at the same time. It is important to understand the relationship between Web ADF components and APIs that consolidate and use different data sources using a common methodology. From a data source perspective, the Web ADF provides custom Web controls to display and interact with map, geocode, and geoprocessing data from multiple data sources. This capability is based on a Common Data Source API (Common API) that Web ADF controls can interact with different data sources in the same way.
The following illustration shows the available developer paths, increasing in complexity and functionality from path I to IV:
In general, the best practice is to start with the simplest available path and select a more complex path only when necessary. Selecting a more complex path depends on the functionality needed in your application. Developer paths I, II, and III are specific to the Web ADF.
  • Use path I—If you can accomplish the task using the out-of-the-box Web controls.
  • Use path II—If you want to customize the Web ADF to work with all data source types by using generic functionalities in the Common API.
  • Use path III—If you want to customize the Web ADF to work with a specific data source implementation of Common API functionality.
  • Use path IV—To use functionality associated with a specific data source (such as an ArcGIS for Server object or an ArcIMS service); a data source specific API can be provided. This option offers the most functionality since you are working directly with the data source API.
Most APIs can be used independent of the Web ADF controls and Common API. Data source specific components are installed with the Web ADF to support ArcGIS for Server and ArcIMS. For more information, see Working with the Common Data Source API.

ArcGIS for Server data sources

ArcGIS for Server data sources are supported by two APIs, ArcObjects and Simple Object Access Protocol (SOAP). In the Web ADF, ArcGIS for Server local and Internet data sources are built on the SOAP API; however, local data sources also offer access to the ArcObjects API. For more information, see ArcGIS for Server implementation in the Web ADF.
Since the SOAP and ArcObjects APIs can be used apart from the Web ADF, see Working with the SOAP API that discusses the implementation and use of standard SOAP-based proxies and value objects for stateless communication with ArcGIS for Server services. 
In the ArcObjects Help for .NET developers Help system (installed separately) see Developing with ArcGIS for Server for various topics that discuss programming techniques and capabilities of working with both coarse and fine-grained ArcObjects remotely via ArcGIS for Server. ArcGIS for Server also provides the ability to customize and extend functionality on the server. For more information, see Extending ArcGIS for Server.
Local (DCOM) connections are only supported for ArcGIS for Server versions prior to 10.1.

ArcIMS data sources

ArcIMS data sources are supported by the pure .NET ArcIMS API. For more information, see Working with the ArcIMS API.


See Also:

Template applications
Tutorials
Web controls
Working with the Toolbar control
Working with graphics and core classes
Working with the Task Framework
Web ADF JavaScript library