您的位置:首页 > 数据库

开源项目Cuyahoga (兴趣小组 詹鑫昌)

2008-02-19 13:22 197 查看
开源项目Cuyahoga就是利用Nhibernate开发的 感觉Cuyahoga 就是一个website framework 也可以说是一个一种ORM工具 更通俗一点 就是一个大的新闻系统 以前曾对Nhibernate有一定的了解 但Cuyahoga学习起来还是步履蹒跚 弄了2天 进度缓慢 总体来说有以下几点体会

  

    1. 安装需求 : vs 2005 带sp1开发环境

 

    2. 安装步骤 :1.打开解决方案文件用VS.NET编译

                  2.打开SQL SERVER,建立数据库

                  3.修改web.config中的连接字符串

                  4.将default设置成起始页 按照提示一步一步搭建后台

 

 

    3. 内容管理(从网上了解到的 切身体会还不深):首先,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链接,就可以编辑内容了

 

    4框架结构: 1.      Articles 发表文章用类似于个人Blog可以回复;

            2.      DownLoads 下载列表;

            3.      Search 搜索引擎 采用Lunece,对这个我还没有了解过;

            4.      StaticHtml等等,发布公告用;

 

 

   (这部分目前我也仅仅是我看到的 实践不深) Cuyahoga.Core项目正如名称的意思它是Cuyahoga的核心项目,主要是封装了cuyahoga的持久化对象以及相应的公共处理类,它下面主要分为Domain,Search,Security,Service,Util等。

Domain里面保存的整个系统的持久化对象类和相应的配置文件(*.hmb.xml),关于查找Nhiernate的各种表关系如何写配置文件的朋友,可以多看看这里,您的疑问大部分都能在这里找到例子:);

Search里面是关于整个系统全文索引的内容,想研究dotLuncene的朋友可以在这里找例子,由于对这个不熟悉,偶不敢多言;

Security里用来设置授权用户的;

Service文件夹里保存的时候该系统能用到的公共处理类,不要看这里文件少,这里的文件比较重要,想采用Nhibernate框架的朋友,这里可是精华中的精华哦,曾经有个朋友问我怎么找不到Cuyahoga再哪里加载持久化对象呢,呵呵,看到这里后估计大家就不会再问这样的问题了;

Util保存的是一些放之四海都能用的公共类信息,很基础的,大家如果项目中能用到的话就赶快发挥拿来主义精神吧:)。

 

Cuyahoga.Modules项目保存的是Cuyahoga内置的那几种模块,通过这里可以了解到如何用Nhibernate来封装业务逻辑了。内置的模块主要有:文章管理模块(article), 语言转换模块(LanguageSwitcher),远程内容管理模块(RemoteConent),搜索模块(Search),静态公告管理模块(staticHtml),用户注册模块(User)。这些是Cuyahoga内置的模块,这里可以用来学习都是如何应用Nhibernate来处理业务层的,其中业务层的处理文件都名命名为***Module.cs,譬如:在文章管理模块的业务处理文件是ArticleModule.cs。

 

Cuyahoga.Modules.Downloads项目是下载管理模块的源代码,我想Cuyahoga通过这个模块想向大家展示的应该是如何在Cuyahoga里自由添加模块,这样用户可以根据自己的需要在Cuyahoga里面添加模块了。

 

Cuyahoga.ServerControls是保存整个项目都能用到的一些控件,这里主要有两个控件,一个日历控件和一个分页处理控件。

 

Cuyahoga.Test里面主要是保存Cuyahoga的测试用例

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息