HTML Dropdown

Monday, 15 June 2015

WEB APPLICATION DEVELOPMENT DEFIES & PRACTICE



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:
·         AngularJS
·         Ember.js
·         React
·         jQuery
§  Nginx: web server
§  Node.js: web server
§  Perl
§  PHP
§  Python
§  Ruby, including Ruby on Rails
§  WordPress
§  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 unitintegration and system testing as traditional desktop applications. But because web application clients vary so greatly, teams might perform some additional testing, such as:
§  Security
§  PerformanceLoad, and Stress
§  HTML/CSS validation
§  Usability
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 nuBuilderdbQwikSite 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 browsersFTP 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