承诺的PCL共享代码只是一个共享区域吗?

时间:2014-03-24 18:29:06

标签: c# cross-platform shared-libraries restful-architecture n-tier-architecture

我在Visual Studio 2013中创建了一个Xamarin解决方案,其结构如下:

SOLUTION
    CORE / PCL
    Android
    iOS
    WindowsPhone

理论上,特定于平台的项目将只包含GUI代码(适用于WP的XAML,适用于Android的axml以及iOS使用的任何内容 - 我对Cupertinian的处理方式一无所知);所有逻辑(业务和数据代码,& c)都将驻留在Core / PCL文件夹中,每个平台项目都会引用它。

然而,似乎存在一些中间立场:代码不是GUI但也无法共享,例如printing codefile I/O,这些可能只是其中的鼻孔沐浴河马。

IOW,CORE / PCL文件夹是共享的,但代码显然仍然需要根据哪个平台/设备调用它来分支。从房地产或社会学角度来看,核心/ PCL区域是一个多元化的独立私人区域,而不是狮子躺下羔羊,庆祝多样性等的公共区域。

承诺的共同幸福因此变成了每个人为自己而生的#34;这种化合物的类型,武装警卫限制进入星辰的肛门。地区等。

处理这种共享但非真实场景的常用方法是什么?依赖注入是答案,还是...... ???

更新

事实上,根据我所看到的here,在使用PCL时,每个场景的单独代码可能都是不可能的;它说," 因为在多个应用程序之间共享相同的可移植类库,所以不能引用特定于平台的库(例如,Community.CsharpSqlite.WP7)。"

这真的是这样吗?如果是这样,使用PCL的优势就大大减少了,因为它确实是一个最低的共同标准"一种方法,与suicidal PhoneGap等竞争对手使用的Xamarin HTML / JavaScript方法不同(" PhoneGap的最终目的是停止存在。 &#34)

但话说回来,同样的页面也说明了这一点:

" 在某种程度上,可以使用Provider模式或依赖注入来规避这两个缺点,以便根据可移植类库中定义的接口或基类对平台项目中的实际实现进行编码。 / EM>"

所以我认为(我住在卡梅尔附近,所以我说"估计"经常在[d,r]中对所有加尔默罗会中最着名的人克林特伊斯特伍德说)另一个可行的选择是File-链接(正如他们所说:" 以这种方式进行代码共享有两种主要方法:文件链接和可移植类库(PCL)项目。")。

0 个答案:

没有答案