代码改变世界

MonoRail 学习

2011-10-10 10:44  elivsit  阅读(258)  评论(0编辑  收藏  举报

原文地址:http://www.castleproject.org/monorail/gettingstarted/creatingproject.htmlPS:在翻译过程中,发现官网给出的不少代码都是错误的。我在文章中都会给予注释或者直接修改为正确的,因此内容与原文会有出入,希望大家能够理解。



我们建议大家使用下列项目结构做为常规约定:

文件夹

解决方案

下面的章节将告诉您怎样手工或使用MonoRail Project Wizard 建立这种结构

使用MonoRail project wizard

如果你已经使用MSI安装程序安装了Castle Project,那你可能连Visval Studio集成环境也安装好了。如果是这样的话,请使用向导创建一个新的MonoRail项目。

注意

Visual Studio 2005 用户必须下载安装 Web Project support for Visual Studio,否则向导将无法工作。

  1. 打开Visual Studio并执行新建项目,选择Castle MonoRail Project:

  2. 输入 GettingStartedSample 做为项目名称

  3. 向导开始,选择NVelocity视图引擎并单击Next

  4. 检查创建测试项目的各个选项并单击 Finish。该向导将为你创建解决方案和项目文件并配置好所有信息。这可能需要花上一些时间。

此时你应该有一个项目准备运行

继续 你的第一个控制器和视图

在Visual Studio里手工创建项目

如果你没有安装VS集成环境或者不想使用工程向导,你可以手工创建项目结构。

  1. 在Visual Studio里创建一个ASP.Net 项目 ( 如果你的Visual Studio没有安装ASP.Net项目支持程序,那么你可以选择创建一个类库项目).

  2. 添加引用下列程序集:

    • Castle.MonoRail.Framework.dll: The MonoRail framework
    • Castle.MonoRail.Framework.Views.NVelocity.dll: The view engine we are going to use
    • Castle.Components.Validator.dll: Our lightweight validation infrastructure
    • Castle.Components.Binder.dll: The binder implementation
    • Castle.Components.Common.EmailSender.dll: The email service contracts
    • Castle.Components.Common.EmailSender.SmtpEmailSender.dll: The email service implementation
    • Castle.Core.dll: Core functionalities shared by projects
    • NVelocity.dll: The template engine

  3. 在项目里创建下列文件夹。再次说明一下,这只是一项常规约定,我们建议你照着做。但在你熟悉使用框架以后,你可以构想一个更适合你项目的结构。

  4. 最后配置web.config文件。你必须注册http handler,http module以及MonoRail配置节点:

    1. 添加 MonoRail 配置节点:

      <configuration>
          <configSections>
              <section
                  name="monorail"
                  type="Castle.MonoRail.Framework.Configuration.MonoRailSectionHandler, Castle.MonoRail.Framework" />
          </configSections>
    2.     <monorail>
              <controllers>
                  <assembly>GettingStartedSample</assembly>
              </controllers>
             
              <viewEngines viewPathRoot="Views">
                  <add type="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine, Castle.MonoRail.Framework.Views.NVelocity" />
              </viewEngines>
          </monorail>
         
          ...

    3. 注意:以上是官网的配置,实际上这样是无法正常工作的,需要给viewEngine增加一个属性改成这样.
      <viewEngine
              
      viewPathRoot="Views"
               customEngine
      ="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine,
                                Castle.MonoRail.Framework.Views.NVelocity"
      />
    4. 为了能够使用像castlerails这样的扩展名,还需要注册一下http handler:

          
          
          
      <system.web>
              
      <httpHandlers>
                  
      <add
                      
      verb="*"
                       path
      ="*.castle"
                       type
      ="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory,
                           Castle.MonoRail.Framework"
      />
              
      </httpHandlers>
          
      </system.web>
          
      </configuration>
    5. 最后注册http module:


          
          
      <system.web>
              
      <httpHandlers>
                  
      <add
                      
      verb="*"
                       path
      ="*.castle"
                       type
      ="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory,
                           Castle.MonoRail.Framework"
      />
              
      </httpHandlers>
              
      <httpModules>
                  
      <add
                      
      name="monorail"
                       type
      ="Castle.MonoRail.Framework.EngineContextModule,
                           Castle.MonoRail.Framework"
      />
              
      </httpModules>
          
      </system.web>
          
      </configuration>

MonoRail 视频学习00(MonoRail开发环境搭建)

http://www.cnblogs.com/zq535228/archive/2009/07/11/986371.html

MonoRail学习-入门实例篇

http://www.cnblogs.com/maplye/archive/2006/04/24/383349.html

http://www.cnblogs.com/goodlyts/archive/2005/10/19/257542.html 附源码

Castle Monorail + Ibatis.Net一些配置心得

http://www.cnblogs.com/teebye/articles/1095800.html

更多教程请参看:http://www.cnblogs.com/mq-zhang/archive/2009/08/10/1542544.html

官方网:http://www.castleproject.org/monorail/index.html