Xamarin形式:Prism和ReactiveUI可以在同一项目中使用吗?如果是这样,这是个好主意吗?

Dav*_*huu 3 c# architecture prism reactiveui xamarin.forms

我已经为一个个人应用程序和增强功能开发了一个移动应用程序一个星期。我对WPF和MVVM有一定的经验,对移动开发没有经验。

这个想法是在测试一些编码原则的同时,制作一个跨平台应用程序:

我计划使用以下组件:

  • Prism.Unity.Forms:似乎提供应用程序结构,ioc,导航,似乎被广泛使用,并由顶尖人士完成
  • ReactiveUI,ReactiveUI.XamForms,ReactiveUI.Fody:WhenAnyValue,ObservableAsPropertyAttribute,ReactiveAttribute(教程),不使用它们对我来说似乎是一个巨大的机会

我的Visual Studio的当前结构如下:

  • Csproj
    • 视图模型
      • CreateExercisePageViewModel
      • HomePageViewModel
    • 观看次数
      • CreateExercisePage
      • 主页

我管理以下内容:

  • 通过使用Prism的导航功能,将HomePage设置为包含在NavigationPage中的初始页面。
  • 在XAML中声明一个命名按钮,并使用ReactiveUI功能(通过本教程所示,使用WhenActivated方法)通过在代码后创建的OneWay绑定来设置其Command属性。
  • 使用棱镜导航导航到第二页(CreateExercisePage)

一个问题是,网络上有几篇文章比较了Prism和ReactiveUI(google Prism与ReactiveUI)。

所以问题是:我同时使用两者是否做错了?

我现在没有问题,但是我会碰到一个吗?即使我没有,同时使用它们是否有意义?

小智 5

所以问题是:我同时使用两者是否做错了?

一起使用Prism和ReactiveUI没问题。ReacitveUI是一组扩展方法,而不是自以为是的框架。

我现在没有问题,但是我会碰到一个吗?

您可能会遇到两个框架之间来回更改属性事件的问题(使用Prism可能比其他Mvvm框架少),但这应该很容易解决。

即使我没有,同时使用它们是否有意义?

我通常会说,选择Mvvm框架时,要根据其功能集选择所需的框架。如果Prism具有大多数功能,而您只是想通过一些反应式编程来使其增添趣味,那是一个不错的方法。