WEB
APPLICATION DEVELOPMENT DEFIES & PRACTICE
Web application development is the process and practice
of developing web applications.
Risk
Just as with a traditional desktop application, web
applications have varying levels of risk. A personal home page is much less
risky than, for example, a stock trading web site. For some projects security, software bugs, etc.
are major issues. If time to market, or technical complexity is a concern, documentation, test planning, change control, requirements analysis, architectural and formal design and construction
practices can mitigate risk.
Technologies
§ Ajax
§ ASP
§ ASP.NET
§ CSS
§ CGI
§ Django
§ Drupal
§ HTML5
§ Java
§ JavaScript,
including frameworks such as:
·
Ember.js
·
React
·
jQuery
§ Nginx:
web server
§ Node.js: web
server
§ Perl
§ PHP
§ Python
§ Ruby, including Ruby on Rails
§ Wt
§ Xojo
Lifecycle Model
Time
to market, company-growth and requirements
churn, three things that are emphasized in web-based business, coincide with
the principles of the “agile” practices.
Some agile lifecycle models are:
§ Scrum
§ Time box development
Testing
Web applications undergo the same unit, integration and system testing as
traditional desktop applications. But because web application clients vary so
greatly, teams might perform some additional testing, such as:
§ Security
§ Performance, Load,
and Stress
Many types of tests are automatable.
At the component level, one of the xUnit packages
can be a helpful tool. Or an organization can create its own unit testing
framework. At the GUI level, Watir or iMacros are
useful.
Tools
In the case of ASP.NET, a
developer can use Microsoft Visual Studio to write code. But, as with most
other programming languages, he/she can also use a text editor. Notepad++ is
an example. WebORB Integration Server for .NET can be used to
integrate .NET services, data and media with any web client. It includes
developer productivity tools and APIs for remoting, messaging and data
management.
For ColdFusion and the related open source CFML engines,
there are several tools available for writing code. These include Adobe Dreamweaver CS4,
the CFEclipse plugin
for Eclipse (software) and Adobe CF Builder. You can also use
any text editor such as Notepad++ or TextEdit.
For PHP,
the Zend Development Environment provides numerous debugging tools
and provides a rich feature set to make aPHP developer's life
easier. WebORB Integration Server for PHP can be used to
integrate PHP classes and data with any web client. It includes developer
productivity tools and APIs for remoting, messaging and data management. Tools
such asHammerkit abstract PHP into a visual
programming environment and utilise component-based software methods
to accelerate development.
For Java (programming language), there are many tools. The most
popular is Apache Tomcat, but there are many others. One very specific
one is WebORB Integration Server which can be used to integrate
Java services, data and media with any web client. It includes developer
productivity tools and APIs for remoting, messaging and data management.
Several code generation tools such as nuBuilder, dbQwikSite or M-Power are
available to automate the development of code. Using such tools, non-technical
users can produce working code, and experienced coders can accelerate the
development cycle.
Other tools include various browsers, FTP clients, etc. See Category:Web development software.
Frameworks and use
Practicing code reuse and using web application frameworks can greatly improve both
productivity and time to market. Reusing
externally developed components can allow an organization to
reap the above benefits, while potentially saving money. However, for smaller
components, it might be just as easy to develop your own components as it would
be to learn new APIs. Also,
if a component is essential to the business, an organization might want to
control its development.
Web interoperability
Web interoperability means producing web pages
viewable in standard compatible web browsers, various operating systems such as Windows, Macintosh and Linux and devices such as PC, PDA and mobile phone based on the latest web standards.
Elements of Web interoperability
§ Structural and semantic markup with XHTML.
§ CSS based layout with layout elements such as
position and float.
§ Separating among structure, presentation and
behavior in web pages.
§ DOM scripting based on W3C DOM Standard
and ECMAScript.
Web application framework
A web application framework (WAF) is a software framework that is
designed to support the development of dynamic websites, web applications, web services and web resources. The framework aims to alleviate the overhead
associated with common activities performed in web development. For example, many frameworks provide libraries for database access, templating frameworks and session management,
and they often promote code reuse. For a comparison of concrete web
application frameworks, see Comparison of web application
frameworks.
Types of framework architectures
Most web application frameworks are based on the model–view–controller (MVC) pattern.
Model–view–controller (MVC)
Many frameworks follow the MVC architectural pattern to
separate the data model with business rules from the user interface. This is generally considered a good practice
as it modularizes code, promotes code reuse, and
allows multiple interfaces to be applied. In web applications, this permits
different views to be presented, such as web pages for humans, and web service interfaces for remote applications.
Push-based vs. pull-based
Most MVC frameworks follow a push-based architecture also
called "action-based". These frameworks use actions that do the
required processing, and then "push" the data to the view layer to
render the results. Django, Ruby on Rails, Symfony, Spring MVC, Stripes, CodeIgniter are good examples of this architecture. An
alternative to this is pull-based architecture, sometimes also called "component-based". These frameworks
start with the view layer, which can then "pull" results from multiple controllers as needed. In this
architecture, multiple controllers can be involved with a single view. Lift, Tapestry,JBoss Seam, JavaServer Faces, (µ)Micro, and Wicket are examples of pull-basedarchitectures. Play, Struts, RIFE and ZK have support for both push and pull based application
controller calls.
Three-tier organization
In three-tier organization,
applications are structured around three physical tiers: client, application,
and database. The database is normally an RDBMS.
The application contains the business logic, running on a server and
communicates with the client using HTTP. The client, on web applications is a
web browser that runs HTML generated by the application layer. The term should
not be confused with MVC, where, unlike in three-tier architecture, it is
considered a good practice to keep business logic away from the controller, the
"middle layer".
Framework applications
Frameworks are built to support the construction of internet
applications based on a single programming language, ranging in focus from
general purpose tools such as Zend Framework and Ruby on Rails, which augment
the capabilities of a specific language, to native-language programmable
packages built around a specific user application, such as Content Management
systems, some mobile development tools and some portal tools.
Content management systems (CMS)
In web application frameworks, content
management is the way of organizing, categorizing, and structuring the information
resources like text, images, documents, audio and video files so that they can
be stored, published, and edited with ease and flexibility. A content
management system (CMS) is used to collect, manage, and publish content,
storing it either as components or whole documents, while maintaining dynamic
links between components.
Some projects that have historically been termed content
management systems have begun to take on the roles of higher-layer web
application frameworks. For instance, Drupal's
structure provides a minimal core whose
function is extended through modules that
provide functions generally associated with web application frameworks.
The Solodev and Joomla platforms
provide a set of APIs to build web and command-line applications. However, it
is debatable whether "management of content" is the primary value of
such systems, especially when some, like SilverStripe,
provide an object-oriented MVC framework. Add-on modules now enable these systems to function as
full-fledged applications beyond the scope of content management. They may
provide functional APIs, functional frameworks, coding standards, and many of
the functions traditionally associated with Web application frameworks.
Caching
Web caching is the caching of web documents in order to reduce bandwidth usage, server load, and
perceived "lag".
A web cache stores copies of documents passing through it; subsequent requests
may be satisfied from the cache if certain conditions are met. Some application
frameworks provide mechanisms for caching documents and bypassing various
stages of the page's preparation, such as database access or template
interpretation.
Security
Some web application frameworks come with authentication and authorization frameworks that enable the web server to identify the users of the
application, and restrict access to functions based on some defined criteria.
Drupal is one example that provides role-based access to pages, and provides a
web-based interface for creating users and assigning them roles.
Database access, mapping and configuration
Many
web application frameworks create a unified API to a database
backend, enabling web applications to work with a variety of databases with no
code changes, and allowing programmers to work with higher-level concepts.
Additionally, some object-oriented frameworks contain
mapping tools to provide object-relational mapping,
which maps objects to tuples.
Some
frameworks minimize web application configuration through the use of introspection and/or following well-known conventions.
For example, many Java frameworks use Hibernate as a
persistence layer, which can generate a database schema at runtime capable of
persisting the necessary information. This allows the application designer to
design business objects without needing to explicitly define a database schema.
Frameworks such as Ruby on Rails can also work in
reverse, that is, define properties of model objects at runtime based on a
database schema.
Other
features web application frameworks may provide include transactional support and database
migration tools.
URL mapping
A
framework's URL mapping facility is the mechanism by which the
framework interprets URLs. Some frameworks, such as Drupal and Django, match
the provided URL against pre-determined patterns using regular expressions, while some others use URL rewriting to translate the provided URL into one
that the underlying engine will recognize. Another technique is that of graph traversal such as used by Zope, where a URL is
decomposed in steps that traverse an object graph (of models and views).
A URL
mapping system that uses pattern matching or URL rewriting allows more "friendly URLs" to be used, increasing the simplicity
of the site and allowing for better indexing by search engines. For example, a
URL that ends with "/page.cgi?cat=science&topic=physics" could be
changed to simply "/page/science/physics". This makes the URL easier
for people to read and hand write, and provides search engines with better
information about the structural layout of the site. A graph traversal approach
also tends to result in the creation of friendly URLs. A shorter URL such as
"/page/science" tends to exist by default as that is simply a shorter
form of the longer traversal to "/page/science/physics".
No comments:
Post a Comment