基于PCL的跨平台项目中平台特定功能的项目架构

本文关键字:项目 功能 PCL 跨平台 基于 平台 | 更新日期: 2023-09-27 17:50:20

我目前正在使用Xamarin和MvvmCross平台开发一个跨平台应用程序。我想知道如何设计我的解决方案(项目架构),以使其包含平台特定的功能(PCL中的接口等)。

例如,如果我想实现读取文件,我应该在PCL中创建什么样的接口?我还应该遵循哪些好的实践?还有别的办法吗?

谢谢

基于PCL的跨平台项目中平台特定功能的项目架构

一般的方法是在PCL中定义接口,它可以在不同的平台上使用,然后有特定于平台的库来实现这些接口。

在每个平台的不同应用程序中,然后将这些接口连接到正确的实现。然后,您可以在代码中的任何地方依赖于PCL内部定义的接口。在运行时,将传递正确的平台特定实现。

我写了两篇关于这个的博文,可能会很有用(它们是关于Win8和WinPhone之间的共享,但同样的概念适用):

http://www.kenneth-truyers.net/2013/02/24/patterns-for-sharing-code-in-windows-phone-and-windows-8-applications/

http://www.kenneth-truyers.net/2013/03/27/portable-class-libraries-or-source-code-sharing/

专用于MvvmCross:

    有一个关于这个的n+1视频http://slodge.blogspot.co.uk/2013/06/n31-injection-platform-specific.html
  • 在https://github.com/MvvmCross/MvvmCross/wiki/MvvmCross-plugins
  • 有一篇关于插件的完整wiki文章
  • 在https://github.com/slodge/MvvmCross/wiki/Service-Location-and-Inversion-of-Control
  • 有一篇关于IOC的完整wiki文章