溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET MVC的準(zhǔn)備工作有哪些

發(fā)布時(shí)間:2021-10-28 10:25:47 來(lái)源:億速云 閱讀:131 作者:柒染 欄目:編程語(yǔ)言

本篇文章給大家分享的是有關(guān)ASP.NET MVC的準(zhǔn)備工作有哪些,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

配置環(huán)境

如果您還沒(mé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)略說(shuō)一下各個(gè)文件夾的作用。

Content——存放應(yīng)用需要的一些資源文件,如圖片、CSS等。

Controllers——存放控制器類(lèi)。

Models——存放業(yè)務(wù)模型組件。

Scripts——存放JavaScript腳本文件。

Views——存放視圖。

現(xiàn)在不了解一些概念沒(méi)關(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,分別用來(lái)存放實(shí)體類(lèi)、接口及Mock業(yè)務(wù)模型。

Entities下有兩個(gè)類(lèi):CategoryInfo和AnnounceInfo,分別是公告類(lèi)別和公告的實(shí)體類(lèi)。具體代碼如下:

CategoryInfo.cs:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;   namespace MVCDemo.Models.Entities  {      ///      /// 分類(lèi)實(shí)體類(lèi)      ///      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í)體類(lèi)      ///      public class AnnounceInfo      {          public int ID { get; set; }          public string Title { get; set; }          public string Content { get; set; }          public int Category { get; set; }      }  }

接下來(lái),我們將定義兩個(gè)接口,分別是公告類(lèi)別服務(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  {      ///      /// 分類(lèi)服務(wù)組件接口      ///      public interface ICategoryService      {          ///          /// 添加分類(lèi)          ///          ///          void Add(CategoryInfo category);           ///          /// 修改分類(lèi)名稱(chēng)          ///          ///          ///          void ChangeName(int id,string name);           ///          /// 刪除分類(lèi)          ///          ///          void Remove(int id);           ///          /// 取得某個(gè)分類(lèi)詳細(xì)信息          ///          ///          ///          CategoryInfo GetDetail(int id);           ///          /// 取得所有分類(lèi)          ///          ///          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è)分類(lèi)下的所有公告          ///          ///          ///          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ù)組件,用于模擬分類(lèi)的業(yè)務(wù)服務(wù)      ///      public class MockCategoryService : ICategoryService      {          ///          /// 添加分類(lèi)          ///          ///          public void Add(CategoryInfo category)          {              return;          }           ///          /// 修改分類(lèi)名稱(chēng)          ///          ///          ///          public void ChangeName(int id, string name)          {              return;          }           ///          /// 刪除分類(lèi)          ///          ///          public void Remove(int id)          {              return;          }           ///          /// 取得某個(gè)分類(lèi)詳細(xì)信息          ///          ///          ///          public CategoryInfo GetDetail(int id)          {              return new CategoryInfo              {                  ID = id,                  Name = "***通告",              };          }           ///          /// 取得所有分類(lèi)          ///          ///          public List GetAll()          {              List categories = new List();              for (int i = 1; i <= 5; i++)              {                  CategoryInfo category = new CategoryInfo                  {                      ID = i,                      Name="通告類(lèi)別"+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ā)布公告失敗了!原因?沒(méi)有原因!我是業(yè)務(wù)組件,我說(shuō)失敗就失??!");              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è)分類(lèi)下的所有公告          ///          ///          ///          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è)類(lèi)并沒(méi)有訪問(wèn)數(shù)據(jù)庫(kù),也沒(méi)有實(shí)現(xiàn)真正的業(yè)務(wù)邏輯,而不過(guò)是“捏造”了一些數(shù)據(jù)騙騙我們的表示層而已。

***,我們要建立一個(gè)生成業(yè)務(wù)邏輯模型的生成器,用來(lái)實(shí)現(xiàn)表示層和業(yè)務(wù)邏輯層的解耦。當(dāng)然,為了簡(jiǎn)化復(fù)雜度,這里沒(méi)有使用依賴(lài)注入機(jī)制。下面是我們生成器的代碼,這個(gè)類(lèi)是直接放在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ù)組件生成類(lèi),用于生成業(yè)務(wù)服務(wù)組件      ///      public sealed class ServiceBuilder      {          ///          /// 創(chuàng)建分類(lèi)服務(wù)組件          ///          /// 分類(lèi)服務(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)如下圖所示:

ASP.NET MVC的準(zhǔn)備工作有哪些

以上就是ASP.NET MVC的準(zhǔn)備工作有哪些,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI