也就是MVC架构中,如果做用户的权限控制呢,具体一点,谢谢。

解决方案 »

  1.   

    权限控制跟MVC有什么关系吗?不太明白。
      

  2.   

    MVC和权限管理没什么必然联系。只不过MVC中View层会通过Controller层来访问Model层的业务逻辑方法,而我们的MVC框架通常会用代理模式,在Controller层上做一个统一访问的入口,这样View层对Model层的方法的的所有调用,都不是直接调用的,必须通过这个入口来代理调用,这就方便了权限管理和日志管理的实现。其实这个用代理模式实现的“入口”,是模拟了AOP的拦截思想。个人体会,MVC在WinForm上并不好用,我现在准备换成IOC+AOP来代替MVC/MVP,以下是我的一些想法:
    http://www.cnblogs.com/ego/archive/2009/03/06/1404328.html
      

  3.   

    自己抽象一层Access Layer,配置用数据库,这样,不管你用web还是windows application都可以。
      

  4.   


    刚刚学MVC,你的意思是不是如果没有联系的话,那个权限管理单独于MVC外做,还是?你的博客我看了,有没有示例代码之类的,谢谢。
      

  5.   

    具体怎么样应该看使用环境吧
    我在做一个矢量画图的软件, 应用了 mvp 框架, 所以对这个话题比较有兴趣
    关于 mvp 的资料, 我看的不多, 只是一篇 martin flower 关于 presenter 的文章, 另外是 ibm 的一份文档
    在他们的概念里, model 只是单纯的用来存储数据, 不知为何你会有 Business Model 的想法?而 Controller仅仅起一个“桥梁”作用,它负责把View的请求转发给Model,再负责把Model处理结束的消息通知View。 Controller就是一个消息分发器。Controller是用来解耦View和Model的,具体一点说,就是为了让UI与逻辑分离(界面与代码分离)。
    不仅仅是 UI 与逻辑要分离, 逻辑与数据也需要分离, 所以在我看来, Model 负责的任务很简单, 就是数据的存储, 其他工作应该由它上一级的模块负责关于如何在 winform 中实现 mvc/mvp 架构, 是个有趣的话题
    我个人的经验是, view 与 controller 可以"人为"区分开, 我是通过引入一个 ToolInteractor 的 UserControl, view 中的事件, 传递给 ToolInteractor, 然后由 ToolInteractor 调用 Controller
    这是我个人的做法, 坏处是每次对 mvc 的使用都比较烦琐, 好处是对代码做了良好的隔离, 理解起来清晰点
    否则 view 与 controller 混在一起, 那就是 mfc 的 view/document 框架了btw. 关于 mvc 的资料, 我觉得 ibm 的那份文档很不错, <<MVP: Model-View-Presenter: The Taligent Programming Model for C++ and Java>>, 给了我很大的启发