【发布时间】:2010-10-21 19:06:06
【问题描述】:
目前我们使用 jQuery 为我们的应用程序添加 RIA 优点,但最近我们一直在将 Coveo 搜索引擎实施到我们的 Sharepoint 门户中,并发现在他们的产品中使用了 ScriptSharp。 ScriptSharp 能带来什么?
【问题讨论】:
目前我们使用 jQuery 为我们的应用程序添加 RIA 优点,但最近我们一直在将 Coveo 搜索引擎实施到我们的 Sharepoint 门户中,并发现在他们的产品中使用了 ScriptSharp。 ScriptSharp 能带来什么?
【问题讨论】:
正如我们所说,我正在使用 ScriptSharp,大约 2-3 周前发现了它。老实说,我喜欢它。原生 Javascript 是一个挑战,而 DOM 模型让客户端编程更加糟糕。然后我在大约六个月前发现了 jQuery,我认为这是天赐之物。 jQuery 提高了我的工作效率,但我仍然经常使用 jQuery 陷入困境,因为您仍然需要编写、调试和调整 Javascript。
输入 ScriptSharp。它比 jQuery 提高了我的工作效率,并极大地减少了我的头痛。我能看到的最大优势是 C# 和 Visual Studio 的强大功能在您编写代码时是您的。它的强大功能不容小觑。现在,过去需要数小时才能调试的 Javascript 小错误在编译时被消除了。代码行数可能是 jQuery 的两倍,但生产力这么高,谁在乎呢?您基本上只是编写代码,编译/测试/调试周期要少得多。小时变成分钟。
我会说,最初让 ScriptSharp 与 Microsoft AJAX 一起工作是相当困难的,直到我了解到为了使用它而必须采取的非常重要的一步。在我知道这件事之前,我把头发拔了好几天。 (我相信这在 ScriptSharp 的 61 页 PDF 自述文件中有记录,但它非常很容易掩盖它。)关键是选择项目类型“网站内的脚本#类库”(或“网站内的 MS Ajax 类库”)创建 ScriptSharp 库时。这会将 ScriptSharp 项目放置在网站的 Bin/Scripts 目录中,并且 -- 非常重要 -- 将编译后的输出定向到该目录而不是默认的“bin " ScriptSharp 项目的目录。也许一个例子会很有启发性:
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 也可以用作源语言。即使 GWT 和 Script# 这样做,jsc 编译器也不会读取您的源代码。我的编译器会读取您的 IL。
jsc编译器是
最新示例是等离子动画,其中single implementation 可以在这些平台之间使用:
(来源:sourceforge.net)
【讨论】:
Script sharp Prototype: Microsoft’s GWT
根据这个页面:
我不确定我是否同意所有这些,但无论如何,这就是推销。似乎它带有一些 OO 功能。意见如下:正如我在其他时候提到的,Java 和 C# 开发人员似乎想要抛弃 Javascript 的原型/非类型化方面,因为他们不喜欢以这种方式编写代码。无类型的原型语言有它们的位置。
【讨论】:
我想分享我的 Script# 的 jQuery 包装类。您现在可以在 Script# 项目中访问和使用 jQuery 的强大功能。
【讨论】: