簡體   English   中英

不使用實體框架的MVC應用程序架構

[英]Architecture of MVC application without using entity framework

我是MVC應用程序開發的新手。我願意使用MVC開發一個新項目,對於適合MVC應用程序的體系結構,我看了很多。 閱讀了許多文章和博客后,我開始知道可以使用存儲庫模式。
根據我在開始實際項目之前的理解,我創建了一個如下所述的虛擬項目結構[不使用EDMX文件,項目中的實體框架,定義的自定義DAL]

我的虛擬應用程序的名稱為Repository。我以國家,州和城市的關系為例來開發虛擬應用程序:

Repository_DAL_V1 類庫該庫具有以下類:
SQLHelper.cs:此類具有為諸如ExecutenonQuery等查詢執行的方法。

Repository_DTO_V1 類庫該庫具有以下類:
CountryDTO.cs:此類從CountryModel.cs繼承為[CountryDTO:CountryModel]。它將用於在應用程序的所有層之間移動數據。如果有任何應用於業務的屬性,則將創建此屬性在DTO中未在模型中。
CountryDTOMapper.cs:用於將來自數據庫的數據以DataTable的形式映射到DTO對象的集合中。

Repository_Implementation Web mvc項目這是UI層。

Repository_IRepositories_V1 類庫該庫具有以下類:
ICountryRepository.cs:這是一個接口,具有已聲明的功能,例如SaveCountry()等。

Repository_Models 類庫該庫具有以下類:
CountryModel.cs:此類完全具有數據庫中表的所有列的屬性。

Repository_Repositories_V1 類庫該庫具有以下類:
CountryRepository.cs:這是一個存儲庫類,具有已定義的功能,例如SaveCountry()等。

Repository_ViewModel_V1 類庫該庫具有以下類:
CountryViewModel.cs:這將為屏幕上的“國家/地區視圖”構建。

以上項目參考資料:

Repository_DTO_V1具有Repository_Models的引用。
Repository_IRepositories_V1具有Repository_DTO_V1,Repository_Models的引用。
Repository_Repositories_V1引用了Repository_IRepositories_V1,Repository_DAL_V1,Repository_DTO_V1,Repository_Models。
Repository_ViewModel_V1引用了Repository_Repositories_V1,Repository_IRepositories_V1,Repository_DTO_V1,Repository_Models。

我需要所有人的指導,以指導我朝正確的方向發展。

我不知道為什么不使用EF與您逐層完成的任何其他項目有什么不同。 如果您對多層結構感到滿意,那么您的事物結構就沒有錯。 我不知道您的項目是關於什么的,但是您應該考慮使用更好的命名方式,例如項目名稱(存儲庫),而“實現”則更好地命名為Web。

編輯
我建議您將Entity Framework 5與Code First一起使用,也就是說,是否要使用ORM?

我當然希望您能錯過EF。

正如@ Dejan.S所說,您需要的體系結構取決於項目的大小。

我將從簡單開始,也許有3個項目:

  • 一個網絡項目。
  • 控制器用來訪問模型和業務邏輯的服務項目。
  • 具有模型和數據訪問權限的領域項目。

如果您需要分離事物(例如DAL),則以后仍然可以這樣做。

另外,請查看ServiceStack的MVC Power Pack 您可以立即獲得出色的微型ORM,IoC,緩存,快速序列化程序等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM