我目前正在使用asp.net,c#和MVP(Model-View-Presenter)模式实现一个项目。该解决方案的主要目的是向消费者提供图表,供各种系统使用。它基本上是一个自定义图形服务器。
此特定情况下的视图页面上有一个MSChart控件,必须根据QueryString中的参数动态填充和配置。使用图表控件的许多属性,这可以与完全不同类型的数据集,显示模式等一样多样化。
这些属性中的许多属性都是图表控件特有的类型,如果要由演示者设置,则需要与图表控件本身相同的依赖关系。
我正在试图找出将属性公开给演示者的最佳方法,以便它可以发挥其魔力。
我应该:
对我而言,似乎是将MVD模式与显示控件一起映射到演示者,但似乎尝试将所有属性映射到DTO或类似的将是很多工作会增加很多复杂性,虽然解决方案会更松散地耦合,但我不确定在这种情况下获得的收益是否值得。
给定MVP,你会如何实现这样的东西?
答案 0 :(得分:3)
在对此主题进行更多研究时,我发现以下博客文章有关添加Presenter模型以处理复杂视图控件,以在视图和演示者之间进行映射。它实际上对我来说很有意义,这是一个想法,我想我会跟进并尝试。
http://mikewagg.blogspot.com/2009/01/managing-complexity-with-mvp-and.html
事实上,Martin Fowler也写过这篇文章:
答案 1 :(得分:2)
结帐Automapper。使业务对象转换为视图模型几乎毫不费力。一般的想法是你的视图模型应该只有原始的系统类型,如果可能的话,以避免视图中的格式化/条件化。