网络编程 
首页 > 网络编程 > 浏览文章

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

(编辑:jimmy 日期: 2024/5/9 浏览:3 次 )

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

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

再看一下类图

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

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

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

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

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

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 MVC3手把手教你构建Web
下一篇:ASP.NET MVC5网站开发用户修改资料和密码(六)
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。
友情链接:杰晶网络 DDR爱好者之家 南强小屋 黑松山资源网 白云城资源网