将Silverlight用于整个网站?

时间:2008-09-11 10:59:09

标签: asp.net silverlight architecture

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

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

我认为采用这种方法的主要原因是我们在WPF和WCF方面有很好的经验,但在ASP.Net方面经验不足。无论哪种方式,我们都必须学习ASP.Net或Silverlight,学习Silverlight似乎是我们当前技能的更自然的延伸。

StackOverflowers的经验有没有什么大不了?有什么大的积极因素?

12 个答案:

答案 0 :(得分:15)

我建议不要构建一个纯Silverlight站点。

Silverlight遇到与Flash相同的问题:不直观的书签,打印问题,可访问性问题,无法返回按钮等等。

此外,您需要安装Silverlight或至少能够安装Silverlight。

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

答案 1 :(得分:15)

我肯定会选择一个完整的Silverlight应用程序,特别是如果你有WPF的良好经验。您将能够从WPF重用您的知识,并且应该能够相当快地获取Silverlight。自Beta 1以来,我一直在使用Silverlight,目前的Beta 2质量稳定。我想可以安全地假设RTW版本即将到来。

Pilf有一些有效的观点,特别是在印刷方面。为此,我可能会在服务器端使用SQL Reporting Services或其他一些报告框架,然后弹出一个带有可打印报告的新窗口。对于链接和书签,问题与任何其他AJAX应用程序没有什么不同。我今天做了一篇关于how to provide deep linking and back-forward navigation in Silverlight的博客文章。

Silverlight还具有很好的可访问性支持所需的所有钩子,因为来自WPF的UI Automation API被引入Silverlight。我不知道屏幕阅读器供应商是否已经赶上了。 Silverlight中的样式/模板支持可以为视障用户提供高对比度的皮肤,如果这是一个问题。

答案 2 :(得分:9)

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

但是如果你能看到一个场景,无论是随机PC还是随机使用它,那么全功能的HTML / Javascript版本是绝对必要的。

有些原因是:

  • 大多数人没有银光,如果他们必须下载并安装它,你将获得很好的咒骂。安装它的一些人会将其禁用(连同闪光灯,有时甚至是图像)以避免分心并加快浏览速度。
  • 当HTML网站失败时,用户会收到错误页面并重新加载。当silverlight失败时,它可能会挂起或崩溃。
  • HTML是预期的 - 用户和网络浏览器:后退和刷新按钮按预期工作,超链接和表单按预期工作。
  • 在偏远地区和移动设备上,慢速互联网仍然非常普遍。

答案 3 :(得分:7)

我同意每个人到目前为止所说的内容,我认为这个针对Flash的Flow Chart也适用于Silverlight。

enter image description here

Source of Image

答案 4 :(得分:5)

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

答案 5 :(得分:3)

关于远程和管理员的话题,另一张海报说,如果管理员连接速度很慢,这是支持HTML的论据。我认为,根据信息的类型,使用Silverlight可能更有效。如果您使用服务器端数据绑定填充了ASP.NET数据网格,则可以下载大量标记和查看状态数据。即使你在ViewState上使用较轻的DataGrid,你仍然需要下载很多HTML。

在Silverlight中,一旦你得到XAP,这可能会比相应的HTML小,那么XAP就会被缓存,所以你不应该每次都有这个成本,而你只是要检索数据本身。

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

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

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

答案 6 :(得分:1)

ASP一路走来。你应该只使用silverlight / flash等文本无法做你想做的事情 - 例如显示视频。

答案 7 :(得分:1)

为您的网站使用插件会降低速度,并要求用户安装插件。例如,Silverlight排除了所有Linux用户。此外,由于Silverlight是一个非常新的产品,因此毫不知道微软如果不尽快恢复,将如何保持平台的活力。

我坚持使用服务器端脚本的普通旧HTML。

此外,对于公共网站:Flash和Silverlight无法被任何搜索引擎编入索引,因此如果您想要任何访问者,可以写好大量元数据。

答案 8 :(得分:1)

对于面向内部的门户而言,Silverlight是一个不错的选择,就像面向公众的门户网站一样,如果您已经评估了项目并决定继续使用门户网站。您可以自由地将Silverlight组件集成到现有的ASP.NET应用程序(即“富裕岛”)方法中,但如果您能够从头开始构建新项目,请不要将完全Silverlight解决方案折扣为有效选择使用传统ASP.NET门户的地方。 Silverlight现在是RTW,所以如果这个决定仍在讨论中,你知道你将不必处理未来发生的变化。

答案 9 :(得分:0)

有一些downsides在Flash / Silverlight中完全开发了一个网站,但如果这些缺点对您无关紧要或不会产生影响,那么没有什么可以阻止您。选择您认为可以更充分地满足您需求的任何工具。我不会因为它的缺点而推迟在Silverlight中创建一个网站,因为它为用户体验带来了更多的积极因素。

答案 10 :(得分:0)

之前的评论已经解决了将Silverlight用于此类网站的大多数缺点,我同意这一点。如果您决定进行富客户端式开发并且您的受众群体很小(仅适用于管理员),那么我可能会推荐WPF而不是Silverlight,因为它目前提供了更丰富的工具和控件。

如果您坚持使用ASP.NET,那么您可以查看动态数据 - 它非常适合轻松构建后端管理站点。

答案 11 :(得分:0)

我在微软看过“仅限Silverlight”的网站,它们令人印象深刻。但同样,这些演示可以充分利用Silverlight可以做的事情。当你需要不同的东西时,你可能会失去运气。除了安装/看到它们之外,我没有看到像Flash这样的Silverlight。但与Visual Studio可以提供的.NET相比,Flash / ActionScript后端真的是

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