This is the first article within a series of articles that explore the technological aspect of Visual WebGui's RIA Platform 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:
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 Tool
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.
This information can also be found on the Visual WebGui platform technology section.
A new Technology section was launched yesterday on the visualwebgui.com website which explores the basic technology aspects presented by the Visual WebGui solution.
The first subject “What is Visual WebGui?” provides the initial background on Visual WebGui, its features, benefit and usage scenarios. Then there is a deep dive into the following technological aspects of Visual WebGui:
More than 1,700 users attempted to break into the Visual WebGui pipeline unsuccessfully during the $10,000 Security Challenge that ended this month after airing for over 3 months.
The contest offered $10,000 prize to anyone who could break into the Visual WebGui pipeline via the Visual WebGui NOC web application and required participants to provide a reproducible pathway into the Visual WebGui pipeline in order to claim the prize. Despite by more than 1,700 break-in attempts, Visual WebGui was not hacked and the prize remains unclaimed. The Visual WebGui "Empty Client" architecture is secure by design and provides bullet-proof security to AJAX and Silverlight applications. The Empty Client approach means that the entire application flow, UI logic, and validations are developed and processed on the server and virtualized on the browser while the web browser serves as a “display” for the output and a “receptor” for user input. Thus, only essential UI data is sent to the client, which includes no applicative or sensitive data, preventing the break in and theft of confidential information on the server.
Navot Peled, CEO and founder of Gizmox commented: "The fact that no one was able to successfully hack into the Visual WebGui pipeline shows that Rich Internet Applications developed with Visual WebGui are inherently safe and secure by design... As the Empty Client name indicates, the client holds no data or logic, and every action the client wants to take must be authorized by the server first. Not only does this significantly increase security, but the Empty Client design allows events to be raised on the server for every client action while also remaining flexible enough to make web applications responsive, scalable and customizable, enhancing the end-user experience."
Visual WebGui Studio Suite enables the building of enterprise-class rich internet applications with two open source products: The Professional Studio that offers subscribers unlimited technical support with enterprise-grade warranty and service level agreement (SLA) which is available for free download and the free Express Studio allowing absolutely free web development coupled with VS2008 Express Edition.
The new Professional Studio Suite also offers enhanced developer experience (DX), and simplifies all aspects of web development to a degree never realized in web development before. Apart from the VWG designer, the feature list also includes complete integration into Visual Studio & ASP.NET, the complete Windows Forms Controls toolkit, 3rd party controls wrapper wizard and more. All these enable you to leverage existing skill sets, software assets, and infrastructure providing an overall faster time to market and reduced development costs.
In addition, enterprise grade scalability and redundancy are available with server extensions and new enterprise-class services, such as prototyping, consulting, hot-fixes and more are available in order to optimize the development experience. Visual WebGui’s commercial Studio Suite will offer commercial deployments at absolutely no additional cost.
DataGridView bi-directional data-binding support added
Top-level property for a Form control implemented same as WinForms
Major Visual Studio Integration stabilizations.
Major Designer stabilizations.
Presentation layer selector added.
Ordering Tree-View functionality added
VB project templates set completed (as in C#)
Fully functional ImageList capabilities added
A large number of bug fixes and adjustments towards WinForms API and runtime behavior also included.
Free Download here.
Gizmox announces the release of version 6.2.3 of its SDK. This is a further stabilization and enhancement of the revolutionary 6.2 SDK which introduced the Visual WebGui Developer Experience with full Visual Studio integrationin, consolidate installation, incorporation of both the DHTML and the Silverlight in one package, and the ASP.NET wrapper wizard.
The new 6.2.3 SDK solves some issues that contribute to a smoother development experience. These are some of the issues solved in this version:
VWG-3493 - Theme registration and selection was changed. The developer can select one theme or none. An error provider was added to indicate theme rows with errors. These rows will be saved and can be selected as the current theme.
VWG-3484 - Silverlight theme registration bug fixed.
VWG-3483 - TextBox Max length property bug fixed. Now you can edit part of the text by selecting it after it reached the max length size.
VWG-3402 - RibbonBar - DropDownBox showing a js alert popup with the menu item name fixed.
VWG-3385 - Control drag image was added to all the themes.
VWG-3383 - WGLables.GetLocalizedMonthString null value protection on CurrentUICulture added.
VWG-3389 - ASP.NET Control Wrapper menu item missing problem fixed.
VWG-3481 - DataGridViewComboBoxColumn populates items when it is data binded problem fix.
VWG-3464 - Accessing the scalable service was separated to a different method.
VWG-3359 - DataGridView population problem on form load fixed.
VWG-3460 - DataGridView vertical scrollbar where shown even if not required.
VWG-3463 - Web_OnClick.objSource was not cleaned after click is being raised.
VWG-3378 - Form Box result was null even when value added.
VWG-3367 - FormBox Form property was not saved in Viewstate.
VWG-3348 - SearchTextBox Text property was not shown when set by code.
VWG-3366 - FormBox Form property can now handel string.empty.
VWG-3327 - Crystal report after wrapping had no properties in design time.
VWG-3466 - Double click and click events on datagridview fixed.
The new SDK is available for Download.
The following is the first part of a 3 parts series of articles ppublished on VisualWebGui website describing the various available migration options of desktop/smart client applications to the web using Visual WebGui migration tool.
In order to discuss the migration process of legacy desktop applications to the web, we should first agree on 3 different types of desktop applications:
- WinForms based desktop application (C#/VB.NET). The UI layer is coded using .NET languages – the business can be .NET, COM+ or any other interop.
- VB 6.0 based applications. The UI layer is coded with VB 6.0.
- Other desktop or smart client technologies (C++ MFC/ATL, Delphi, Java etc). Any other smart client technology based applications.
WinForms based desktop applications to Web
Normally, without Visual WebGui the migration process of a WinForms desktop application to the web will require a full re-engineering of the UI layer to fit the web architecture and capabilities.
If we take WinForms migration to ASP.NET for example using any AJAX 3rd party controls in order to provide a rich UI experience, we will have to consider:
- Entirely new API.
- Entirely new update approach.
- Entirely new look & feel – or work hard to customize the UI to look the same.
- Lighten the amount of data transferred to the client and presented at any given time to avoid severe latency.
- Compromise on features list due to the web limitations.
- Handling security holes created as a result of opening services consumed by client side AJAX and transferring business logics to the client.
Visual WebGui SDK is fully integrated with Visual Studio and provides the exact same API and set of tools/capabilities which are provided out-of-the-box with WinForms 1.0 and 2.0. This fact enables the native capability of simply copying any existing WinForms source code to a VWG project and providing a fully functional equivalent web application.
The basic 3 steps of migration (view a walkthrough tutorial):
- Open a new Visual WebGui application.
- Copy the code from your WinForms project into this new web application.
- Replace any reference to WinForms API namespace (“System.Windows.Forms”) within the code to Visual WebGui API reference (“Gizmox.WebGUI.Forms”).
Any standard WinForms application which is using the 58 WinForms out-of-the-box controls will then compile and execute as a plain web application.
The outcome of this short process is an ASP.NET based solution in terms of deployment and runtime and has the following properties:
- Deployment is copy & paste equivalent to an ASP.NET web site.
- Server infrastructure requires an IIS and .NET CLR only.
- The application can be consumed from any plain browser - no installation is made on the client.
- Minor static and cached footprint on the client ~200kb of plain JS and HTML code due to the Empty Client concept.
- Support for multiple presentation layers with the same code base (DHTML/Silverlight or Smart Client).
- Highly secured due to the Empty Client concept.
Considerations & Exceptions
There are 3 major setbacks you might have on the process which you can quantify in advance and estimate the amount of work that has to be done in order to migrate your application:
- Minor differences between the VWG API and WinForms which are mainly caused by architecture differences.
- The amount of 3rd party controls that are used in your application. This section describes a situation of using some non-WinForms out-of-the-box controls (for example Infragistics or DevExpress controls etc). In those cases you can select the most suitable solution from the following 3 options:
- Choose a similar control from the WinForms out-of-the-box, adjust your code to use it and then perform the migration process.
- Select an equivalent 3rd party ASP.NET control (Infragistics, Telerik, DevExpress etc.) which provides the same functionality, wrap it by a click of a button in VWG and adjust your code to use it.
- Write your own VWG custom control which will perfectly suit your needs and then adjust your code after the migration process to use this control.
- Thread safety – since a WinForms application can contain static members which are accessible to a single user, you should now consider one of the following:
- Replacing those static members to a synchronized multi-thread safe data structures.
- Lock critical read/write sections to protect concurrent multi user access.
- Remove the statics and find instance or DB based solutions.
- Memory load – in a desktop application, there might be places when the original consideration of the amount of memory in use was based on the assumption that the executing machine is local. therefore, many items are loaded to memory simultaneously without limitation.
Now, on a shared memory environment, when the server does the heavy lifting, the amount of memory consumed by each user will set the number of concurrent users that can be served by each server.
The following steps are recommended:
- Consider loading items to memory on demand (keep only the headers and the identifiers in memory).
- Remove any large objects read to memory – for example, don’t save binary objects to memory, instead write the binary to the response stream directly to the client.
- Prefer DB based paging on entire prefaces and memory based paging. Visual WebGui provides mechanisms to enable it easily.
Migration of any WinForms application to the web using Visual WebGui has the following advantages:
- In 3 simple steps you will be able to get very close to a working web application.
- The effort you have to make in order to accomplish a fully functional web application is measurable.
- The application can keep using the existing BL and DL layers, and only the UI is either migrated automatically or adjusted.
or to view the tutorial:
How to Migrate WinForms to the Web
You may have used Aptana's IDE for Ajax development. The IDE is a very good one and it just got better for us PHP developers. Aptana has announced the release of a PHP plugin for their IDE.
Below is an excerpt from the announcement.
PHP development and deployment just got way easier. Today, we're pleased to announce the 1.0 availability of the Aptana PHP development environment. It's got all the things you'd expect from a PHP IDE, plus all the Ajax tooling and other power tools from Aptana Studio. Combine that with the integrated PHP app hosting, staging and management features in Aptana Cloud and you've got an end-to-end PHP development and deployment environment with unprecedented ease of use.
You can read the full post here.
It's always good to see one of my favorite languages get more support in tools that many of us already use. Thanks Aptana, you gave me something to play with this weekend.
The 6.2.2 release provides compatibility to MS Silverlight RC0/RTW, and now supports development & deployment of web applications with the latest Silverlight technology. As stated before, Microsoft has released Silverlight 2 with weak backwards compatibility to previous Silverlight versions, which resulted in some presentation issues with the Silverlight layer that are now solved.
The new release also includes the Visual WebGui WinForms-like designer allowing simple and cost-effective Web development, and the new ASP.NET Control wrapper wizard introduced earlier this month.
Version 6.2.2 provides further stabilization to 6.2 which brought new standards in developer experience. for more information please read the official announcement.
The new Visual WebGui SDK is now available for download.