3

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

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

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

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

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

谢谢。

4

3 回答 3

3

选项:

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

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

于 2013-08-09T06:35:02.190 回答
2

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

自动魔术

于 2013-08-16T09:18:57.630 回答
1

很可能,从头开始重写。需要记住的一件事是,如果您的后端是 .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 中存在问题。使用 SQLCipher 进入 2.2 或 2.3。如果我没记错的话,适用于 ICS 及更高版本。

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

于 2013-08-09T17:29:51.737 回答