【问题标题】:Run existing .net 4.5 app on Windows 10 IoT在 Windows 10 IoT 上运行现有的 .net 4.5 应用
【发布时间】:2016-03-01 23:24:23
【问题描述】:

我们在 .Net 4.5 中有一个大型应用程序,其中包含 WPF 和许多参考资料,如 NHibernate、Fluent NHibernate、Enterprise Library、Unity 等。

我被要求调查我们是否可以(在完成一些工作后)在 Windows 10 IoT 上运行它。据我所知,我需要将应用程序移植到 Windows 通用应用程序,据我所知,这是不可能的,因为 NHibernate 不适用于通用应用程序。

WPF 不是问题,但我们一致认为,如果需要,我们可以丢弃前端。

所以我想确保我的理解是正确的,并且在 Windows 10 IoT 中运行我们的应用程序的唯一方法是在没有 NHibernate 和当前不支持 Windows 通用应用程序的所有其他 3rd 方库的情况下重写它。这是真的?如果没有,我们应该怎么做才能让它发挥作用?是否需要付出很大的努力?

【问题讨论】:

  • 您想在物联网设备上放置数据库吗?否则,您应该考虑使用服务层(例如 WebAPI)并让所有业务逻辑和数据访问远离物联网设备。
  • @Bart 我知道这是一种正确的方法。但我们的想法是在几天内移植该应用程序。如果几天后不可能 - 我们就没那么感兴趣了。我们可以把 UI 扔掉,再写一个,因为它很简单。重写数据库逻辑是一个复杂得多的任务。如果有必要,我们可以将数据库保留在本地
  • 您不会在 2 天内将 WPF ui 移动到 UWP(除非它是单屏)。如果您目前没有适当的层分离并且已经存在服务层,请忘记在 2 天内完成。罗马不是一天建成的,体面的架构/实施也不是。
  • @Bart 是单屏。我们要移动的这部分应用程序的 UI 非常简单,但业务逻辑非常复杂

标签: c# win-universal-app windows-10-iot-core


【解决方案1】:

如果您有一个包含所有功能的核心并且它与前端分离,那么应该可以使用该核心,然后使用 UWP 为它构建一个新的前端。

UWP 在访问库和框架方面受到更多限制,因为它可以适应多个平台,因此可能需要重写一些特定于平台的代码。

所以答案取决于代码现在的耦合程度和平台特定性。

【讨论】:

  • 我们可以扔掉 WPF,但是我们用 NHibernate 做什么呢?我尝试构建一个小型 UWP 应用程序并在那里引用 NHibernate - 结果证明 NHibernate 不受支持(我预料到了,无论如何都尝试检查它)
  • @Archeg 显然,您要么找到与 UWP 一起使用的 NHibernate 的替代品,要么将数据库放在其他地方。
  • @mason “将数据库放在其他地方”是什么意思?
  • @Archeg NHibernate 和它的数据库不会在 UWP 上。他们会在其他地方,在其他支持它的平台上。然后,您的 UWP 将与该应用通信。
  • @Archeg 假设您一直在遵循良好实践并将数据层与 UI 隔离,这应该不会太难。这就是开发人员如此强调关注点分离的原因!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多