是否可以在.NET核心中制作桌面GUI应用程序?

EKa*_*ily 78 .net-core coreclr

我已经开发了几年的winforms程序.我现在正在研究.NET核心(包括ASP.NET核心MVC).我正在寻找新的GUI桌面技术.在visual studio 2015 update 3中我看不到任何选项在.NET核心中制作GUI应用程序.我错过了什么?

svi*_*ick 47

你没有遗漏任何东西.目前,没有合理的方法直接使用.Net Core创建GUI应用程序.

虽然UWP(通用Windows平台)部分构建在.Net Core之上.

此外,.Net Core 3.0(每日构建已经可用)将包括对Winforms和WPF的支持,尽管它将仅限Windows.

  • omg,这是一个震惊!那么没有GUI的跨平台框架有什么意义呢? (29认同)
  • 因为它完全是关于云,让时髦开发人员感到高兴? (29认同)
  • @EssamGndelee主要观点是ASP.NET核心应用程序.辅助点是控制台应用程序. (13认同)
  • @ChristopherPainter更好地支持云计算并从Node.js这样的平台吸引开发人员是.Net Core存在的一些原因,是的.但这并不意味着微软现在只关心那些. (3认同)
  • @svick,这将完全消除任何跨平台编程,而这正是 .NET Core 应该解决的问题。UWP 仅适用于 MS 系列:/ (2认同)

小智 38

您可以使用Electron并将其与Edge.js连接起来.电子边缘.Edge.js允许电子(node.js)调用.net dll,反之亦然.这样,您可以使用HTML,CSS和JavaScript编写GUI,使用.net核心编写后端.Electron本身也是跨平台的,基于铬浏览器.

  • 但为什么是电子?您也可以在端口 X 上打开一个 Web 应用程序,然后将浏览器导航到那里。包括 Electron 所能提供的一切,以及更多,因为它始终是浏览器的最新版本 - 与 Electron 不同。如果您需要特定的浏览器版本,请在您的发行版中包含 Google-Chrome。 (7认同)
  • @StefanSteiger 我认为使用电子并直接通过程序集调用 API 将填补用户不会将应用程序视为网络应用程序的空白。并且一些开发人员不想使用 HTTP 添加更多通信层。 (2认同)
  • Electron.NET 看起来确实很有前途,但我厌倦了在生产中使用它,因为它迫使您在生产计算机上打开不安全的 Web 服务器。话又说回来,只要应用程序的 ASP.NET Core 端位于正确配置的反向代理服务器(如 IIS 或 nginx(或类似服务器)后面),那么您应该会更安全。 (2认同)

kek*_*eks 21

AvaloniaUI现在支持在Win/OSX/Linux上运行.NET Core.包括XAML,绑定和控制模板.


Pau*_*opf 21

现在可以使用Qml/Net使用Qt/QtQuick/QML和.NET Core .

它具有高性能(不是"pinvoke chatty"),功能齐全,适用于Linux/OSX/Windows.

查看我的博客文章,了解它与目前其他选项的比较情况.

PS:我是作者.


Rui*_*edo 20

一种选择是使用带有JavaScript,HTML和CSS的Electron用于UI,并构建一个.Net Core控制台应用程序,该应用程序将自动托管用于后端逻辑的web api.Electron将在后台启动控制台应用程序,该应用程序将在localhost:xxxx上公开服务.

通过这种方式,您可以使用.Net实现所有后端逻辑,以便通过JavaScript的HTTP请求进行访问.

看看这篇文章,它解释了如何使用Electron和.Net Core构建跨平台桌面应用程序并检查github上的代码


Gre*_*ger 15

我们使用.net core编写了一个开源的电子解决方案:Electron.NET. https://github.com/ElectronNET/Electron.NET

请享用!

  • 多么刺耳。如果我想要HTML页面,我将制作一个HTML页面。我想要比桌面更好的交互功能。 (3认同)

Kol*_*n N 7

为了创建基于控制台的用户界面,您可以使用gui.cs。它是开源的(来自Xamarin的创建者Miguel),并且在Windows,Linux和MacO的.Net内核上运行。

它包含以下组件:

  • 纽扣
  • 标签
  • 文字输入
  • 文字检视
  • 时间编辑栏
  • 单选按钮
  • 选框
  • 对话方块
    • 留言框
  • 视窗
  • 选单
  • 列表视图
  • 镜框
  • 进度条
  • 滚动视图和滚动条
  • 十六进制查看器/编辑器(HexView)

截图示例

gui.cs示例输出屏幕截图


小智 5

对的,这是可能的。

.NET Core 没有任何开箱即用的本机 GUI 应用程序组件。但是,根据 Gregor Biswanger 的回答,有一个名为Electron.NET的 NuGet 包。

Electron是一个框架,允许您在 Node.js 之上构建本机 GUI 应用程序。Electron.NET 是一个 NuGet 包,允许您从 .NET Core 代码中使用 Electron 和 Node.js。

好消息是,您无需学习 JavaScript、Electron 或 Node.js 即可使用 NuGet 包。JS 文件确实在您的应用程序中运行,但它们是由构建过程自动生成的。

您所做的就是构建一个非常标准的 ASP.NET Core MVC 应用程序。唯一的区别是,它不是在浏览器中运行,而是作为本机窗口应用程序运行。除了特定于 Electron.NET 包的几行代码之外,您无需学习 ASP.NET Core MVC 之上的任何内容。

此页面提供了有关如何使用它的教程。它还包含一些指向示例代码存储库的链接。


Ale*_*sko 5

.NET Core 3将支持创建Windows桌面应用程序。我昨天在.NET会议上观看了该技术的演示。这是我唯一能找到的博客文章,但确实说明了这一点:https//blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-桌面应用程序/


小智 5

我正在做一个可能有帮助的项目:https : //github.com/gkmo/CarloSharp

以下应用程序使用 .NET 编写,UI 使用 HTML、JavaScript 和 CSS (Angular)。

在此处输入图片说明

  • 请不要使用 HTML。 (5认同)
  • @理查德·拉兰塞特:为什么?你能详细说明一下吗?[Visual Studio Code](https://en.wikipedia.org/wiki/Visual_Studio_Code) 不是其中一个示例吗? (2认同)