微软.NET平台主管谈Silverlight企业级开发[z]
在这个里程碑式的夏天,微软正式发布了Silverlight 3,这个迅速发展的媒体客户端/丰富交互式应用开发平台的最新版本。 在最新的版本中,Silverlight增加了外部浏览器的功能,观察人士说,现在Silverlight 3可以同无处不在的Adobe Flash/AIR技术进行真正的竞争了。 Scott Guthrie是微软.NET开发平台副总裁。在这篇访谈中,Guthrie深入回答了人们广泛关心地问题,其中包括如何排除Silverlight应用中的故障、数据访问层中.NET RIA服务的作用、Silverlight的安全模式,以及其它相关话题。 为什么企业开发者要关心Silverlight 3 ?我们看到一个日益增长的趋势,人们希望能基于Web来部署应用程序。换言之,他们只想要一个成本低的单一客户端,但同时又能提供传统的基于桌面的应用,从而提高终端用户的工作效率。我想Silverlight就是这样一个有趣的是技术产品,它结合了基于Web的TCO与终端用户的所有需要,并且它是一个单一的客户端应用程序。 你能指出这个版本中的对企业有吸引力的某个特定改变吗?比如可视化数据的显示和交互——相对于VB 6、WinForms、或传统的企业生产线封装形式,Silverlight 3提供的丰富功能大大超过人们的想象。在Sliverlight3中有大约100个控件,当然它们比过去的版本丰富了很多,从中你就可以体会到用户使用效益的提高。Sliverlight3拥有丰富的应用程序接口,各式各样的用户界面控制,以及多种形式的网络支持,它可以提供一切你想要的服务。这样作为开发人员的你,就可以更加专注于您的事务。 如果您不得不指出Silverlight 3中一个其它类似软件无法竞争的特性,那会是什么?某些特定的企业可以利用Silverlight 3编写.NET代码——如服务器端、中间层、浏览器内部客户端、得到基于Web的部署——这是其他类似软件所具备的。看看Ajax,你会使用这个阻抗不匹配(impedance mismatch)的语言。再看一下Adobe的Flash和Flex,您可能会在服务器上使用.NET或Java,因为您不用再去匹配它。只需做一次对使用规则的确认,一次验证逻辑,它就可以同时在客户端和服务器运行,然后在任何类型的设备或操作系统上都可以使用这些客户端。而现在它已经开始影响企业的生产力了。这就是Silverlight的承诺,.NET的功能无处不在。我们听到了来自企业开发者的忧虑,他们说Silverlight的安全沙箱限制了Silverlight在企业的应用服务/内联网中的应用。微软对互联网安全区都做了哪些限制?当您运行Silverlight中的客户端代码时,默认情况下,代码限制访问您的文件系统或执行任何可能损害您的计算机的动作。对基于 Internet的应用服务来说,这是至关重要的。您不希望访问未经您许可的网站并让它们接触您的文件。因此,在Silverlight 3中,我们的内部浏览器和外部浏览器都支持这样的沙箱模式。但是经常我会希望可以访问本地文件系统,因为它是在防火墙内的应用服务。在Silverlight 中,我们允许您可以在本地打开的文件,但这仍然需要有用户权限。在未来的版本中我们正在考虑加入这样选择,当然主要是针对企业的应用服务,允许管理员授予权限。 这是微软现在在Silverlight开发中的努力方向之一吗?事实上,想要使用Silverlight为企业的全面信任(full-trust)应用服务的公司所占的数量仍然很小。这是因为我们还没有建立好,但我们正在考虑。Adobe直接面对面进行竞争,Adobe有Flash提供内部浏览,AIR应用支持外部的应用服务。为什么你要增加这种能力?这是Silverlight发展过程中下一合乎逻辑的步骤。您不担心它会打破您的安全模式吗?第一次发布的这种能力是非常特别的,我们试图合并用户体验模式和安全模式,这样人们才会信任它。你也会经常会听到别人说内部浏览器是安全的,而外部的则不是。我们确实试图用Silverlight 3改变这种看法。这样,您就不必担心应用程序访问您的私人数据,或留下一些以后可能会损坏你的系统的东西。一个受欢迎Adobe AIR桌面应用程序——TweetDeck Twitter客户端,其功能像Web应用程序,但通常会被认为是一种典型的失去了浏览器功能的应用程序。哪些类型的应用程序使得Silverlight会成为有意义的外部浏览器呢?我认为人们将看到很多的零碎数据应用套件(小工具和工具),更长的离线媒体情景模式,并为您的网站提供配套应用服务。我相信,以后的Silverlight版本中将会有更加丰富的外部浏览器的功能。但是对于这个版本,我们提供的服务并不完美。我们可以从Silverlight和Adobe的使用中看出使网络分化成两部分的端倪吗?对于企业的区域一体化安排和业务应用程序来说,如果你使用的是.NET技术,则Silverlight是勿庸置疑的选择。但是我们现在需要指出的是,在堆栈的开发过程中,我们可以同Java或其它类型的平台兼容。在Java中没有什么像Silverlight一样。虽然有JavaFX存在,但它无法完成所有我们可以做的事情,也没有工具的支持。
唐山迪锐软件:www.tsp2c.cn