Pig Farming
Essay by 24 • March 6, 2011 • 1,183 Words (5 Pages) • 1,392 Views
One way to think about Web application development is to compare it to buying wine in a grocery store. Let's assume it is an upscale store, with a wine section and somebody who might be capable of helping you. If you were to ask him: "What wine should I buy?Ð"‚Ð'" would you expect him to turn around, pick up a bottle, and say: "Here, this is exactly what you are looking for."?
Of course not.
The quickest answer you could expect would be for the wine clerk to wander down the aisle, pick up a bottle, and say: "This wine just came in, and I personally think it is an excellent quality for the price--but then, I like hearty Cabernets." To help you select a wine that really suits your taste, it would be necessary for the clerk to find out what you are looking for, what your personal preferences and experiences are, and for what occasion or purpose you are selecting the wine. Virtually every single wine on that store's shelf is potentially appropriate for a particular individual or occasion--which goes to show why selecting the "right" wine can be a rather daunting task for the uninitiated.
The same is true for deploying your application on the Web. What tools should you use? Which technologies should you take advantage of? Clients? Servers? Scripting? Components? Browsers? All of these provide an extremely rich and robust array of ways to identify your approach. My intent with this series of articles is not to tell you how to solve your problem, but to provide you with the information you need to figure this out on your own.
The most important step is to understand what service you are trying to provide, regardless of how you plan to deploy it. Remember the old saying, "The end justifies the means." In this case, the end is the resultant service/application/functionality/information you are trying to provide to people, and the "means" is deployment as a Web site, a Microsoft Windows-based app, an e-mail newsletter, or a message on the Good Year blimp.
I've spent considerable time thinking through the issues and strategies of deploying solutions to users. Taking a Web-centric approach, and leveraging some of the lessons that even standard application developers can learn from Internet-based solutions, I've come up with the following methods.
Page-Based Solutions
A page-based solution is one that users conceptually see as a browsable collection of pages on the Internet. They launch their browsers, navigate to your site, and then partake in the services you provide. I've broken this category of page-based solutions into two different approaches.
Browser-Neutral
Some solutions are best targeted with the broadest possible reach. One way to do this is to use a Web site that attempts to be compatible with as many "modern" browsers as possible, to use HTML 3.2 for the page layout, and to test extensively for potential rendering differences.
This approach doesn't rely on specific capabilities or technologies that one browser might offer over another. Instead of focusing on "client" technology, such a site could spend time and resources focusing on "server" technology.
A browser-neutral approach is not without risk. You still must carefully test your site on a variety of browsers. There are a number of minor differences in how the various browsers render a given page. So you need to be aware of how your design layout is interpreted by the browsers in which your application will be deployed.
Browser-Biased
As Web browsers evolve to address goals that both users and authors want to achieve, a Webmaster may feel compelled to take advantage of new features. Cascading Style Sheets, client-side scripting, Dynamic HTML, components.... All of these represent capabilities that increase the richness of the user's experience, but aren't necessarily supported by the majority of browsers (or are features that the user can turn off selectively).
A browser-biased Web site takes specific advantage of browser's features over those of another--or perhaps just features beyond the HTML 3.2 specification that might be supported by the "latest" browsers on the market. To maintain a degree of compatibility with lesser browsers, such a site often will employ some method of "browser sniffing" in order to determine what browser and version the user is using. A problem with this approach is that multiple versions of the page or template need to be authored
...
...