【发布时间】:2011-03-23 09:02:51
【问题描述】:
在过去的几天里,我一直在开发一个小型 Web 应用程序。我决定使用 ASP.NET MVC。我做出这个决定主要是因为我认为这是真正控制 Web 前端并呈现有效 HTML 页面的最佳方式。但是,我知道 MVC 可以做得更多。
尽管我的应用程序很小,但我还是专注于应用程序的架构。对我来说有几个层很重要,其中两个应该可以随时切换:用户界面(Web / Desktop / Webservices)和数据访问逻辑(支持多个数据库)。我认为在模型视图控制器模式中这是可能的。
在这种情况下,是否可以将基于 Web 的前端替换为 Win32 或 WPF 前端?这是可能的还是我理解错了?我找不到办法做到这一点。
我发现这样做的唯一方法是创建 MVC-Layer、BusinessLogic-Layer、BusinessObject-Layer 和 DataAccess-Layer。在这种情况下,所有可以被 WPF 应用程序重用的通用东西,例如我放入业务层,所有 MVC 特定的东西我放入 MVC 层,我的控制器所做的大部分工作是调用 BL 方法并构建一个 ViewModel并将其返回到视图。我不确定这是否是一个正确的解释,并感谢有关更好做法的建议。
【问题讨论】:
-
我认为您应该定义“真正的 MVC”对您意味着什么,并通过将桌面前端与 Web 服务交换来阐明您的意思。这有点奇怪。
-
对我来说,控制器似乎是 BusinessLogic 的容器,如果我所有的 BusinessLogic 都在一个控制器中,并且有一天我想用“WPF-Views”或“Win32 Views”替换我的“基于 Web 的视图” " 我不想重写所有的逻辑。
标签: asp.net-mvc model-view-controller