Web application development is not a simple task, as many a developer will attest.
Back in the early days of the Web, the main challenge was maintaining page compatibility
between Internet Explorer and Netscape. Over the past decade, we have seen
pages evolve from static experiences to something much richer and more dynamic.
With this evolution comes additional challenges and constraints that need to be considered
when developing web applications.
The key issue to keep in mind is how a user is going to interact with your web application
as you introduce richer functionality and new user interface paradigms. It is
far too easy to get carried away with many of the client-side technologies that are
available to developers, either by visually enhancing aspects of an application or by
introducing dynamic data loading. At all stages, usability should be considered—what
value does feature X add to the user? And conversely, how functional will an application
be if a user is viewing it in a browser or on a device that does not support a
If you look at the technology platforms that are used to deliver these rich web experiences,
you will see two paths. On a foundation of Hypertext Markup Language
(HTML) structure and Cascading Style Sheets (CSS) presentation, developers have
within the browser. In addition, plug-in technologies such as Adobe’s Flash Platform are well regarded
when it is necessary to deliver increasingly rich visual experiences to users.
Both of these technologies have their place when it comes to developing mashups and can be used to
produce fantastic results, as evident in the examples you saw in Chapter 1.
by the services you are looking to consume and the creative vision of what you are going to build.
Secondary considerations might include the availability of server-side scripting, accessibility requirements,
Let’s take a closer look at the available technologies so you can see the differences between them and
what makes one more suitable to a certain requirement than another.