iT邦幫忙

2022 iThome 鐵人賽

DAY 8
1
Software Development

ASP.NET Core 30 天旅程系列 第 8

[Day08]- .NET Core MVC 架構規劃

  • 分享至 

  • xImage
  •  
  1. 建立一個 MVC 專案
    https://ithelp.ithome.com.tw/upload/images/20220923/201522006EOBz8vFBe.png
  2. Visual Studio 會自動產生專案範本
    https://ithelp.ithome.com.tw/upload/images/20220923/201522006XC9EujmpA.png

先來簡單介紹一下目前專案的架構

  • wwwroot:存放靜態檔案。
  • Controllers:控制器。
  • Models:就是放Model的地方。(XDDD)
  • Views:頁面。
  • appsettings.json:設定檔。
  • Dockfile:建構docker images的指令檔。
  • Program.cs:程式啟動的入口。

以下是我的架構規劃
https://ithelp.ithome.com.tw/upload/images/20220924/20152200LBb5cq3Ib5.png

分層的目的主要是要達到

高內聚,低耦合

  • 高內聚 : 分類分得越精準越好。
  • 低耦合 : 建立的依賴越少越好。

BusinessLogic 業務邏輯層

NetCoreDemo.Service 資料夾屬 業務邏輯層,主要存放運算邏輯。

  • Interface:抽象介面,檔案用 I 開頭,例:IUserService.cs。
  • Implement:實作繼承的介面,檔案用 Service 結尾,例:UserService.cs。

DataAccess 資料存取層

NetCoreDemo.Repository 資料夾屬 資料存取層,主要負責對資料庫的操作。

  • Interface:抽象介面,檔案用 I 開頭,例:ISysMenuRepository.cs。
  • Implement:實作繼承的介面,檔案用 Repository 結尾,例:SysMenuRepository.cs。

Common 共用層

這個資料夾的規劃放的是一些普遍的類別

  • NetCoreDemo.Data DbContext 是 EF Core 跟資料庫溝通的主要類別,透過繼承 DbContext 可以定義跟資料庫溝通的行為。 之後會跟大家介紹好用的 Migration

  • NetCoreDemo.Model 又分為ConstantsDTOsEntitiesEnumViewModels,將 Model 分比較細避免多處都使用同一個 Model ,之後要變動容易互相影響。

  • NetCoreDemo.Utility是拿來放通用類別,例如共用的模組、延伸方法。


下一篇我們來簡單寫個範例吧,大家明天見!


上一篇
[Day07]-控制反轉 (IoC)&依賴注入(DI)
下一篇
[Day09]- .NET Core MVC 架構規劃(範例篇)
系列文
ASP.NET Core 30 天旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言