我已经从事移动应用程序工作了一周,以进行个人教育和增强。我在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
- 主页
- ViewModels
我管理以下内容:
- 通过使用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
- 主页
使您的页面被视图模型分开。