簡體   English   中英

ASP.NET MVC 和 Web API 共享類庫項目

[英]ASP.NET MVC and Web API sharing Class Library Project

我將在 .NET 中構建以下應用程序,我對正確的架構有幾個問題:

  1. 控制台應用程序:讀取本地文件並將數據更新到 Azure 中的 SQL 數據庫
  2. ASP.NET MVC:儀表板站點與上傳到 SQL 數據庫的數據進行交互
  3. Web API:處理業務邏輯和數據訪問。

我首先想到使用 Web API 作為提供數據和業務邏輯的核心。 但是,跨項目需要一個類庫,以便所有項目在業務對象方面“使用相同的語言”。 示例:我在控制台應用程序中有一個 SMS 對象,它將向 Web API 提交數據。 此 Web API 也應具有相同的 SMS 對象。 接下來,ASP.NET 將顯示 SMS 數據,因此也應該訪問相同的對象。 但由於這是一個 MVC 應用程序,它將擁有自己的數據對象。

什么是正確的方法? Visual Studio 中的解決方案樹應該如何?

謝謝你的幫助。

這並不意味着因為它是一個MVC應用程序它需要有自己的數據對象。我過去所做的是創建一個類庫並將對MVC相關DLL的引用添加到這個項目中。然后我會裝飾具有所有必需 MVC 屬性的對象,最后我將向我的應用程序中需要它們的所有項目添加對此類庫的引用,如業務層、Web api 層和 MVC(UI) 層。

在您的場景中,它可能是這樣的:

通用對象庫

不要使用MVC,做一個WebApi服務,選擇react或angular之類的Web UI框架。 MVC 不再值得使用。

這樣,每個人都可以連接到 WebAPI、您的控制台應用程序、您的網站/儀表板,甚至是未來的移動應用程序。

如果您曾經將數據庫從 SQL 服務器更改為 txt 文件 (xD),那么您的控制台應用程序也必須更改。 僅使用一個 API 與您的數據庫交互將有效地分離您的所有層。

但是,跨項目需要一個類庫,以便所有項目

是的,但您可以使用共享庫甚至共享項目來實現這一點。 這只是一堆課程......

您的所有邏輯都應該在 Web API 中。 包括控制台應用程序部分。 它應該只讀取數據,然后連接到 API。

因此,在這種情況下,您不需要在所有項目中都使用相同的模型,因為 Web API 業務模型的模型可能比與之交互的模型更復雜。

此外,將儀表板文件提供給客戶端(瀏覽器)將非常容易,因為只需要分派 HTML、js 和 CSS 文件。 任何服務器都可以,而且它不會綁定到 .Net 或您喜歡的任何服務器端代碼。

在此處輸入圖片說明

暫無
暫無

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

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