Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala(2.8)/Lift(2.2)vs.C#(4.0)/ASP.NET-MVC3_C#_Scala_Asp.net Mvc 3_Lift - Fatal编程技术网

Scala(2.8)/Lift(2.2)vs.C#(4.0)/ASP.NET-MVC3

Scala(2.8)/Lift(2.2)vs.C#(4.0)/ASP.NET-MVC3,c#,scala,asp.net-mvc-3,lift,C#,Scala,Asp.net Mvc 3,Lift,我最近在私人时间学习。在工作中,我一直在学习(4.0)。我对其中任何一个都不太熟悉,无法对其进行最低限度的评估。我正处在十字路口。鉴于我的时间非常有限,我必须在未来3-6个月内选择一个或另一个来学习和构建应用程序 我今天遇到了,我立刻被吸引住了。我已经尝试了文章中概述的大多数事情,这让我感到无尽的沮丧和头痛。其中一些我最终放弃并实现了粗糙的、不安全的简单版本,只是为了完成项目。因此,本文使Scala/Lift非常吸引人 然后在午餐时,我的团队成员(和朋友)正在讨论他使用C#on.NET4.0开发

我最近在私人时间学习。在工作中,我一直在学习(4.0)。我对其中任何一个都不太熟悉,无法对其进行最低限度的评估。我正处在十字路口。鉴于我的时间非常有限,我必须在未来3-6个月内选择一个或另一个来学习和构建应用程序

我今天遇到了,我立刻被吸引住了。我已经尝试了文章中概述的大多数事情,这让我感到无尽的沮丧和头痛。其中一些我最终放弃并实现了粗糙的、不安全的简单版本,只是为了完成项目。因此,本文使Scala/Lift非常吸引人

然后在午餐时,我的团队成员(和朋友)正在讨论他使用C#on.NET4.0开发ASP-MVC3的工作。听起来,学习和使用它将是非常愉快的。他说了很多事情,似乎和我早上读到的电梯文章有重叠

我的问题是:鉴于我的时间有限,选择Scala/Lift而不是C#/ASP-MVC 3有哪些优点和/或缺点?与Scala/Lift相比,C#/ASP-MVC3有哪些优势

为了降低我评估的复杂性:请假设这些技术的当前最新版本;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.标题为
2.Lift的创建者撰写的Wiki文章标题为

电子书的第一章非常有用。我真的很喜欢Lift的设计原则和实现是如何专注于“关注点分离”(将代码排除在显示片段之外)和“约定优先于配置”


从目前为止我所看到的情况来看,虽然ASP-MVC3使用了相同的“强指导原则”,但它仍然依赖于代码和表示“混合”的层。网站设计者和软件工程师都不敢涉足这一领域。瞧,起源之后,就有维修龙了。我希望有人能告诉我我错了。

Scala/Lift优点:

  • 可以为web和企业使用大量的开源解决方案/库
  • 更多创新
  • 降低成本
  • (主观:偏好Scala语法和数据模型)
C#/ASP优点:

  • 您是在工作中学习的,因此您对.NET技术更加熟悉
  • 减少学习时间(从第一点开始),并在工作中获得支持
对我来说,Scala/Lift是更有效的解决方案,但我更熟悉java/jvm,而不是.NET

Scala pro:

  • 支持函数式编程
  • 如果使用jvm(对于C#来说是使用mono,而不是 (由microsoft支持)
C#pro:

  • 工具/IDE更加成熟/健壮
  • 目前市场上有更多的公开职位
    • 请查看(英语)。 新的有吸引力的Scala web框架


      不是MVC,但对于桌面应用程序来说非常酷:-服务器端RIA。您可以使用Scala、Java或任何其他JVM语言。就一罐。客户端上不需要插件

      我刚刚读了维基百科,c#似乎涵盖了scala提供的大部分内容

      从。。。 Scala还提供了一个统一的类型系统(与C#一样,但与Java不同),其中所有类型(包括整数和布尔等基本类型)都是属于任意类型的子类的对象。Scala同样包含C#中的许多其他特性(或非特性),但Java中没有,包括操作符重载、可选参数、命名参数、原始字符串(在Scala中可能是多行的)以及无检查异常


      scala只提供了一些额外的功能,既然你有.net的使用经验,我就坚持使用c#

      我的朋友刚刚给我发了一个链接,它似乎专门建议scala/Lift方面的优势:主要是偏好和目标。见鬼,你可以使用Java/Stuts之类的东西。我个人更喜欢Scala编程语言,尽管Microsoft解决方案的集成方面非常吸引人。当然,Microsoft解决方案需要在Microsoft软件上运行,这可能会导致更高的成本,等等。Lift与ASP.NET的不同之处在于,它基于延续而不是(手动)基于恢复控制状态。话虽如此,我使用C#3/ASP.NET进行工作--工作围绕着SharePoint--它仍然是高效的,并且不完全令人沮丧(即,它与PHP相差甚远);-)@pst仅仅谈论ASP.net有点模棱两可。你是说webforms还是MVC?我不知道MVC中有什么“恢复控制状态”的东西。你能详细解释一下你的意思吗?@CodeInChaos是的,ASP.NET/MVC(&AJAX)——每次加载页面(这是一个小谎言)后,必须恢复控件状态才能“恢复”会话的上下文。也就是说,第一步是将状态(控制层次结构)恢复到以前通过水合作用发现状态的方式(这里有各种管理状态的方式)。如果在回发之前创建了一组复选框,则必须在要使用的回发之后恢复这些复选框,等等——不匹配会导致错误。谢天谢地,大多数操作都是自动化的(尤其是使用ASCX),但以控件为中心的模型与Lift不同。@pst对于ASP.NET Webforms,您对恢复控件状态的描述非常准确,但在执行ASP.NET MVC时,根本不发生这种情况。在ASP.NET MVC中,可以填充视图模型并将其作为参数传递给正在调用的操作,但这与co的状态无关