关于asp.net:要在整个网站上使用Silverlight吗?

Using Silverlight for an entire website?

我们需要建立一个管理门户网站来支持我们的客户/服务器应用程序。 由于我们是.Net商店,因此显而易见的传统方法是在ASP.Net中进行。 但是Silverlight 2将在我们发布日期之前的一段时间内退出Beta版。 我们是否应该考虑使用支持WCF的后端在Silverlight中构建整个网站?

该门户网站的主要功能将是:用户,组和权限配置; 用户配置文件设置配置; 文件上传和下载以支持该应用程序所需的文件。

我认为采用这种方法的主要原因是我们在WPF和WCF方面拥有丰富的经验,但是在ASP.Net中却经验很少。 无论哪种方式,我们都必须学习ASP.Net或Silverlight,而学习Silverlight似乎是我们当前技能的更自然的扩展。

StackOverflowers的经验有什么大忌? 有哪些积极的方面?


我绝对会选择完整的Silverlight应用程序,特别是如果您有WPF的丰富经验。您将能够重用WPF的知识,并且应该能够相当快地掌握Silverlight。自Beta 1开始,我就一直在使用Silverlight,而当前的Beta 2具有可靠的质量。我想可以肯定地说RTW版本即将来临。

Pilf有一个有效的观点,特别是在打印方面。为此,我可能会在服务器端使用SQL Reporting Services或其他报告框架,然后弹出带有可打印报告的新窗口。对于链接和添加书签,问题与任何其他AJAX应用程序没有什么不同。我今天写了一篇博客文章,介绍如何在Silverlight中提供深层链接和后退导航。

Silverlight还具有强大的辅助功能支持所需的所有挂钩,因为WPF的UI自动化API已引入Silverlight。我不知道屏幕阅读器供应商是否赶上了。如果需要,Silverlight中的样式/模板支持可轻松为视障用户提供高对比度的外观。


我建议不要建立一个纯Silverlight网站。

Silverlight遭受与Flash相同的问题:不直观的书签,打印问题,可访问性问题,无法使用后退按钮等等。

另外,您将要求用户安装Silverlight或至少具有安装它的能力。

在受控环境中(例如在大型公司或医疗保健中)或在移动设备上,情况可能并非如此。


取决于您的目标。如果管理门户网站是应用程序的一部分,并且仅在安装了应用程序的计算机上使用,则完全使用Silverlight甚至WPF都有很多优点。

但是,如果您可以看到随机PC或随机人员使用它的情况,则绝对需要功能齐全的HTML / Javascript版本。

原因如下:

  • 大多数人没有Silverlight,如果他们必须下载并安装它,您会发誓。有些安装了该软件的人会使其保持禁用状态(与Flash甚至图像一起使用),以避免分散注意力并加快浏览速度。
  • HTML站点失败时,用户将获得错误页面并重新加载。当Silverlight失败时,它可能会挂起或崩溃。
  • HTML是预期的-用户和Web浏览器均如此:后退和刷新按钮可以按预期工作,超链接和表单可以按预期工作。
  • 在偏远地区和移动设备中,慢速Internet仍然很普遍。

我同意每个人到目前为止所说的内容,并且我认为此针对Flash的流程图也适用于Silverlight。

enter image description here

图片来源


听起来您的问题是您需要富客户端管理应用程序。为什么不使用单击一次?


关于远程管理者的话题,另一位张贴者表示,如果管理员之间的连接速度较慢,则支持HTML。我认为,根据信息类型的不同,使用Silverlight可能会更有效。如果您有一个使用服务器端数据绑定填充的ASP.NET数据网格,则可以下载大量的标记和viewstate数据。即使您正在使用DataGrid的替代品,在ViewState上使用的颜色也较浅,您仍然可以下载很多HTML。

在Silverlight中,一旦放下XAP(它可能会比相应的HTML小),XAP就会被缓存,因此您不必每次都花钱,而只是检索数据本身。

再举一个例子,假设您在一个表单上有一堆下拉列表,这些列表在列表中都具有相同的值。在Silverlight中,您可以一次获得这些值并将它们绑定到所有dorpdowns,在HTML中,您每次都必须重复它们。

使用ASP.NET中的客户端数据绑定会更好,该绑定遵循与Silverlight和WPF非常相似的数据绑定模型。

总体而言,我还认为您将需要为Silverlight实现编写更少的代码,这可以提高生产率并降低维护成本。


Silverlight是面向内部门户网站的不错选择,就像已经面向公众的门户网站(如果您已经评估了项目并决定继续使用Web门户网站一样)。您可以自由地将Silverlight组件集成到现有的ASP.NET应用程序(即"丰富的岛屿")方法中,但是,如果您有能力从头开始构建新项目,请不要将完整的Silverlight解决方案视为有效的解决方案选择传统ASP.NET门户所处的位置。 Silverlight现在是RTW,因此,如果此决定仍然存在,您将知道以后将不必处理重大更改。


为您的网站使用插件会使速度变慢,并且要求用户安装插件。例如,Silverlight排除了所有Linux用户。而且,由于Silverlight相当新,因此无法说明如果不久之后平台恢复正常运行,微软将做出多大的承诺。

我会坚持使用服务器端脚本编写简单的旧HTML。

另外,对于公共网站:Flash和Silverlight不能被任何搜索引擎索引,因此,如果您希望有任何访问者的话,可以编写大量的元数据。


一路ASP。仅当文本无法完成您想要的操作时,才应使用Silverlight / Flash等-例如显示视频。


我在Microsoft看到过"仅限Silverlight"网站,它们的确令人印象深刻。但是同样,演示在那里是为了利用Silverlight可以发挥的全部潜能。当您需要不同的东西时,您可能会不走运。除了安装/看到它们的方式之外,我没有看到像Flash那样的Silverlight。但是与Visual Studio可以通过.NET提供的功能相比,Flash / ActionScript后端确实很糟糕。

问问自己为什么要使用Silverlight?花式效果或编程模型?


先前的评论已经解决了将Silverlight用于此类网站的大部分弊端,我同意。如果您确定要进行富客户端样式的开发并且您的受众群体很小(仅适用于管理员),那么我可能会建议使用Silverlight上的WPF,因为它目前提供了一组更丰富的工具和控件。

如果您坚持使用ASP.NET,那么您是否看过动态数据-它是轻松构建后端管理站点的理想选择。


完全在Flash / Silverlight中开发网站有一些弊端,但是如果这些弊端对您来说不重要或不会产生影响,那么没有什么可以阻止您的。选择您认为更能满足您需求的任何工具。我不会因为缺点而单纯地在Silverlight中创建网站,因为它给用户体验带来了很多积极的影响。


推荐阅读