Xamarin形式:使用Prism和/或ReactiveUI,可以实现垂直切片



我已经从事移动应用程序工作了一周,以进行个人教育和增强。我在WPF和MVVM方面有一些经验,我没有移动开发的经验。

这个想法是在测试一些编码理念时进行跨平台应用程序:

  • 反应性编程(reactiveui(
  • 垂直切片,如果可能的话(博客1,博客2(

我计划使用以下组件:

  • prism.unity.forms:似乎提供了应用结构,IOC,导航,似乎已被Top Notch People广泛使用并完成了
  • reactiveui,reactiveUi.xAmforms,reactiveUi。Fody:当anyvalue,observableBableSpropertyAttribute,reactiveatTribute(教程(,不使用它们时,对我来说似乎是一个巨大的错过的机会

我的视觉工作室的当前结构如下:

  • csproj
    • ViewModels
      • createexercisepageViewModel
      • HomePageViewModel
    • 视图
      • createexercisepage
      • 主页

我管理以下内容:

  • 通过使用Prism的导航功能,将主页设置为在导航页面内包含的初始页面。
  • 在XAML中声明一个命名按钮,通过使用ReactiveUI功能在后面创建的单个绑定来设置其命令属性(如教程中所示,使用whe activated方法(
  • 使用Prism导航到第二页(createexercisepage(

一个问题是,即使我看到了有关垂直切片的几篇文章,但主要有有关Web应用程序的文章。

所以问题是:垂直切片适用于移动应用程序?

我想通过使用垂直切片来重组我的项目,但是遇到有关Xamarin形式的文章的麻烦,我感到不安。

编辑:我对垂直切片概念的理解是,您应该在同一物理空间(文件夹(中分组与功能相关的代码。通过这样做,它为开发人员提供了有关这些文件的凝聚力的巨大暗示。

给定一个移动应用程序是由屏幕制成的,我假设按屏幕分组代码,无论其类型(演示,逻辑,持久性(都是有道理的。

重写该应用程序将给出以下CSPROJ,然后:

  • csproj
    • 屏幕
        • 主页
        • HomePageViewModel
      • createexercise
        • createexercisepage
        • createexercisepageViewModel

添加新屏幕意味着将新文件夹添加到"屏幕"文件夹中,从而降低了修改现有文件/逻辑的风险。

垂直切片有点像MVVM,我们在xamarin.forms上使用:https://learn.microsoft.com/en-us/xamarin/xamarin-forms/enterprise-application-patterns/mvvm视图是UI层,视图模型可帮助您处理逻辑代码,并且模型表示您的数据库数据。

例如,用户单击视图层上的按钮以在视图模型中触发命令。然后,此命令可以将新产品添加到该视图模型的列表属性中。由于此列表属性已更改,它将通知UI以响应此操作。

此外,您的第一个体系结构更合适:

  • ViewModels
    • createexercisepageViewModel
    • HomePageViewModel
  • 视图
    • createexercisepage
    • 主页

使您的页面被视图模型分开。

最新更新