在Xamarin跨平台应用程序开发中采用MVVMCross框架,我们有here中的PCL (包含模型和视图模型)和视图(针对每个平台)。
a) Xamarin.mobile (获取单套接口访问)驻留在哪里?我想在PCL里面。但是,我看到了不同的Xamarin.mobile二进制文件(例如: Android和IOS),我们是不是把所有的Xamarin.mobile库都放在PCL里面?他们都有相同的名字,不会有冲突吗?
b)我们在哪里保存像访问蓝牙这样的代码(在Xamarin.mobile中不可用)?使用MVVMCross解耦视图和业务逻辑,那么在事件发生(单击)之后创建视图项的所有代码都驻留在视图中吗?
c)在哪里可以使用适配MVVMCross的条件编译?我猜是在Model中,但它只用于文件访问,还是也可以根据目标平台将其放在PCL上来显示视图项(Android上的toast消息)?
(借口如果不合适,只是收集了一些关于MVVMCross和Xamarin.mobile的信息,并在脑海中有了一些理由/困惑)
谢谢!
你好,Saurav
发布于 2013-05-15 19:50:41
API a) Xamarin.mobile (用于获取单组API访问)驻留在哪里?我想在PCL里面。但是,我看到了不同的Xamarin.mobile二进制文件(例如: Android和IOS),我们是不是把所有的Xamarin.mobile库都放在PCL里面?他们都有相同的名字,不会有冲突吗?
Xamarin.Mobile不是可移植的代码-它不能直接从PCL调用。
对于许多Xamarin.Mobile函数(以及许多Xamarin.Mobile没有涵盖的函数),MvvmCross提供了插件-您可以在https://www.nuget.org/packages?q=mvvmcross中看到其中的一些插件
对于X.M拥有但我们还没有包括的其余几个方法-例如联系人查找-那么您可以:
有关插件的更多信息:
b)我们在哪里保存像访问蓝牙这样的代码(在Xamarin.mobile中不可用)?
一般来说,这是以与上述相同的方式完成的。例如,对于蓝牙,看看Sphero示例:
使用MVVMCross的
将视图和业务逻辑解耦,那么在事件发生(单击btn)后创建视图项的所有代码都驻留在视图中吗?
是-如果它是一个“视图关注点”,那么它属于视图(这与任何Mvvm代码相同)
c)我们可以在哪里使用适配MVVMCross的条件编译?
我尽量不使用“条件编译”,包括#if和partial classes。有时我会在插件平台特定的模块中使用它,但通常我会尝试使用继承或抽象-原因是我使用了很多像“重构”和“单元测试”这样的工具,而条件编译根本不能使用这些工具。
有关使用PCL而不是文件链接和其他基于项目的技术的优点(和缺点)的更多信息,请参阅What is the advantage of using portable class libraries instead of using "Add as Link"?
https://stackoverflow.com/questions/16564042
复制相似问题