C# Xamarin Forms:使用Prism和/或ReactiveUI,是否可以实现垂直切片?
我已经为一个移动应用程序工作了一周,用于个人教育和增强。我有一些WPF和MVVM的经验,我没有移动开发的经验 我们的想法是在测试一些编码原理的同时,开发一个跨平台的应用程序:C# Xamarin Forms:使用Prism和/或ReactiveUI,是否可以实现垂直切片?,c#,xamarin.forms,architecture,prism,reactiveui,C#,Xamarin.forms,Architecture,Prism,Reactiveui,我已经为一个移动应用程序工作了一周,用于个人教育和增强。我有一些WPF和MVVM的经验,我没有移动开发的经验 我们的想法是在测试一些编码原理的同时,开发一个跨平台的应用程序: 反应式编程() 垂直切片,如果可能,(,) 我计划使用以下组件: Prism.Unity.Forms:似乎提供应用程序结构、ioc、导航,似乎被广泛使用,并由顶尖人士完成 ReactiveUI,ReactiveUI.XamForms,ReactiveUI.Fody:WhenyValue,ObservableAsPro
- 反应式编程()
- 垂直切片,如果可能,(,)
- Prism.Unity.Forms:似乎提供应用程序结构、ioc、导航,似乎被广泛使用,并由顶尖人士完成
- ReactiveUI,ReactiveUI.XamForms,ReactiveUI.Fody:WhenyValue,ObservableAsPropertyAttribute,ReactiveAttribute(),不使用它们对我来说是一个巨大的错失机会
- Csproj
- 视图模型
- CreateExercisePageViewModel
- 主页视图模型
- 观点
- 创建练习页
- 主页
- 视图模型
- 使用Prism的导航功能,将主页设置为导航页面中包含的初始页面李>
- 在XAML中声明一个命名按钮,使用ReactiveUI功能(如教程所示,使用WhenActivated方法)通过在code behind中创建的单向绑定设置其命令属性
- 使用Prism navigation导航到第二页(CreateExercisePage)
- Csproj
- 屏风
- 家
- 主页
- 主页视图模型
- 创造练习
- 创建练习页
- CreateExercisePageViewModel
- 家
- 屏风
添加新屏幕意味着向“屏幕”文件夹添加一个新文件夹,减少修改现有文件/逻辑的风险。垂直切片有点像我们在Xamarin上使用的MVVM。表单: 视图是UI层,视图模型帮助处理逻辑代码,模型表示数据库数据 例如,用户单击视图层上的按钮以触发视图模型中的命令。然后,此命令可以将新产品添加到该视图模型的列表属性中。由于此列表属性已更改,它将通知UI响应此操作 此外,您的第一个体系结构更合适:
- 视图模型
- CreateExercisePageViewModel
- 主页视图模型
- 观点
- 创建练习页
- 主页
用视图模型分隔页面。那么,你对这种“垂直切片”的定义是什么,这样每个人都能清楚地知道你真正想要的是什么个人观点:将属于一起的内容分组,但不要强行分组。视图和视图模型自然地属于一起,但是
UserManagement
服务不属于LoginPage
…我的设置问题是,我已经多次使用它,类的内聚性似乎降低了。当您开始编写新功能时,IntelisSense将向您提供名称空间中的所有其他类。如果重用某些类,则会创建类似于继承的耦合,因为如果使用类发生更改,则可能会迫使重用类发生更改,从而可能破坏其他使用类,迫使开发人员全面分析重用类的使用方式。你说第一种架构更合适,但是垂直切片的好处不可取吗?我以前没有使用过垂直切片,但我认为在看到它的描述后,我们现在对mvvm所做的事情是一样的。如果您创建了一个公共页面或视图模型以供重用,那么继承类不会更改根类。那么为什么您认为它会迫使重用类改变呢?我们不应该修改根类(重用类),我们应该将特殊功能放在继承类中。