接触NHibernate和Cuyahoga已经很久了,但是一直以来我都没有能够深入的了解Cuyahoga的,实在是看不懂啊(水平比较菜),只是了解了NHibernate的一些基本的实体关系和关系数据库之间的映射应用。中间又断断续续的看了一些其他ORM的应用,都各有优缺点(只是在应用级别上),在试用了其他的ORM产品之后,有一种众里寻她千百度,那人确在灯火阑珊处的感觉,特别是我在接触了Coyahoga之后。刚好前天有人发了一片关于Cuyahoga的文章,再次激起了我的兴趣,正好这几天比较闲,就学习了一下。
Coyahoga(下面是官方网站上的介绍)
Cuyahoga是开源的.NET的Web站点框架。他提供了内容管理功能,并且提供了模块化的解决方式。目前她可以很好的在.NET 1.1和Mono下以SQLServer,PostgreSQL或MySQL作为数据存储来运行。本项目的主要目标:向.NET开发者表现以不同于以往的构建Web应用程序的方式构建一个Web站点。虽然本项目主要面向.NET开发者,但是任何感兴趣的人都可以下载Soure并且运行她(当前版本
安装
菩提本非树的Blog里已经写的很清楚了。
页面框架
在开始研究源代码之前,必须要对Cuyahoga的页面对象模型要有了解,要不然会云里雾里,就象我第一次接触她一样。
我们构建一个Web应用的时候,
第一步:创建一个Web站点,我们用WebSite对象来描述;
第二步:一个Web站点,是由多个页面组成的,在这里Node对象来描述,创建Node;
第三步:每个页面可以由菜单(Menu),导航栏(同样以Node对象来描述)和正文部分(用Section对象来描述), 在Node里添加Section。
如图:Section有三种位置可以放(maincontent, gloabmenu和 side1content)。
|
Header |
Menu部分 和 Section部分(gloabmenu) |
|
Node或者叫 Navigate部分 |
Section部分(maincontent)
|
Section部分(maincontent)
|
|
Section部分 (side1content)
|
Section部分(maincontent)
|
Section部分 (side1content) |
Section部分(side1content)
|
Footer
|
如果还不够直观看这里(http://www.cuyahoga-project.org/10/section.aspx/35)但是这里把Node放在右边。
创建站点
按照上面的步骤:在管理页面创建一个站点,然后点击右上角的“View The Current Site”,就可以进入你刚才设置的站点(这里要注意Node和Section的权限设置,为了能够通过,暂时全部勾上)。
在您构建的时候,你可能已经发觉了,构建成功后,Menu和Node基本就定下来了,而Section则是千变万化,你在一个节点上,可以在三个位置随意添加Section。
Note:现在您应该对Cuyahoga有了一个直观的认识,利用Cuyahoga你可以很快的搭建出一个WebSite的框架。
Module理解(模块化)
框架搭建出来了,显示内容呢?? Section只是页面框架中正文部分的描述,Section的内容是从哪里来的呢??在Node 中添加Section的时候,在General---àModule里你可以选择的Module有如下:
1) Articles 发表文章用类似于个人Blog可以回复;
2) DownLoads 下载列表;
3) Search 搜索引擎 采用Lunece,对这个我还没有了解过;
4) StaticHtml等等,发布公告用;
这些Module之间是没有关系的,在功能上来说是互相独立的,他们各自只和User有关,但他们在框架上又是有联系的,因为他们都继承了框架的基础类。 我们也可以自己开发Module,但要继承Cuyahoga的基础类,二次开发后面介绍。
Note:我更觉得Cuyahoga像是一个插件式的框架,你可以将开发出来的Module,任意的插在Section中显示出来。
以上是我的粗糙的体会,希望不会挨骂,呵呵。