最近我在个人时间里学习Scala。在工作中,我正在学习C#/.NET(4.0)。我对两者都不够熟悉,只能进行最基本的评估,无法深入了解Lift或ASP-MVC 3。我处于十字路口。考虑到我的时间非常有限,我必须选择其中之一,在接下来的3-6个月内学习并构建一个应用程序。
今天我看到了这篇 Lift 文章,立刻被吸引了。我已经尝试过文章中列举的大多数事情,这让我感到无尽的挫败和头疼。其中一些我最终放弃了,并实现了简单的、不安全的版本,只是为了完成项目。因此,这篇文章使 Scala/Lift 变得非常有吸引力。
然后在午餐时,我的团队成员(也是朋友)谈论他使用 C# 和 .NET 4.0 进行 ASP-MVC 3 的工作。听起来很有趣,值得学习和使用。他谈到的一些内容似乎与我早上读到的 Lift 文章有所重叠。
我的问题是:考虑到我的时间有限,选择 Scala/Lift 还是 C#/ASP-MVC 3 有哪些优缺点?C#/ASP-MVC 3 与 Scala/Lift 相比有什么优势?
为了简化我的评估:请假设这些技术的当前最新版本;Scala 2.8.1(2010年12月),Lift 2.2(2011年1月),C#/.NET 4.0(2010年4月)和ASP-MVC 3(2011年1月)。
感谢您在这个关键的架构决策点上帮助我。
更新:2011年3月19日12:25 CDT:
我后来发现了一些与Scala/Lift相关的资源,它们似乎非常有帮助:
1. 免费电子书(PDF和HTML),标题为“探索Lift(基于Scala的Web框架)”
2. Lift的创作者撰写的维基文章,标题为“首先看View”
电子书的第一章非常有帮助。我真的很喜欢Lift设计原则和实现对“关注点分离”(将代码从显示片段中分离出来)和“约定优于配置”的关注。从目前的情况来看,虽然ASP-MVC 3也使用了相同的“强指南”,但它仍然依赖于一个代码和展示混合的层次。在这里,既不是网站设计师,也不是软件工程师敢在开始之后踏足的地方。也就是说,在开始之后,会有维护问题。我希望有人告诉我我在这里是错的。