65.9K
CodeProject 正在变化。 阅读更多。
Home

从 Silverlight 迁移到 MVC3

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2011年9月20日

CPOL

4分钟阅读

viewsIcon

24436

我们为什么觉得需要放弃 Silverlight 开发而转向 MVC3

在这篇文章中,我想解释一下为什么我们觉得有必要放弃 Silverlight 开发,转而使用 MVC3。

你们中的一些人可能非常清楚,早在 2008 年的 Silverlight 2 Beta 1 时期,我就一直在公司内部推广 Silverlight。但是,去年夏天,我觉得我不得不提出这个问题:这对于我们公司来说仍然是正确的技术吗?

技术选择取决于需求

当我们最初选择 Silverlight 作为我们的 UI 技术时,我们提出了一系列需求。我们的应用程序应该在客户端系统上具有(接近)零占用空间。它应该可以通过网络访问。客户端的部署应该是毫不费力的或不存在的。它应该看起来很棒,而无需付出太多的努力。Silverlight 满足所有这些要求(现在仍然如此)。

我们写于 2010 年夏天。iPad 已经上市几个月了,并且取得了巨大的成功。智能手机被广泛采用,以至于我们预测我们的客户在使用我们的软件时,会对支持这些平台感兴趣。

我们看到的另一件事是,人们在比以前更多的不同平台上工作。2009 年要求使用特定浏览器是可以接受的,但在 2010 年,我们的客户开始要求与浏览器无关的 UI,不仅在 Windows 上,而且还在许多其他平台上。

为了了解我们的客户的确切反应,我们决定构建一个具有有限功能的原生 iPhone 应用程序。我们于 2011 年初启动该项目,并在 5 月发布了第一个适用于任何智能手机平台的荷兰 HRM 应用程序。这是一个巨大的成功,不仅是因为客户的反应,还因为竞争对手的反应。

需求转变,世界变化

这使我们得出结论,我们需要做一些事情来支持一项新的需求。我们的应用程序至少应该部分地在移动设备和平板电脑上可用。我们应该确保我们可以放弃我们激活的浏览器要求,即使使用我们的 Silverlight 4 UI*

这就是为什么,在一次关于下一步要构建什么的会议上,我感到有必要问“我们是不是应该放弃 Silverlight,转而采用带有 HTML5 的 ASP.NET MVC3?” 在 Silverlight 上投入了两年半以上的时间后,甚至建议放弃它,这确实很痛苦。但是,当时我认为,现在仍然如此,必须进行更改。经过对后果的更多讨论和一些研究,我们现在正在努力构建 MVC3 UI 的第一部分,并迈出 HTML 5 和 CSS 3 的第一步。

幸运的是,我们对 Silverlight 的所有努力并非徒劳。我们确实交付了一个运行良好的产品,并且我们致力于使用、扩展和改进我们为其开发的中间件。(您是否看到了面向服务架构的力量?)。

那么 Silverlight 真的已经死了吗?

你们中的一些人可能还记得这篇文章。在那篇文章中,我说 Silverlight 实际上是编写业务线应用程序的更好技术。即使在进一步研究 ASP.NET MVC3 和 HTML 5 之后,我仍然相信这一点,但是由于人们使用计算机的方式发生了变化,它根本无法满足我们客户的其中一个需求。

Silverlight 远未消亡。它仍将在许多方面使用,包括像 Windows 8 这样的新平台,例如 Microsoft CRM 2011。微软正在将 Silverlight 集成到越来越多的自有平台中。此外,随着 Silverlight 5 的推出,将会有许多很酷的新功能进入浏览器。因此,我怀疑微软不会很快放弃 Silverlight。

对开发人员的后果 42

不幸的是,我们放弃 Silverlight 的举动确实对这个博客产生了一些影响。首先,我长期运行的帖子系列“构建 Silverlight 企业应用程序的冒险”已经以第 41 部分结束(对于一个显而易见的原因来说,这有点痛苦)。

这也意味着我将不再为 SilverlightShow.net 撰写文章。我想借此机会感谢 Svetla 在过去几年里对我的支持。

最后,这也意味着关于 Silverlight 的内容会少很多,但希望关于 MVC3、HTML 5、CSS 3、jQuery 等的内容会多很多。

这是我职业生涯中另一个有趣时期的结束,也是一个新的时期的开始。我希望您喜欢我关于 Silverlight 的文章,并希望再见到您。

* Internet Explorer 依赖性实际上不是由 Silverlight 引起的,而是由与我们使用的 Microsoft Report Viewer 的集成引起的。


© . All rights reserved.