关于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中创建网站,因为它给用户体验带来了很多积极的影响。


推荐阅读

    linux命令支持通配符?

    linux命令支持通配符?,工具,系统,命令,灵活,较大,名称,名字,环境,数字,文件,L

    linux网站根目录命令?

    linux网站根目录命令?,系统,一致,设备,网站,目录,根目录,信息,标准,位置,电

    linux命令测试客户端?

    linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,l

    linux访问网站的命令?

    linux访问网站的命令?,地址,系统,服务,工作,网站,命令,网络,管理,信息,网址,L

    linux支持管道的命令?

    linux支持管道的命令?,通信,标准,系统,信息,地方,数据,管道,环境,设备,工具,L

    linux命令行登陆网站?

    linux命令行登陆网站?,网站,系统,密码,服务,地址,环境,网络,软件,状态,项目,

    关闭linux客户机命令?

    关闭linux客户机命令?,系统,工作,命令,状态,时间,用户,目的,客户机,方式,方

    linux客户访问命令?

    linux客户访问命令?,网络,系统,地址,服务,管理,信息,数字,基础,密码,命令,Lin

    linux登陆网站命令?

    linux登陆网站命令?,网络,工具,网站,标准,地址,软件,系统,命令,数据,环境,lin

    linux命令打开网站?

    linux命令打开网站?,网络,网站,系统,地址,密码,传播,工具,代码,环境,命令,大

    安卓linux命令客户端?

    安卓linux命令客户端?,系统,软件,名字,设备,互动,服务,工具,基础,发展,代码,a

    安装客户端linux命令?

    安装客户端linux命令?,软件,中心,在线,发行,全国,公司,工作,国家,信息,命令,

    linux命令行登录网站?

    linux命令行登录网站?,系统,网站,地址,工作,软件,密码,网络,第一,环境,中心,

    linux命令查询网站?

    linux命令查询网站?,地址,网络,信息,名称,档案,工具,网站,命令,传播,分析,lin

    linux访问客户机命令?

    linux访问客户机命令?,系统,信息,网络,软件,名称,地址,管理,工具,设备,服务,

    linux客户端连接命令?

    linux客户端连接命令?,系统,地址,服务,工具,位置,基础知识,网络,工作,基础,

    linux下备份网站命令?

    linux下备份网站命令?,工程,系统,软件,设备,服务,网站,管理,数据,环境,设计,

    linux命令连接网站?

    linux命令连接网站?,网络,系统,信息,地址,名称,密码,设备,软件,网站,工具,Lin

    Python的额外支持

    Python的额外支持,新增,名字,工作,意外,代码,培训,包装,环境,属性,函数,1.语