ScriptSharp为我的工具包带来了哪些优势?

目前我们使用jQuery为我们的应用程序添加RIA优势,但最近我们一直在我们的Sharepoint门户中实现Coveo搜索引擎,并发现ScriptSharp用于他们的产品。 ScriptSharp能带来什么?

我在讲话时使用ScriptSharp,大约在2-3周前发现它。 老实说,我喜欢它。 原生Javascript是一个挑战,DOM模型使客户端编程更加糟糕。 然后我在六个月前发现了jQuery,我认为这是天赐之物。 jQuery提高了我的工作效率,但我仍然经常使用jQuery陷入困境,因为你仍然需要编写和调试并调整Javascript。

输入ScriptSharp。 它提高了我对jQuery的工作效率,极大地减轻了我的头痛。 我能看到的最大优点是, 当你编写代码时 ,C#和Visual Studio的强大function是你的 这种力量不容低估。 现在, 在编译时消除了过去花费数小时调试的琐碎的小Javascript错误 代码行可能是jQuery的两倍,但生产率要高得多,所以谁在乎呢? 您基本上只是编写代码,编译/测试/调试周期更少。 小时变成分钟。

我会说最初让ScriptSharp与Microsoft AJAX一起工作是非常困难的,直到我了解到为了使用它必须采取的非常重要的步骤 。 在我知道这件事之前,我把头发拉了几天。 (我相信这是在ScriptSharp的61页PDF自述文件中记录的,但它容易掩盖它。)关键是选择项目类型“网站内的脚本#类库”(或“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的Javascriptunit testing和VS intellisense有了很多改进,因此静态类型的重要性有所降低
  • 使用它限制了我对jquery和javascript的学习

js的工具只会越来越好,直到Script#开源,它才处于停滞状态。

如果您对交叉编译感兴趣,您还可以查看http://jsc.sourceforge.net/项目,该项目允许您使用.net 3.5并编译为JS,Java,Flash甚至PHP! 不确定生成的代码效率如何……

编辑:有一个名为JSIL的新项目,它还将.net代码重写为JS

jsc编译器项目支持以下场景:

  • C#to MSIL to JavaScript for browser
  • C#到MSIL到AppJet的JavaScript
  • C#到MSIL到PHP5用于托管解决方案
  • 用于浏览器applet的C#到MSIL到Java
  • C#到MSIL到Java的应用程序
  • C#到MSIL到Java用于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岁。
  • 等待捐赠以优化编译时间和输出本身

最新的示例是等离子动画,可以在这些平台之间使用单个 实现 :

  • Flash 10
  • Java Applet (通过canvas元素)
  • JavaScript的
  • Windows窗体
  • Windows Presentation Foundation

FlashPlasma http://sofzh.miximages.com/jquery/Preview.png

脚本尖锐原型:微软的GWT

根据这个页面:

  • 一种干净的语言与自然结构。
  • 更容易的重构和探索。
  • 能够生成文档。
  • 能够轻松自定义脚本代码。

我不确定我是否同意所有这些,但无论如何这都是销售宣传。 好像它是用一些OOfunction打字的。 意见如下:正如我在其他时候提到的那样,Java和C#开发人员似乎想要抛弃Javascript的原型/非类型化方面,因为他们对以这种方式编写代码感到不舒服。 无类型的原型语言有其自己的位置。

我想分享我的脚本#jQuery包装器类。 您现在可以在Script#项目中访问和使用jQuery的强大function。

从这里获取它: http : //www.springsys.com/blog/