程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> ASP.NET MVC5網站開發文章管理架構(七)

ASP.NET MVC5網站開發文章管理架構(七)

編輯:ASP.NET基礎

一、總體說明
先看一下文章管理設想要實現的功能:

再看一下類圖

這裡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
 {
 }
}

架構結束啦,下面就開始實現文章相關功能!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved