ASP.NET与Silverlight的比较

22

我要开始一个新的Web项目,考虑到两个演示框架。我正在考虑使用ASP.NET MVC 或者Silverlight。由于我是一位经验丰富的.NET开发人员,而且对于ASP.NET控件只有基本的了解,所以我更倾向于使用Silverlight。


为什么要局限于这两个框架呢?考虑使用Wicket和Java如何?想象一下,现在已经过去了8年,他很可能已经成为自己公司的CEO;这只是我的评论和阅读时的思考,也是给其他读者的建议。 - eaglei22
11个回答

33

这主要是一个内部产品,因此浏览器不是问题。

您仍未就应用程序的性质撰写出一个适当的描述。在不了解应用程序正在应用的领域以及它所设计解决的问题之前,很难评估哪种技术是最合适的。

总的来说,微软将这些演示技术放置在“Reach vs Rich”连续体上。您可以在一端使用“老式”的HTML和Javascript,这是大多数客户机都能接受的,而在另一端,则有极其完整的WPF,只有少数机器能够处理。您提到这是一个内部应用程序,因此也可以使用通过XBAP或ClickOnce实现的WPF。

因此,这个比例尺应该如下:(reach)ASP.NET, AJAX, Silverlight, WPF (rich)。

因此,问题就是您希望/需要它对用户变得多么丰富,直到它影响了部署基础设施?坦白地说,如果所有你所获取的都是表格数据和统计数据,那么普通的ASP.NET Web表单就足够了。如果您想要实时可调整大小的图形,并与后端WCF Web服务进行客户端交互,则Silverlight可以胜任。如果您需要比WPF更强大的图形渲染,那么通过远程部署选项实现WPF就是您的选择。


1
+1 为一个聪明的解释方式。 - Pawan Nogariya

5
Silverlight 3与RIA似乎非常强大。在我从事VB6工作后的6年里,我花了约一个月的时间开发了一个使用SL3、WCF和实体框架的Web应用程序,并且感觉非常舒适。
当然,Silverlight论坛和stackoverflow非常活跃,对于我遇到的一些问题,我已经能够轻松地得到解决方案。
我不确定的唯一一件事是性能。

4

无论是个人还是专业方面,我每天都使用C#编写Windows表单应用程序和Windows服务。即使经过多年的实践,我发现使用PHP或Python创建Web应用程序比使用.NET更快。也许随着Silverlight的出现,情况已经改变了,但对我来说,与回报相比,ASP.NET的学习曲线太陡峭了。

编辑:上述内容是在我尝试ASP.NET MVC之前大约一年左右写的。我发现ASP.NET MVC非常直观和干净。


3
不要忘记,Silverlight需要一个插件才能使用,据我所知它还没有被“本地”添加到IE,更不用说其他浏览器了。因此,仅仅这一点就可能会有大量的维护/支持问题。PDF文件现在被认为是“无处不在”的,但你仍然会遇到一两个用户没有Adobe Reader在他们的电脑上,而且往往发生在一个糟糕的时候,然后你就要匆忙安装程序。

从根本上讲,这就是使我不愿意在我的Web应用程序中使用Silverlight的原因。我认为它背后的技术是好的,但考虑到现在你可以通过一个漂亮的Webforms/MVC/AJAX/jQuery组合(按照你的喜好混搭)获得相同的可见性/功能,我建议坚持使用ASP.NET。


2

我认为你最好使用ASP.Net。虽然你需要花费一点时间学习,但是你将会在一个经过验证、可靠、可扩展的模型上进行开发,而不是使用beta版本的东西,在正式发布之前可能会有所改变。

另外,现在使用AJAX,可以在ASP.Net中获得非常流畅的用户体验。


1

我建议使用ASP.NET,无需额外下载。

我曾经使用过Silverlight,但很多公司不允许用户安装任何东西,家庭用户也不愿意安装浏览器插件,而且Silverlight并不像Flash播放器那样广为人知。

对于初学者和高级程序员,您可以在以下网站找到视频教程。

http://www.asp.net/mvc


0

我认为 Silverlight 仅在您想要创建类似 Flash 的应用程序时才需要。这些应用程序组合成单个可执行文件,并在客户端计算机上下载一次。它们可以与服务器通信,如果需要服务器上的任何数据或功能,则需要安装 Silverlight 环境附加组件以帮助运行这些应用程序的最终用户。

而如果您创建一个 asp.net 应用程序,则其代码驻留并在服务器本身上执行,因此普通的互联网浏览器即可执行它。但缺点是对于用户交互应用程序,当代码需要时需要在服务器和客户端之间进行单独的调用。


0
我会说 - 除非你需要类似Flash的动画和交互能力 - 否则选择ASP.NET。它更容易编程,并且不需要用户下载额外的内容。

0

不知道你的应用程序是什么,很难推荐哪个更好。无论你决定选择什么,一定要记住你的目标受众;并非每个人都会在他们的计算机上安装Silverlight。

就我个人而言,除非我正在设计一个非常互动和美观的Web应用程序,否则我会选择ASP.NET(带或不带MVC框架),因为它有大量的参考资料,而Silverlight仍然是相对较新的领域。


0

这主要是一个内部产品,所以浏览器不是问题。更多的是关于开发成本。学习Silverlight模型还是ASP.NET模型更容易?我预计Silverlight基于WebServices,因此它可以清楚地将我的应用程序代码分为业务逻辑(服务)和演示(Silverlight应用程序)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接