MVC小型商务网站实例(2)--项目架构

本项目是用Asp.net MVC 2 + Castle + Entity Framework开发。

下面介绍项目结构:

首先是整个解决方案在上文一经有所介绍我就不多废话了。

 

1.       数据库:这里采用Sqlserver2008

2.       缓存设计:为了减轻数据库的压力,把页面上短期内不太变化的数据进行缓存,从而减少对后台数据库的访问。这采用的是Microsoft企业类库中的Cache模块。

3.       MVC框架设计:MVC是Web应用前端的重要架构组成,网站交互的绝大部分内容将集中在这个部分,一套高效而易于扩展和使用的MVC框架是整个网站中重要组成。

数据实体是entity framework生成数据实体:

 

表比较多,还有我不喜欢关系型数据操作(查询方便维护麻烦),所以没有创建表的数据关联,看起来有点乱。

数据访问这里采用的是Repository模式,现在大多的MVC项目都采用这种方式(如Oxite、 KiGG等)。这里就不多说,我会在接下来的一篇中介绍。

4.       SEO(Search Engine Optimize)方案:面向搜索引擎提供网站搜索优化方案。

这里主要是页面的关键字和描述处理。

   先定义一个 abstract 的 Controller的基类,该基类中定义了一些网站 SEO 所需的字段:


public abstract class BaseController : Controller, ISiteProvidesBaseService
{
//
// GET: /Base/
private IBaseControllerService _baseControllerService;

#region ISiteProvidesBaseService 成员
public IBaseControllerService BaseControllerService
{
get
{
return this._baseControllerService;
}
set
{
_baseControllerService
= value;

ViewData[
"Page_Title"] = _baseControllerService.ShopName;

ViewData[
"Page_Description"] = "\"{0}\"".With(_baseControllerService.PageDescription);
}
}
#endregion

public string Message { set { ViewData["Page_Message"] = value; } }
public string Title { set { ViewData["Page_Title"] = value; } }
public string Keywords { set { ViewData["Page_Keywords"] = value; } }
public string Description { set { ViewData["Page_Description"] = value; }}

public virtual void WithTitle(string value)
{
ViewData[
"Page_Title"] = "{0} - {1}".With(ViewData["Page_Title"], value);
}

public virtual void WithDescription(string value)
{
ViewData[
"Page_Description"] = "{0} - {1}".With(ViewData["Page_Description"], value);
}
}

posted on 2011-03-18 11:21  Ω元素  阅读(1556)  评论(0编辑  收藏  举报

导航