我们回顾一下前面关于聚合区块的知识。一个聚合区块,由数据源和对应的view模板构成。
所谓数据源,其实就是,一个类的返回数据的方法,比如 wojilu.Apps.Blog.Service.BlogPostService 类中如下方法:

数据源必须配合多个模板显示,比如上面的 “最新博客帖子”,可以结合三种页面模板显示,如下图:

那么,创建聚合区块的流程究竟是怎样的呢?我们分三个步骤来谈。

一、创建并注册数据源

1)创建一个数据源(服务),比如下面的两个数据源:

注意,为了能够直接使用已有的绑定模板,我们返回了 IBinderValue 接口的对象列表

2)注册数据源到 /framework/data/wojilu.SOA.Service.config 中

这个注册文件,有一些属性需要说明:

属性名称含义
Params数据源方法往往有参数,比如上面的 GetNewSiteTopic 方法有一个参数 int Count,这个参数我们在注册文件中用 “显示数量=IntTextBox” 来表示。它提供了三方面的信息,在配置聚合区块的时候,用于显示用途:
1)配置表单中,这个参数的名称是“显示数量”
2)控件是整形文本框
3)参数是整数

如下图所示:

点击这个区块的 “修改配置” 命令,将会出现参数的表单:

也就是说,你只要在注册文件中提供了 Params:"显示数量=IntTextbox" 属性,系统会替你自动生成配置文件的命令链接,表单以及保存方法。

除了 IntTextBox 整形文本框之外,系统还定义了其余6种控件供参数使用:

上图选中的部分就是总共7种参数控件。
Tagswojilu.SOA.Service.config 中的项目,不仅仅用于内容app,还可以用于其它场合。从名称可以看出,它的本意是给系统提供一个服务(service)的列表,只不过我们在这里给内容app做了数据源而已。
所以,Tags用于区分内容app的数据源和其他类型的service。
简单说来,凡是内容app的数据源,都必须是 Tags:"PageSection" 
Note对于内容app来说,Note 中主要指明模板的类型名称。已有的模板类型在文件 wojilu.Apps.Content.Domain.ContentSectionTemplate.config 中:

每个模板文件都有一个 TemplateName 属性。
你在 wojilu.SOA.Service.config 的 Note 属性中就要填写这些 TemplateName,多个模板名称用分号隔开。
Status预留的属性,暂无意义
Description描述,可以留空

二、使用或创建模板

1)使用模板
使用模板在上面已经说了,你只要在 wojilu.SOA.Service.config 的 Note 属性指明已有的模板名称即可。

如果要创建模板,请看下面。

2)创建模板
如果已有的模板不能满足你的要求,请创建自己的模板。
模板文件的目录在 Content/Binder :

你自定义的模板请放在这个目录里

3)注册模板文件
请打开文件 wojilu.Apps.Content.Domain.ContentSectionTemplate.config ,将你的模板添加进去:


4)别忘了给模板设置缩略图



三、创建绑定器(binder)
如果你创建了自己的模板,则还必须写一段代码,将“服务(数据源)”绑定到“模板”——这段绑定的代码,我们称其为“绑定器(binder)”。
(如果使用已有模板,则不必创建绑定器)
binder和模板的名称是对应相同的。
下图是绑定器 controller 所在目录:

一个绑定器的代码实现: