Webové aplikace (English)
(translation: web applications)
Web applications are applications where the user interface is a Web Browser. They have three huge advantages over other types of applications (desktop, mobile, and command line):
- The user does not have to install anything
- Developer cares about only one version
- A properly written application provides addresses (URL) in parts of the application, for example, someone can post a link to another page with a description of certain goods
Web applications are often used as a user interfaces in multi-tier applications.
On the client-side we have typically available:
- in 100 % of the cases we have HTMLs hyperlinks and forms
- we usually have available Cookies for state saving in the browser
- we usually have a Flash plugin (animated vector graphics and multimedia, see YouTube) (99% verze 10, 92% verze 10.1)
- roughly half the users have the option to use Java applets, a Java application running inside the browser
- sometimes you can use Java Web Start to start the desktop application
- for Mozilla Firefox we have access to XUL (XML User Interface Language)
- Scalable Vector Graphics (SVG) is supported 82% for Firefox 4, 89% for Chrome 10, 95% for Opera 11, 82% for Safari 5, 60% for IE9, not supported in IE8
- HTML5 is not yet a complete W3C Recommendation, see state of implementation in newer versions the rendering engine contains:
- <canvas> for bitmap graphics (Firefox 1.5, Chrome, Safari, Opera, IE9; not in IE8) (sample: 3D walker)
- <video> video playback (Firefox 3.5, Chrome 3, Safari 3.1, Opera 10.50, IE9; not in IE8), there are problems with codec
- Web Storage to store data in the browser, (Firefox 2, Safari 4, Chrome 4, Opera 10.50, IE8)
- Web Sockets v Firefox 4, Google Chrome 4, Opera 11, a Safari 5
- nd other features not yet implemented. Microdata
- WebGL ve Firefox 4 a Chrome 9 (ukázky: Chrome WebGL experiments, Unigine Crypt demo, Zygote Body)
Temporary note : in Windows XP you cannot upgrade from MSIE MSIE 8 to 9, so MSIE 8 can still widely diffused for long time.
NOTE: a useful resource can be this, in reviewing whether one aspect of HTML5 is supported on different platforms.
Web application developers are faced with the dilemma : use the latest technology or support more users?
There are aspects to consider such as "Can blind people use my application ? What about color blind or people with monochrome monitors? What about people accessing from a mobile phone with a display 150x150 pixels? What people using a browser from a text console ( lynx or links ) without images and colors?".
Statistics used browsers]
Statistics about browsers usage are a valuable guide in decision making. We can also easily obtain statistics using Google Analytics::
and about MSIE:
Support for Disabled
If you want to support most users , or if you work for a government that requires it directly ( see Web Content Accessibility Guidelines ) , web applications must be available to people who cannot see images and colors. It is therefore advisable to get used to some rules and follow then for all the Web applications :
- image <img> always fill attribute for alternative text alt="Image description" , as well as for multimedia, scripts , applets , etc. .
- If you are using image map (image clickable areas), always behind provide a list of links as an alternative
- Do not rely on color designation, that is always highlight text (a mandatory form fields except red mark and asterisk)
- Use hyperlinks in a meaningful text, therefore, not "click here"
- Take advantage of HTML tags in their semantic meaning, ie use lists, titles, descriptions, fields, forms, etc... and format it using CSS
Roles involved in the development of web applications
Web application development involves typically young people in different roles and usually different people with different abilities. The following roles are present generally (see J2EE blueprints ):
- Programmer - developer of applications
- Web designer
- System Administrator
- Provider of development tools
- Provider application server
- Provider components and libraries
It can be assumed that the last three roles can be solved by buying commercial products or downloading open source products. While the role of the programmer , deployer and system administrator usually are combined in one person, web designers tend to be people with graphic sensibilities , who are used to design graphic design in its final form ( so that it looks good on their monitor) and have difficulties with the identification of rules appearance at different resolutions and environment . The result is a nuisance pages "optimized" for 800x600 and MSIE browser.
What should a developer know
When creating a web application, the following technologies are important (ie, be a master of many crafts :-):
- HTTP (URL, Cookies, Redirect, MIME types)
- Security (SSL, hash functions, encryption, X.509 certificates, PKI)
- Relational databases (SQL, JDBC)
- Server-side tools (JavaEE, XML, XSLT, ...)
Tools for server-side
There are many technologies to consider server-side, take a kind of historical review:
- CGI (Commong Gateway Interface) interface to generate pages for externally running programs
- PHP and other scripting tools for embedding code in HTML text
- Java servlets with the possibility of maintaining the HttpSession
- JSP pages, WebMacro, Freemarker templating and other tools used by servlets
- MVC framework based on the processing request (Apache Struts Spring MVC)
- Java portlets allow you to assemble portal pages from multiple independent applications
- MVC framework based on visual components (JSF Tapestry Stripes)
- MVC framework based on the principle of convention takes precedence over the configuration (Ruby-on-Rails and followers)