我很快就会开始一个新项目,并研究是否使用 MVC、Silverlight 或两者兼而有之。Silverlight vs. ASP.NET MVC这个问题是一个很好的起点。但纵观 SL3 测试版,似乎有两件事稍微改变了格局。首先,导航功能是 Silverlight 的直接功能,现在是 .NET RIA 服务。虽然它实际上不是 Silverlight 的一部分,但它是相当集成的,并且似乎弥合了客户端和服务器操作之间的差距。在我看来,MVC 强大而 Silverlight(作为客户端技术)不强大的领域。我知道您仍然可以同时使用两者,但您应该使用吗?为什么?
6 回答
简单地说,没有。
桌面上的 Silverlight 和 silverlight 更像是恰好在 web 上运行的 winforms/wpf 应用程序。它们是有状态的并且行为与网站非常不同。Silverlight 应用程序只能在允许运行 silverlight 的机器上运行。在业务网络设置中,他们可能设置了组策略,因此无法安装 silverlight。那你就有问题了。
然而,ASP.NET MVC 是一种无状态类型的设计,几乎任何拥有 Web 浏览器的人都可以访问任何平台。您在使用 ASP.NET MVC 的站点上拥有更多的自由,因为您不依赖最终用户安装了任何类型的运行时。
我认为每个人都有自己的位置,这非常明显。Silverlight 非常适合在适用的情况下创建丰富的体验。我怀疑你会看到太多的silverlight 出现替代网站。
当我们构建 .NET RIA 服务时,我们希望开发人员能够基本构建出 100% 的快速 RIA,因此我们针对这种方法来承担 ASP.NET WebForms 等的负担。以混合方式使用这两者是可能的,但问题是您要承担繁重的工作。
如果您的 Silverlight 解决方案在实现方面是基本的 - 即仅数据网格 - 那么 ASP.NET MVC 更适合您,因为这样您就不必担心深度链接等(因为它在本机内部是免费的基于 HTML 的方法)。
但是,如果您在 Silverlight 中构建更大的 RIA 解决方案并以特定的方式使用 ASP.NET,那没关系,但您必须记住,每次页面刷新都会带来以下惩罚:当然是页面刷新,其次您需要确保所述 Silverlight 实例可以找到返回到刷新之前的位置(或者加载到使用户能够找到前进方向的位置)。
尽管我们融入了 RIA 服务,但它可能有点非常棘手。
Scott Barnes / Rich Platforms 产品经理 / Microsoft。
我认为这两种技术都有自己的位置——我认为 Silverlight 将主要用于特殊用途的应用程序,而 asp.net MVC 将主要用于公共和通用风格的网页和 Web 应用程序。
至于你想使用哪一个,这完全取决于你的需求和你的听众。
Silverlight 甚至对于业务应用程序(导航、RIA 服务、数据表单等)也很顺利,但你最大的问题是插件。
就个人而言,我已经厌倦了 HTML,所以我将精力集中在 Silverlight 上。
这还取决于您在网站上工作是否是为了好玩。
许多为企业和组织构建的网站都有一个“只读”的面向公众的前端。也就是说,信息(库存、目录、公司新闻)是从一个丰富的数据库中呈现出来的,但普通的最终用户没有能力编辑它们。
我看到的自然模式是使用 ASP.NET MVC 进行“前端”演示,但使用 Silverlight / RIA 功能以避免将所有 CRUD 内容写入管理后端。这是一个很好的选择。管理用户群通常比总受众小得多,下载时间、Silverlight 渗透等问题几乎没有那么大的问题。
然而 Silverlight RIA / ASP.NET MVC 的故事现在是一个非常模糊的故事。没有太多信息讨论如何使用 RIA 服务来提供对您为 MVC 项目构建的样式的共享存储库项目的访问。链接文本这使得现在很难整合它们。您可以在通用 EF 或 Linq2Sql 基础之上构建 MVC 和 RIA 层,但共享您为 MVC 构建的 Repository 类的智能是有意义的。
理想情况下,我们将获得将 RIA 服务连接到存储库样式类层的良好文档,独立于存储库用于与底层数据库通信的内容,然后快速开发故事将完成。
我不认为 Silverlight 改变了 asp.net MVC 的故事。
MVC 让 asp.net 对 web 标准更加友好,并强制项目进入一个更可测试、解耦的结构。后者是网络表单中架构师/开发人员的唯一责任。
“就个人而言,我厌倦了 HTML,所以我将精力集中在 Silverlight 上。” 但愿如此。javascript也是。
十多年来,我一直在开发 Web 应用程序(经典的 asp,然后在 .Net 处于测试阶段时就跳到了 .Net)。asp.net 中的 MCTS x2 和 MCPD x2。虽然我认为 ASP.Net MVC 是网站开发人员的绝佳补充,但我确实认为 UI 层中具有严格 MVP 模式的 Web 表单通常更适合企业/B2b Web 应用程序。(仪表板、管理、报告等)
这一切都说明了当我更多地进入集成空间、SOA、biztalk、wcf 等。我真的很高兴这个 css 属性在“IE 版本”中有效应用。或“firefox 版本接下来是什么”以及处理有时很棒的有时想要拍摄自己的 web 表单中的控制层次结构。
Silverlight 3 真正开始与 LOB 应用程序相关,我认为它是 webforms 的主要编译器,而不是 MVC。