MonoRail MVC应用(2)-构建多层结构的应用程序

习惯了分层结构的.NET开发了,当然也是分层有优势,所以在使用MonoRail进行网站构建时,首先考虑到的问题就是MonoRail如何应对分层的结构。
问题1:MonoRail在WEB层没有根目录,必须有一个Views的目录
MonoRail MVC没有根目录的结构,也就是只能访问一个二级目录,如http://www.pumaboyd.com/Views\/*,然后其他所有内容都在Views这个目录下面。起初我认为这是一个很严重的问题,这样的限制很约束。后来在firstyi文章介绍可以配置到根目录,这才有信心继续看下去。其实到最后你会发现,通过Routing 就可以解决这个问题了。而且我还是觉的Routing的方式最好。

你还可以更改默认的Views目录,可以通过WebConfig配置

<viewEngine viewPathRoot=”WAP3″ customEngine=”Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine, Castle.MonoRail.Framework.Views.NVelocity”/>

这样默认的目录就变成WAP3了。

问题2:Controller所对应的CS文件。
如果是默认,那么他将在Controllers目录中,而这是我很不希望看到的。这样整个Web层,又有了DLL。所以我们需要配置到单独一层(一个独立的项目中)
添加独立项目,WebConfig中类似配置

<assembly>WebHome.Control</assembly>

而且支持多个Controller的。具体看你的项目运用了,如果需要可以切分的更细。

<assembly>WebHome.Control</assembly>

<assembly>WebHome.Control1</assembly>

<assembly>WebHome.Control2</assembly>

至于剩下的Service、BLL、DAC层都和原有的结构变化不大。其实感觉到最后就是将目前的WEB层拆分为V和C

DEMO图(图片在结构的表现力上总是优于文字。)

    • WebHome 就是页面了,也就是MVC的V
    • Controls就是是页面的显示控制类了,也就是MVC的C
    • Service&DAC 就是具体页面逻辑和数据访问层(是否是MVC的M我觉的不太合适,我感觉我在淡化M的概念)
    • Component 就是页面的一些组件,这个就相当于WebControl

MonoRail MVC应用(2)-构建多层结构的应用程序

时间: 2024-12-17 12:03:03

MonoRail MVC应用(2)-构建多层结构的应用程序的相关文章

[.net 面向对象程序设计深入](5).NET MVC 6.0 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)

[.net 面向对象程序设计深入](5).NET MVC 6.0 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到.NET 5.0之后更名为 Core 1.0,同样MVC 6.0也是运行在Core 1.0(.NET 5.0)之下. 我们要进行开发和部署基于MVC 6.0的项目,首先要搭建他的开发环境. Core 1.0 是一个支持跨平台框架,下面分别介绍如何在Windows/Mac Os X/Linux下搭建开发

构建移动Web应用程序的技术堆栈

编写web应用程序时,有很多的技术决策.笔者最近回来编写现代Web应用程序,并希望总结一些曾经在开发周期过程中做了记录零散的想法.这篇文章是关于一套对笔者最近开发的项目有帮助的框架.笔者重温了一些最重要的框架类型,其中每一个可以展开来写一篇文章.这并不是一个广泛的现有产品相比,只是一个笔者最近使用的部分技术. 虽然笔者的重点是移动优先, 笔者认为,这套技术可以应用在一般的web应用程序. 笔者的决定和数据支持考虑了几个要求: 基于JavaScript(CoffeeScript,Dart,绝对值得

spring(5)构建 spring web 应用程序

[0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(5)构建 spring web 应用程序" 的相关知识: [1]spring mvc 起步 [1.1]跟踪spring mvc的请求 1)请求时一个十分繁忙的家伙,下图展示了请求使用spring mvc所经历的 站点: 对以上调用过程的分析(Analysis):(不能再干货--请求使用spring mvc 所经历的调用过程) step

cordova构建和运行应用程序(安卓)

要构建和运行应用程序,需要为要定位的每个平台安装sdk. 检查您是否满足构建平台的要求的命令: cordova requirements 1.安卓平台指南: cordova for Android需要安装在OSX,Linux或Windows上的Android SDK. 安装要求: 1.java开发工具包(JDK) 下载安装好JDK之后,在终端输入JAVAC,如果跳出如下提示,说明JAVA环境已经配置好了 2.Android SDK 在这里,我选择安装Android Studio,以便于运行和调试

【MVC 4】5.SportsSore —— 一个真实的应用程序

 作者:[美]Adam Freeman      来源:<精通ASP.NET MVC 4> 前面建立的都是简单的MVC程序,现在到了吧所有事情综合在一起,以建立一个简单但真实的电子商务应用程序的时候了. 在此打算建立的应用程序 — SportsStore (体育用品商店),将遵循随处可见的在线商店所采取的经典方式.将创建一个客户可以通过分类和页面进行浏览的在线产品分类,一个客户可以添加和删除商品的购物车,和一个客户能够输入其右击地址细节的结算页面.另外,还将创建一个包含创建.读取.更新和删除功

用 Sencha Touch 构建移动 web 应用程序

Sencha Touch 是一个使用 HTML5.CSS3 和 JavaScript 语言构建的移动 web 应用程序框架,在本文中,学习如何应用您当前的 web 开发技能进行移动 web 开发.下载和建立 Sencha Touch,通过一个样例应用程序探究基本原理.学习开始使用 Sencha Touch 框架所需的一切 2012 年 3 月 19 日 内容 概述 Sencha Touch 准备开始 UI components 结束语 参考资料 评论 概述 在软件开发领域中,有两个重要的趋势越来

用Gradle 构建你的android程序

用Gradle 构建你的android程序 前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目的用户指南全部看完, 让不会用gradle 的人也用gradle构建android项目,让打包(注意,打包和构建是两码事)多版本android不再痛苦.最后,题外话:珍惜生命,远离ant.... Gradle build android 历史 Androi

构建ExtJS 6.x程序

构建ExtJS 6.x程序 ExtJS也有自己的打包工具 SenchaCmd,它用来生成构建ExtJS前端组织架构,最后打包发布生产,操控着前端整个开发生命周期,SenchaCmd依赖于JDK,所以要先安装JDK文件 ,安装步骤自行百度,安装完并配置好JDK环境变量后去sencha官网下载SenchaCmd工具..本文用的版本 ExtJS SDK 6.6  Sencha cmd 6.6 下载完后打开一路安装. 和JDK一样在系统变量里面配置 Sencha Cmd配置好环境变量后打开Cmd命令,输

为什么要使用智能合约来构建区块链应用程序?

为什么要使用智能合约来构建区块链应用程序? 人们需要了解为什么以及何时使用智能合约来开发区块链应用程序. 区块链技术最关键的特征之一就是它的去中心化性质.这意味着其信息由网络的所有各方共享.因此,它消除了中间人或中间机构来促进运营的需要.此功能特别有用,因为它可以避免黑客和欺诈活动的可能性.区块链技术提供了功能丰富.快速.廉价和高效的交易模式.因此,政府和银行部门中的大多数组织已开始采用这种一流的技术. 以下将探讨智能合约在市场上创建区块链应用的重要性和需求. 什么是智能合约? 智能合约是一种计