Netscape DevEdge

Skip to: [content] [navigation]

This resource is obsolete and is provided for reference purposes only.

Introduction to Web Applications

Some thoughts on Web Application Development

Introduction
Web Applications are Object Oriented
Run-time platforms

For anyone who has been involved in developing Web sites over the last few years, it has been both exciting and frustrating. Exciting because of all of the new possibilities opened up by the Web. Frustrating because of the difficulties caused by the limited functionality of the standards as well as the bugs and incompatibilities of the widely available Web browsers.

With the maturation of the standards (HTML, XML, XHTML and DOM) and the widespread insistence on support for standards we have now reached the point where the major browsers support enough of the standards to allow us to develop powerful, sophisticated web applications that can be used on any platform.

Obstacles Although we are in a much better position that before, there are still major obstacles to developing and deploying web applications.

Bandwidth Bandwidth is now and will be for some time to come a limitation that will have to be dealt with. With some care and the judicious use of caching, limitations in bandwidth can be overcome.

Web Browsers Although browsers are improving, there are still many areas where their implementations of the standards are incomplete or incompatible.

Security Security on the web is of paramount importance to everyone. Maintaining security is one issue, but another is dealing with the limitations imposed upon web applications by security requirements.

Strategy A Strategy for developing applications for the web is important to success. A Strategy will allow us to consider many of the possibilities beforehand and to make choices that lead to coherent and consistent application designs.

Drop support for Legacy Browsers A major objection to dropping support for the legacy browsers such as Internet Explorer 2.x- 4.x and Netscape 2.x-4.x is that people using these older browsers will not be able to access the new applications. This objection is without merit for the following reasons:

The end result of supporting the older browsers is developers must limit the features of HTML and Javascript that are used to those that can be reliably implemented across the various browsers. This results in numerous forks in HTML and Javascript to deal with the various bugs and incompatibilities in older browsers as well as the complete elimination of the many new capabilities possible with the newer browsers.

Adhere to Standards The absolutely most importance choice is to adhere to standards first and foremost. By adhering to standards we automatically guarantee that applications we develop will be portable to any browser/platform that supports the standards.

These means that we do not use proprietary extensions in a fashion that is visible to the application as a whole. By refusing to use proprietary extensions, we remove all incentive for browser manufacturers to develop and promote them.

When the target platforms do not support the complete standards, portable workarounds that extend the deficient platform should be implemented.

Exploit the Standards Anyone who has designed new systems or API's knows how difficult it is to specify a system completely and well. The standards have been developed by teams of very talented and experienced people. By taking advantage of their work we can leverage our designs and code immensely.

Choose the Standards wisely The W3C should be our Standards bearer for:

One of the distinguishing characteristics of developing for the Web is that the Application is really a Document. The combining of data and code in a standard format where the code can interact with a user and manipulate the data make Web Application development inherently Object Oriented.

Currently, the only choices for Client Platforms appear to be Netscape's Netscape 6, mozilla.org's Mozilla and Microsoft's Internet Explorer 5. While IE is not nearly as standards compliant as Netscape 6 or Mozilla, IE's support is sufficient to allow cross platform applications to be developed.

Javascript is available on the server side in several Web servers such as IIS and Apache.

Targeting the W3C DOM API There are three levels to the W3C DOM:

Netscape 6 and Internet Explorer offer differing levels of support for each of the DOM Levels. For our purposes we will focus on the aspects of the DOM that we will use to develop our initial applications: DOM Level 0, DOM Level 1 (Core + HTML), DOM Level 2 (CSS + Events).

Choice of Development Language When developing cross platform Web applications, there are really only two choice of language possible: Java and Javascript.

Java is a fully featured Object Oriented language that is supported in a variety of browsers and which has access to the Browser's DOM.

Javascript ( ECMAScript ) is a pseudo Object Oriented scripting language that is also supported by a number of browsers and which has access to a browser's DOM.

While Java would appear to be the best choice for development language, I have chosen Javascript for the following reasons.

A+R