MonoTouch的和MonoForAndroid之间的代码共享(Code sharing betw

2019-06-24 13:42发布

什么是共享的MonoTouch和Mono之间的业务内容的逻辑C#代码对于Android的项目,最好的做法?

编辑:最初,我的问题是关于物理文件共享:

  1. 你有什么建议使用:网络文件共享或某些代码版本控制(GIT,SVN)? 在我来说,我使用两台工作站 - 苹果(MonoDevelop的与MonoTouch的)和PC(Visual Studio中MonoDroid的)。
  2. 怎么样解决方案/项目文件夹结构? 在“博客文章: !Xamarin移动通信世界大会2012非官方会议应用程序发布 ”例如结构是相当混乱:一个文件夹中的几种解决方案,并在不同的文件夹和项目名称一个子目录下,那么不同的平台项目。 它不能与IDE nativly完成。 难道他们编辑的解决方案文件和文件夹名称内容manualy外IDE环境?
  3. 而对于公共代码项目中使用什么样的配置文件(模板)? MonoTouch的有几个:空项目,MonoTouch的图书馆项目和MonoTouch的绑定项目? 在Android中我supose - Android的类库?

Answer 1:

这是一个非常普遍的问题,但这里有一些资源,可以帮助您开始:

  1. 视频: 跨平台移动开发
  2. 博客文章: 共享库的Windows Phone 7,MonoDroid的和超越
  3. 图书: 用C#移动开发
  4. 博客文章: Xamarin移动通信世界大会2012非官方会议应用程序发布!

编辑(回答你的新问题)

  1. 背后跨项目链接文件的想法是,只有一个文件的实际拷贝,而不是管理多个拷贝,并保持同步自己。 该文件将实际存在于仅仅一个项目,被链接到别人,但是当项目被编译它将该文件,就好像它实际上是在那里。

  2. 他们是如何创建自己的文件夹结构,我不能确切地讲,但我知道已经有很多情况下,我会手动编辑项目或解决方案文件得到的文件夹结构我想,因为没有办法让我想通过单独的IDE。 这实际上可以归结为个人喜好上你希望你的文件夹的结构。

  3. 最后,你需要的是您要针对每个平台类库项目。 当与链接文件的方法去,你把物理文件这完全取决于你。 一种方法我经常使用的是真正创建一个标准的.NET 4.0类库,将文件放在那里,然后将它们链接到我的单声道Android和MonoTouch的类库。 如果所有你关心的目标是iOS和Android,这可能是更多的麻烦比它的价值,你可以只让文件都在一个项目中,并将其链接到另一个。



Answer 2:

免责声明:我有一个特别的MVVM的方法 ,我使用的跨多平台项目共享代码...

尽管这样,我真的不相信“一刀切”的框架 - 我认为你需要小心挑选最适合你的项目,你的开发人员和您的组织的方法。

随着中说,一些可以在Mono开发方法中使用的工具是:

  • 使用便携式类库共享恰好平台之间的相同的代码
  • 使用特定平台的类库共享平台之间的代码,这些采用联项目链接器工具来自微软
  • 使用类库中的#define代码以提供项目平台的具体实现(我个人尽量避免使用此方法,但它通常会提供给市场的最快途径)
  • 使用DI / IoC的技术来提供这些场合组件确实需要特定平台实现时。
  • 使用装配连接提供的IoC -例如,这是什么Xamarin MobileAPI呢
  • 使用基于服务器的逻辑真正共享的功能 - 例如,使用REST或SOAP,XML服务来实现逻辑
  • 平台之间共享试验(如NUnit的),以确保您的逻辑的质量
  • 使用共享码技术- MVC( MonoCross )或MVVM( MonoMobile.Views或MvvmCross )为UI “控制器”的逻辑; MonoTouch.Dialog和MonoDroid.Dialog的“查看级别”的抽象; CrossGraphics为UI “绘图”; SQLite.Net数据库; 等等

我发现MonoTouch的,MonoDroid的和微软提供的工具在开发跨平台代码的真实signigicant好处 - 但你必须工作,并认为实现这一目标。



文章来源: Code sharing between MonoTouch and MonoForAndroid