c# - Scala (2.8)/Lift (2.2) 与 C# (4.0)/ASP.NET-MVC 3

标签 c# scala asp.net-mvc-3 lift

最近在学习Scala在我的私有(private)时间。在工作中,我一直在学习C#/.NET (4.0)。我对其中任何一个都不够熟悉,无法对其进行最低限度的评估 LiftASP-MVC 3 .我在十字路口。考虑到我的时间非常有限,我必须在接下来的 3-6 个月内学习和构建应用程序中的一种。

我遇到了 this Lift article今天,我立刻被吸引住了。我已经尝试了文章中概述的大部分事情,这让我感到无休止的沮丧和头痛。其中一些我最终放弃并实现了粗糙的不安全的简单版本只是为了完成项目。所以,这篇文章让 Scala/Lift 变得非常有吸引力。

然后在午餐时,我的团队成员(和 friend )讨论了他在 .NET 4.0 上使用 C# 开发 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/Mar/19 12:25 CDT:
从那以后,我偶然发现了一些在 Scala/Lift 方面似乎非常有用的资源:
1. 标题为 "Exploring Lift (Scala based web-framework)" 的免费电子书(PDF 和 HTML)
2. Lift 创建者的 Wiki 文章标题为 "View First"

电子书的第一章非常有帮助。我真的很喜欢 Lift 设计原则和实现对“关注点分离”(将代码保留在显示片段之外)和“约定优于配置”的关注程度。

据我目前所见,虽然 ASP-MVC 3 使用相同的“强准则”,但它仍然依赖于代码和表示“混合”的层。这是网站设计师和软件工程师在创建后都不敢涉足的地方。 IOW,起源后,有维护龙。我希望有人告诉我我错了。

最佳答案

Scala/Lift 优点:

  • 可以为网络和企业使用大量开源解决方案/库
  • 更多创新
  • 降低成本
  • (主观:更喜欢 Scala 语法和数据模型)

C#/ASP 优点:

  • 您正在工作中学习它,因此您对 .NET 技术更加熟悉。
  • 花更少的时间学习(从第一点开始),并在工作中获得支持。

对我来说 Scala/Lift 是更有效的解决方案,但我更熟悉 java/jvm 而不是 .NET

关于c# - Scala (2.8)/Lift (2.2) 与 C# (4.0)/ASP.NET-MVC 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5355914/

相关文章:

C# ListView - 检测用户何时取消选择项目或选择新项目

c# - String.Replace 和 Regex.Replace 不适用于 IComparer 中的特殊字符

scala - 为什么sortByKey的 Spark 这么慢?他们有其他选择吗?

泛型类的 scala 宏泛型字段不适用类泛型类型参数

c# - ASP.NET MVC 3 + Razor 错误 : Child actions are not allowed to perform redirect actions

validation - ASP.NET MVC 3.0 部分内部和外部具有不显眼的数据验证属性问题的表单

c# - 使用 MvvmCross 加载本地存储中的文件

c# - Linq OrderByDescending ThenByDescending 问题

java - 如何转换 Java map map 以在 Scala 中使用?

c# - 存储来自1个ActionResult的js值以在另一个ActionResult中使用