时间:2021-05-26
一、总体说明
先看一下文章管理设想要实现的功能:
再看一下类图
这里Category是栏目;CommonModel是公共模型;Article是文章;Attachment是附件;
CommonModel是内容管理这块抽取出来的公共部分,像文章,咨询甚至产品都有一些共同的内容这里把它单独提取出来作为一个类。CommonModel可能包含一片文章,包含一组附件,包含一系列评论,他们之间的关系类图中已经表示出来。
二、搭建架构
这个顺序根以前一样
1、IDAL
在IDAL添加接口InterfaceCommonModelRepository,其实只是继承自InterfaceBaseRepository,没有添加任何其他内容。
再依次添加InterfaceCategory,InterfaceArticle,InterfaceAttachment,方式和公共模型接口相同。
2、DAL
DAL中是对IDAL接口的实现,还是从CommonModel开始,先添加CommonModelRepository,也是跟原来一样直接继承没有什么代码。
然后依次添加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 { }}架构结束啦,下面就开始实现文章相关功能!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一.概述使用ASP.NET那么SignalR2创建一个实时聊天应用程序。将SignalR添加MVC5应用程序中,并创建聊天视图发送并显示消息。在Demo中,将学
ASP.NET技术开发中的安全问题,可通过识别用户身份、控制访问权限以及加密数据等方式提高网站开发安全的有效性。1、识别用户身份ASP.NET网站的识别方式有W
在学习ASP.NETMVC之前,需要先了解“什么是MVC?”。也许这对某些ASP/ASP.NET开发人员来说非常陌生,MVC不是一种程序语言,严格说起来也不
最近打算尝试一下在ASP中实现MVC架构,肯定有人问我:ASP都淘汰了,为什么还研究?这点我也知道,自从微软放弃ASP3.0转向ASP.NET后,ASP已经远远
一、ASP.NETMVC的本地化支持ASP.NETMVC的是基于ASP.NET运行,所以由ASP.NET提供的所有功能,都可以在MVC里使用,例如缓存,会话状态