ASP.NET MVC5 网站开发实践(二) Member区域 - 文章管理架构
上次把member的用户部分完成,现在开始做文章管理部分。文章部分根据涉及显示现实文章列表,发布文章,修改文章,删除文章等功能。最终的实现目标是使用权限来控制用户是否能进行相应操作,管理员权限的会显示全部文章列表和我的文章列表,普通用户只显示我的文章列表。由于还没做权限这块所以没法判断,暂时登录后所有都可以操作。
目录
ASP.NET MVC5 网站开发实践(一) - 框架(续) 模型、数据存储、业务逻辑
ASP.NET MVC5 网站开发实践(二) - 用户部分(1)用户注册
ASP.NET MVC5 网站开发实践(二) - 用户部分(2)用户登录、注销
ASP.NET MVC5 网站开发实践(二) - 用户部分(3)修改资料、修改密码
一、总体说明
先看一下文章管理设想要实现的功能:

再看一下类图

这里Category是栏目;CommonModel是公共模型;Article是文章;Attachment是附件;
CommonModel是内容管理这块抽取出来的公共部分,像文章,咨询甚至产品都有一些共同的内容这里把它单独提取出来作为一个类。CommonModel可能包含一片文章,包含一组附件,包含一系列评论,他们之间的关系类图中已经表示出来。
二、搭建架构
这个顺序根以前一样

1、IDAL
在IDAL添加接口InterfaceCommonModelRepository,其实只是继承自InterfaceBaseRepository,没有添加任何其他内容。
namespace Ninesky.IDAL
{
/// <summary>
/// 公共模型接口
/// <remarks>
/// 创建:2014.02.23
/// 修改:2014.02.28
/// </remarks>
/// </summary>
public interface InterfaceCommonModelRepository:InterfaceBaseRepository<Models.CommonModel> { }
}
再依次添加InterfaceCategory,InterfaceArticle,InterfaceAttachment,方式和公共模型接口相同。
2、DAL
DAL中是对IDAL接口的实现,还是从CommonModel开始,先添加CommonModelRepository,也是跟原来一样直接继承没有什么代码。
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内容较多放在最后。
InterfaceCategoryService
具体功能会在做栏目的时候再写,这里暂时空着。
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
{
}
}
架构结束,明天开始实现文章相关功能!
ASP.NET MVC5 网站开发实践(二) Member区域 - 文章管理架构的更多相关文章
- ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构
咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...
- ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
本来想接着上次把这篇写完的,没想到后来工作的一些事落下了,放假了赶紧补上. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP ...
- ASP.NET MVC5 网站开发实践(二) Member区域–我的咨询列表及添加咨询
上次把咨询的架构搭好了,现在分两次来完成咨询:1.用户部分,2管理部分.这次实现用户部分,包含两个功能,查看我的咨询和进行咨询. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NE ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 修改及删除文章
上次做了显示文章列表,再实现修改和删除文章这部分内容就结束了,这次内容比较简单,由于做过了添加文章,修改文章非常类似,就是多了一个TryUpdateModel部分更新模型数据. 目录: ASP.N ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 全部文章列表
显示文章列表分两块,管理员可以显示全部文章列表,一般用户只显示自己的文章列表.文章列表的显示采用easyui-datagrid.后台需要与之对应的action返回json类型数据 目录 ASP.N ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 添加文章
上次把架构做好了,这次做添加文章.添加文章涉及附件的上传管理及富文本编辑器的使用,早添加文章时一并实现. 要点: 富文本编辑器采用KindEditor.功能很强大,国人开发,LGPL开源,自己人的好东 ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(3)修改资料、修改密码
在上一篇博客中实现了用户的注销和登录,其实代码里落了点东西,就是用户登录要更新最后一次登录时间和登录IP,这次补上.今天做修改资料和修改密码,TryUpdateModel是新用到的东西. 目录: AS ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(2)用户登录、注销
上次实现了用户注册,这次来实现用户登录,用到IAuthenticationManager的SignOut.SignIn方法和基于声明的标识.最后修改用户注册代码实现注册成功后直接登录. 目录: ASP ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(1)用户注册
上一次把基本框架搭建起来了,这次开始整Web部分,终于可以看到界面了小激动一下.web项目部分从用户功能开始,基本有注册,登录.注销.查找.查看.删除等涉及Member区域和Manage区域. 目录: ...
随机推荐
- 软件工程:Wordcount程序作业
由于时间的关系,急着交作业,加上这一次也不是那么很认真的去做,草草写了“Wordcount程序”几个功能,即是 .txt文件的读取,能计算出文件内容的单词数,文件内容的字符数,及行数. 这次选用C来做 ...
- QGis、Qt对话框上的OK、Open、Cancel、Help等英文翻译
成功编译qgis,启动程序发现对话框上的OK.Open.Cancel.Help等依然是英文字段,然后查找源码看这些字段是否都添加到了语言翻译包中: 最后发现这些按钮都是qt的QTGui4库中的QDia ...
- homework-01
我的GitHub账户名是Firedamp. 其实我最一开始看到最大子序列的和这个题目,最先想到的就是最简单的O(n^3)的算法,在课堂上教的也确实是这个程序,但是这种算法的时间复杂度必然是最高的,在数 ...
- 【hihoCoder】1082: 然而沼跃鱼早就看穿了一切
题目:http://hihocoder.com/problemset/problem/1082 输入一个字符串,将其中特定的单词替换成另一个单词 代码注意点: 1. getline(istre ...
- win7安装oracle 时容易出的问题
Windows7下安装Oracle11G.10G,都会提示如下信息 正在检查操作系统要求... 要求的结果: 5.0,5.1,5.2,6.0 之一 实际结果: 6.1 检查完成.此次检查的总体结果为: ...
- JS中的柯里化与反柯里化
先占个位 看了一天折资料,感觉清楚多了
- TestNG 与 Junit的比较
转自 http://www.blogjava.net/fanscial/archive/2005/12/14/23780.html 1. JDK 5 Annotations (JDK ...
- Apache与Nginx区别
1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx ...
- Hbuilder开发HTML5 APP之侧滑菜单
1.思路: 其时有2个WebView,一个main是用来装主页面,一个menu是用来装菜单(为提高性能,菜单项是采用了预加载方式的,预加载时为了避免和主页面争夺资源,采用延时加载,例如: //plus ...
- Information Management Policy(信息管理策略)的使用范例
基础知识 很多人都会定期收拾自己的书架或者抽屉,把里面过旧的资料拿走,为新的资料腾出空间来,这样既可以节省空间,而且当冗余资料过多的时候也会降低你查找的速度和效率.那么,在企业的SharePoint中 ...