标签: prism

什么是WPF的棱镜?

最近我偶然发现了一些叫做Prism的东西.运行该项目的微软将其描述为

WPF和Silverlight中的复合应用程序指南.

即使在阅读了更详细的描述之后,我也几乎不知道它实际上是什么,我害怕.

我希望有人可以给我一个明确的简洁解释,说明Prism实际上是什么以及为什么我应该学习它.我已经成为WPF开发人员几年了,使用MVVM我的公平份额,并且最近遇到过使用Prism的人,但个人感觉有点不在这里.

特别是,我想知道以下几点:

  • Prism字面上只是(或主要)是MSDN网站上的小册子吗?它是否包含任何库,如果是这样的话究竟是什么?

  • Prism是MVVM框架吗?我应该将它作为"官方Microsoft MVVM框架"而不是其他人或我自己的吗?

  • 它是否提供依赖注入?它是否与MEF有关?

  • 作为WPF/Silverlight开发人员,我应该知道Prism的作用.

wpf prism mvvm

132
推荐指数
2
解决办法
7万
查看次数


MVVM Light + Unity还是Prism?

我现在在WPF中有点过时,并且有兴趣听到人们对最新版本的Prism(我之前使用过几个版本)和MVVM Light + Unity方法(我从未做过)的看法 - 体面的例子URL会很好).

我的项目将是一个很大的项目,包括由几个开发人员编写的多个模块 还有资金引入第三方控制套件,以便使用其中一个花哨的Docking/Workspace布局管理器建立一个漂亮的工作区(我知道Prism区域的一些比其他区域更好).

如果你现在从头开始一个项目,你会选择什么?为什么?有关特定推荐体系结构模式的详细信息将非常有用(例如,自动发现模块dll?注入日志记录服务?).基本上,任何想法和建议都会很好.我想进行一次很好的讨论.也许完全有另一个方向你建议进去?我非常处于研究阶段,并希望尽可能多的输入.

我把它放在这里因为我认为它会比Prism/MVVM Light论坛获得更少的偏见,但是,如果有更适合这个问题的地方,请指出我的方向.

.net c# prism unity-container mvvm-light

39
推荐指数
1
解决办法
2万
查看次数

MVVM,Unity,Prism,MEF,Caliburn - 我应该使用什么?

请帮忙 - 我迷路了!

我正在编写一个小型桌面应用程序,它有一些控件和一些屏幕.这应该稍后与一个小网站集成,也有一些屏幕.我们的想法是让用户编辑视频并选择图像,然后与朋友分享他们的结果.

桌面应用程序使用的是C#WPF,即网站 - ASP.Net MVC.

我读到使用MVVM可以更轻松地将应用程序增加到几个屏幕.所以我开始搜索并发现了Caliburn.Micro和MVVM.Light.我已经下载了一些教程,但正如我准备深入研究材料一样,我在SO上找到.那里还有Prism,MEF,Unity,ReactiveUI - 这太过分了!

我学习新东西很糟糕 - 学习WPF和ASP.Net MVC花了我很多年的时间.我不想研究很多新材料,只是为了稍后发现它不相关.而且我没有一位建筑师来指导我.

所以我的问题是:你能否对这些框架和技术进行透视,并建议我应该把重点放在研究和使用上(特别是后来用于Windows 8的内容)?

prism mef unity-container mvvm-light caliburn.micro

31
推荐指数
3
解决办法
2万
查看次数

WPF MVVM对话框示例

有没有人有任何使用MVVM(Prism)显示窗口对话框的例子? - 例如,执行命令时的配置设置窗口.

我见过的所有例子都使用了很好的中介模式,但是他们也都在视图模型中引用了一个不理想的视图(我们使用的是DataTemplates)

谢谢

wpf prism mvvm mediator prism-2

28
推荐指数
2
解决办法
4万
查看次数

WPF/Prism:什么是UNITY容器?

有人可以向我解释Unity容器的概念,比如我是一个6岁的孩子吗?它是如何工作的以及它的作用是什么?

c# wpf prism

28
推荐指数
3
解决办法
2万
查看次数

MVVM:绑定到Model,同时保持Model与服务器版本同步

我花了很多时间尝试为以下挑战找到一个优雅的解决方案.我一直无法找到解决问题的解决方案.

我有一个简单的View,ViewModel和Model设置.为了便于解释,我会保持简单.

  • Model有一个名为TitleString类型的属性.
  • Model是在DataContext的View.
  • ViewTextBlock这就是数据绑定到Title的模型.
  • ViewModel有一个名为方法Save(),将保存ModelServer
  • Server可推到所做的更改Model

到现在为止还挺好.现在我需要进行两项调整才能使模型与a保持同步Server.服务器的类型并不重要.只要知道我需要调用Save()才能将模型推送到Server.

调整1:

  • Model.Title属性将需要调用RaisePropertyChanged(),以转换为所做的更改ModelServerView.这很好用,因为它Model是DataContextView

还不错.

调整2:

  • 下一步是调用Save()保存从所做的更改ViewModelServer.这是我被卡住的地方.当模型被更改时,我可以处理调用Save()的Model.PropertyChanged事件,ViewModel但这会使它回显服务器所做的更改.

我正在寻找一个优雅而合理的解决方案,如果有意义,我愿意改变我的架构.

c# silverlight domain-driven-design prism mvvm

28
推荐指数
2
解决办法
2万
查看次数

棱镜与mvvm光为wpf

我们正在使用MVVM项目启动WPF,并且必须决定PRISM或MVVM Light(我对这两个框架都不熟悉).我已阅读了几篇文章但仍有几个问题.有人可以对框架中的以下几个方面有所了解吗?:

  1. 性能:出于任何原因,一个框架是否会比另一个框架表现更好?

  2. 应用程序内的通信(viewmodel到viewmodel或模块​​之间等):我已经读过MVVM Light有Messenging Service,它看起来也相当容易.但是PRISM似乎没有任何等价物.真的吗?PRISM如何处理交互?

  3. 单元测试:已经读过PRISM更好地支持单元测试.我们还可以在MVVM Light中编写NUNIT或VSTS测试吗?

wpf prism mvvm mvvm-light

28
推荐指数
3
解决办法
2万
查看次数

MVVM:修改模型,如何正确更新ViewModel和View?

案件

说我有一个Person班级,一个PersonViewModel和一个PersonView.

将属性更新PersonViewPerson模型很简单.PersonViewModel包含一个Person对象,并具有PersonView绑定到的公共属性,以便更新Person模型.

然而.

想象一下,Person模型可以更新Service.现在需要将属性更改传达给PersonViewModel然后再传递给PersonView.

我就是这样解决的:

对于Person模型中的每个属性,我将引发PropertyChanged事件.PersonViewModel订阅了PropertyChanged事件Person.PersonViewModel然后会引发另一个PropertyChanged以更新PersonView.

这对我来说似乎是最明显的方式,但我有点想把这个问题抛到那里,希望有人能给我一个更好的方法.这真的很简单,还是有更好的方法将模型标记为已修改并更新ViewModel上的相应属性?

附加

PersonView的DataContext的是PersonViewModel.Person从JSON填充并在其生命周期内多次更新.

随意为我的特定情况建议架构更改.

回答

我将aqwert标记为我问题的答案,因为它为我提供了我已经提出的解决方案的替代方案.

c# silverlight domain-driven-design prism mvvm

27
推荐指数
2
解决办法
3万
查看次数

自定义MVVM实现VS. PRISM

这个问题的灵感来自这个封闭的问题:

Prism实际上为开发人员提供了什么?它值得吗?

我已经在企业应用程序中实现了自己的自定义MVVM实现.我有兴趣知道:

  • 我为什么要学习PRISM(特别是PRISM,而不是其他MVVM框架)?
  • PRISM优于自定义MVVM实现和
  • 学习PRISM是否值得投资?

我希望这个问题不是主观的,每个人请不要参与:)

.net wpf frameworks prism mvvm

25
推荐指数
2
解决办法
7854
查看次数