【问题标题】:cross-compile ASP.NET website to desktop?将 ASP.NET 网站交叉编译到桌面?
【发布时间】:2018-11-08 16:41:15
【问题描述】:

有没有办法将基于 ASP.NET 的网页交叉编译或移植到本机 Windows GUI?

我正在开发一个 Web 应用程序,其中一个 ASP.NET Web 服务完成了大部分繁重的工作,一个 ASP.NET 网页作为 GUI。我还想提供一个“离线”版本的应用程序,它不需要教随机的人如何管理 IIS。我的一些目标用户在想要使用该应用程序时无法始终访问互联网;另外,我喜欢自己不必依赖活跃的网络连接,因为我是个老顽固,而且这种网络 2.0 的东西只是一种时尚,对吧?

应用逻辑的核心是一个与其他所有内容分离的库 - 该服务仅提供一个 API(我希望公开提供给其他人使用),并且我将其用于我自己的应用。我可以继续在 WPF 或 WinForms 中设计一个新的 GUI,导入我的库就可以了,但我很懒,我很好奇是否有自动化解决方案。甚至是半自动化的解决方案。

如果我也能以非 Windows 为目标,那就太好了。我已经有一个控制台界面,用于开发直接访问它们的核心库,我仍在测试它,但在 WINE 中工作应该相对容易,但如果我可以为非 Windows 用户提供更多离线使用支持我会感觉好多了。

【问题讨论】:

  • 如果你的应用程序设计得当,核心业务逻辑应该在一个可重用的类库中。然后,您可以为它编写任何您想要的 UI,包括 ASP.NET 站点、带有 C#/XAM 的 UWP 应用程序、Electron 应用程序、Windows 窗体或 WPF ......您是否正确设计了您的应用程序?
  • @mason 是的,我做到了。但如果我也不必重写 UI,那就太好了:)

标签: asp.net windows desktop-application


【解决方案1】:

您可以在 .NET Core 上以自托管方式运行该 Web 应用程序。这样您就可以获得完整的 IIS 功能集,而无需用户进行任何配置。

然后您可以使用WebBrowser 控件将应用程序显示为 GUI 应用程序,或者只是在用户安装的浏览器中打开网站。

.NET Core 也可以在非 Windows 上运行。

【讨论】:

  • .NET Core 也可以在其他操作系统上自托管运行吗?我认为 IIS 仅限于 Windows 机器。
  • @EmilySmirle .NET Core 可以在任何操作系统上运行自托管。 IIS 在 Windows 上是首选(但不是必需的)。
  • @mason 这太棒了。我认为这几乎完全满足了我对惰性编码器的要求——我不必重新编写 GUI,我可以学习一个新系统!
  • @EmilySmirle 您可能需要重做 GUI。你说你有一个 ASP.NET 站点,但你没有说明你在做什么框架。如果您使用了 Web 表单,那么它还没有移植到 .NET Core(有很好的理由)。如果您使用 MVC 或 HTML 页面访问 Web API,那么应该不会太难。
猜你喜欢
  • 2014-08-03
  • 2012-07-10
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
相关资源
最近更新 更多