Kooboo的定位是一个CMS,内容管理平台,从更严格意义上来说,它更应该网站快速开发平台。针对一般网站开发过程的分析和提炼,着重在解决网站的一般需求,提出一套快速开发网站的理念和方法。在这些理念和方法的指导下,来进行网站的开发,规范开发过程,提高开发效率,减少维护成本,提高网站质量。

我们在开发一个网站,一般会面对如下问题:

内容存储,这是一个基础性问题。内容是整个网站的肉体,也是灵魂,失去了内容,网站就无法体它的价值。网站开发的最重要的工作就是对内容的处理,也就是对内容进行增,删,改,查的处理。或者更为直接点,就是开发人员对数据库的操作。而如何对内容数据,直接影响着开发效率。开发人员不可避免的要处理大量的SQL语句,或者使用ORM等工具和框架来提高开发效率。但是不管怎么样,开发人员还是需要面对大量的开发和配置工作。而Kooboo要解决的首要问题就是要让开发人员从些重复,而又繁重的工作摆脱出来,实现一个通用化的存储,开发人员甚至不需要关心数据是存储在数据库,还是本地文件中。内容存储,开发人员只要根据自己需要的字段,设计好相应的数据结构(Schema,内容类型),建立相应的内容目录(Folder),就可以使用相应的接口对这些内容进行操作,而不需要去关心SQL或者是其它的存储细节,同时内容关系不是简单的一维关系,可以处理1对1,1对多,多对多的关系。并且,通过Kooboo的后台可以直接维护这些内容,不需要再重新开发单独的后台来维护网站内容,减少开发任务。

多网站处理,内容共享的问题。在现实中,我们可能会面对,一个组织关系中的各个机构需要有内容共享,但结构独立的网站。当我们遇到这种问题时,我们通常的处理办法是为各个机构单独开发网站,在遇到需要共享的数据时,通过一定的技术手段,或共享数据库,或共享目录来实现目的。再有一种典型场景,当我们要开发一个全球性的网站时,不可能避免的要解决各个地区语言和文化的问题。单单是语言,我们可以通过资源文件来解决,但当个地区站点除了语言要不同外,网站中的某部分内容要根据本地区文化特点进行一些改动时,如何通过最小改动来达到复用和定制?内容也需要根据不同地区进行本地化时,这也不是简单的通过资源文本就可以解决的。同样的,你可以把这些想法扩展一下,想开发一系列功能相同,UI类似的企业网站之间的复用。在Kooboo中,每一个网站,只是这个平台的一部分。这个平台可以同时存在很多有直接关系,或没有任何关系的网站。所有的网站都可以有自己独立的域名。网站之间,可以有直接或间接的继承关系。在继承的网站间,可以共享和复用网站的各种元素。子站可以完全继承父站点的所有的代码和内容,同时也可以根据需要对父站点的所元素进行一些特定的改动,以达到通过最小的改动,最大的复用,并且它不是简单的物理复制,也就是说,如果父站点发生的任何变化,同样会体现在继承的网站中。这个就是网站的继承,继承不仅可以继承内容,还可以继承代码和模板,可以支持本地化,也就是满足面向对象的三个基本特征。

模板管理。对一个网站来说,给用户最直观的体验就是网站的UI。对于动态页面来说,设计界面就是设计模板。在Kooboo中,使用传统的Webform的.ASPX页面做为模板,延续了ASP.NET程序员的开发体验。同时在提供了完善的皮肤管理,脚本管理,资源管理,并且提供了功能强大的在线语法编译器,把程序员从复杂的路径样式引用和语法记忆中解脱出来。模板可分为布局模板和内容模板,布局模板是控制整个页面布局的模板,其概念等同于MasterPage; 内容模板是页面中某一块内容的模板,它关心的是页面某一部分的展示

页面管理。与ASP.NET WebForm的页面概念不同的是,在Kooboo中,“页面”并不是一个物理存在的.ASPX页面模板。页面只是将模板和数据组合在一起的,同时具备URL表现的一些配置值。这些配置信息决定了,在该页面里,所选择的模板的某个位置上放上哪些页面模板; 决定了该页面需要传递的参数,以及这些参数以什么样的方式进行传递(普通传参或SEO友好); 决定了该页面从哪里查询所需内容(DataRule); 决定了哪些角色的人能访问该页面。同时页面管理,也可以用于生成前台页面导航菜单。

扩展插件。一个完善的开发平台,不可避免的要提供解决一些特殊情况的能力,同时也必须针对一些通用性的功能,比如论坛,博客,Wiki等功能的一整个模块的复用,以提供资源复用的共享。在Kooboo中,有两种插件:页面插件和模块插件。页面插件(PagePlugin),就是针对某个页面的特殊要求而开发的运行于通用Controller之上的Controller扩展,适用场景:一个网站前页,可能80%页面是用于显示,另外还有一部分可能还需要有提交数据的要求,那么这些提交的数据可以在View中通过传统的WebForm PostBack来处理,同时也可以通过编写页面插件来独立出来,从MVC的组成部分来讲,编写页面插件也更符合框架要求; 另一种情况可能是,页面需要的部分数据并不存储在Kooboo中,而是需要通过其它的一些渠道(例WebService)从其它地方获取,此时你也需要通过编写插件来达到你的目的。 模块插件是针对某一种应用的完整功能的复用而开发的完整的功能包,可能是一个简单的博客系统,论坛,或是其它可以被复用的小功能,这些功能模块可以被加到页面模板的任意位置上(与普通的内容模板一样使用)。在kooboo中,每一个模块插件都可以做为一个独立的网站而存在,不一定要求运行于Kooboo平台之上,你可以将它视为一个Mini Site,如果你了解ASP.NET MVC2,那你可以理解为一个类似于Area的功能。开发一个模块插件,也就是开发一个普通的MVC站点,你可以单独进行开发和调试。

站点包。一个网站开发后,可能需要从开发平台移植到生产环境平台去。此时,你可以将设计好的站点进行导出操作,然后在另一个Kooboo平台,选择导入操作。很快,你会发现,站点包还可以有另一种应用。如果你设计一个站点模板,然后根据这个模板快速生成一些类似的网站,这也就是很多网站快速生成软件的做法。也就是一个站点设计好,不仅能被继承复用,还可以被导出复用,达到最大的复用。

以上都是Kooboo的核心功能,但是当你深入了解Kooboo后,还会发现更多实用的功能,包括:

内置的全文搜索,使用Lucene.net,在维护内容时自动更新全文索引文件,通过一个简单的API可以快速实现全文搜索的功能。

简单的工作流管理,内置一个简单的工作流功能,方便内容维护时实现流程审核流程。

脚本和样式文件的自动合并和压缩,通过设置一个简单开关,来配置网站是运行于Debug模式或是Release模式。当运行于Release时,会自动合并压缩脚本文件和样式文件。

出错管理,站点在出现错时,可以根据错误类别配置要转到的页面。

以上的这些功能都是Kooboo要解决的核心问题,我会在稍后的一系列文章中,使用Kooboo 1.2 再深入的展开每一个功能点的各个细节。Kooboo 1.2会在稍后的一至两周内发布,敬请期待。

官方站点:http://www.kooboo.com/

CodePlex站点:http://kooboo.codeplex.com/

Live Demo: http://www.kooboo.com/demo

官方论坛:http://forum.kooboo.com/

kooboo Wiki: http://wiki.kooboo.com

Kooboo CMS 介绍的更多相关文章

  1. Kooboo CMS技术文档之五:站点配置管理

    站点关系 管理站点间的关系,站点可以有子站点,子站点继承父站点的部分配置数据,同时子站点还可以根据需要,本地化由父站点继承而来的数据.通过继承和本地化,可以让子站点在用最小的改动代价,来完成一个与父站 ...

  2. Kooboo CMS 之TextContent详解

    TextCotent 在Kooboo.CMS.Content下面,在View中有使用到这个模型层. TextContent继承了ContentBase,而ContentBase是由2个部分类组成的,一 ...

  3. Kooboo CMS 无聊随笔(2)

    上次写了一篇博客 http://www.cnblogs.com/kmsfan/p/Kooboo_CMS_suibi.html 作为这个系列的开篇,简单的介绍了一下Kooboo CMS的一些基本情况和界 ...

  4. Kooboo CMS 无聊随笔 (1)

    因为公司的框架不开源,但是自己一直都有研究框架的兴趣,所以拿了一个开源的框架过来,而这个开源的框架就是Kooboo CMS.首先我无法用言语来形容我对这个CMS的赞美之词了,总之大家知道一点,这个CM ...

  5. CMS介绍

    CMS介绍 CMS是Content Management System的缩写,意为“内容管理系统”,它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本. CMS的功能不仅限于处理文本 ...

  6. Kooboo CMS技术文档之二:Kooboo CMS的安装步骤

    在IIS上安装Kooboo CMS Kooboo CMS安装之后 安装的常见问题 1. 在IIS上安装Kooboo CMS Kooboo CMS部署到正式环境相当简单,安装过程是一个普通MVC站点在I ...

  7. Kooboo CMS技术文档之一:Kooboo CMS技术背景

    语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CM ...

  8. Kooboo CMS技术文档之四:Kooboo CMS的站点组成部分

    Kooboo CMS本着功能独立分离的原则,将站点分为三部分组成:用户管理,站点管理和内容数据库管理.各个功能之间既可独立使用,也可以容易组成在一起形成一个完整的系统. 用户管理 管理整个系统内的用户 ...

  9. Kooboo CMS技术文档之三:切换数据存储方式

    切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...

随机推荐

  1. Custome Buble Data Point

    <navigation:Page xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/to ...

  2. C#中的socket编程方法

    服务器: 第一步,准备socket套接字:Socket sockfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,Protoco ...

  3. CODEVS 3285 转圈游戏

    [题目描述] n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……, ...

  4. iOS 日历类(NSCalendar)

    对于时间的操作在开发中很常见,但有时候我们需要获取到一年后的时间,或者一周后的时间.靠通过秒数计算是不行的.那就牵扯到另外一个日历类(NSCalendar).下面先简单看一下 NSDate let d ...

  5. 关于 js 2个数组取差集怎么取

    关于 js 2个数组取差集怎么取? 例如求var arr1 = [1]; var arr2 = [1,2];的差集方法一: Array.prototype.diff = function(a) { r ...

  6. vim 分屏 screen

    上下分割,并打开一个新的文件. :sp filename 左右分割当前打开的文件. Ctrl+W v 左右分割,并打开一个新的文件. :vsp filename 移动光标 Vi中的光标键是h, j, ...

  7. [JavaScript] 初中级Javascript程序员必修学习目录

    很多人总感觉javascript无法入门,笔者在这里写一下自己的学习过程,以及个人认 为的最佳看书过程,只要各位能按照本人所说步骤走下去,不用很长时间,坚持 个3个月,你的js层级会提高一个档次,无他 ...

  8. Linux下eclipse的安装以及配置

    在安装好jdk并配置好后,就可以进行eclipse的安装了,其步骤如下: 1.下载eclipse 我所用的eclipse为:eclipse-dsl-juno-SR1-linux-gtk.tar 2. ...

  9. codeforces Mafia

    /* * Mafia.cpp * * Created on: 2013-10-12 * Author: wangzhu */ /** * 每个人都想玩若干场,求至少需要玩几场才可以满足大家的需求. * ...

  10. 如何将Springside4项目转成Eclipse项目

    1)下载springside4 官网地址 http://www.springside.org.cn/download.html 2)运行CMD,进入 C:\Documents and Settings ...