【问题标题】:Convert Objective C project to Xamarin将 Objective C 项目转换为 Xamarin
【发布时间】:2013-08-16 17:18:57
【问题描述】:

我们有一个用 Objective C 编写的应用程序。它使用 CoreData、RestKit、大约 10 个视图控制器。

我们希望将其迁移到 Xamarin(以便我们可以针对 Android 和 Windows)。

我希望有一种方法可以将当前代码绑定到 Xamarin 解决方案,并在 Xamarin 中逐步重写功能(例如:一次替换视图控制器,最后通过 SQLite 替换 RestKit+CoreData + 服务栈)。

我知道他们提供的绑定到 Objective C 选项,但是,它看起来不适合这个(太复杂了,可能更容易从头重写应用程序)。

有没有办法将我们当前的项目迁移到 Xamarin 以便我们进行转换?还是我们从头开始?

谢谢。

【问题讨论】:

    标签: xamarin.ios xamarin


    【解决方案1】:

    选项:

    • 迁移整个项目 - 否;
    • 自动为库创建绑定,重写业务代码、UI 代码 - 是的;
    • 使用 .Net/Mono 类从头开始重写 - 是的。

    如果代码量比较小,你应该重写整个应用程序。此外,因此您可以有机会将业务逻辑与 UI 代码和工具库分开(RestKitCoreData)。从长远来看,该代码将更加可靠和跨平台。

    【讨论】:

    • 你的意思是目标C UI代码可以从Xamarin绑定吗?
    • 你不能为安卓创建绑定,这是 OP 要求的
    • @StenPetrov:但是如果我们可以绑定现有的 Objective C 代码并使用它,它将使我们能够“逐步”迁移,而不必重新构建。仍然 - 我确信正确的道路是从头开始重建。
    • @rufo 如果您正在考虑重写,那么您走在正确的道路上。 “循序渐进”的方法将永远拖下去,并且会偷工减料。我已经建立了几个绑定,这不是一个顺利的过程
    【解决方案2】:

    这个工具可以提供帮助。它执行 Obj-c 到 C# 的翻译(需要一些手动清理):

    Automagical

    【讨论】:

    【解决方案3】:

    很可能,从头开始重写。需要记住的一件事是,如果您的后端是 .net.. 并且您正在使用 DTO.. 就像使用 Entity Framework 对象中的 AutoMapper 一样.. 您将能够在移动端重新使用这些 DTO 对象赛马林。如果您使用的是 OData,我不确定这是否仍然是一个问题,但 Xamarin 工作室没有生成 OData 服务客户端。因此,您必须在 Visual Studio 中生成它们,然后将生成的客户端代码放入您的移动项目中。

    sqllite-net 很棒。我从来没有遇到过任何问题。

    https://github.com/praeclarum/sqlite-net

    我目前有一个项目,其中包含来自 Azure WCF 服务的 DTO 对象,我使用 Xamarin 直接向下推送到 IOS 和 Android 上的 SQLLite 对象。我使用 RestSharp,而不是 Service Stack。我可能应该去了解其中的区别。

    如果您希望使用组件存储中的 SQLCipher,在您的设备上本地加密您的 sqllite 数据库(这样做是个好建议),您应该知道在 android 中存在问题.. 转到 2.2 或 2.3与 SQLCipher。如果我没记错的话,适用于 ICS 及更高版本。

    请注意您的安全实施,以允许客户端连接。我想说..不要接受太多建议..也不要接受太少。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多