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

作者: 自由、创新、研究、探索……
出处:http://shanyou.cnblogs.com/
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://www.openbeta.cn
posted @ 2005-10-29 09:52 geff zhang 阅读(6511) 评论(10)  编辑 收藏 所属分类: 开源项目Castle&IBatisNet

  回复  引用  查看    
#1楼2005-10-29 16:16 | WAWACRM      
字体太小,呵呵,用户界面不友好,可用性差,易用性不强,内容好不好偶都不想看了,坏眼.
  回复  引用  查看    
#2楼2005-10-30 00:32 | Yok      
有点像uipab?
  回复  引用  查看    
#3楼2005-10-31 09:57 | Inkerg      
我架了一下,有很多的问题撒,首先,在 Win2000 SP4版上就需要改动很多
  回复  引用  查看    
#4楼2005-10-31 10:00 | Inkerg      
其中,hintpath全部要改动,而且最终还是找不到文件夹
<Reference
Name = "System"
AssemblyName = "System"
HintPath = "..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.dll"
/>
<Reference
Name = "System.Drawing"
AssemblyName = "System.Drawing"
HintPath = "..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
/>
<Reference
Name = "System.Data"
AssemblyName = "System.Data"
HintPath = "..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
/>
<Reference
Name = "System.Web"
AssemblyName = "System.Web"
HintPath = "..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.Web.dll"
/>
<Reference
Name = "System.XML"
AssemblyName = "System.Xml"
HintPath = "..\..\..\WINNT\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
/>

  回复  引用  查看    
#5楼2005-12-21 20:36 | 命运有自己的梦!      
ASP.NET 2.0里,弄了两天都没有跑起来!
  回复  引用  查看    
#6楼[楼主]2005-12-21 22:01 | 自由、创新、研究、探索……      
没有在 asp.net2.0里面玩过这个东西.搞出名堂了告诉我如何
  回复  引用  查看    
#7楼2006-05-19 15:55 | Bear.sTaR{R}      
怎么NPetshop2打不开啊!!!
  回复  引用  查看    
#8楼[楼主]2006-05-19 20:40 | 自由、创新、研究、探索……      
什么错误,应该可以打开,你可以到ibatisnet的SVN中去取
  回复  引用  查看    
#9楼2007-07-13 15:15 | AnsonWu      
我正在学习Castle.MVC框架,资料很少,你可以给我提供一些代码参考吗??
那个NpetShop2在哪下??你给的地址好像已经不能用了。。

  回复  引用  查看    
#10楼[楼主]2007-07-14 09:21 | 自由、创新、研究、探索……      
@AnsonWu
可以通过SVN到Ibatisnet里面拉代码,NpetShop2就在Ibatisnet的代码库里




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 264294


相关文章:

相关链接: