【问题标题】:A good folder structure for Xamarin form projects [closed]Xamarin 表单项目的良好文件夹结构[关闭]
【发布时间】:2017-06-23 04:56:07
【问题描述】:
由于我是 Xamarin 表单的新手,我不太了解如何将 Xamarin 表单项目安排在良好的文件夹结构中?
例如。我有一个包含以下文件的项目:
- 网络通话
- 数据库处理
- 查看创作
- 模型-视图绑定
- 实用程序等
注意: Xamarin Form 本身具有 Xamarin.iOS 和 Xamarin.Android 解决方案文件夹,上述文件可能对 Android 和 iOS 通用。
【问题讨论】:
标签:
c#
xamarin
xamarin.ios
xamarin.android
xamarin.forms
【解决方案1】:
典型应用层
-
数据层 - 非易失性数据持久性,可能是 SQLite 数据库,但可以使用 XML 文件或任何其他合适的机制来实现。
-
数据访问层 – 围绕数据层进行封装,提供对数据的创建、读取、更新、删除 (CRUD) 访问,而无需将实现细节暴露给调用者。例如,DAL 可能包含用于查询或更新数据的 SQL 语句,但引用代码不需要知道这一点。
-
业务层 –(有时称为业务逻辑层或 BLL)包含业务实体定义(模型)和业务逻辑。商业外观模式的候选者。
-
服务访问层 - 用于访问云中的服务:从复杂的 Web 服务(REST、JSON、WCF)到从远程服务器中简单地检索数据和图像。封装网络行为并提供一个简单的 API 供应用程序和 UI 层使用。
-
应用层 – 通常特定于平台的代码(通常不跨平台共享)或特定于应用程序的代码(通常不可重用)。将代码放置在应用程序层还是 UI 层的一个很好的测试是(a)确定该类是否具有任何实际的显示控件或(b)它是否可以在多个屏幕或设备(例如 iPhone 和 iPad)之间共享)。
-
用户界面 (UI) 层 - 面向用户的层,包含屏幕、小部件和管理它们的控制器。
每一层都代表一个单独的Solution Folder。
而且每个Layer也应该是不同的ClassLibrary(Portable)(见Encapsulation)
本文档也值得一读:
封装、职责分离、多态性
取自Xamarin Developer Guide - Achitecture
我还找到了更多信息here.
【解决方案2】:
对于哪个选项更好 - 使用共享项目或可移植类库,没有完全一致,但这些是代码共享的选项。
我个人同意 Miguel de Icaza 的观点,Xamarin 领导认为,如果您不在其他应用程序之间共享您的代码,共享项目会更好,但正如他所说,Xamarin 中的一些人认为相反。