前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Castle.MVC框架介绍

Castle.MVC框架介绍

作者头像
张善友
发布2018-01-19 14:35:36
9790
发布2018-01-19 14:35:36
举报
文章被收录于专栏:张善友的专栏张善友的专栏

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

代码语言:js
复制
?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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2005-10-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档