Visual WebGui

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

ATTENTION: This page, while mostly factually correct, contains corporate hyperbole. Take it with a grain of salt.

Visual WebGui
Stable release 6.3 / June 2, 2009; 464614233 ago
Type Web & Cloud Platform
License GPL / LGPL

Visual WebGui (VWG) is an open-source rich internet, Cloud & SaaS application Platform for AJAX & Silverlight GUIs. The platform presents a new approach to applying desktop usability to the web & Cloud by viewing it as an extension to a desktop rather than web. Nevertheless, VWG provides seamless integration to Visual Studio and the .NET Framework and extends ASP.NET.



The web was originally designed to present static content to users. With time and widening usages of the web in all aspects of life, and business in particular demand for a more dynamic and interactive behavior, raised and became essential. This led to the development of new environments and techniques to create and show content on the web.

As a result, Microsoft developed ASP which was their first server-side script engine for dynamically-generated web pages. ASP.NET was later introduced in attempts to simplify developers' transition from Windows application development to web development by offering the ability to build pages composed of controls similar to a Windows user interface.

On the client side, there is a constant effort to keep improving the capabilities of websites and web applications by extending traditional web technologies to support and cater for the rising needs. DHTML was introduced to provide users with a more interactive and animated web sites by combining together HTTP, JavaScript, CSS, and the Document Object Model.

AJAX is a further step to bring web interactivity closer to that of desktop applications and to cater for the ever rising demand for applications on web. AJAX grouped together interrelated web development techniques for creating interactive web applications or rich Internet applications by retrieving data from the server asynchronously in the background without interfering with the display and behavior of the existing page.

Another approach trying to bring the desktop to web, is desktop virtualization. This approach enables 'picturing' of the desktop on the web. Its limitations are that this approach requires specific plug-in installation, limited to the desktop application, not being able to interact with local client resources and produces security concerns.

However, extending web technologies has its limitations, originating from their traditional purpose of content presenting. Those limitations fail to offer real desktop development productivity, usability, interactivity and security.

On-Server Web Paradigm

On-server web, represents yet another approach trying to solve the inherent inferiority of traditional web technologies, for applications. The On-Server Web paradigm shift[1], means the entire application flow, UI logic and validations are developed and processed on the server while the browser is referred to as an Empty Client since it serves as a “display” for the output and a “receptor” for user input only.

As with Server based computing, On-Server AJAX simply reflects the “screens” to the client, captures user input from the client and reflects the incremental changes back to the client all over a highly optimized communications channel. In the case of On-Server Web there is no need to consider the “screen” as a purely graphical representation of the application – a bitmap, but rather it can be considered as a series of related components which change according to the application logic. In effect this is similar to how X Window communicates changes to X Terminals by transferring component changes between the client “host” and the server’s state.

Deploying complex line of business applications on the web has traditionally required either rewriting the application using web oriented technologies and development patterns or employing server based computing platforms such as Citrix and Windows Terminal Services[2]. These platforms have grown in popularity as a solution for supporting heavy deployments of existing client-server line of business applications.

The On-Server AJAX paradigm shift allows to support deployments of complex line of business applications with unprecedented simplicity, security and unlimited complexities. With On-Server AJAX, applications can run in desktop or web mode using the same source code, and can be migrated from legacy code without requiring rewriting the application.


A standard browser running on standard HTML or Silverlight on the client side. On the server side there are the VWG router which handles the mapping between the application URLs and the actual code, the VWG configuration which adds relevant application level properties, and the application code.

When a VWG URL is called, the request hit the Visual webGui router and mapped to the application. The application then is initialized with relevant configuration properties. The initial Metadata state is sent back to the browser along with the 200k Kernel (non exe) which is responsible for all the rendering and communication tasks on the client.

From there on, any user interface triggers and event that is processed by the application, generating differential UI Metadata and changes the state. This changes average 1k using a VWG pipeline, optimized for standard HTTP and update the view on the client side when sent back.

Moreover, not every user interaction causes a round trip - there is an algorithm that handles user interaction requesting server updates only on critical user interaction. This protocol and the fact that the client remains thin with no data or logic are the reasons that the user experience resembles that of a desktop.

Key Features

Visual WebGui (VWG)[3] provides infrastructure for programming & deploying RIA web applications or rapidly porting desktop application (VB6, WinForms, MVC)[4]. to web without reengineering or rewrite. VWG infrastructure allows integration and mash up, and supports complex, IT grade application deployment on web with the server doing the heavy lifting. VWG is one of the leading implementation of On-Server web paradigm[5].

VWG decupled GUI structure allows multiple presentation layers. Any presentation layer that sends and receives XML could serve as VWG's presentation layer. Current implementation supports DHTML or Microsoft Silverlight as VWG's presentation layers. They maintain their original capabilities in terms of styling, cross browser, mobile suitability, customization and extension capabilities over VWG infrastructure.

On-Server AJAX utilizes a client side “rendering” engine which communicates with the server over XML/HTTP. The rendering engine uses a proprietary protocol to incrementally update the view. The client never consumes data or services directly since all of the application logic, UI logic and data access is handled on the server. The client simply connects to the “view” on the server and therefore never compromises security. Furthermore, since a proprietary protocol is used to correlate view state between the server and the client, it’s a greater challenge to override, eavesdrop or hack.

In addition in On-Server AJAX, the only data that is delivered to the client is data that can be viewed on the client meaning there is never any sensitive data that may be required for logic or validation beyond what is rendered and seen by the user on the screen.

VWG enables the developer to use a single language and programming model in order to design the application UI and the underlying logic. In addition it alleviates the need to understand and deal with the web’s innate statelessness by offering the use of well known design patterns and tools such as WinForms to design and develop highly interactive, data rich applications with the same productivity of desktop applications[6].

Client side AJAX/Silverlight is meant to improve the responsiveness of the client. In most cases the user experience is improved, however it can have a dramatic effect on server load. Frameworks send across hundreds of lines of Javascript code over and over between requests, necessitating heavy I/O on the host web server generating a “large” bandwidth profile. Client side AJAX frameworks rely on the processing power of the client to handle caching, serialization, validation and paging. Performance varies according to the available resources on the client. Lower memory and slower CPUs could have an adverse effect on the user experience[7].

On-Server AJAX only needs to transfer the rendering engine code once after which only state and data changes are transferred as required. Ultimately this requires more client/server round trips; however the bandwidth profile is kept at a minimum. This results in a highly responsive application which utilizes fewer resources enabling servers to handle more concurrent users. In On-Server AJAX the client only handles rendering of the current view state. This means that less client side objects and data need to be processed on the client (for rendering purposes) resulting in less client side resources being required. Ultimately this ensures all users receive uniform performance regardless of their memory and CPU limitations.


External links

Personal tools

Served in 2.849 secs.