This is the first article within a series of articles that explore the technological aspect of Visual WebGui's features, benefits and usage scenarios.
This article is a “General Overview” of the technology aspects of Visual WebGui which will be followed by a series of 10 detailed articles released each week for the next 10 weeks. The next articles which will explore Visual WebGui's technology by diving into each of the technological aspects and will be structured as following:
- Introduction – a general description of the explored aspect.
- Overview – a technological overview of the aspect
- Summary – Summary and further relevant considerations.
These are the different technological aspects of Visual WebGui which will be explored by the following articles:
Aspect 1 - Visual WebGui in Microsoft’s technologies stack
Technologically Visual WebGui can be best describes as an extension to ASP.NET for application development and deployment.
As such the best way to start over viewing the solution would be by exploring Visual WebGui position in Microsoft’s technologies stack.
Aspect 2 – Command level virtualization
Being a server centric architecture; Visual WebGui presents a unique mechanism of balancing between the server state and the client UI rendering state at any given point of time. This aspect is crucial in the path to understanding the following other aspects:
- Scalability and deployment economy
- Multiple Presentation Layers
Aspect 3 – Security
Visual WebGui presents the “Empty Client” model, a paradigm shift in which the client downloads a kernel of plain and static code which is responsible for further communication with the server. This concept is secured by design as the client code cannot control the server behavior under any circumstances.
Visual WebGui does not solve the entire issues spectrum of securing your applicative environment, however, by shifting the issue to more comfort zones which are the middleware communication between the client and the server and securing the server, the security problem becomes solvable, controllable and reach military grade easily.
Aspect 4 – Performance
Being a server centric architecture, Visual WebGui is an immediate “suspect” for being less responsive or for suffering from high latency. This suspicion is far from being true, on the contrary Visual WebGui has proved to be more responsive than pure client side solutions due to the fact that Visual WebGui extremely reduces the CPU usage on the server, optimizes the communication protocol between the client and the server to a degree never realized on web before, optimizes the UI rendering and leverages the client power when it can create a better responsive experience. With this mechanism Visual WebGui offers an optimal balance of communication between the server and the client.
Aspect 5 – Scalability and deployment economy
Visual WebGui is fully scalable and redundant across web farms due to a unique capability of enabling serialization of the entire state model into a floating state server (preferably cluster DB based state server).
A single IIS server can server between 200-400 concurrent users and even more since it reduces the CPU usage dramatically.
Aspect 6 – Multiple Presentation Layers
The outcome of Visual WebGui architecture is a generic object model that is completely separated from UI rendering. This architecture which is often described as decoupled presentation layer provides the ability to render the UI and consume the application practically from any device which can receive and send XML.
The application itself runs on the server and acts on objects containing only metadata and data and the client only renders the UI as reflected from the current application state on the server.
Aspect 7 – WinForms API Development and Migration
The fact that Visual WebGui flattens web development to a single layer, made it possible to select the most productive and intuitive WYSIWYG development paradigm which is WinForms. Visual WebGui mimics WinForms API in order to provide the entire toolset available for desktop application development including Data-Binding, Layout options (anchoring, docking etc.) and a visual WYSIWYG designer.
Due to the similarity of Visual WebGui API to that of WinForms API, it is quite a straightforward and natural process to transform any native WinForms Application to Visual WebGui and by that provide an application which can be consumed either as a desktop application or a plain web application.
Aspect 8 – Extensibility and Custom Controls
Being pure web architecture, Visual WebGui utilizes the web server and client technologies underneath; therefore, it is possible to create new controls based on the same concepts and set of tools in Visual WebGui.
The various extensibility options will be explored further in this document.
Aspect 9 – Visual Designer Extendibility
Based on the fact that Visual WebGui uses WinForms designer to develop generic web applications, it also provides designable controls. Not only the controls are inheritable and extensible but their designer behavior can be customized and new designer behaviors can be created for custom controls.
Aspect 10 – Technical aspects in cloud computing scenarios
Being a highly optimized server centric architecture; Visual WebGui has high value and support the model of cloud computing scenarios in terms of compatibility and considerations.
More information can be found on Visual WebGui's website.