目前我们使用 jQuery 为我们的应用程序添加 RIA 优点,但最近我们一直在将 Coveo 搜索引擎实施到我们的 Sharepoint 门户中,并发现在他们的产品中使用了 ScriptSharp。ScriptSharp 能带来什么?
5 回答
我们说话时我正在使用 ScriptSharp,大约 2-3 周前发现了它。老实说,我喜欢它。原生 Javascript 是一个挑战,而 DOM 模型让客户端编程更加糟糕。然后我在大约六个月前发现了 jQuery,我认为这是天赐之物。jQuery 提高了我的工作效率,但我仍然经常使用 jQuery,因为您仍然需要编写、调试和调整 Javascript。
输入 ScriptSharp。它比 jQuery 提高了我的工作效率,并极大地减少了我的头痛。我能看到的最大优势是 C# 和 Visual Studio 的强大功能在您编写代码时是您的。 这股力量不容小觑。现在,在编译时消除了过去需要数小时才能调试的琐碎的 Javascript 错误。 代码行数可能是 jQuery 的两倍,但生产力要高得多,所以谁在乎呢?您基本上只是编写代码,编译/测试/调试周期要少得多。小时变成分钟。
我会说最初让 ScriptSharp 与 Microsoft AJAX 一起工作是相当困难的,直到我了解到您必须采取一个非常重要的步骤才能使用它。在我知道这件事之前,我把头发拔了好几天。(我相信这在 ScriptSharp 的 61 页 PDF 自述文件中有记录,但很容易掩盖它。)关键是选择项目类型“网站内的 Script# 类库”(或“MS Ajax 类库内一个网站") 创建 ScriptSharp 库时。这会将 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 知识完成的。但是,出于几个原因,我不会再次使用它
- 该项目是闭源的,支持不是很好(自从论坛关闭以来几乎不存在)。当您深入使用它时会有很多烦恼,如果您有来源,可以解决这些烦恼。您在 s# 代码上投入的资金越多,这就会成为一个越来越大的问题。
- 它仅限于 .NET 2.0 的一个子集,即便如此,它也是一个泄漏的抽象
- 最近 Javascript 单元测试和 VS intellisense for javascript 变得更好了,因此静态类型的重要性有所降低
- 使用它限制了我对 jquery 和 javascript 的学习
js 的工具只会越来越好,直到 Script# 开源为止,它一直处于停滞状态。
如果您对交叉编译感兴趣,还可以查看http://jsc.sourceforge.net/项目,它可以让您使用 .net 3.5 并编译为 JS、Java、Flash 甚至 PHP!不确定生成的代码的效率如何......
编辑:有一个名为 JSIL 的新项目,它还将 .net 代码重写为 JS
jsc 编译器项目支持以下场景:
- 用于浏览器的 C# 到 MSIL 到 JavaScript
- 适用于 AppJet 的 C# 到 MSIL 到 JavaScript
- C# 到 MSIL 到 PHP5 用于托管解决方案
- 用于浏览器小程序的 C# 到 MSIL 到 Java
- C# 到 MSIL 到 Java 的应用程序
- C# 到 MSIL 到 Java for JavaCard
- C# 到 MSIL 到 C99,用于本机存根应用程序
- C# 到 MSIL 到 ActionScript3 for Flash 9
- C# 到 MSIL 到 Adobe Alchemy C for Flash 9
- C# 到 MSIL 到 C# 2.0
通过一些努力,Visual Basic 也可以用作源语言。即使 GWT 和 Script# 这样做,jsc 编译器也不会读取您的源代码。我的编译器会读取您的 IL。
jsc编译器是
- 一个实验项目
- 一个人的努力
- 已经相当有用了。
- 3岁。
- 等待捐赠以优化编译时间和输出本身
最新的示例是等离子动画,其中可以在这些平台之间使用单个 实现:
- 闪光 10
- Java Applet(通过画布元素)
- JavaScript
- Windows 窗体
- Windows 演示基础
(来源:sourceforge.net)
Script sharp Prototype:微软的 GWT
根据此页面:
- 具有自然结构的干净语言。
- 更容易重构和探索。
- 生成文档的能力。
- 能够轻松自定义脚本代码。
我不确定我是否同意所有这些,但无论如何这就是推销。似乎它带有一些 OO 功能。意见如下:正如我在其他时候提到的,Java 和 C# 开发人员似乎想要抛弃 Javascript 的原型/非类型化方面,因为他们不喜欢以这种方式编写代码。无类型的原型语言有它们的位置。
我想分享我的 Script# 的 jQuery 包装类。您现在可以在 Script# 项目中访问和使用 jQuery 的强大功能。