GWT与ScriptSharp的利弊

时间:2010-07-21 21:03:30

标签: javascript gwt script#

我们已经确定,要维护我们需要编写全面“单页”javascript“应用程序”的大量javascript,我们太难了。依赖编程约定仍然让我们想要...尤其是在重构方面。对于刚接触这些项目的开发人员,他们发现很难改变任何东西,因为他们没有信心,他们知道还有谁真正依赖于组件(“查找所有引用...”易于处理的事情和强大的代码访问级别打字语言)。

我们一直在玩GWT,但我们的开发人员之一想要使用Script#。我们已经是一家基于微软的商店,并在C#中完成我们所有的服务器端工作。

我不认为java是GWT的show-stopper,因为它与C#非常相似。

我最初对Script#的关注主要围绕支持和文档。

一方面我们有谷歌,另一方面......“有些老兄”。 脚本#也是封闭源代码......所以如果开发人员停止工作,我们是S.O.L.? 我也觉得GWT有更多的文档和社区支持。

无论如何,你和两个人一起工作过吗?思考?优点/缺点?

(要在传递中解决这个问题:问题不在于是否使用编译器......问题是哪个编译器)

类似但不同的问题:

What advantages can ScriptSharp bring to my tool kit?
Should I use ScriptSharp

4 个答案:

答案 0 :(得分:14)

我使用Script#和之前使用过的GWT。他们真的是两件不同的事情。 GWT旨在提供客户端和服务器解决方案,包括RPC和其他所有内容。它肯定更加成熟,您可以更快地开始使用复杂的应用程序。简而言之,在野外有更多的代码和示例。

但是,我认为如果您的开发人员既是服务器端又是客户端,使用两种不同的语言和两种不同的平台可能非常非常繁重。这就是我转到脚本#的原因。我所做的一切都是在C#和Visual Studio中,它让我的工作效率更高。如果你没有利用GWT的后端功能,那就太过分了。

我喜欢将Script#视为用C#2.0规范编写的Javascript(它是)。它完全是客户端的,任何类型的映射都必须手工完成(尽管可以广泛使用自动化)。它在Javascript和jQuery的支持方面非常完善,实际上它是如此完整,这让我一开始很惊讶。看起来它的效果比现在要少。

angryundead的观点是有效的,特别是在社区和开放方面。虽然这对我来说有点刺,但我真的非常喜欢使用Script#。我没有必要改变IDE,我不必查找如何用Java做事等等.jQuery有一个巨大的插件库,它非常非常容易将它们挂钩到Script#中。您只需抛出一些对象来表示属性,将它们注释为“已导入”并使其返回null。在您的代码中,您将对象转换为插件,并且您的输出与Javascript中显示的完全相同。脚本#不关心/知道插件是如何工作的。

不要让脚本#缺乏社区支持欺骗你。虽然这是一个问题,但产品非常成熟并且功能丰富。如果您的开发人员使用C#/ VS,为什么要让他们为客户端使用单独的程序?我发现这是一个巨大的生产力。

顺便说一下,自从使用C#以来,我在Javascript上变得更好。 Javascript的许多问题是缺乏您不需要的语言功能,但在大型项目中,它是使其易于管理的唯一方法。

答案 1 :(得分:8)

我已经使用GWT好几年了。我从未听说过脚本#所以我只会告诉你为什么要坚持使用Google解决方案。

  1. 积极发展。谷歌有一个付费的工程师团队,他们都积极修复缺陷并开发新功能。我目前正与其他一些开发人员讨论如何为GWT实现新功能。

  2. 大型机构。谷歌投资了这个项目并用它来实施大规模的解决方案。换句话说,他们正在吃自己的狗食。他们有利于不让它停滞或过时。

  3. 社区。有很多人在使用加载项/第三方/等库和API来与vanilla发行版一起使用。这些人也在测试,归档和修复缺陷。

  4. 兼容性。 GWT可以与浏览器可以执行的任何操作一起使用。还有jQuery和其他主要JavaScript库的插件,这些插件使得在使用JavaScript时更容易管理项目的复杂性。

  5. 打开。你亲自动手了。

  6. 请注意我没有涉及语言选择问题。我认为这与您描述的级别无关。请记住,当您第一次遇到使用脚本#的限制或路障时,由于您和我描述的内容,您将很快陷入困境。

    当然,我推荐GWT只是因为跟踪记录。

答案 2 :(得分:4)

如果您想将C#用于JavaScript代码,我建议使用SharpKit。它有一个feature comparison和其他C#解决方案。另外,作为其应用程序的示例,您可能需要查看使用SharpKit创建的CodeRun

答案 3 :(得分:3)

除非你正在构建一个完整的浏览器内应用程序,否则我的偏好是Script#,因为它坚持最好的方法 - 将C#编译为JavaScript - 而不是试图成为一个全面的客户端/服务器工具包。 Web范例变化很快,将项目投资到GWT可以为您留下您希望没有的开销或技术承诺。但我想补充一点,这实际上取决于您尝试构建的Web应用程序或Web体验的类型。

就个人而言,我已经非常熟悉jQuery,WCF,并且我开始直接使用新的HTML5功能。脚本#是完美缺失的因素,因为我可以非常轻松地继续使用jQuery和WCF,而且我不需要经历切换到GWT的范例或要求或与其集成的麻烦。

此外,在UI构建方面,您可能会考虑我最近开源的Sharp UI,这样可以更轻松地在jQuery + Script#设置中构建可重用控件。