- Visual WebGui
Infobox_Software
name = Visual WebGui
latest_release_version = 6.1.1b
latest_release_date =July 15 ,2008
genre =Web RAD framework
license =GPL / LGPL
website = [http://www.visualwebgui.com] |Visual WebGui (VWG) is an open-source rapid application development (RAD) framework for AJAX &
Silverlight GUIs. The platform presents a new approach to applying desktop usability to the web 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 extendsASP.NET .Overview
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 theDocument 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 [cite web
url=http://www.visualwebgui.com/Community/Resources/News/tabid/328/articleType/ArticleView/articleId/246/Default.aspx
title=On-Server Web
publisher=Navot Peled
accessdate=2008-07-08] , means the entire application flow, UI logic and validations are developed and processed on the server while the browser serves as a “display” for the output and a “receptor” for user input.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 [cite web
url=http://www.visualwebgui.com/Community/Resources/News/tabid/328/articleType/ArticleView/articleId/239/Default.aspx
title=The ROI of Citrix but without the Limitations
publisher=Navot Peled
accessdate=2008-05-28] . 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.
Architecture
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 appplication URLs and the actural 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) [cite web
url=http://blogs.msdn.com/joestagner/archive/2007/11/08/visual-webgui-windows-forms-for-web-applications.aspx
title=Visual WebGui
accessdate=2008-07-22] provides infrastructure for programming & deploying RIA web applications or rapidly porting desktop application (VB6,WinForms , MVC) [cite web
url=http://weblogs.asp.net/rosherove/archive/2007/07/28/visual-web-gui-helps-me-write-in-winform-and-run-as-asp-net.aspx
title=Write in Winform and run as ASP.NET
publisher=Roy Osherov
accessdate=2007-07-28] . 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 [cite web
url=http://west-wind.com/weblog/posts/180727.aspx
title=Visual WebGui and a LINQ to SQL quirk
publisher=Rick Strahl
accessdate=2008-07-22] .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 [cite web
url=http://www.aspnetpro.com/opinion/2007/09/asp200709jg_o/asp200709jg_o.asp
title=Simplicity at Last
publisher=Jonathan Goodyear
accessdate=2008-07-22] .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 [cite web
url=http://netpl.blogspot.com/2007/06/aspnet-ajax-framework-contest.html
title=ASP.NET Ajax Framework Contest
publisher=Wiktor Zychla
accessdate=2007-06-28] .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.
References
External links
* [http://www.visualwebgui.com Visual WebGui] homepage
* [http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionID=047cffc1-986b-486e-b3e4-47a24db65e9f Visual Studio Gallery] VWG Silverlight page.
* [http://msdnmag.firstlightera.com/EN/Microsites/1/Gizmox/Home MSDN Related Partners]
* [http://www.codeplex.com/VWGSilverlight Codeplex] VWG over Silverlight project
* [http://sourceforge.net/projects/vwgsilverlight/ SourceForge] VWG Silverlight framework
* [http://weblogs.asp.net/visualwebgui/default.aspx ASP.NET Weblogs]
* [http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&Params=~CMTYDataSvcParams%5E~arg+Name%3D%22ID%22+Value%3D%221032374251%22%2F%5E~arg+Name%3D%22ProviderID%22+Value%3D%22A6B43178-497C-4225-BA42-DF595171F04C%22%2F%5E~arg+Name%3D%22lang%22+Value%3D%22en%22%2F%5E~arg+Name%3D%22cr%22+Value%3D%22US%22%2F%5E~sParams%5E~%2FsParams%5E~%2FCMTYDataSvcParams%5E Microsoft Webcasts] Live from Redmond
Wikimedia Foundation. 2010.