技术开发 频道

WebForm:毒药还是利器?


六、展望微软未来web开发技术
从Windows DNA到.NET框架
    .NET框架是微软公司继Windows DNA以来的新的开发平台。基于这个新的框架,以前在DNA中暴露出来的缺陷基本得到全面解决。另一方面,.NET并没有完全抛弃WINDOWS DNA,实际上它是WINDOWS DNA的继续和发展。如今的.NET不仅有一套明确的技术规范,还提供了一系列的支持产品,例如编译器、类库甚至最终的用户程序。如Windows.NET是操作系统平台、.NET框架是运行环境、.NET企业服务器为产品服务器、Visual Studio.NET为编程平台。

    .NET框架是以一种类似于Java系统的虚拟机方式运行和管理的编程平台,通过公共语言运行时刻为基础,支持多种语言(C#、VB.NET、C++、Python 等)的开发。下图2展示了.NET的整体框架结构。


    图2—NET体系结构。

    .NET框架具有两个主要组件:公共语言运行库和.NET框架类库。公共语言运行库是.NET框架的基础。我们可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或GUI应用程序,当然也包括基于ASP.NET所提供的最新的应用程序(如Web窗体和XML Web服务)。

    .NET框架可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET框架不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。

    如今,与Windows Vista绑定发行的.NET框架3.0框架把侧重点放在了进一步拓宽.NET方案的应用范围上。下图3展示了.NET 3.0框架的栈式框架结构。

        图3—NET 3.0框架结构。

    从总体来看,.NET 3.0框架并没有改进现有技术,而是引入了四种适应未来发展的基本新技术:Windows描述基础(WPF)、Windows通信基础(WCF)、Windows工作流基础(WWF)、Windows CardSpace(WCS)。

    这其中的每一种技术都将成为开发者基于新一代操作系统及.NET平台用来实施新方案的基础。
    其中,WPF无可争辩地成为四个新式基础类集中最为重要的。这主要是由于两点:一致性WPF方案;新式的名为XAML的XML标准编程语言。

    首先,WPF为基于ASP.NET框架进行Web开发提供了一种一致的方案来构建编程模型,并且支持使用更为丰富的控件和设计技术来开发Windows程序。一个开发出来的单个WPF程序最终能够被发行到桌面、Web以及智能设备等多种环境下。

    其次,WPF中创新性引入了一种名为XAML的XML标准编程语言。开发人员利用它能够控制对象的布局。后面我们提到的Silverlight技术正是基于这一标准开发而成的。从表面上看,这种技术似乎与Flash极为相似,其实二者之间还是存在相当的不同。Flash是一个成熟的、可控制的、独立于操作系统的封闭式框架。而相比之下,Silverlight允许你与操作系统及其它.NET框架技术进行集成。显然,Silverlight的出现很可能会对Flash构成极大的威胁。

    在这个“网络即是一切”的社会里,Windows通信基础(WCF)显得极为重要。这个编程模型把web服务、.NET远程技术、分布式事务和消息队列统一到单个面向服务的编程模型中,从而实现真正意义上的分布式计算。

    Windows工作流基础(WWF)是一种定义、执行和管理工作流的微软技术。工作流由一系列的活动组成;开发者能够编写他们自己的域特定的活动,然后把它们应用于工作流中。.NET框架3.0/Windows工作流基础还提供了一组涉及若干控制流构建方面的通用目的的活动。值得注意的是,这个框架了还包括了许多Visual Studio 2005扩展(可视化工作流设计器、支持用户调试工作流的可视化调试器、工作流编译系统)。总之,借助于WWF,新一代应用程序开发过程的流程控制方面将得到极大的改善。
最后,Windows CardSpace(WCS)为程序开发中一直令人头疼的认证问题上提供了一种新的解决方案。WCS有望改变你到一个应用程序(基于Web、手机或桌面程序)的认证方式,从而极有助于保护用户的私有数据。

    另外,LINQ(Language Integrated Query)项目也是一项值得关注的技术。它是一个为了能够让开发者更容易地访问数据的.Net框架工具集,是C#和Visual Basic语言集合的延伸。据微软人士析,这个项目将为查询XML、对象、相关数据和其它数据类型提供一个统一的程序设计模型。

    此外,即将登场的C#3.0也应引起我们的关注。这个项目中将进一步引入大量其他语言的特性,特别是完全的closure支持、泛型、var、linq等,这些都是动态语言之所以强过传统C++,Java,C#早期版本之处。界时,C# 3.0将可作为全功能语言完全可以与PHP、Ruby等动态语言对抗,而且仍保持原有的编译期强类型的优势。

ASP.NET AJAX框架
    随着互联网的迅速普及,人们对富客户端功能的需求日益迫切,特别是Jesse-James Garrett于2005初正式提出的“AJAX”的出现简直成为这一需求的强兴奋剂。具有讽刺意味的是,设计之初并没有考虑到这一势态的ASP.NET 2.0在刚刚出世之后就陷入被淘汰的边缘。于是,微软于2005年夏天着手开发自己的代号为“ATLAS”的AJAX方案,并于2007年1月份正式推出并更名为ASP.NET AJAX 1.0,其官方支持网站为http://ajax.asp.net

ASP.NET AJAX的目标在于:
 构建一套完整的Web用户体验框架—提供一组丰富的内置组件,并允许开发者方便地依照自己的需要加以扩展;因此,对于那些熟悉JavaScript脚本语言的开发者将极大地提高程序的可维护性和可重用性。
 与ASP.NET 2.0编程模型有机集成—提供一种端对端的解决方案,使得MS AJAX应用程序能够非常容易地访问服务器端ASP.NET和.NET框架中现有的编程模型。
 自由选择开发模型—实际开发中,开发人员可以根据需要选择以服务器端为中心还是以客户端为中心作为应用程序的基本开发模型。
 完全跨平台并基于标准—兼容大多数浏览器和平台,它实现的MS AJAX脚本框架能够适用于任何流行的Web服务器。
 零客户端安装—运行基于MS AJAX开发的应用程序时,不需要客户端安装任何内容。MS AJAX的“客户端”由一系列从浏览器下载到本地的JavaScript文件组成。

 此外,MS AJAX框架还可以应用于PHP及ColdFusion等Web开发环境中。
    从总体上看,整个ASP.NET AJAX框架被划分为如下三个模块:
1、ASP.NET AJAX。这一部分是ASP.NET AJAX框架的核心部分,包括了核心AJAX类型系统,网络协议层,组件模型,扩展器基类,以及与ASP.NET集成的服务器端功能。

2、ASP.NET AJAX CTP。ASP.NET AJAX社区支持的“增值”CTP部分,包括了以前各个Atlas CTP版本包含的,但并不在完全支持的“核心”1.0版本内的额外的高级特性。微软的最终目标是,通过用户进一步的试用与反馈,逐步将其中稳定的部分增加到核心模块中去。

3、ASP.NET AJAX Control Toolkit。包含了基于ASP.NET AJAX 1.0版“核心”版本的大量(还在继续增加)的功能极强的免费AJAX控件。它是一个开源项目,由微软和非微软开发人员共同开发维护,主要支持站点是http://www.CodePlex.com。
总的来看,MS AJAX的整体框架目前已经基本成熟,但是在许多方面还需要作进一步改进。然而,ASP.NET AJAX作为ASP.NET最重要的客户端补充框架的及时出现,使二者珠联璧合,相互辉映,从而使微软的Web解决方案上下贯通、趋于完美。由此不难想象,在ASP.NET的下一个版本正式出笼时ASP.NET AJAX将被正式吸收进去。

Silverlight技术
    Silverlight最早亮相于2005年的秋季,当时它使用的还是开发代码“Windows Presentation Foundation Everywhere(WPF/e)”。今年4月,微软为其取了现在的“Silverlight”之名,接着在拉斯维加斯NAB展会上,正式高调发布这个新的跨平台网络媒体解决方案,又在稍晚的MIX07展会上对Silverlight进行详细介绍,并宣布了其开源的打算。当前最新版本为Microsoft Silverlight 1.1 Alpha。

    Silverlight是一个跨浏览器、跨平台的插件,旨在为网络带来下一代基于.NET的媒体体验和丰富的交互式应用程序。Silverlight为开发者提供了灵活的编程模型(图4),支持AJAX,VB,C#,Python,Ruby等语言,并集成到现有的网络应用程序中。Silverlight可以对运行在Mac或Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。

        图4—Silverlight框架简单示意图。
    如今的Silverlight能够与Flash一样作为浏览器插件工作,同样能显示矢量图形、动画和视频,可以运行在多种操作系统甚至移动设备上。于是,人们把其与Flash联系在一起、进行各种比较,甚至称其为“Flash杀手”。

    一方面,Silverlight不仅支持高清晰的录像文件的展示,可以让中小开发者迅速而可靠地交付庞大和高清晰的视频而无需花费大量成本,并且在很多方面较之Flash有更佳的性能,比如与AJAX结合更紧密、更容易动态生成、开发工具集成度高等,而它比Flash更强的最关键原因在于,Silverlight应用程序是以一种叫做XAML的本文标识语言传递到浏览器的,当用户登录站点时不需要进行大量的数据交换传输。诸如Google之类的搜索引擎可以扫描抓取XAML,却无法对Flash应用程序有较好的抓取支持。
另一方面,在一个大量使用Flash的站点中,开发者和设计者往往需要花费额外的工作来使它们的站点对搜索引擎更加友好,但是实际的效果并不理想。于是,这些开发人员很可能会转向高性能、同样跨浏览器和平台、小成本并具有良好的继承工具支持的Silverlight。

    此外,Flash使用的是ActionScript的脚本进行编程,而真正熟悉掌握这项技术的人员并不多。相比之下,数不胜数的精通VB,C#,Python等的程序员无需专门的学习就可以操控Silverlight。他们可以使用强大的Visual Studio codename “Orcas” Beta1中的Expression Studio进行轻松地设计、编译和发布Silverlight应用程序。

    最后,还有一点值得我们关注的是:Silverlight以开源形式面向开发社团,必将大大促进Silverlight技术的发展与成熟。

小结
    微软以其垄断技术曾经和正在“得罪”多少人?这一点上,优秀的轻量级Web开发动态语言“后起”之秀—Ruby也曾因出手于“帝国”而一度让众君敬而远之。但作为技术,轻率地贬低ASP.NET 2.0是毫无道理的。ASP.NET 2.0的确是划时代的优秀的重量级Web开发工具,当然它也决不会是仅凭“短短的几日”所能拿下的。因此想进入Web开发领域,对于工具的慎重选择也显得尤为重要,是仅满足于眼前需要,还是立足于长远,不可统一定论。但无论如何,如今局势已逐渐明朗:Web应用将一步步取代桌面应用并最终占为主流。

   最后,因本人非ASP.NET老手,仅是凭借几段文字胡乱发表了一下自己就webform的一点意见。因此,如果惹烦了哪位,还请多多海涵。
0
相关文章