在asp.net应用程序中,我想结合使用Webclient Software Factory (WCSF)及其关联的Model View Presenter模式和Page方法,即使用WebMethod属性标记的.aspx视图上的静态方法。
然而,aspx页面上的静态方法似乎破坏了Model View Presenter模式,因为页面上需要一个实例方法来拥有View对话所需的Presenter和Controller的上下文。
如何在WCSF中扩展asp.net的MVP模式来支持页面上的WebMethods,也就是视图?
发布于 2008-09-27 01:51:27
最近,我在做一个MVP模式化项目时遇到了类似的问题,我想要大量的AJAX集成。您最好拥有符合您所调用的MVP模式的web服务。
请记住,PageMethod只不过是当前页面中的一项web服务。它不能访问任何页面级对象,因此将它放在那里的好处微乎其微。我实际上认为它们是不利的,它们给了开发人员(不熟悉这个概念的开发人员)可以与页面级对象交互的想法。
硬币的另一面是你的PageMethod在做什么,如果你的页面方法不需要与模型交互(比如,它处理复杂的算术计算,在C#/VB.NET中比JS更快),那么这个操作实际上是一个UI级的操作,如果你要把应用程序变成一个WinForm (或其他东西),那么很可能是无关紧要的。
请记住,在UI级别与数据进行所有交互都是特定于该UI实现的。如果您要为展示者编写不同的UI,那么您可能会有不同的UI级别的数据交互。
发布于 2008-09-27 01:12:58
我认为,通过使用ASP.Net AJAX Web服务而不是静态页面方法,您可以接近您正在寻找的内容。web服务的优点是不是静态的,根据视图的实现方式(我不熟悉WCSF模式的细节),您可能会使web服务成为您的“视图”layer..or,至少是相当接近的。
在我正在做的一个项目中,我也做过类似的事情。我最终需要创建一个仅限数据的瘦类,它被web服务序列化为JSON,以便将数据从模型传递到“视图”,但web服务本质上具有相同的方法,这些方法将作为视图上的事件公开。
我喜欢这种方法的一个原因是,所有的部分,包括web服务,都是可测试的。
https://stackoverflow.com/questions/141104
复制相似问题