微软的GWT解决方案是什么?针对.NET的。

17

我喜欢GWT,但我更倾向于在我的项目中使用ASP.NET MVC。然而,这两个不兼容,需要我在两个不同的平台和两种语言中编写代码。微软是否有任何可与GWT相媲美的解决方案,可以将C#编译成JavaScript?我知道有Script#,但它不受微软支持,还有Volta项目,在预览版之后就被取消了。但我想知道现在是否有好的解决方案,或者至少有一些好的开源项目可以将ASP.NET集成到GWT中。谢谢。


你能澄清一下问题吗?你是在问有没有一种简单的方法将ASP.NET与GWT混合使用,还是在询问一种类似于GWT的全面的、兼容Microsoft的解决方案,但实际上并不使用GWT? - DuckMaestro
我想问一下.NET开发者,如何将GWT或类似GWT的功能引入ASP.NET?换句话说,有什么建议的方法可以在客户端代码(Java或C#)进行编译时检查,并同时在服务器端使用ASP.NET MVC? - orad
1
我认为微软正在使用TypeScript(https://www.typescriptlang.org/) - 它可以在编译时提供类型安全,并且仍然非常接近JavaScript。 - Ondrej Svejdar
@OndrejSvejdar TypeScript是今天的正确答案,我已经使用了几年了。如果有人发帖提到它,我会标记为答案。 - orad
4个回答

10

好的,我可以告诉你我目前偏爱的技术栈。对我来说,这是一个既有灵活性又包含成熟技术的不错平衡点,但请注意,我主要用它来构建单页面 Ajax 应用程序,而不是传统的多页面应用。

  • Sharp UI(全名:这是我的一个开源项目之一)
  • Script#
  • jQuery
  • 我使用自己编写的工具为 WCF 和 Script# 共享生成“packet”类。
  • WCF(使用 JSON)
  • ASP.NET(无论是 Webforms 还是 MVC)

使用这个配置,我从 Script# 获得了编译时类型检查,从 Sharp UI 获得了 UI 控件封装,通过 WCF 和我的代码生成工具轻松地维护 JSON 服务端点,而 ASP.NET 则用于其他杂项或传统网页。这个设置是充分发挥全部优势的。


你能详细讲解一下你是如何编排jquery-UI的内容的吗?或者你不使用它? - Richard B
1
Script#的链接已经失效。 - tggm
@TiagoMatias 谢谢,问题已解决。 - DuckMaestro

4
很好的建议,但据我所知,在.NET世界中没有像GWT这样的东西。
我是一名Java和.NET程序员。我与JavaScript打了大约3年的零星战斗,从未感到舒适。自从采用了GWT后,我正在使用Java编写基于JavaScript的网页——我非常喜欢它 ;-)
并没有什么特别的理由不能有一个.NET版本的GWT。GWT不会进行“字面复制”以生成JavaScript,因此它不依赖于两种语言具有“相似”的语法。任何语言都可以转换。不过,要复制GWT编译器在生成其js文件时执行的分析和优化需要付出很多努力。
更有效的方法可能是找到一个C#到Java转换器,然后将输出传递给GWT。

17
我可以给你更好的:C# => Ruby => Fortran => Chuck Norris => VB => ASP => PHP => J2E => Java => GWT... 赢了! 我在哪里可以提供帮助?;) - Robert Koritnik
2
@Robert Koritnik:这是有史以来最好的答案!ROFTL! - markzzz
也许可以尝试使用C# => IKVM => GWT。 - beppe9000

4

Bridge.NET 在这个领域中。它自称为:

开源的C#到JavaScript编译器和框架。 使用JavaScript在任何设备上运行您的应用程序。

由微软推动的解决方案是TypeScript,它是一种单独的语言,由C#的首席架构师Anders Hejlsberg提供输入。它也是开源的。


3
SharpKit是一种类似于GWT的C#.NET编程语言,但它实际上比GWT做得更多。他们甚至使用纯JavaScript编写了一个CLR,为客户端提供了反射、泛型等功能。请访问http://sharpkit.net

谢谢,SharpKit 似乎有一段时间没有更新了,但看起来他们又回来了。然而,就微软支持的解决方案而言,可以与 GWT 相比较的我选择了 TypeScript(http://www.typescriptlang.org/),尽管它并不完全是将 C# 转换为 JavaScript。 - orad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接