如何在.NET Core控制台应用程序中实现MVVM?

3
我希望使用.Net Core(Console App)和EF Core来创建我的业务逻辑,一个数字计算引擎,它从本地数据库(MySQL或SQLite)加载金融数据,对其进行处理,并将结果存储在同一数据库中并向用户显示。
我希望能够在将来轻松添加GUI以管理CRUD操作和简单命令。
如何在控制台应用程序中实现MVVM模式,以便将来可以轻松添加GUI(Win7-10和MacOs)?

2
我想在未来轻松添加一个UI界面。我知道这并没有回答你的问题。但是我认为,在跨平台GUI库能够与WPF/WinForms相媲美之前,可能需要很长很长时间,甚至永远不会出现。因此,也许要重新考虑是否值得在构建层时花费精力,因为很不可能很快使用GUI层。 - MindingData
2个回答

3
Terminal.Gui Nuget 包含以下内容:

响应式示例 - 这是一个演示如何使用 System.ReactiveReactiveUI 以及 Terminal.Gui 的应用程序。该应用程序采用MVVM架构,对于那些熟悉 WPF、Xamarin Forms、UWP、Avalonia 或Windows Forms的人可能会觉得很熟悉。在这个应用程序中,我们使用ReactiveUI WhenAnyValue语法和Pharmacist - 将NuGet包中的所有事件转换为可观察的包装器的工具来实现数据绑定。


0
在命令行上表示视图模型似乎是一种自然的不匹配。虽然有用于使用终端绘制视图的引擎,但我认为你应该将命令行作为Mvvm模式的目标。MVC模式中,视图是控制台,控制器接收命令行似乎更合适。

一个MVVM视图模型需要一个双向绑定的视图,这需要一个完整的UI框架。同样适用于MVP。MVC有两个单向绑定(输出视图是文本/HTML模板化和输入读取行/HTTP控制器请求)。 - Thomas
1
我的意思是老派的DOS应用程序有丑陋的用户界面,但它们已经有了一些复杂的界面。我不知道是否有适用于控制台应用程序的UI框架,但我认为完全可以有一个在模型更改时更新UI,反之亦然的框架。 - Matías Fidemraizer
没错。当时没有谈论到使用MVVM的数据绑定。 - Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接