博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC5 网站开发实践(二) Member区域 - 文章管理架构
阅读量:5314 次
发布时间:2019-06-14

本文共 3553 字,大约阅读时间需要 11 分钟。

上次把member的用户部分完成,现在开始做文章管理部分。文章部分根据涉及显示现实文章列表,发布文章,修改文章,删除文章等功能。最终的实现目标是使用权限来控制用户是否能进行相应操作,管理员权限的会显示全部文章列表和我的文章列表,普通用户只显示我的文章列表。由于还没做权限这块所以没法判断,暂时登录后所有都可以操作。

目录

一、总体说明

先看一下文章管理设想要实现的功能:

再看一下类图

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

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

 

二、搭建架构

这个顺序根以前一样

1、IDAL

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

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

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

2、DAL

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

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

然后依次添加CategoryRepository,ArticleRepository,AttachmentRepository。

3.IBLL

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

InterfaceCategoryService

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

namespace Ninesky.IBLL{    ///     /// 栏目服务接口    /// 
/// 创建:2014.02.23 ///
///
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{    ///     /// 栏目服务    /// 
/// 创建:2014.02.27 ///
///
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{    ///     /// 附件控制器    /// 
/// 创建:2014.03.05 ///
///
[Authorize] public class AttachmentController : Controller { }}

架构结束,明天开始实现文章相关功能!

转载于:https://www.cnblogs.com/mzwhj/p/3590976.html

你可能感兴趣的文章
iptables设置规则
查看>>
聊聊setTimeout和setInterval线程
查看>>
计算机经典书箱
查看>>
克隆节点及添加属性节点
查看>>
SQL入门经典(八)之存储过程
查看>>
Chrome/FireFox处理JSON的插件
查看>>
【转】ACM之Java新手速成
查看>>
日志分析工具 Log Parser
查看>>
18 HTML标签以及属性全
查看>>
tensorflow 前向传播 2019.07.19
查看>>
安装完CentOS 7 Minimal之后,从头打造桌面工作环境
查看>>
利用GDAL实现影像的几何校正
查看>>
不错的iOS相关的主页或站点 (更新于14-06-22)
查看>>
less嵌套规则
查看>>
【转】深入浅出ShellExecute
查看>>
常见ES5方法
查看>>
缓存,队列(Redis,RabbitMQ)
查看>>
破解Java to C# Converter
查看>>
【codeforces 534B】Covered Path
查看>>
给图片添加标签
查看>>