新聞中心
配置環(huán)境

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,包括成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營(yíng)銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營(yíng)銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團(tuán)隊(duì)十多年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。
如果您還沒有安裝asp.net.mvc的話,請(qǐng)到這里下載安裝。
下載后,按提示安裝就可以了。
新建項(xiàng)目
安裝完asp.net.mvc后,在VS里新建一個(gè)項(xiàng)目,可以看到有一個(gè)“asp.net.mvc Web Application”的選項(xiàng),選擇它,新建一個(gè)項(xiàng)目,并命名為“MVCDemo”。
建完項(xiàng)目后,可以看到默認(rèn)情況下已經(jīng)建立了很多文件夾,這里簡(jiǎn)略說一下各個(gè)文件夾的作用。
Content——存放應(yīng)用需要的一些資源文件,如圖片、CSS等。
Controllers——存放控制器類。
Models——存放業(yè)務(wù)模型組件。
Scripts——存放JavaScript腳本文件。
Views——存放視圖。
現(xiàn)在不了解一些概念沒關(guān)系,后續(xù)文章將慢慢解釋。
準(zhǔn)備工作
新建完項(xiàng)目后,我們要做的準(zhǔn)備工作就是建立Mock業(yè)務(wù)模型,這樣以后我們就直接使用這些“欺騙”式的業(yè)務(wù)模型進(jìn)行業(yè)務(wù)處理,而將全部關(guān)注點(diǎn)放在asp.net.mvc的學(xué)習(xí)上。
首先在Models下新建三個(gè)文件夾,分別叫做Entities、Interfaces、MockModels,分別用來存放實(shí)體類、接口及Mock業(yè)務(wù)模型。
Entities下有兩個(gè)類:CategoryInfo和AnnounceInfo,分別是公告類別和公告的實(shí)體類。具體代碼如下:
CategoryInfo.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace MVCDemo.Models.Entities
- {
- ///
- /// 分類實(shí)體類
- ///
- public class CategoryInfo
- {
- public int ID { get; set; }
- public string Name { get; set; }
- }
- }
AnnounceInfo.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace MVCDemo.Models.Entities
- {
- ///
- /// 公告實(shí)體類
- ///
- public class AnnounceInfo
- {
- public int ID { get; set; }
- public string Title { get; set; }
- public string Content { get; set; }
- public int Category { get; set; }
- }
- }
接下來,我們將定義兩個(gè)接口,分別是公告類別服務(wù)和公告服務(wù)必須實(shí)現(xiàn)的接口。這兩個(gè)接口放在Interfaces下。
ICategoryService.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.Interfaces
- {
- ///
- /// 分類服務(wù)組件接口
- ///
- public interface ICategoryService
- {
- ///
- /// 添加分類
- ///
- ///
- void Add(CategoryInfo category);
- ///
- /// 修改分類名稱
- ///
- ///
- ///
- void ChangeName(int id,string name);
- ///
- /// 刪除分類
- ///
- ///
- void Remove(int id);
- ///
- /// 取得某個(gè)分類詳細(xì)信息
- ///
- ///
- ///
- CategoryInfo GetDetail(int id);
- ///
- /// 取得所有分類
- ///
- ///
- List GetAll();
- }
- }
IAnnounceService.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.Interfaces
- {
- ///
- /// 公告服務(wù)組件接口
- ///
- public interface IAnnounceService
- {
- ///
- /// 發(fā)布公告
- ///
- ///
- void Release(AnnounceInfo announce);
- ///
- /// 修改公告信息
- ///
- ///
- void Notify(AnnounceInfo announce);
- ///
- /// 刪除公告
- ///
- ///
- void Remove(int id);
- ///
- /// 取得公告詳細(xì)內(nèi)容
- ///
- ///
- ///
- AnnounceInfo GetDetail(int id);
- ///
- /// 取得某個(gè)分類下的所有公告
- ///
- ///
- ///
- List GetByCategory(CategoryInfo category);
- }
- }
然后,我們?cè)贛ockModels下建立兩個(gè)Mock業(yè)務(wù)邏輯服務(wù)模型。注意它們要各自實(shí)現(xiàn)自己的接口。
MockCategoryService.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using MVCDemo.Models.Interfaces;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.MockModels
- {
- ///
- /// “欺騙”服務(wù)組件,用于模擬分類的業(yè)務(wù)服務(wù)
- ///
- public class MockCategoryService : ICategoryService
- {
- ///
- /// 添加分類
- ///
- ///
- public void Add(CategoryInfo category)
- {
- return;
- }
- ///
- /// 修改分類名稱
- ///
- ///
- ///
- public void ChangeName(int id, string name)
- {
- return;
- }
- ///
- /// 刪除分類
- ///
- ///
- public void Remove(int id)
- {
- return;
- }
- ///
- /// 取得某個(gè)分類詳細(xì)信息
- ///
- ///
- ///
- public CategoryInfo GetDetail(int id)
- {
- return new CategoryInfo
- {
- ID = id,
- Name = "***通告",
- };
- }
- ///
- /// 取得所有分類
- ///
- ///
- public List GetAll()
- {
- List categories = new List ();
- for (int i = 1; i <= 5; i++)
- {
- CategoryInfo category = new CategoryInfo
- {
- ID = i,
- Name="通告類別"+i,
- };
- categories.Add(category);
- }
- return categories;
- }
- }
- }
MockAnnounceService.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using MVCDemo.Models.Interfaces;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.MockModels
- {
- ///
- /// “欺騙”服務(wù)組件,用于模擬公告的業(yè)務(wù)服務(wù)
- ///
- public class MockAnnounceService : IAnnounceService
- {
- ///
- /// 發(fā)布公告
- ///
- ///
- public void Release(AnnounceInfo announce)
- {
- throw new Exception("發(fā)布公告失敗了!原因?沒有原因!我是業(yè)務(wù)組件,我說失敗就失??!");
- return;
- }
- ///
- /// 修改公告信息
- ///
- ///
- public void Notify(AnnounceInfo announce)
- {
- return;
- }
- ///
- /// 刪除公告
- ///
- ///
- public void Remove(int id)
- {
- return;
- }
- ///
- /// 取得公告詳細(xì)內(nèi)容
- ///
- ///
- ///
- public AnnounceInfo GetDetail(int id)
- {
- return new AnnounceInfo
- {
- ID = id,
- Title = "第" + id + "則公告",
- Content = "全體同學(xué)明早九點(diǎn)集體做俯臥撐!",
- };
- }
- ///
- /// 取得某個(gè)分類下的所有公告
- ///
- ///
- ///
- public List GetByCategory(CategoryInfo category)
- {
- List announces = new List ();
- for (int i = 1; i <= 10; i++)
- {
- AnnounceInfo announce = new AnnounceInfo
- {
- ID = i,
- Title = category.Name+ "的第" + i + "則公告",
- Content = "全體同學(xué)明早九點(diǎn)集體做俯臥撐!",
- };
- announces.Add(announce);
- }
- return announces;
- }
- }
- }
可以看到,這兩個(gè)類并沒有訪問數(shù)據(jù)庫(kù),也沒有實(shí)現(xiàn)真正的業(yè)務(wù)邏輯,而不過是“捏造”了一些數(shù)據(jù)騙騙我們的表示層而已。
***,我們要建立一個(gè)生成業(yè)務(wù)邏輯模型的生成器,用來實(shí)現(xiàn)表示層和業(yè)務(wù)邏輯層的解耦。當(dāng)然,為了簡(jiǎn)化復(fù)雜度,這里沒有使用依賴注入機(jī)制。下面是我們生成器的代碼,這個(gè)類是直接放在Models下的。
ServiceBuilder.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using MVCDemo.Models.Interfaces;
- using MVCDemo.Models.MockModels;
- namespace MVCDemo.Models
- {
- ///
- /// 服務(wù)組件生成類,用于生成業(yè)務(wù)服務(wù)組件
- ///
- public sealed class ServiceBuilder
- {
- ///
- /// 創(chuàng)建分類服務(wù)組件
- ///
- /// 分類服務(wù)組件
- public static ICategoryService BuildCategoryService()
- {
- return new MockCategoryService();
- }
- ///
- /// 創(chuàng)建公告服務(wù)組件
- ///
- /// 公告服務(wù)組件
- public static IAnnounceService BuildAnnounceService()
- {
- return new MockAnnounceService();
- }
- }
- }
OK,到這里,我們的準(zhǔn)備工作就做完了。完成這些后,系統(tǒng)的目錄結(jié)構(gòu)如下圖所示:
在這篇文章中,我們只是講了一下這個(gè)系列文章要做什么,以及為案例做了一些準(zhǔn)備工作。從下篇開始,我們將繼續(xù)通過asp.net.mvc教程(二)介紹如何正式開始使用asp.net.mvc完成這個(gè)案例。
網(wǎng)頁(yè)題目:ASP.NETMVC教程(一):準(zhǔn)備工作
新聞來源:http://www.5511xx.com/article/ccciooo.html


咨詢
建站咨詢
