我应该使用ScriptSharp吗?

19

我正在开发我的第一个ASP.NET MVC应用程序,相信Script#可以帮助我很多。但是它找不到支持我的开发所需的资源。

我找不到CodePlex网站; 只有一份非常好的手册,但这还不够; 我找到的教程非常少; 我知道Script#被用于开发ASP.NET MVC脚本,并且MVC的源代码分发库。

但似乎它仅在Microsoft内部使用。

我在哪里可以找到其他资源?

您真的认为Script#将继续并部署新版本,并应该由第三方项目使用吗???

谢谢您提前


请参见https://dev59.com/xnRA5IYBdhLWcg3w4iKA。 - Mauricio Scheffer
11个回答

19
不要害怕 JavaScript,它是一门美丽强大的语言。而且有像jQueryPrototypeDojo这样的框架,DOM 操作和 AJAX 得到了很大的简化,跨浏览器问题也基本上已经成为历史。 关于 Script#,我同意mcintyre321 给出的答案。最近一次发布已经过去一年了+闭源=对我来说无法使用。 更新:截至 2010 年 1 月,Script# 已经有新版本发布。它仍然是闭源的,但作者提到在 1.0 版后会开源。
更新:截至 2011 年 5 月,Script# 现在是开源的

1
在我看来,JavaScript 是前进的道路。另请参阅 https://dev59.com/xnRA5IYBdhLWcg3w4iKA - Mauricio Scheffer
3
请注意,最近刚刚发布了新版本。该项目并未停止 :-) - Joel Martinez
4
更新:Mix11中的NikhilK已将此项目移至GitHub。这绝对是个好消息。 - Narmatha Balasundaram
4
似乎只有该项目的一部分是开源的,也就是库文件。Script#编译器仍然是闭源的。 - thorn0
@zezba9000:“Err no” 没什么实际意义,但我还是会尝试回答。首先,美是主观的。此外,美和力量取决于你比较的对象。请参见 http://blog.fogus.me/2013/06/04/fun-js-bilby/,了解 JavaScript 功能的示例。 - Mauricio Scheffer
显示剩余4条评论

11
简而言之,我的回答是:如果你喜欢在Windows上运行的功能强大的IDE、面向对象设计和C#,那么请使用ScriptSharp。它更易于维护和组织,并且足够稳定,可以在重要的项目中使用。正如下面和其他项目所示,它也可以很容易地扩展。
由于这又是一个谷歌索引的帖子,在这里人们将Script#和jQuery视为互斥的,我只想指出一些人正在将这两个世界合并,在我的情况下,通过这样做释放了很多力量。我提供了一个完全免费且可重复使用的库,用于从Script#项目中访问jQuery 1.4,并提供了生成该库的解决方案的全部源代码(几乎完全来自jQuery自己的API文档文件)。

http://www.christophercrooker.com/visual-studio-2010-rc-custom-tool-for-code-generation-and-jquery14-with-intellisense-for-scriptsharp


6
在我看来,Script#仅适用于大型项目,具有真正“丰富”的Web客户端。在参与这种类型的项目时,我只能说Script#对我们帮助很大。josephhemingway关于强类型的评论在这种情况下是100%正确的。此外,它使我们能够迅速引入没有任何JS背景的新.NET开发人员。假设Nikhil Kothari计划在2008年夏季开源它,我们甚至反编译(不要告诉任何人!这是非法的),并引入了泛型、运算符重载、各种错误修复等内容。
但是,然后Script#的支持消失了。CodePlex上的项目讨论和问题跟踪被关闭了(有趣的是,在此之前不久,部分框架已经发布在那里)。没有更新,没有未来计划,也没有解释。在遭受这样的事情之后,我认为只有在它成为开源项目并由社区支持时才会考虑使用Script#。例如,在CodePlex上。

2
现在它已经在Github上开源了。 - Andrew Harry
出于好奇,您是否仍在使用Script#并考虑将这些更改捐赠给社区,现在它已经在Github上了? - Bart Verkoeijen
不,就我个人而言,由于Visual Studio中的JS支持以及整体上的成熟度有了很大的提高,并且当前项目的客户端稍微不那么复杂,所以我并不是这样做的。目前,Script#的核心C#到JS转换工具并没有开源(它们是在ScriptSharp.dll中发布的二进制文件),因此我无法将这些东西放在github上,但是如果它们的源代码出现,我一定会尝试的。 - Val

4
我使用Script#,我认为它非常棒。你可以将它与任何框架一起使用,如jQuery、dojo等,但你需要包装这些框架,这可能是一个大工程...
我看到它唯一的好处就是它允许你在强类型环境中开发JavaScript。我认为这是一个巨大的优势。我拒绝在弱类型语言中开发,因为维护是一场噩梦。
然而,如果你喜欢在弱类型语言中工作,那么你就不需要Script#。

4
短答案是不需要。请等待TypeScript。
Script# 是非常酷的,但微软决定完全不支持它。原因是他们正在开发更好的版本——TypeScript (http://www.typescriptlang.org/)。它增加了对静态语言的所有支持(智能感知、类型检查、接口、类等),但仍然看起来非常像JS,并且更重要的是符合即将推出的ECMA Script 6标准(而不是Script#或Google的Dart)。

3

像其他人一样,我建议使用一些JavaScript(即jQuery)。如果您想继续使用Script#,Nikhil Kothari的博客可能是一个很好的资源。 http://www.nikhilk.net/ScriptSharpIntro.aspx - 话虽如此,我认为您会发现使用jQuery更加高效。有一个庞大的社区编写的插件数据库,因此您不必在每个想要完成的任务上重新发明轮子。 使用jQuery插件代替ASP.NET控件


2

哇,Val,你成功让泛型在it中工作了,我印象深刻,这很难吗?支持泛型将是很好的,方法和运算符重载也是。

整个要点是ScriptSharp的解析器支持完整的C# 2.0语法。唯一需要做的就是生成正确的JS。考虑到JS的动态性质,这不需要太多的工作。泛型将像Java样式的一样,即对于每个封闭类型参数集合不会生成一个新的类,而只有一个类。

你确定反编译它是非法的吗?我得看一下使用条款。

没错,是非法的。EULA在安装过程中清楚地提到了这一点。


1
使用ScriptSharp的另一个优点是,如果您需要与C#进行交互(使用AJAX/REST/SOAP),则可以在两个位置中使用相同的类定义,并确保正确定义了接口,因为它们是相同的源文件!我曾尝试过在共享源文件中使用逻辑,但由于ScriptSharp的corelib与C# corelib不完全兼容的方式,所以取得了最小的成功。但对于数据文件定义而言,它非常有效。

1
今天发布了一个版本,很高兴看到它仍然活跃。
尽管之前缺乏更新,并且它没有开源,但我仍然会使用它而不是普通的 js。如果你不喜欢它,随时可以停止使用Script#并继续使用“编译”后的js。
我同意Val的看法,它确实只适用于大型基于js的项目。我认为如果要执行基本页面功能(如验证表单输入等),您可能不会从中获得太多好处。这可能不值得设置。
然而,如果您正在大量使用javascript并需要复制OOP,则我认为这是必须的。像重构这样的事情变得非常容易,对于普通的js,我永远不会重构,因为它太难实现,随着时间的推移,我的代码变得一团糟。
哇,Val让它支持泛型,我印象深刻,这很难吗?泛型支持将是很棒的,方法和运算符重载也是。您确定反编译它是非法的吗?我必须查看是否属于使用条款。

0
此外,我想补充说,当您计划开发多平台项目时,一定要使用ScriptSharp。例如,目前我正在使用C#为.NET、JavaScript(ScriptSharp)、Android(Mono)平台编写图像处理库代码。同时,我计划在未来将我的代码移植到iOS(Mono)和Windows Phone上。我认为这是很好的代码重用和开发人员时间最小化的方式!

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