网站中专题设计时的考虑
2012-06-06 17:00
113 查看
一、项目需求描述
客户要求针对于某些活动、节日等大型事件时,以专题的方式进行报道、庆祝。
二、功能要求
系统需要预先定义一些“专题模板“,在后台管理中,可以让管理员自己选择任何一个”模板“以添加新的专题。
解释一下几个概念:
1、专题,类似于子网站,每个专题都会有很多页面,这些页面间可能会共享数据(从数据库取得)。
2、模块,因为专题的个数是不限的,但又不可能为每个专题都设计一套UI。所以就要由美工预先设计几套专题的UI,当发布一个新的专题时就可以选择其中的一套UI来指定其“风格”(或称主题)。
三、设计思路
注:项目使用ASP.NET MVC 2.0开发
以路由为入口点,为专题模块配置路由规则。
1、当用户请求页面时,根据配置规则,获取专题的相关数据(如:专题ID、请求的页面名称);
2、根据此ID到数据库(或配置文件)中找到该专题使用的“模板”(模块目录名);
3、读取用户请求页面需要的数据,并传递给请求的页面,最后返回给客户端。
四、详细设计
1、数据库设计
![](http://my.csdn.net/uploads/201206/07/1339031544_5852.jpg)
描述:
A、专题表
用于保存所有的专题列表。“路径段”保存匹配于路由中的“{path}”参数;专题名称保存所使用的专题模板。
B、专题数据
保存所有专题的内容数据,如:文章、附件(仅路径)等。字段“所属模块”类似于关键字,同一专题页面可能会读取多个“模板”,同一专题不同的页面也可能会读取相关的“模块”,简单的说就是把数据进行分组,然后在页面中以此组名来读取数据,以解决同一数据可能出现在多个地方的问题。
2、路由配置
context.MapRoute(
"SpecialSubject_match",
"SpecialSubject/{path}/{page}/{id}",
new { controller = "Template", action = "Match", id = UrlParameter.Optional }
);
3、模板的保存位置
同一个模板中的所有资料保存在一个文件夹中(专题表中的”模板名称“对应此文件夹名),所有的模板文件夹保存在同一父级中,以便查找。
4、控制器的处理
按路由配置的说明,所有的请求均由/SpecialSubject/Template/Match来处理,即区域为“SpecialSubject”、控制器为“Template”、动作为“Match”的方法。
此方法根据匹配的{path}到“专题”表中读取字段“模板名称”,再根据匹配的{page}到相应的模板中找到这个页面,最后返回给客户端即可。
5、视图如何读取数据
任何一专题模板,可以附带一个配置文件(下在考虑,完成后更新),此文件用于描述专题所使用的“模块”,每个模块并带有描述性的简介,以帮助管理员在添加数据时便于理解。
任何一个页面可能会有一个块(或称区域),也可能会有多个,这些块就是根据配置中的“模块”来读取数据的。比如:首页中分为3个部分,第一个部门是滚动图片,第二个部门是新闻,第三个部门是视频,则依次为它们配置三个“模块”名称:image、news、video。在管理员添加数据时,先选择一个专题模板,然后选择这条数据是哪个模块下的数据(由配置文件描述)。view读取数据时,就可以到“专题数据”表中读取此专题下的“模块”分别为image、news、video的数据即可。
6、可能遇到的问题
由于不再是配置的路由规则,当在模块页面中显示一个链接时可能会遇到问题。假设如下:
当前页面为:A,需要显示转到页面B,请求参数为id=3&name=abc的链接。此如可以这么写:
<%=Html.RouteLink("超链接", "SpecialSubject_match", new { page = "B", id = 3, name = "abc" })%>
如果转到模板为C的B页面,应该这样写:
<%=Html.RouteLink("超链接", "SpecialSubject_match", new { path = C, page = "B", id = 3, name = "abc" })%>
类似这样的问题都可以通用Html、Url助手来解决。
客户要求针对于某些活动、节日等大型事件时,以专题的方式进行报道、庆祝。
二、功能要求
系统需要预先定义一些“专题模板“,在后台管理中,可以让管理员自己选择任何一个”模板“以添加新的专题。
解释一下几个概念:
1、专题,类似于子网站,每个专题都会有很多页面,这些页面间可能会共享数据(从数据库取得)。
2、模块,因为专题的个数是不限的,但又不可能为每个专题都设计一套UI。所以就要由美工预先设计几套专题的UI,当发布一个新的专题时就可以选择其中的一套UI来指定其“风格”(或称主题)。
三、设计思路
注:项目使用ASP.NET MVC 2.0开发
以路由为入口点,为专题模块配置路由规则。
1、当用户请求页面时,根据配置规则,获取专题的相关数据(如:专题ID、请求的页面名称);
2、根据此ID到数据库(或配置文件)中找到该专题使用的“模板”(模块目录名);
3、读取用户请求页面需要的数据,并传递给请求的页面,最后返回给客户端。
四、详细设计
1、数据库设计
![](http://my.csdn.net/uploads/201206/07/1339031544_5852.jpg)
描述:
A、专题表
用于保存所有的专题列表。“路径段”保存匹配于路由中的“{path}”参数;专题名称保存所使用的专题模板。
B、专题数据
保存所有专题的内容数据,如:文章、附件(仅路径)等。字段“所属模块”类似于关键字,同一专题页面可能会读取多个“模板”,同一专题不同的页面也可能会读取相关的“模块”,简单的说就是把数据进行分组,然后在页面中以此组名来读取数据,以解决同一数据可能出现在多个地方的问题。
2、路由配置
context.MapRoute(
"SpecialSubject_match",
"SpecialSubject/{path}/{page}/{id}",
new { controller = "Template", action = "Match", id = UrlParameter.Optional }
);
3、模板的保存位置
同一个模板中的所有资料保存在一个文件夹中(专题表中的”模板名称“对应此文件夹名),所有的模板文件夹保存在同一父级中,以便查找。
4、控制器的处理
按路由配置的说明,所有的请求均由/SpecialSubject/Template/Match来处理,即区域为“SpecialSubject”、控制器为“Template”、动作为“Match”的方法。
此方法根据匹配的{path}到“专题”表中读取字段“模板名称”,再根据匹配的{page}到相应的模板中找到这个页面,最后返回给客户端即可。
5、视图如何读取数据
任何一专题模板,可以附带一个配置文件(下在考虑,完成后更新),此文件用于描述专题所使用的“模块”,每个模块并带有描述性的简介,以帮助管理员在添加数据时便于理解。
任何一个页面可能会有一个块(或称区域),也可能会有多个,这些块就是根据配置中的“模块”来读取数据的。比如:首页中分为3个部分,第一个部门是滚动图片,第二个部门是新闻,第三个部门是视频,则依次为它们配置三个“模块”名称:image、news、video。在管理员添加数据时,先选择一个专题模板,然后选择这条数据是哪个模块下的数据(由配置文件描述)。view读取数据时,就可以到“专题数据”表中读取此专题下的“模块”分别为image、news、video的数据即可。
6、可能遇到的问题
由于不再是配置的路由规则,当在模块页面中显示一个链接时可能会遇到问题。假设如下:
当前页面为:A,需要显示转到页面B,请求参数为id=3&name=abc的链接。此如可以这么写:
<%=Html.RouteLink("超链接", "SpecialSubject_match", new { page = "B", id = 3, name = "abc" })%>
如果转到模板为C的B页面,应该这样写:
<%=Html.RouteLink("超链接", "SpecialSubject_match", new { path = C, page = "B", id = 3, name = "abc" })%>
类似这样的问题都可以通用Html、Url助手来解决。
相关文章推荐
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 网站设计必须要考虑的用户体验
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- Web网站架构设计考虑的因素
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 设计网站之前请你考虑一下SEO
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 网站设计必须要考虑的用户体验
- 多语言版本网站建设数据库设计和考虑的因素
- 面试准备专题——高并发高性能网站设计
- Web网站架构设计考虑的因素
- Web网站架构设计考虑的因素
- [付费专题讲座] 第三代网站设计与推广技术解密与解谜
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 面试准备专题——高并发高性能网站设计
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?