zoukankan      html  css  js  c++  java
  • Castle.MVC框架介绍

    Castle.MVC目前还在Castle的Sandbox中,只是在源代码管理中有,还没有向外发布版本,这里介绍多时Web的MVC,和Castle的MonoRail相比较,这个MVC可以Asp.Net的事件驱动开发和WebControl所见及所得的开发模式。
    对Castle.MVC做一下分解,其构成主要有:
    View――这个就不多做解释了,页面的CS类如果要实现其导航功能,就继承此类,Castle.MVC提供了3种View:
    WebFormView:继承Page类和IView接口,所有的Web 页面继承这个类。
    WebUserControlView:继承UserControl,所有的用户控件继承这个类。
    WinFormView:继承Form类和IView接口,目前框架中这部分的代码还没有实现。
    Controller――这个应该很好理解,控制View、State和Navigator;定义了接口IController
    Navigator――是实际导航器的功能,从Controller得到下个View的名字,据此来导航到哪个View,但是它并没有直接就Redirect到相关的页面上去了,而是由ViewManager来Redirect的;定义了个接口Inavigator
    ViewManager――管理View的,主要得到当前View的一些信息,比如State,激活View(即Redirect到页面);
    定义了接口IViewManager
    Configuration――负责读取配置用;
    State――是一个状态,是对当前的任务一个保存状态,Castle.MVC提供了2种状态维护的持久化方法:
    MemoryStatePersistence:内存状态维护
    SessionStatePersistence:Session保存状态(一般采用这个)
    LifestyleManager---负责对象的生命周期管理,适用Castle容器对象生命周期管理功能,目前实现了一个
    PerRequestLifestyleManager:为每一个请求创建一个Controller的实例
    Resource:访问资源数据,如多语言等
    MVCFacility:包装TypedFactory来管理IState工厂,关于TypeFactory的原理和使用方法参看http://wj.cnblogs.com/archive/2005/07/12/191359.htm 
    现在我们来看一下Castle.MVC.Test.Web这个工程的web.config
    ?xml version="1.0" encoding="utf-8" ?>
    <configuration>
         <configSections>
              <section name="mvc" type="Castle.MVC.Configuration.ConfigurationSectionHandler, Castle.MVC"/>
         configSections>     


        <mvc>
             //下面定义view

              <webViews>

                  <view id="page2" path="/Castle.MVC.Test.Web/views/page2.aspx" />

                  <view id="index" path="/Castle.MVC.Test.Web/views/index.aspx"  />

              webViews>

             //Command――就是一次调用页面的操作指令,当前View的情况下,如果返回不同下个View就会被Controller调用到下一个页面。

              <command-mappings>

                  <commands view="index">

                       <command id="GoToPage2" view="index" />

                  commands>

                  <commands view="page2">

                       <command id="GoToIndex" view="page2" />

                  commands>

              command-mappings>

         mvc>  

      <system.web>

    system.web>

    configuration>

    最新的IbatisNet的Npetshop2使用就是Castle.MVC框架,需要的同学可以这里下载NPetshop2 最新的IBatisNet的Petshop采用了大量的Castle东西,对于学习Castle是一个非常不错的例子。特点如下:
    Full MVC with Castle.MVC (see web.config to see web flow)
    - IOC integration with Castle.Winstor (inject service, controller, ...) but Dao is always by iBATIS
    ( an next version will also inject the Dao in Service)
    - Addes unit test for Dao, Presentation, Web (vias NunitAsp), Service layers

  • 相关阅读:
    485串口接线
    mvc3 升级mvc5
    VB连接ACCESS数据库,使用 LIKE 通配符问题
    VB6 读写西门子PLC
    可用的 .net core 支持 RSA 私钥加密工具类
    解决 Win7 远程桌面 已停止工作的问题
    解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
    解决安装 .net framework 发生 extracting files error 问题
    CentOS7 安装配置笔记
    通过特殊处理 Resize 事件解决 WinForm 加载时闪烁问题的一个方法
  • 原文地址:https://www.cnblogs.com/shanyou/p/264294.html
Copyright © 2011-2022 走看看