代码之家  ›  专栏  ›  技术社区  ›  john84

ASP.NET MVC是真正的MVC模式吗?

  •  2
  • john84  · 技术社区  · 14 年前

    在过去的几天里,我一直在开发一个小型的Web应用程序。我决定使用ASP.NET MVC。我做这个决定主要是因为我认为这是真正控制Web前端和呈现有效HTML页面的最佳方法。不过,我知道MVC可以做得更多。

    尽管我的应用程序很小,但我还是关注应用程序的体系结构。对于我来说,有几个层是很重要的,其中两个层随时都可以切换:用户界面(web/desktop/webservices)和数据访问逻辑(支持多个数据库)。我认为在模型-视图-控制器模式中,这是可能的。

    在这种情况下,是否可以用Win32或WPF前端替换基于Web的前端?这是可能的还是我理解错误?我找不到这样做的方法。

    我找到的唯一方法是创建MVC层、业务逻辑层、业务对象层和数据访问层。在这种情况下,所有可以被WPF应用程序重用的通用工具,例如,我放入了业务层,我放入MVC层的所有MVC特定工具,以及我的控制器所做的最重要的工作是调用BL方法并构建一个视图模型并将其返回到视图中。我不确定这是否是一个正确的解释,并将感谢关于更好的做法的建议。

    2 回复  |  直到 10 年前
        1
  •  4
  •   Jeff Sternal    14 年前

    是的,它使用了一个真正的MVC模式,至少在Martin Fowler's指定的意义上是这样的。 Patterns of Enterprise Application Architecture (也许是最接近规范定义的东西——见他的文章’ GUI Architectures '进行扩展讨论)。

    MVC的核心是为用户界面驱动的应用程序建立一个清晰的关注点分离。

    MVC并不打算使无状态接口(如Web应用程序)和厚客户端应用程序(如WPF或WinForms)之间的切换变得容易。这些平台有不同的优点和缺点:试图使用一个控制器来满足这两个要求将导致一个低于标准的最低公分母实现。

        2
  •  0
  •   Scott    14 年前

    我不太明白你的问题。如果您想要的视图不在HTML中,请查看不同的ASP.NET MVC视图引擎。如果你想给你一个WinForms视图,你必须以同样的方式对业务逻辑进行编码,然后从同一个解决方案中的WinForms应用程序中获取所有这些类/数据,当用户想要进入这个“页面”时,他们必须下载WinForms应用程序并运行它。你可以试着让它看起来像网络上的东西,但这并不能保证。