2013-04-24 20 views
0

我有需要我用n層的方法來建立一個Web應用程序的項目。但是,由於我做的大部分項目都是使用1層的網站,因此我對這個架構很陌生。ASP.NET的nTier Architecutre

我決定建立一個三級體系結構,表示層,業務層&數據訪問層 ,最後是數據層。

我想知道,因爲這些層在不同的服務器上,他們在想如何溝通?使用Web服務有助於解決這個問題嗎?

是否有一個地方,這是完全教導任何簡單的教程或教訓?從構建應用程序到在單獨的服務器機器上部署。

+0

您可能從http://tinyurl.com/d99w8rl獲得一些靈感。例子是C#,但更多的是可能對你有用的概念。 – 2013-04-24 11:37:36

回答

0

邏輯使用如下: 表示層 - >通過創建Asp.Net項目
業務邏輯&數據訪問層 - >通過創建Web服務項目。
SQL數據庫 - >通過在你安裝SQL的機器上創建一個新的數據庫。

一旦你做到:

  1. 設計你的SQL Studio中的數據庫表。

  2. 在BL & DAL Project使用實體框架連接到您的SQL DB,這將創建一個隨時可用的方案,並且實際上會自動生成一個DAL,幷包含您需要的所有業務對象。

  3. 在BL創建應實現的所有方法的方法簽名(定義)。

  4. 在表示層添加服務引用到你的BL & DAL Web服務。

這需要時間,您需要閱讀大量有關實體框架和Web服務以及如何將這些內容用於您的需求。

+0

嗨G.Y!目前我創建了一個示例項目來模擬nTier體系結構。我有一個包含3個項目的解決方案,一個BLL,一個PL和一個WebService項目。因此,PL項目/層中的aspx.vb文件將調用WebService函數,該函數將調用然後調用BLL項目/層中的函數。我正在考慮將PL項目分離到一臺服務器機器,將BLL和Webservice項目分離到另一臺服務器機器。爲了使PL層能夠調用Web服務功能,我需要配置什麼嗎? – user2315229 2013-04-25 06:01:54

0

如果它們是在不同的機器上,然後使用Microsoft技術的常見的情況是:

  1. User Interface通過C#VB.NET 實現爲一堆(UI)的ASP.NET
  2. Business Layer(BLL)實施DLLs
  3. Data Access Layer(DAL)作爲關係數據庫,即SQL 數據庫與它的表,存儲過程...加上類(一些 DLL)來訪問數據庫。最佳做法是使用ORMsEntity Framework來處理Data Access LayerData Layer

你在常見的場景層將傳達給對方這樣說:

  • UI通常會使用Web ServicesBLL通信。
  • 您的BLL將通信DAL通常使用Web Services
  • 您的DAL將與Database通信,通常使用TCP/IP

雖然n-Tier設計是最好的實踐中,這並不意味着每個層應不同的機器上被託管(考慮它超過物理的邏輯分離)。例如,如果您將所有3層保留在同一臺計算機上,並將數據庫託管在其他服務器上,那麼您不需要爲BLLDAL實施網絡服務,這會降低複雜性和實現時間以及其他優點,即更高的通信速度和安全性。