开源项目Cuyahoga就是利用Nhibernate开发的
Cuyahoga是一个类似于blog管理的战点管理项目,下载地址为:
http://www.martijnboland.com/cuyahoga/home/download.aspx
1.首先,去它的老家下载Cuyahoga 0.9版,建议下载SRC版,以方便研究
2.下载回来后,解压缩到任一文件夹,例如Cuyahoga文件夹
3.打开解决方案文件用VS.NET编译,或者如果你有NANT0.85,请在DOS下进行Cuyahoga文件夹,运行Nant编译
4.打开SQL SERVER,建立数据库,默认名为Cuyahoga,不过,你也可以用别的名字
5.打开Cuyahoga文件夹中的WEB文件夹,编辑Web.COnfig,修改其中的Nhibernate的连接字符串,加入用户名和密码,要把SSPI那一小段去掉,不然的话,会提示LOCAL SERVICE无法登录数据库
6,打开IIS,在其中建一个站点(建立单独建站点而非虚拟目录),例如http://localhost:9000
7,接下来,打开IE,输入网址
http://localhost:9000/install/install.aspx来继续安装
8,按提示完成数据库的安装,然后输入管理员密码初始化,最后,点页面中的跳转链接跳转到后台登陆页
9,进入后台后,很多人会傻了眼了,首先,进入后台后,第一件事是建立一个SITE,如果你不建立SITE,直接访问
http://localhost:9000的话,程序会抛出异常"NO Site found",建立SITE很简单,站点名任意取,站点URL必须是一个可以正常访问的网址,例如:http://localhost:9000,而不能是一个无法访问的URL,例如
http://localhost:9000/a/,因为,后者在访问到达ASP.NET前,IIS已经抛出页面不存在了
10,还要记住在IIS的站点里,将ASPX,ASMX的映射改一下,将确认文件存在去掉,这样,IIS就直接传递访问请求给ASPNET进程,而不是先确认文件是否存在(用于URL重写)
11,站点的文化,选择中文,模板任选PlaceHolder选MAINCONTENT,然后OK
12,接下来,就涉及到内容管理了
首先,Cuyahoga是采用节点式来管理内容的,说节点太陌生,说页面大家都理解吧,本来网站就是若干个由页面组成的书,但是,其又不是完全是树型的,链接相当于对一个节点的快速引用,因此,Cuyahoga就把页面视为节点
第二点是关于布局的,CUYAHOGA把页面分成三部分,顶部的GlobalMenu,左侧的Maincontent,右侧的Section,其实很好理解嘛,主菜单,正文节,导航段
每一个节点都是一个页面,都包含这三个部分,每一个页面都可以自由设计,但是,有一点需要知道的就是,只有根节点有MENU选项,允许使用MENU的方式添加顶部莲接,其他页面都继承ROOT的顶部菜单
另外,还有就是Maincontent,Section和GlobalMenu的内容问题了
内容,其实在这里划分为以下几种,也就是对应模块了,有文章型,搜索表单,用户登录框,静态HTML,切换语言按钮,下载列表和RSS引用,当然,这些是它内置的模块了,可以直接引用,但如果你需要有PHOTO GALLERY模块,你可能就要自己开发了,这些模块实际上扮演内容提供者的角色,每一种模块提供一种类型的内容,每一种内容皆可放置于页面的三个布局位置,这种设计非常符合分离模式,页面中的三部分相当于容器,需要在Section部分(右侧)添加用户登录时,你就添加一个SECTION的引用即可
所以,Cuyahoga是使用节点来组织页面,节点与节点形成层次关系,节点与节点间,相互引用,节点反映的是站点的组成页间的关系,至于每一页,则采用布局和内容分离,由内容提供者提供内容,然后,某个布局节来引用,这样一来,设计上可以说是非常灵活了
还有一个问题,就是许多人添加了节点,例如根节点吧,想在节点正文区放内容,例如放一段静态公告,于是,添加了引用STATICHTML模块内容的SECTION,可是,却不知道如何编辑该SECTION的内容(很多人都是在这里卡住了)
其实很容易,那就是,在根节点上添加一个用户登录SECTION,然后浏览该节点,登录该节点,登录后,你就会发现,节点上每个SECTION上都有EDIT和Section Property链接了,通过EDIT链接,就可以编辑内容了
下面的图是我的根节点的抓图