TypeScript VS ScriptSharp - 有什么权衡之处?

8
我即将构建一个大型的JavaScript应用程序,希望以更有结构的方式构建它。
Jquery将用于CSS效果。
服务器端将使用C#。
你能分享一下你的知识和经验吗?哪个更好呢?
  1. 哪个更具特色?
  2. 哪个文档更好?
  3. TypeScript真的是强类型语言吗?
此外,从长远来看,ScriptSharp是由单个开发者维护(据我所知),而TypeScript是由Microsoft开发的。
谢谢。

Jquery 更适用于小型 Web 应用程序 -- 你应该考虑使用像 Angular 这样的能够为你处理数据绑定的东西。 - BrainSlugs83
4个回答

18

哪一个更具有功能丰富性?

两者都不是 - 编译后的JavaScript使所有JavaScript代码对您可用。

哪一个文档记录更好?

文档可能不是正确的问题。哪一个拥有更多可用信息/强大的社区帮助您解决困难?截至目前,Stack Overflow 上有 141 个 ScriptSharp 问题(48 位关注者)和 623 个 TypeScript 问题(328 位关注者)。

TypeScript 有一个非常清晰的 语言规范。我看了一下 ScriptSharp 的文档 - 有人需要指出它在哪里... 我假设有子集的 C# 可以使用,并且我会有兴趣知道这个子集是什么。

TypeScript 确实是强类型的吗?

TypeScript 是静态类型的。它将在编译时检查类型(并且 IDE 将在设计时检查)。类型违规将生成错误,但如果您想要,也可以选择动态类型。

我应该使用哪一个?

如果你无法忍受使用除C#以外的其他编程语言,那么你应该使用ScriptSharp。在其他情况下,我建议使用TypeScript。理解JavaScript非常有益,因为这种语言是如此普遍,并且TypeScript可以让您提前接触ECMAScript 6语言功能,因此如果您决定放弃一切并使用纯JavaScript,则您的TypeScript编码经验将更有价值。
在某种程度上,我有偏见。我非常喜欢TypeScript,以至于我写了一本书介绍它。然而,对TypeScript的热情(而不是Dart、CoffeeScript、ScriptSharp)在那个项目之前就已经存在了。

感谢您提供详细的答案,点赞。我在哪里可以找到这本书?谢谢。顺便问一下,您会在小项目中使用TypeScript吗? - SexyMF
2
值得注意的是,Script# 处理现有 JavaScript 库的系统要复杂得多。您需要编写自己的接口,只提供了一些(适用于 MS Ajax、jQuery、Knockout),而且社区兴趣较少(没有像 https://github.com/borisyankov/DefinitelyTyped 这样的网站,据我所知)。这是我们在 TypeScript 发布之前不使用 Script# 的主要原因。 - Jude Fisher
@SexyMF 我用它来做一些小项目,例如如果我正在使用Ajax,因为我有一个非常好的TypeScript Ajax类。哦 - 你可以在这里获得平装版或Kindle版:http://www.amazon.co.uk/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=TypeScript :) - Fenton
有人知道ReSharper与哪个更配套吗?使用Script#时,您基本上使用C#版本的ReSharper,这非常棒。但是,TypeScript ReSharper是否具有与C#相同的所有功能呢? - zumalifeguard
@zumalifeguard,您可以在此处查看ReSharper TypeScript的功能:http://www.jetbrains.com/resharper/whatsnew/index.html#typescript - Fenton
Steve,我想知道在ReShaper TypeScript中缺少哪些ReSharper C#功能。例如,我非常喜欢“引入变量”,“内联变量”,“提取类”,“移动方法”等功能。我看到“引入变量”在列表中,但“内联变量”呢? - zumalifeguard

7
ScriptSharp一直处于不断的开发中,尽管只有一个人在维护。我们使用ScriptSharp开发了一款大型Web应用近3年时间,它表现非常出色。用C#编写代码的能力帮助我们快速迭代,还能减少培训成本。
当新版本发布时,ScriptSharp明显存在一个缺点,某些版本会有很多破坏性变化。但我们非常喜欢它,愿意承受这些变化并相应地进行调整。
如果你有一个专门的基础架构团队来处理这些架构变化,你可以使用他们来跟进ScriptSharp,并编写JavaScript库的包装器,根据我们的经验,强烈推荐ScriptSharp。在决定使用哪种技术之前,请在两者之间评估一个简单的原型。你也可以尝试Sharpkit,这是一个有趣的替代方案。链接->http://sharpkit.net/

2
我也正在研究这个问题,从我的研究来看,微软已经使用Script#构建了所有大型Web应用程序的前端,如Office Web应用程序、Hotmail、Office 365、SharePoint 2013,他们正在使用比最新版本更旧的Script#版本,因为人们认为它足够稳定。问题是,微软似乎通过不向公众发布Script#定义文件(导入库)来阻止我们使用这个生产力工具,例如SharePoint、CRM和Office,所以大多数人似乎转向TypeScript。然而,我倾向于使用Script#,并在需要时构建我需要的定义。
参考资料:

http://weblogs.asp.net/soever/archive/2009/10/20/sharepoint-2010-client-side-javascript-object-model-library-written-in-script.aspx

开始使用: http---scriptsharpcontrib.codeplex.com/wikipage?title=Getting%20started%20with%20ScriptSharp 另外,在 Codeplex 上有一个 CRM 的定义,但我没有链接了 :)

1
如果你是.net开发人员,那么你至少应该检查一下script#。是的,它只有一个人在维护。是的,它没有TypeScript广告效应好,但是有多少开发人员能够与微软竞争呢?
我有Script#的实际经验,但没有TypeScript的经验。而且我不想尝试后者的唯一原因是script#适用于已经熟悉c#+JS的人,而TypeScript则是一个全新的故事和项目的新成本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接