使用MonoRail 工程向导
使用MonoRail project wizard
如果你已经使用MSI安装程序安装了Castle Project,那你可能连Visval Studio集成环境也安装好了。如果是这样的话,请使用向导创建一个新的MonoRail项目。
注意
Visual Studio 2005 用户必须下载安装 Web Project support for Visual Studio,否则向导将无法工作。
-
打开Visual Studio并执行新建项目,选择Castle MonoRail Project:
-
输入 GettingStartedSample 做为项目名称
-
向导开始,选择NVelocity视图引擎并单击Next
-
检查创建测试项目的各个选项并单击 Finish。该向导将为你创建解决方案和项目文件并配置好所有信息。这可能需要花上一些时间。
此时你应该有一个项目准备运行
继续 你的第一个控制器和视图。
在Visual Studio里手工创建项目
如果你没有安装VS集成环境或者不想使用工程向导,你可以手工创建项目结构。
-
在Visual Studio里创建一个ASP.Net 项目 ( 如果你的Visual Studio没有安装ASP.Net项目支持程序,那么你可以选择创建一个类库项目).
-
添加引用下列程序集:
- 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
-
在项目里创建下列文件夹。再次说明一下,这只是一项常规约定,我们建议你照着做。但在你熟悉使用框架以后,你可以构想一个更适合你项目的结构。
-
最后配置web.config文件。你必须注册http handler,http module以及MonoRail配置节点:
-
添加 MonoRail 配置节点:
<configuration>
<configSections>
<section
name="monorail"
type="Castle.MonoRail.Framework.Configuration.MonoRailSectionHandler,
Castle.MonoRail.Framework" />
</configSections>
<monorail>
<controllers>
<assembly>GettingStartedSample</assembly>
</controllers>
<viewEngine viewPathRoot="Views">
<add type="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine,
Castle.MonoRail.Framework.Views.NVelocity" />
</viewEngine>
</monorail>
注意:以上是官网的配置,实际上这样是无法正常工作的,需要给viewEngine增加一个属性改成这样.<viewEngine
viewPathRoot="Views"
customEngine="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine,
Castle.MonoRail.Framework.Views.NVelocity" />
-
为了能够使用像castle或rails这样的扩展名,还需要注册一下http handler:
<system.web>
<httpHandlers>
<add
verb="*"
path="*.castle"
type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory,
Castle.MonoRail.Framework" />
</httpHandlers>
</system.web>
</configuration>
-
最后注册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>
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」