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)-构建多层结构的应用程序的更多相关文章
- 构建移动Web应用程序的技术堆栈
编写web应用程序时,有很多的技术决策.笔者最近回来编写现代Web应用程序,并希望总结一些曾经在开发周期过程中做了记录零散的想法.这篇文章是关于一套对笔者最近开发的项目有帮助的框架.笔者重温了一些最重 ...
- Spring实战第五章学习笔记————构建Spring Web应用程序
Spring实战第五章学习笔记----构建Spring Web应用程序 Spring MVC基于模型-视图-控制器(Model-View-Controller)模式实现,它能够构建像Spring框架那 ...
- 【MVC 4】5.SportsSore —— 一个真实的应用程序
作者:[美]Adam Freeman 来源:<精通ASP.NET MVC 4> 前面建立的都是简单的MVC程序,现在到了吧所有事情综合在一起,以建立一个简单但真实的电子商务应用 ...
- 用Spring构建企业Java应用程序的方法
https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247484965&idx=1&sn=ca6b847c65e506 ...
- 使用Maven插件构建Spring Boot应用程序镜像
使用Maven插件构建Spring Boot应用程序的Docker镜像. 环境准备 1.Linux系统 2.安装JDK,Maven 3.安装Docker 应用实践 1.在应用程序根目录下添加Docke ...
- 构建ExtJS 6.x程序
构建ExtJS 6.x程序 ExtJS也有自己的打包工具 SenchaCmd,它用来生成构建ExtJS前端组织架构,最后打包发布生产,操控着前端整个开发生命周期,SenchaCmd依赖于JDK,所以要 ...
- SpringBoot学习笔记(11):使用WebSocket构建交互式Web应用程序
SpringBoot学习笔记(11):使用WebSocket构建交互式Web应用程序 快速开始 本指南将引导您完成创建“hello world”应用程序的过程,该应用程序在浏览器和服务器之间来回发送消 ...
- 用 Sencha Touch 构建移动 web 应用程序
Sencha Touch 是一个使用 HTML5.CSS3 和 JavaScript 语言构建的移动 web 应用程序框架,在本文中,学习如何应用您当前的 web 开发技能进行移动 web 开发.下载 ...
- .NET 7 SDK 开始 支持构建容器化应用程序
微软于 8 月 25 日在.NET官方博客上,.NET 7 SDK 将包括对创建容器化应用程序的支持,作为构建发布过程的一部分,从而绕过需要.显式 Docker 构建阶段. 这一决定背后的基本认知是简 ...
随机推荐
- iOS 细碎知识整理
1centerX,即x轴的中点 centery,即y轴的中点
- winScp 跳板机到服务器
http://jingyan.baidu.com/article/454316ab6ffe1af7a7c03a31.html?qq-pf-to=pcqq.group
- ctrl + d 在phpstorm 和 eclipse 中的不同含义
Ctrl + d 在phpstrom是复制一行,非常的方便,但是eclipse中却是删除一行,非常的特别.感觉上,phpstorm更注重鼠标,但eclipse貌似更多鼠标和键盘的操作, 默认情况下[p ...
- phalcon: queueing使用心得,需要安装相应的软体
http://flyhighest.com/archives/50 原本没有用过phalcon的消息队列,本来以为很简单,结果搞了半天,把步骤记录一下. phalcon的官网上没有说需要安装beans ...
- 百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面
百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面. <form name="form" method="post" act ...
- 悟透javascript读书笔记
1.undefined,null,0,"" 这四个值转换为逻辑值时是false,其他无论简单类型值,对象或者函数转换过来都是true 2.如图 第一个是“声明了一个变量,给变量赋 ...
- 能源项目xml文件 -- app-init.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- css3实现超过两行文字,超出用三个点显示(兼容性不行,仅供学习)
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- sql server 导出数据到 Azure Hbase / Hive 详细步骤
The Hadoop on Azure Sqoop Import Sample Tutorial Table of Contents Overview Goals Key technologi ...
- onclick="test()"与onclick="return test()"的区别
浏览器会对页面元素的某些操作产生默认行为比如a标签跳转,form表单的提交等如果是onclick="test()"则执行该函数,然后继续自己的默认行为 <a href=&qu ...