Web开发的新面孔

ZDNet软件频道 时间:2003-06-30 作者:ZDNet China |  我要评论()
本文关键词:
直到最近,我都不理解移动代码是怎样改变Web开发的方式的。在仔细观察它以后,我同意这样的说法:在将来五年内它会对Web程序进行一场革命。首先,让我们回顾一下过去,以理解移动代码意味着什么。
本文译自Builder.com,未经许可请勿转载直到最近,我都不理解移动代码是怎样改变Web开发的方式的。在仔细观察它以后,我同意这样的说法:在将来五年内它会对Web程序进行一场革命。首先,让我们回顾一下过去,以理解移动代码意味着什么。

在上世纪九十年代早期,Sun微系统公司引入了Java语言和运行时环境。这一革命性的技术带来了许多好处,包括逐位下载程序并且在浏览器窗口中或另外的程序窗口中运行它。这就是移动代码。

在我看来,真正的移动程序是不可能实现的,原因是Java虚拟机的存在。更糟的是,Java运行时环境并没有提供基础支持来允许终端用户决定下载的代码能做什么。那时,并没有Web服务,数据到服务器的通讯最好使用特别的格式。如今Sun匆忙地向Java虚拟机增加Web服务,但是微软的.NET已经抢占了先机。

我们绝大多数都使用过基于Java的聊天客户端程序,而这只是冰山一角。这些窗口上的“警告:Applet窗口”状态行令初学者和IT管理员都感到不安。在开发Web项目的时候,我经常觉得开发一个基于form的应用程序界面很简单,但是实施和维护却成为问题。

如今的许多Web开发资源都用来开发Web服务,提供应用功能,而不是提供程序界面。这样,任何想使用这些功能(并且愿意为它付费)的人可以开发自己的界面来使用这些Web服务。IT领导者通常认为商业伙伴是使用其Web服务的主要用户,他们调用这些服务来获取诸如报价、分类等信息。如今看来,这些IT领导者是正确的。

当.NET运行时环境存在于一般客户端机器上,会有大量的机会出现,包括从Web上下载给予form的引用程序。在.NET运行时环境认为是安全的操作的情况下,它的安全性限制多少与Java虚拟机有些类似。但是,.NET运行时环境提供了一种方法允许用户来决定代码可以做什么,即策略模板,可以用它为不同地域的源代码(例如Internet或Intranet)设置各自的安全策略。

代码访问安全性(CAS)被运行时强制执行,通过这种安全机制,只有执行安全操作的代码被允许运行——具有潜在危险性的操作根本不会被装载。为了克服Java虚拟机的本地存储问题,.NET为下载代码提供了单独的存储。这种单独存储只对下载代码的特殊部分和本地用户有效。再不会出现“警告:Applet窗口”了,它会很好地工作。

举个例子,假设一个在线目录应用程序,它提供丰富的交互式基于form的用户界面,并使用Web服务与源服务器进行通讯来发送和接收数据。该程序使用独立存储技术来缓存用户的偏好及设置等信息,但它除了执行本身的代码外并不尝试去做任何其它特殊的操作。这个程序在客户端通过提供一个到Web站点上*.exe程序的链接来运行。

一个有潜在恶意的程序,如试图读写注册表或执行客户端的任意代码的程序,是不能通过.NET的验证过程的。.NET通用语言运行时(CLR)会显示警告来通知用户,并拒绝运行该代码。这个警告告诉用户代码试图干什么,会引起怎样的漏洞,即使如此,该代码也没有合法的权限来运行。

目前,这种功能只适合用于Intranet的开发中。但是随着更多的消费者机器装入.NET CLR(CLR在Windows Service Pack中发布),它将会成为常规Web开发的一个选择。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134