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

转载于:https://www.cnblogs.com/shanyou/archive/2005/10/29/264294.html

Castle.MVC框架介绍相关推荐

  1. JS/SQL MVC框架介绍

    概述 JS/SQL MVC框架. 顾名思义, 就是JavaScript和SQL MVC框架. 只要掌握JavaScript和SQL就可以快速开发出一个复杂的基于MVC的BS结构的系统. 由于该框架是在 ...

  2. 开源:Taurus.MVC 框架 (已支持.NET Core)

    为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...

  3. 开源:Taurus.MVC 框架

    为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...

  4. [置顶]开源:Taurus.MVC 框架

    为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...

  5. Taurus MVC框架

    Taurus.MVC 源码: 1:源代码SVN:https://github.com/cyq1162/Taurus.MVC 2:Demo演示站:http://taurus.cyqdata.com De ...

  6. Python_Django MVC框架与MTV框架

    ** MVC框架与MTV框架 ** 一.MVC框架介绍 1,概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, ...

  7. 介绍国产的PHP MVC框架:FleaPHP

    国产的PHP MVC框架:FleaPHP 官方网站:http://www.fleaphp.org 框架下载:http://www.fleaphp.org/download 框架API  :http:/ ...

  8. 简述介绍Spring MVC 框架

    MVC模式是指Model-View-Controller(模式-视图-控制器)模式,是开发Web应用程序时常用的一种代码分层方式. 最典型的MVC就是jsp+servlet+javabean模式. J ...

  9. MVC和MVVM框架介绍

    一.MVC框架(后端的分层开发概念): MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业 ...

最新文章

  1. Win32 环境下的堆栈
  2. 操作系统原理之磁盘调度
  3. 次小生成树(Prim + Kruaskal)
  4. neo4j查询多跳关系的方法
  5. Docker数据卷(Volume)
  6. Clash Royale开发日志
  7. myeclipse快捷生成代码块
  8. 位换记号、排列测试与状态图:杂耍中的数学
  9. Python (schedule库)简单使用
  10. 微软宣布以197亿美元现金收购语音识别巨头Nuance
  11. python自动交易 缠论_缠论自动交易系统实现了
  12. ubuntu下安装QQ
  13. vue中的浏览量_vue项目中使用百度统计
  14. CSDN第一节课总结
  15. java指定路径不存在_Java在指定路径上创建文件提示不存在解决方法
  16. 字符处理——大写转小写、小写转大写
  17. 我的世界服务器物品管道,物品导管 (Item Conduit)
  18. 2018年5月备航记录(MOXA串口分配器)
  19. 几种你不知道的获取浙A牌照的方法
  20. vue3.2+element-plus+ts节假日管理界面

热门文章

  1. linux中在vi编辑器中执行存盘退出命令是?
  2. linux下各个头文件及作用总结
  3. ORACLE 11g 使用ROWNUM完美解决ORA-00600:内部错误代码
  4. spring boot二:搭建环境
  5. es6 Set的几种使用场景
  6. jsp页面遍历后台传递的对象
  7. Windows Mobile 开发系列文章收藏 - 讨论篇
  8. netty4.0.x源码分析—bootstrap
  9. GlusterFS下如何修复裂脑文件?
  10. Editplus快捷键大全