您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關ASP.NET MVC的準備工作有哪些,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
配置環境
如果您還沒有安裝asp.net.mvc的話,請到這里下載安裝。
下載后,按提示安裝就可以了。
新建項目
安裝完asp.net.mvc后,在VS里新建一個項目,可以看到有一個“asp.net.mvc Web Application”的選項,選擇它,新建一個項目,并命名為“MVCDemo”。
建完項目后,可以看到默認情況下已經建立了很多文件夾,這里簡略說一下各個文件夾的作用。
Content——存放應用需要的一些資源文件,如圖片、CSS等。
Controllers——存放控制器類。
Models——存放業務模型組件。
Scripts——存放JavaScript腳本文件。
Views——存放視圖。
現在不了解一些概念沒關系,后續文章將慢慢解釋。
準備工作
新建完項目后,我們要做的準備工作就是建立Mock業務模型,這樣以后我們就直接使用這些“欺騙”式的業務模型進行業務處理,而將全部關注點放在asp.net.mvc的學習上。
首先在Models下新建三個文件夾,分別叫做Entities、Interfaces、MockModels,分別用來存放實體類、接口及Mock業務模型。
Entities下有兩個類:CategoryInfo和AnnounceInfo,分別是公告類別和公告的實體類。具體代碼如下:
CategoryInfo.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVCDemo.Models.Entities { /// /// 分類實體類 /// 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 { /// /// 公告實體類 /// public class AnnounceInfo { public int ID { get; set; } public string Title { get; set; } public string Content { get; set; } public int Category { get; set; } } }
接下來,我們將定義兩個接口,分別是公告類別服務和公告服務必須實現的接口。這兩個接口放在Interfaces下。
ICategoryService.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MVCDemo.Models.Entities; namespace MVCDemo.Models.Interfaces { /// /// 分類服務組件接口 /// public interface ICategoryService { /// /// 添加分類 /// /// void Add(CategoryInfo category); /// /// 修改分類名稱 /// /// /// void ChangeName(int id,string name); /// /// 刪除分類 /// /// void Remove(int id); /// /// 取得某個分類詳細信息 /// /// /// 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 { /// /// 公告服務組件接口 /// public interface IAnnounceService { /// /// 發布公告 /// /// void Release(AnnounceInfo announce); /// /// 修改公告信息 /// /// void Notify(AnnounceInfo announce); /// /// 刪除公告 /// /// void Remove(int id); /// /// 取得公告詳細內容 /// /// /// AnnounceInfo GetDetail(int id); /// /// 取得某個分類下的所有公告 /// /// /// List GetByCategory(CategoryInfo category); } }
然后,我們在MockModels下建立兩個Mock業務邏輯服務模型。注意它們要各自實現自己的接口。
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 { /// /// “欺騙”服務組件,用于模擬分類的業務服務 /// public class MockCategoryService : ICategoryService { /// /// 添加分類 /// /// public void Add(CategoryInfo category) { return; } /// /// 修改分類名稱 /// /// /// public void ChangeName(int id, string name) { return; } /// /// 刪除分類 /// /// public void Remove(int id) { return; } /// /// 取得某個分類詳細信息 /// /// /// 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 { /// /// “欺騙”服務組件,用于模擬公告的業務服務 /// public class MockAnnounceService : IAnnounceService { /// /// 發布公告 /// /// public void Release(AnnounceInfo announce) { throw new Exception("發布公告失敗了!原因?沒有原因!我是業務組件,我說失敗就失敗!"); return; } /// /// 修改公告信息 /// /// public void Notify(AnnounceInfo announce) { return; } /// /// 刪除公告 /// /// public void Remove(int id) { return; } /// /// 取得公告詳細內容 /// /// /// public AnnounceInfo GetDetail(int id) { return new AnnounceInfo { ID = id, Title = "第" + id + "則公告", Content = "全體同學明早九點集體做俯臥撐!", }; } /// /// 取得某個分類下的所有公告 /// /// /// 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 = "全體同學明早九點集體做俯臥撐!", }; announces.Add(announce); } return announces; } } }
可以看到,這兩個類并沒有訪問數據庫,也沒有實現真正的業務邏輯,而不過是“捏造”了一些數據騙騙我們的表示層而已。
***,我們要建立一個生成業務邏輯模型的生成器,用來實現表示層和業務邏輯層的解耦。當然,為了簡化復雜度,這里沒有使用依賴注入機制。下面是我們生成器的代碼,這個類是直接放在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 { /// /// 服務組件生成類,用于生成業務服務組件 /// public sealed class ServiceBuilder { /// /// 創建分類服務組件 /// /// 分類服務組件 public static ICategoryService BuildCategoryService() { return new MockCategoryService(); } /// /// 創建公告服務組件 /// /// 公告服務組件 public static IAnnounceService BuildAnnounceService() { return new MockAnnounceService(); } } }
OK,到這里,我們的準備工作就做完了。完成這些后,系統的目錄結構如下圖所示:
以上就是ASP.NET MVC的準備工作有哪些,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。