ASP.NET MVC5网站开发文章管理架构(七) |
|
一、总体说明
再看一下类图
这里Category是栏目;CommonModel是公共模型;Article是文章;Attachment是附件; CommonModel是内容管理这块抽取出来的公共部分,像文章,咨询甚至产品都有一些共同的内容这里把它单独提取出来作为一个类 。CommonModel可能包含一片文章,包含一组附件,包含一系列评论,他们之间的关系类图中已经表示出来 。 二、搭建架构
1、IDAL
namespace Ninesky.IDAL
{
/// <summary>
/// 公共模型接口
/// <remarks>
/// 创建:2014.02.23
/// 修改:2014.02.28
/// </remarks>
/// </summary>
public interface InterfaceCommonModelRepository:InterfaceBaseRepository<Models.CommonModel> {
}
}
再依次添加InterfaceCategory,InterfaceArticle,InterfaceAttachment,方式和公共模型接口相同 。 2、DAL
namespace Ninesky.DAL
{
/// <summary>
/// 公共模型仓储
/// <remarks>
/// 创建:2014.02.23
/// </remarks>
/// </summary>
public class CommonModelRepository:BaseRepository<Models.CommonModel>, IDAL.InterfaceCommonModel
{
}
}
然后依次添加CategoryRepository,ArticleRepository,AttachmentRepository 。 3.IBLL 这次先从InterfaceCategoryService开始,InterfaceArticleService,InterfaceCommentService,InterfaceAttachmentService 。InterfaceCommonModelService内容较多放在最后 。 具体功能会在做栏目的时候再写,这里暂时空着 。
namespace Ninesky.IBLL
{
/// <summary>
/// 栏目服务接口
/// <remarks>
/// 创建:2014.02.23
/// </remarks>
/// </summary>
public class InterfaceCategoryService:InterfaceBaseService<Models.Category>
{
}
}
4.BLL 同样先从CategoryService开始,然后依次添加ArticleService,AttachmentService 。CommonModelService 。
using Ninesky.DAL;
using Ninesky.IBLL;
using Ninesky.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Ninesky.BLL
{
/// <summary>
/// 栏目服务
/// <remarks>
/// 创建:2014.02.27
/// </remarks>
/// </summary>
public class CategoryService:BaseService<Category>,InterfaceCategoryService
{
public CategoryService() : base(RepositoryFactory.CategoryRepository) { }
}
}
5、Web 在web项目的Member区域下添加三个空控制器 。 栏目控制器CategoryController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Ninesky.IBLL;
using Ninesky.BLL;
using Ninesky.Models;
namespace Ninesky.Web.Areas.Member.Controllers
{
[Authorize]
public class CategoryController : Controller
{
private InterfaceCategoryService categoryRepository;
public CategoryController() { categoryRepository = new CategoryService(); }
}
}
文章控制器ArticleController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Ninesky.Models;
using Ninesky.IBLL;
using Ninesky.BLL;
namespace Ninesky.Web.Areas.Member.Controllers
{
public class ArticleController : Controller
{
private InterfaceArticleService articleService;
private InterfaceCommonModelService commonModelService;
public ArticleController() { articleService = new ArticleService(); commonModelService = new CommonModelService(); }
}
}
附件控制器AttachmentController
using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;
using System.Web;
using System.Web.Mvc;
using System.IO;
using Ninesky.IBLL;
using Ninesky.BLL;
using Ninesky.Models;
namespace Ninesky.Web.Areas.Member.Controllers
{
/// <summary>
/// 附件控制器
/// <remarks>
/// 创建:2014.03.05
/// </remarks>
/// </summary>
[Authorize]
public class AttachmentController : Controller
{
}
}
架构结束啦,下面就开始实现文章相关功能! |