• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

ASP.NET MVC5网站开发文章管理架构(七)

asp 搞代码 4年前 (2022-01-03) 43次浏览 已收录 0个评论

继上一篇把member的用户部分完成,现在开始做文章管理部分。文章部分根据涉及显示现实文章列表,发布文章,修改和删除文章等功能。最终的实现目标是使用权限来控制用户是否能进行相应操作,管理员权限的会显示全部文章列表和我的文章列表,普通用户只显示我的文章列表。

一、总体说明
先看一下文章管理设想要实现的功能:

再看一下类图

这里Category是栏目;CommonModel是公共模型;Article是文章;Attachment是附件;

CommonModel是内容管理这块抽取出来的公共部分,像文章,咨询甚至产品都有一些共同的内容这里把它单独提取出来作为一个类。CommonModel可能包含一片文章,包含一组附件,包含一系列评论,他们之间的关系类图中已经表示出来。

 二、搭建架构
这个顺序根以前一样

1、IDAL
在IDAL添加接口InterfaceCommonModelRepository,其实只是继承自InterfaceBaseRepository,没有添加任何其他内容。

 namespace Ninesky.IDAL { /// <summary> /// 公共模型接口 ///  /// 创建:2014.02.23 /// 修改:2014.02.28 ///  /// </summary> public interface InterfaceCommonModelRepository:InterfaceBaseRepository { } }

再依次添加InterfaceCategory,InterfaceArticle,InterfaceAttachment,方式和公共模型接口相同。

2、DAL
DAL中是对IDAL接口的实现,还是从CommonModel开始,先添加CommonModelRepository,也是跟原来一样直接继承没有什么代码。

 namespace Ninesky.DAL { /// <summary> /// 公共模型仓储 ///  /// 创建:2014.02.23 ///  /// </summary> public class CommonModelRepository:BaseRepository, IDAL.InterfaceCommonModel { } }

然后依次添加CategoryRepository,ArticleRepository,Attachmen来源[email protected]搞@^&代*@码网tRepository。

3.IBLL

这次先从InterfaceCategoryService开始,InterfaceArticleService,InterfaceCommentService,InterfaceAttachmentService。InterfaceCommonModelService内容较多放在最后。
InterfaceCategoryService

具体功能会在做栏目的时候再写,这里暂时空着。

 namespace Ninesky.IBLL { /// <summary> /// 栏目服务接口 ///  /// 创建:2014.02.23 ///  /// </summary> public class InterfaceCategoryService:InterfaceBaseService { } } 

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> /// 栏目服务 ///  /// 创建:2014.02.27 ///  /// </summary> public class CategoryService:BaseService,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> /// 附件控制器 ///  /// 创建:2014.03.05 ///  /// </summary> [Authorize] public class AttachmentController : Controller { } } 

架构结束啦,下面就开始实现文章相关功能!

以上就是ASP.NET MVC5网站开发文章管理架构(七)的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ASP.NET MVC5网站开发文章管理架构(七)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址