在本世纪初,随着Web应用开发的需求日益增长,开发者们开始寻求一种类似于桌面应用开发的体验。Windows Forms作为这种体验的模型,提供了一个有状态的环境,与无状态的Web开发形成对比。在有状态的环境中,开发者可以在一个结构化、定义明确且可视化的环境中工作,而在无状态的环境中,开发者则需要在更加流动的环境中工作,并且需要自己做出关键的决策和选择。无状态环境更加复杂且风险更高。Windows Forms的有状态开发体验大大节省了时间,并且由于成熟的可视化设计器,显著降低了学习曲线,帮助开发者快速交付业务应用。对于业务应用开发来说,可视化设计器不是一个可有可无的特性,而是一个必须具备的特性。它提供了快速设计数据输入和数据展示视图的能力,从而显著帮助构建这类应用,让开发者不必纠结于像素和布局,而是专注于逻辑和算法。
Visual Basic的演变以及随后的Windows Forms环境在数据驱动应用中达到了一定的饱和度,从而产生了最高效的业务应用。然而,大多数ASP.NET开发者会同意,ASP.NET的无状态可视化设计器对于数据输入或数据展示布局设计几乎毫无用处,对于几乎所有其他用途也是如此。ASP.NET作为一个多层次和无状态的解决方案,并不能真正提供Windows Forms那样的Web Forms开发体验。它缺乏依赖环境元素(如屏幕上的其他控件)的基本能力,因此需要开发者提供依赖于开发者技能的创造性解决方案,无论是在客户端还是在服务器端。例如,在无状态环境中,当开发者编写一行代码来描述某些逻辑时,他们应该:
2007年,微软推出了Silverlight。Silverlight再次针对Web Forms开发体验,并且在复制Windows Forms体验方面相当成功,但它仍然有所欠缺。虽然它在客户端提供了一个有状态的环境,让开发者处理的世界变得不那么复杂,只有两层代码(客户端和服务器),但它缺乏精确的所见即所得设计器。在当今时代,很明显,视觉吸引力对于给枯燥的数据驱动的灰色世界增添色彩是很重要的,然而,过度使用动画和过于复杂的控件在业务生产力方面是低效的。因此,虽然提供现代Web 2.0的外观和感觉很重要,但界限是明确定义的。
Silverlight引入了一个非常灵活的框架,可以提供任何类型的视觉吸引力和动画,这非常强大,但同时也引入了一个非常复杂的对象模型结构,导致了以下副作用:
2007年,当Silverlight被推出时,一家名为Gizmox的小公司推出了Visual WebGui,它也针对Web Forms开发体验,但角度完全不同。
VWG是一个独家解决方案,它在标准Web服务器或专用应用程序服务器上虚拟化桌面应用程序代码。它提供了最佳的服务器-客户端负载平衡,用户界面在客户端作为纯丰富的HTML / HTML5呈现。客户端-服务器通信是通过VWG专利待定的HTTP/XML基础协议进行的,这是可用的最薄的互联网协议。基准测试证明,与其他RIA解决方案相比,VWG协议消耗的服务器端CPU资源低至50%,带宽低至10%。结果是丰富、高度响应的用户界面,以及在相同的CPU/带宽资源上至少可以服务两倍用户的能力。VWG在服务器场中扩展,基准测试表明它比标准的Web解决方案(如ASP.NET)更具可扩展性。
基于这种架构,VWG能够通过提供纯Windows Forms开发范式来复制Web Forms开发体验。解释是直接的。能够在Web服务器上虚拟化桌面代码,使VWG能够为开发Web提供桌面开发范式。为了使端到端的体验无缝,VWG抽象了大部分Web和Ajax的复杂性,并且由基础设施本身来处理。
Visual WebGui实现了整个环境条件,使开发者能够开发扩展的Windows Forms,并在标准Web服务器上部署多平台前端应用。
虽然Silverlight只针对Windows Mobile手机,但VWG针对任何支持HTML4或HTML5的移动浏览器。开发范式扩展了经典的Windows Forms开发,用于选择的表单因子,一组指定的移动控件和原生移动流程的能力。
另一个不同的优势是能够将VB6和Windows Forms应用程序迁移到VWG和Web/移动或云。通过模仿Windows Forms API并捕获整个开发范式(当然,包括成熟且经过验证的可视化设计器),VWG自然迁移了Windows Forms代码,并显著缩短了VB6应用程序迁移到原生Web部署的路径。此外,项目的当前维护人力资源的迁移非常容易,保留了相同的工作方法与升级的应用程序。