目前我们使用jQuery为我们的应用程序添加RIA功能,但最近我们在我们的Sharepoint门户中实现了Coveo搜索引擎,并发现他们的产品中使用了ScriptSharp。ScriptSharp能带来什么好处?
我正在使用ScriptSharp,是在2-3周之前发现它的。老实说,我很喜欢它。原生Javascript很有挑战性,而DOM模型使得客户端编程更加困难。六个月前,我发现了jQuery,我认为它是一个救星。jQuery提高了我的生产力,但我经常因为仍需编写、调试和微调Javascript而陷入困境。
然后有了ScriptSharp。它提高了我的生产力,比jQuery减少了许多麻烦。我看到的最大优点是,在您编写代码时,您可以使用C#和Visual Studio的强大功能。这种能力的重要性不言而喻。现在,那些曾经花费数小时进行调试的琐碎的小错误在编译时期就被消除了。代码行数可能是jQuery的两倍左右,但生产力却高得多,所以谁在乎呢?你基本上只需要编写代码,编译/测试/调试周期要少得多,几小时变成几分钟。
我必须说,最初让ScriptSharp与Microsoft AJAX配合工作是相当困难的,直到我了解了一项非常重要的步骤才能与它一起工作。在我了解这个步骤之前,我折磨自己好几天。 (我相信这在ScriptSharp的61页PDF Readme中有记录,但很容易忽略它。)关键是在创建ScriptSharp库时选择项目类型"Web Site内的Script# Class Library"(或“Web Site内的MS Ajax Class Library”)。这将ScriptSharp项目放置在网站的Bin / Scripts目录中,而非常重要的是将编译后的输出指向该目录,而不是ScriptSharp项目的默认"bin"目录。也许一个例子会更有说明力:
Web Site or Application directory\
Bin\
Scripts\ <-- "..\\" config setting sends .js files here.
ScriptSharp Project directory\
Bin\ <-- will not be used at run time
Debug\ <-- will not be used at run time
简而言之,我认为这个项目很值得。 我将撰写自己的HOW-TO(在我的情况下涉及使用Web用户控件)以将所有内容绑定在一起,并在此处发布一个URL。 现在我已经弄清楚了ScriptSharp,它让我在RIA开发方面非常高效。 只是希望它更加可见,如果CodePlex网站仍然存在就好了。
在我上一家公司,我广泛使用了Script#。我写了一些很酷的控件(事实上是整个客户端MVC堆栈),这是我用javascript知识无法完成的。然而,由于几个原因,我不会再使用它:
JS的工具正在变得越来越好,但在Script#开源之前,它处于停滞状态。
如果您对交叉编译感兴趣,您还可以查看http://jsc.sourceforge.net/ 项目,它允许您使用.NET 3.5并编译为JS,Java,Flash甚至PHP!不确定生成的代码效率如何......
编辑:现在还有一个名为JSIL的新项目,它也将.NET代码重写为JS。
jsc编译器项目支持以下场景:
通过一些努力,Visual Basic也可以用作源语言。jsc编译器甚至不会读取您的源代码,即使GWT和Script#这样做。我的编译器读取您的IL。
jsc编译器是:
(源自: sourceforge.net)
Script sharp Prototype: Microsoft’s GWT
根据这个页面:
我不确定我是否同意所有这些观点,但这就是销售宣传。似乎它带有一些面向对象的特性。个人观点:正如我在其他时候提到的那样,Java和C#开发人员似乎想要摆脱Javascript的原型/无类型方面,因为他们不习惯以这种方式编写代码。无类型原型语言有其存在的价值。