2011-03-27 50 views
3

我目前在C#中创建一个WPF应用程序,并且一直关注此diagram。我已经阅读了MVVM上的几篇文章,但是我特别在虚线框下面寻找所有细节(所以模型和数据访问)。我已经有一个本地数据库设置(SQLite),我正在寻找一种将它连接到我的应用程序的有效方式。MVVM - 模型教程?

是否有创造MVVM这个特定部分的任何好的文章或演示?

+0

是否有某些原因导致您删除了我已经回答过的问题? – 2011-03-27 21:47:57

+0

@马丁:我只是想改写它,并注重使用MVVM – Ace 2011-03-27 21:51:47

+4

的。当一个问题是措辞不当,常见的做法是只“编辑”它,而不是删除并重新发布。 – luiscubal 2011-03-27 21:53:49

回答

5

有很多方法可以解决这个问题,你选择哪一个将通过您的应用程序和数据模型的复杂程度来决定。

,以从一个.NET点接近,这将是对你的SQLite数据库之上建立一个实体框架模型的标准方法。这将生成您的对象模型,并允许您将行为附加到它上,而不用大惊小怪。它也从应用程序代码(ViewModels)中抽象出数据库/持久性。有关此方法的详细信息,请在Google上搜索“实体框架” - 此处有大量信息。自EF 4.0发布以来,EF显着提升。

如果你不想去与EF(由于复杂性,开销或者只是推出自己的欲望),那么你将要流行的数据源架构模式阅读起来。从Martin Fowler的Patterns of Enterprise Application Architecture开始 - 本书是数据驱动应用程序体系结构的圣经。如果你不想购买这本书,那么请仔细阅读模式描述,找到合适的模型并进行Google搜索 - 网络上有大量有关这些内容的信息。

如果你有一个行为的负载和图案复杂的模型,那么你会想看看你的模型,并可能用于获取数据从你的数据库和你的模型Data Mapper数据源模式Domain Model模式。这是最复杂的方法,但如果需要的话,复杂性会带来灵活性。

如果您的数据模型更简单,那么你可能要为使用Table Data GatewayRow Data Gateway进行数据访问和可能Transaction ScriptService Layer的模型和数据库之间的通信。

我的主要轰炸你的链接道歉,但现实的情况是在一个架构决定了应用程序做大量的研究是非常重要和首先学习和依赖于已知的解决方案的时候。祝你好运。

+0

我欣赏这些链接虽然我觉得关于这个问题的水平即教程。最简单的模式是最好的,他可以从那里建立它。 – BastanteCaro 2011-04-05 14:22:00

3

链接到的图比MVVM稍微复杂一些。 MVVM只引用Model,View和ViewModel。它将数据访问策略留给程序员。我使用MVVM,但我不喜欢我的Model类包含从数据访问层加载数据的逻辑(实际上,我不喜欢Model类通过INotifyPropertyChanged包含除了更新通知以外的任何编程逻辑)。

我使用目前的模式有一个名为库的其他程序包。 ViewModel调用存储库,告诉它获取数据。然后存储库从数据库(或Web服务或文件系统等)获取数据并填充模型对象。 ViewModel正在观察Model对象,所以更改会传播到UI。

enter image description here

+0

是的,这看起来相当有条理。你知道我在哪里可以找到使用这种模式的* Good *教程吗? – Ace 2011-03-29 04:00:10

+0

王牌:对不起,我找不到任何好的。 – 2011-03-30 22:27:13