首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin: MVVMCross信息

Xamarin: MVVMCross信息
EN

Stack Overflow用户
提问于 2013-05-15 19:39:06
回答 1查看 1.4K关注 0票数 3

在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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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拥有但我们还没有包括的其余几个方法-例如联系人查找-那么您可以:

  • 通过编写可移植的接口(外观)来访问Xamarin.Mobile函数
  • 编写新的插件来实现它们

有关插件的更多信息:

b)我们在哪里保存像访问蓝牙这样的代码(在Xamarin.mobile中不可用)?

一般来说,这是以与上述相同的方式完成的。例如,对于蓝牙,看看Sphero示例:

使用MVVMCross的

将视图和业务逻辑解耦,那么在事件发生(单击btn)后创建视图项的所有代码都驻留在视图中吗?

是-如果它是一个“视图关注点”,那么它属于视图(这与任何Mvvm代码相同)

c)我们可以在哪里使用适配MVVMCross的条件编译?

我尽量不使用“条件编译”,包括#ifpartial classes。有时我会在插件平台特定的模块中使用它,但通常我会尝试使用继承或抽象-原因是我使用了很多像“重构”和“单元测试”这样的工具,而条件编译根本不能使用这些工具。

有关使用PCL而不是文件链接和其他基于项目的技术的优点(和缺点)的更多信息,请参阅What is the advantage of using portable class libraries instead of using "Add as Link"?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16564042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档