Introduction
Web Forms is a term that was coined by Microsoft with the introduction of ASP.NET back in the beginning of the former decade. It represents an approach whereas developers programs Web applications the same way they program desktop applications. Windows Forms was the model; it featured stateful environment versus the stateless web development. While with stateful environment developers work within a structured, well-defined and visual environment in a stateless environment developers work in a fluid environment and have to take critical decisions and choices by themselves. The stateless environment is much more complex and risky. Windows Form's stateful development experience saves a lot of time and cuts the learning curve dramatically due to a mature visual designer that really helps developers deliver business applications rapidly. For business applications development, a visual designer is not a nice-to-have feature but rather a must-have feature. It provides the ability to rapidly design data entry and data presentation views. Thus dramatically helps building this type of applications by freeing the developer from having to struggle with the pixels and layouts and helps focusing on the logic and the algorithms instead. Visual Basic evolution and then the Windows Forms environment have reached a certain level of saturation in data driven applications that resulted in the most productive business applications.
Most of the ASP.NET developers will agree that the stateless ASP.NET visual designer is completely useless for data-entry or data presentation layouts design as well as for almost all other usages.
ASP.NET being a multi-layered and stateless solution could not really provide the real Web Forms development experience that was achievable with a single layered stateful Frameworks such as Windows Forms. It lacked the basic ability to rely on environmental elements such as other controls on the screen on each request and therefore requires the developer to provide creative solutions that are developers’ skills dependent, both on the client and on the server. For instance, in stateless environments, when a developer writes a line of code that describes certain logic, they should:
- Make sure that all of the environmental arguments required for the calculation exist in the current context (client, server and most important current state). In most of the cases the developer will have to write code to establish the required environment in order to perform the logic.
- In any interaction with the controls currently shown on the screen, the developer should use server code, communication channels (such as AJAX) and commonly some JavaScript code per specific control.
- Make a decision whether a certain logic should be performed on the server or on the client and act accordingly.
In 2007 Microsoft introduced Silverlight. Silverlight targets yet once again the Web Forms development experience and it is quite successful in reproducing the Windows Forms experience, but it still lacks. While providing a stateful environment on the client leaving the developer with a much less complicated world to handle, with only two layers of code (client and server), it lacks the accurate WYSIWYG designer. It is most clear in our days that eye candies are important to colorize a boring data driven gray world, however, extreme usage of animations and too complex controls are inefficient in terms of business productivity. Therefore, while it is important to provide a modern Web 2.0 look and feel, the boundaries are well defined.
Silverlight introduces a very flexible framework to provide any type of eye candies and animations which is very powerful, but at the same time it introduces a very complex object-model structure that causes the following side effects:
- A stiff learning curve for Microsoft core developers.
- Inability to represent a reliable designer to speed-up development
In 2007, when Silverlight was introduced a small company by the name of Gizmox introduced Visual WebGui that also targets the Web Forms development experience but from a different angle all together.
So, what is Visual WebGui?
VWG is an exclusive solution that virtualizes desktop application code, atop standard Web server or dedicated application server. It offers best server-client load balancing with a UI (user interface) that is being rendered on the client as plain rich HTML / HTML5. Client-Server communication is through VWG patent pending HTTP/XML based protocol, which is the thinnest available internet protocol. Benchmarks prove that VWG protocol consumes as low as 50% server side CPU resources compared to other RIA solutions, and as low as 10% bandwidth. The result is rich, highly responsive UI and the ability to serve at least twice the amount of users on the same CPU / Bandwidth resources. VWG scales up over server farms and benchmarks indicate that it is more scalable than standard Web solutions such as ASP.NET.
Based on this architecture VWG was able to reproduce the Web Forms development experience by offering pure Window Forms development paradigm for Web. The explanation is straight forward. Being able to virtualize desktop code over Web server enables VWG to offer desktop development paradigm for developing Web. In order to make the end-to-end experience seamless, VWG abstracted away most of the Web and Ajax complexities and it is being taken care of by the infrastructure itself.
To what extent VWG reproduces the Windows Forms development experience on Web?
Visual WebGui implements the entire environmental conditions for a developer to develop extended Windows Forms and get a multi-platform frontend application deployed on a standard web server.
Above 97% of the Windows Forms’ APIs are implemented within VWG (The missing 3% are non Web compliant API), as well as a large number of extensions which target both better web compliance (such as paging and virtual scrolling). Windows Forms’ design paradigms are completely captured and enhanced to support web layouts.
Silverlight was repurposed by Microsoft to mobile, does VWG support mobile development?
While Silverlight targets Windows Mobile phones only, VWG targets any mobile browser with HTML4 or HTML5 support. The development paradigm extends the classic Windows Forms development for Form Factor of choice, a set of designated Mobile controls and native Mobile flows’ capabilities.
And yet another differentiating benefit is the ability to migrate VB6 and Windows Forms applications to VWG and Web / Mobile or Cloud
By mimicking Windows Forms API and capturing the development paradigm as a whole (including, of course, the mature and proven visual designer), VWG naturally migrates Windows Forms code, and dramatically shortens the path for VB6 applications migration to native Web deployment. Furthermore, the migration of the current maintenance human resource of projects is very easy, preserving the same methodologies of work with the upgraded app.
Category |
Parameter |
ASP.NET |
Silverlight |
VWG |
Development |
Coding Languages (required skills) |
.NET (VB, C#) + JavaScript + HTML + CSS |
.NET (VB, C#) |
.NET (VB, C#) |
Dev. Methodology |
OOP + Declarative + Script |
OOP + Declarative |
OOP only |
Code Layers |
Client, Ajax, Server |
Client, Server |
Single Layer |
Visual Designer |
Poor |
Basic Level |
Full WYSIWYG |
Complex Data-Binding (i.e. bi-directional, master details etc) |
Complex |
Fair |
Easy |
Custom Controls Dev. |
Complex |
Easy(.NET) |
Fair (jQuery) |
Graphic designer tasks |
Complex |
Easy |
Fair (Theme designer) |
Multi-forms and windows management |
Complex |
Fair |
Easy |
Streaming, Media |
Fair |
Easy |
Fair |
Tasks |
Gaming(intensive animations and real time interactivity) |
Complex |
Easy |
Incompatible |
Business Applications, Data-centric usages |
Challenging |
Fair |
Easy, Best fit |
Scrollable websites |
Easy, Best fit |
Fair |
Complex |
Multi-platform support |
Any browser including Mobile * requires additional effort |
Only browsers with SL support, and Mobile Windows |
Any browser including Mobile * no additional effort required |
Runtime |
Data Performance(performance of data manipulation) |
Poor to Fair(Highly dependent on the developer’s skills) |
Fair(Highly dependent on the ddeveloper’s skills) |
Best* Independent from the developer’s skills |
Data Security |
Challenging |
Challenging |
Built-in |
IP Security |
Mostly Secured * except for client side scripting pieces of code |
In-secure(assemblies downloaded to the client) |
Secured-by-design |
Conclusion
Evaluating the development paradigms’ differences, the suitability with various tasks and the runtime aspects, the conclusion is pretty obvious:
While ASP.NET is the best choice for scrollable websites (i.e. ecommerce and corporate sides) and Silverlight is the best choice for media, streaming and gaming purposes, VWG is the best choice for data centric, line of business applications.
VWG leverages the most mature and proven set of tools for business applications’ development, the real Web Forms that developers expected to get from Microsoft a decade ago. Furthermore, VWG Web Forms paradigm produces a unique runtime which provides the performance, the richness and the security level that are so crucial for this type of applications and, of course, accessibility anywhere and from any device.
Free trial and free downloads of VWG DevTools are available here >