简短的故事:有没有办法用HTML5中的GUI编写桌面应用程序,用python(甚至C#/ Mono)等跨平台语言编写核心?
更长的故事:我是一名C#开发人员,对于我很少做的小型个人项目,在Windows和OSX下运行,我使用C#(Mono),前端利用Eto.Forms
我想了解是否有使用HTML5 GUI实现相同结果的成熟方法,因为我想了解并相信它可能是近期Windows桌面用户界面(或其他方面)的一个很好的选择在我的技能组中有一个很好的工具)。当然,如果在幕后运行的代码是C#,我会非常高兴,但也会让我的脚变得更好,也许更像python这样的跨平台会很好。
在这个阶段,我对任何面向移动的解决方案都不感兴趣。
答案 0 :(得分:6)
Electron(以前的Atom shell)最近已经成熟了。事实上,它是VSCode的基础。
使用Angular 2和Typescript有great tutorial和starter code,您甚至可以使用VSCode编写和构建它。
对我而言,这是从WPF世界过渡到HTML5的最佳方式。
答案 1 :(得分:3)
NW.js看起来非常有前途......你甚至可以使用TypeScript,它比普通的OL更接近C#。 JS。如果您打开使用PHP,可以查看夜间项目https://github.com/naetech/nightrain。
答案 2 :(得分:3)
您的应用将在Windows 8,MacOS和Linux上运行。您可以使用HTML5,Javascript和CSS3。
但您也可以使用您熟悉的脚本语言扩展应用程序的功能。 TideSDK目前支持Python,PHP和Ruby。
答案 3 :(得分:0)
我用http://kivy.org/编写了一个APP,它可以为不同的系统创建应用程序。
Qt节点https://github.com/arturadib/node-qt似乎也很有趣,但我没有亲自测试。
最后https://chrome.google.com/webstore/launcher
您可以为Chrome创建网络应用,该应用应在受支持的系统中运行。
Kivy是一个Python解决方案。 Qt节点可能就是你要找的东西。
以下是kivy的一些很好的教程: https://www.youtube.com/playlist?list=PLQVvvaa0QuDe_l6XiJ40yGTEqIKugAdTy
答案 4 :(得分:0)
但它是Javascript(节点),不是python,也不是C#。
答案 5 :(得分:0)
我认为一个非常有趣的项目是Chromium Embedded Framework。您基本上在应用程序中嵌入了(剥离的)Web浏览器。对于python,支持许多GUI工具包。查看this了解详情。
由于您习惯使用C#,因此可能选择带有JavaFX和FXML的Java。 FXML不是HTML,但您也可以使用CSS设置样式。您还可以使用Scene Builder来更快地创建UI。许多JVM语言都支持此工具包,因此Jython而不是Java也可以使用。我会推荐Java,因为在那里支持其他语言还不完善。
使用C#和Windows App Store WebView也是一种选择。您可以查看MSDN以获取更多信息。
我确信还有其他选项(Kivy,Node.js等)。其中一些已在此主题中提及。
答案 6 :(得分:0)
我建议使用基于nodejs的Node-Webkit。你仍然可以使用一些python脚本来做一些与Node-Webkit集成的后端工作,这很容易处理。我已经看到一些成功的应用程序使用了这个(像wunderlist).TideSDK是另一个选择,但TideSDK中的python支持还不够成熟.Node-Webkit项目托管在 https://github.com/nwjs/nw.js/
答案 7 :(得分:0)
我最近使用Chromium Embedded Framework,基本上是WPF和WinForms的浏览器组件。它工作得非常好,并提供从网站到.NET-app的双向互操作性,反之亦然。基本上,你:
// .NET
var mainFrame = browser.GetMainFrame();
mainFrame.ExecuteJavaScriptAsync("any js code");
// .NET
browser.RegisterJsObject("boundObject", this);
// JS
boundObject.someMethod();
在此基础上,您可以在HTML / JS-UI和.NET逻辑之间构建中介层(ViewModels,controllers,...)...