【问题标题】:Can I Build Desktop Apps(WPF,WinForms) Using .Net Core我可以使用 .Net Core 构建桌面应用程序(WPF、WinForms)吗
【发布时间】:2018-05-28 05:19:14
【问题描述】:

我可以使用 .Net Core 构建桌面应用程序(WPF、Windows 窗体)吗?

我知道使用 .net 核心和 .net 框架构建控制台应用程序。 但是当我使用 .net 核心开发控制台应用程序时,它将在(Win、Mac、Linux)上运行 是真的吗?

【问题讨论】:

  • 您似乎在问两个问题,一个是关于 GUI 应用程序,另一个是关于控制台应用程序的平台。
  • 不行。 如果您在 Visual Studio 中选择 .NET Core,您可以在控制台应用程序/ASP.NET/Class Lib + 测试中看到唯一可用的项目类型。真正的 .NET Core 独立于平台。
  • 如果您需要 gui,请查看 Xamarin
  • 微软即将推出的 .NET Core 3.0 将支持 WF 和 WPF 项目。 blogs.msdn.microsoft.com/dotnet/2018/05/07/…
  • 在上一次 Microsoft Build 活动中,他们宣布了有关 .NET Core 3 的新闻。“.NET Core 3 的亮点是支持 Windows 桌面应用程序,特别是 Windows 窗体、Windows Presentation Framework (WPF ) 和 UWP XAML。” 你可以看到更多关于它here

标签: .net .net-core


【解决方案1】:

更新适用于 .NET 6

.NET 6 将支持 UI 的 MAUI、WPF 和 Winforms。

这意味着我们至少有 3 个跨平台 UI 解决方案

ElectronJs 看起来仍然是支持所有主要操作系统(iOS、Linux 和 Windows)的可靠方法

原答案

.NET CORE 3 将支持 windows (WPF, winforms) 开发,仅在 windows 上,注意此时它尚未发布(在发布时)。

Mono + Gtk# 应该支持 Linux、Mac 和 Windows。

不管怎样,如果你真的想写跨平台的windows,可以考虑暴露一个Web Api,用electronjs写windows客户端

【讨论】:

  • 他们是否计划在未来的 .网络核心?
  • @Exerion 我不知道,目前没有任何迹象表明,我想如果社区表现出需求,那可能会改变事情
  • @dbones 如果 MS 正在这样做,我为什么要使用跨平台客户端?我不明白。听起来好像可以在 Windows 上编写 WinForms,就像 Win32 表单应用程序一样,它们在 Linux 上“可以正常工作”。
  • @johnny,不知道这里有什么困惑,WPF/winforms 只能在 Windows 上工作(这些框架目前在 Linux/mac 上不工作)。 Electronjs 是一个跨平台的 UI 框架,看看 bitwarden(它在 github)之类的东西
  • 刚刚(重新)使用 HML5 (Canvas)、JavaScript、CSS (Bootstrap) 和 Electron 构建了我的 WinForm 应用程序,我对它的强大程度感到惊讶。我已经在 Windows、Linux (Ubuntu) 和 Mac (Mojave) 上运行过它。 Electron 非常适合解决这个目前任何其他框架都无法真正解决的问题(Flutter 不存在,dotnet core 仍然不存在)。
【解决方案2】:

是的,.NET Core 应用也可以在 Mac 和 Linux 上运行。取决于使用的操作系统特定的 API。由于 Xamarin,微软可能不会为 .NET Core 提供 UI 技术。

幸运的是,社区创造了一些:您绝对应该看看 Steven Kirk 所写的 Avalonia: https://github.com/AvaloniaUI/Avalonia

2018 年 12 月 6 日编辑:
实际上,微软将在 Windows 上的 .NET Core 3.0 上支持 WPF 和 WinForms。我在 2017 年 12 月不知道这件事 :-)

2019 年 3 月 18 日编辑
https://asp.net-hacker.rocks/2019/02/11/dotnetcore3.html

【讨论】:

  • 这个答案可能会让一些人感到困惑,因为它忽略了 WPF 和 WinForms 目前在 .NET Core 上不可用(尽管计划在 2019 年某个时候发布的 .NET Core 3 预计会提供支持)。即便如此,由于各种(可能很明显)原因,即使在 Core 上也不会支持跨平台的 WPF/WinForms。
  • 嗨@BrianLacy,这是在 Dez 的事实。 2017. 实际上,他们将在 Windows 上的 .NET Core 3.0 上支持 WPF 和 WinForms。所以你是对的,如果你不看这个答案的日期,那会很混乱:)
  • 确实如此。我的评论是为那些目前查看此答案的人提供澄清,而不是那些在添加支持后查看它的人,也不是为那些设法及时回到你的答案发布时的人提供澄清。 :D
【解决方案3】:

我可以使用 .Net Core 构建桌面应用程序(WPF、Windows 窗体)吗?

是的,Winforms 和 WPF 应用程序可以在即将推出的 Dotnet Core 3.0 中构建

查看 this 博客文章。 您也可以提前运行可移植性分析器。

2019 年 4 月 17 日更新:

现在我们可以开始在 Visual Studio 2019 上使用 DotNet Core 3.0 Preview 2

与桌面应用相关的一些关键功能 -

  • C# 8

  • 默认可执行文件

  • 使用 WPF 和 Windows 窗体的 Windows 桌面应用程序

  • Windows 桌面的 MSIX 部署

  • Windows 原生互操作

请参阅 here 了解将桌面应用程序移植到 Dotnet Core 3.0

【讨论】:

    【解决方案4】:

    JIC,可以使用 Mono/Xamarin 构建桌面应用程序。下面是一个针对 Xamarin.Mac (macOS) 和 Xamarin.WPF(Windows) + Android 的 Xamarin.Forms 应用示例。

    https://github.com/maxim-saplin/CrossPlatformDiskTest

    目前,Xamarin.Forms 似乎是开始使用 XAML 和 C#/.NET 为非 Windows 平台构建 GUI 应用程序的最简单方法。除了 Android/iOS,还支持多种桌面平台:macOS(通过 Xamarin.Mac、GTK)、Windows(通过 WPF、UWP、GTK)、Linux(通过 GTK)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多