书籍“在iOS和Android中使用C#开发移动应用程序”

亲爱的读者,我们很高兴向您介绍Binwell著名的Xamarin的作者兼专家Vyacheslav Chernikov撰写的“ iOS和Android C#移动应用程序的开发”一书。 在没有冗长的前奏的情况下,我请作者发言。



下午好,亲爱的habrachitatel。 在过去的几年中,我写了很多关于使用C#和Xamarin框架开发移动应用程序的文章和教程,但是最初所有这些指南和文章的一部分都被认为是我的第一本书的章节,终于看到了光明的一天。 本书的材料被整合为一个整体(很多东西以前都没有出版过!),它将把移动应用程序的开发过程带到一个全新的水平-从选择工具和准备文档,到开发过程的自动化和解决常见问题。 这本书被认为是Xamarin上已经有俄语和英语的材料的和谐补充,揭示了诸如设计,建筑,创建项目的骨架(框架)之类的问题,而这些通常都是大多数书籍和培训课程所不具备的。

本书详细介绍了以下主题,并提供了大量代码示例:使用Xamarin,ReactNative,PhoneGap,Qt和Flutter作为示例的本机和跨平台工具的比较; 规范的设计和技术文档; 项目的架构和结构,我们将所有内容都放置到位; 移动DevOps以及装配,测试,交付和监视的自动化; 每天的实用建议。



可以在“ DMK Press ”出版社的网站上购买该书(最便宜的选择!)以及在线商店LabyrinthMy-Shop.ruFlip.kzOz.by以及其他在线商店,它们的数量随着书的分发而增加。

对于种子(并得到发布者的同意),我将介绍第三章。

3.应用架构


因此,我们已经熟悉Xamarin.Forms的工作原理以及如何自行进行技术设计。 现在我们已经了解了域模型,是时候继续解决方案的体系结构了-我们如何将类分配到文件夹中,以便以后可以轻松找到所需的代码。

3.1。 多层MVVM


在移动应用程序中,传统上使用多层架构,将数据访问层,业务逻辑层和用户界面显示层分开。


图 3.1。 经典的三层架构

由于架构模式MVVM是Xamarin.Forms固有的,因此建议在移动应用程序中使用它。 MVVM描述了View(通常应用程序屏幕是Page),ViewModel和Model的关系。


图 3.2。 MVVM模式

因此,基于Xamarin.Forms的应用程序的典型体系结构如下:


图 3.4。 Xamarin.Forms上的基本应用程序体系结构

在本书中,我们将重点介绍呈现的体系结构,因为它是Xamarin.Forms的经典之作。 以下各节将更详细地描述每个模块。

3.2。 分层分解


如果我们回想起基础知识,那么程序就是一组算法和数据。 移动应用程序也不例外。 该体系结构使您可以将出于各种目的的算法和数据彼此分开。

在移动应用程序中,可以有条件地区分以下类型的算法:

  1. 控制用户界面组件(用户界面,UI)的行为和外观;
  2. 用户交互逻辑和业务场景(业务逻辑,BL);
  3. 数据采集​​,存储和转换的逻辑(数据访问层,DAL);
  4. 与用户界面(平台)无关的平台功能。
  5. 还有许多其他算法,例如应用程序初始化或其他辅助类和扩展(Extensions),但它们分类起来并不容易,因为它们特定于项目,团队和选定的库。
  6. Xamarin.Forms上的一个空项目的结构如下所示。 此外,重要的是要了解将文件放入哪个文件夹,以使代码保持简单。


图 3.5。 Xamarin.Forms上的空项目的结构

如果我们着手如何保持代码“处于良好状态”(最小的技术债务),那么团队就必须遵守统一的协议。 下面,我们将考虑一个将类分离到文件夹的示例,该示例将与所描述的体系结构相对应。

但是首先,让我们回顾一下数据。 重要的是要了解将讨论其中的哪个。 有来自服务器的数据(数据传输对象,dto),但是有在应用程序中处理的数据(模型,实体,数据对象)。 请注意,从DAL层立即接收现成的数据更为方便,因此可以更轻松地与它们进行进一步的合作。 我们将在3.5节中对此进行更多讨论。

此外,在移动应用程序中,没有如此大量的数据,因此不需要在它们上创建厚模型和“涂抹”业务逻辑(大型公司系统的一种方法)。 足够的常规POCO(普通旧CLR对象),没有任何逻辑。 因此,所有完成的数据都来自DAL层,其他层不知道的DTO类则隐藏在内部。 以下是厚模型和POCO对象之间的区别。


图 3.6。 “厚”模型和POCO对象之间的区别

此外,我们将遵循以下表示法:

  1. 数据对象-业务逻辑将继续使用的平面(POCO)数据模型。
  2. 数据服务-数据获取,转换和存储服务。
  3. 商业服务-数据处理服务和商业场景。
  4. 平台服务-用于直接访问平台功能的服务。

感谢您的反馈和意见,请保持联系!

Source: https://habr.com/ru/post/zh-CN484602/


All Articles