Xamarin:MVVMCross信息

Xamarin:MVVMCross信息,mvvm,xamarin,mvvmcross,portable-class-library,xamarin.mobile,Mvvm,Xamarin,Mvvmcross,Portable Class Library,Xamarin.mobile,在Xamarin跨平台应用程序开发中采用MVVMCross框架,我们有PCL(包含模型和视图模型)和视图(针对每个平台),如中所示 a) Xamarin.mobile(用于获得一组API访问)驻留在哪里?我想在PCL里面。但是,我看到Xamarin.mobile的不同二进制文件(例如:Android和IOS),我们是否将所有Xamarin.mobile库都放在PCL中?他们都有相同的名字,不会有冲突吗 b) 我们在哪里保存访问蓝牙等代码(Xamarin.mobile中不提供)?使用MVVMCro

在Xamarin跨平台应用程序开发中采用MVVMCross框架,我们有PCL(包含模型和视图模型)和视图(针对每个平台),如中所示

a) Xamarin.mobile(用于获得一组API访问)驻留在哪里?我想在PCL里面。但是,我看到Xamarin.mobile的不同二进制文件(例如:Android和IOS),我们是否将所有Xamarin.mobile库都放在PCL中?他们都有相同的名字,不会有冲突吗

b) 我们在哪里保存访问蓝牙等代码(Xamarin.mobile中不提供)?使用MVVMCross可以解耦视图和业务逻辑,因此在事件发生(btn单击)后创建视图项的所有代码都驻留在视图中吗

c) 我们在哪里可以使用条件编译?我猜是在模型中,但它是否仅用于文件访问,或者也可以用于根据目标平台显示视图项(Android上的toast消息),通过将其放置在PCL上

(如果不合适,请提供借口,只是收集了一些关于MVVMCross和Xamarin.mobile的信息,并考虑了一些理由/困惑)

谢谢大家!

问候,, 索拉夫

a) Xamarin.mobile(用于获得一组API访问)驻留在哪里?我想在PCL里面。但是,我看到Xamarin.mobile的不同二进制文件(例如:Android和IOS),我们是否将所有Xamarin.mobile库都放在PCL中?他们都有相同的名字,不会有冲突吗

Mobile不是可移植代码——不能直接从PCLs调用它

对于许多Xamarin.Mobile函数(以及Xamarin.Mobile没有涵盖的许多函数),MvvmCross提供了插件——您可以在

对于X.M已提供但我们尚未提供的其余几个方法(例如联系人查找),您可以:

  • 通过编写可移植接口(facade)来访问Xamarin.Mobile函数
  • 编写一个新插件来实现它们
有关插件的更多信息:

  • 请参阅中的N+1视频中的N=8-添加位置插件
  • 有关编写插件的信息,请参见
b) 我们在哪里保存访问蓝牙等代码(Xamarin.mobile中不提供)

一般情况下,这与上述方法相同。例如,对于蓝牙,请查看Sphereo示例:

使用MVVMCross可以解耦视图和业务逻辑,因此在事件发生(btn单击)后创建视图项的所有代码都驻留在视图中吗

是-如果它是“视图问题”,则它属于视图(这与任何Mvvm代码相同)

c) 我们在哪里可以使用条件编译

我尽量不使用“条件编译”,包括
#if
分部类
。有时我会在插件平台特定的模块中使用它,但通常我会尝试使用继承或抽象来代替——原因是我经常使用诸如“重构”和“单元测试”之类的工具,而条件编译根本无法使用这些工具


有关使用PCLs而不是文件链接和其他基于项目的技术的好处(和缺点)的更多信息,请参见

请尝试每个问题问一个问题-这有助于人们(如您)以后搜索答案。这里有三个问题。谢谢:)非常感谢你给我准确的答案。非常感谢你的帮助。