2012-02-23 84 views
2

嗨,我已經分配了一個任務,將現有的3層應用程序(表示層,業務層和數據層)轉換爲Windows Azure項目。使用Azure可以實現3層應用程序體系結構?

基本上我所做的就是創建Web角色並將表示層放入其中,然後我創建了2個獨立的類庫(分別爲業務層和數據層)項目,並使用引用將它們鏈接到表示層。

然而,當我在Azure中只有Web角色(表示層)部署的應用程序被上傳:/

My current 3 tier architecture that isnt working properly with azure

誰能告訴我,如果:

  1. 它甚至有可能使用天藍色的3層架構
  2. 如果我在參考項目時犯了錯誤
  3. 如果這不能b e實現了類似3層的架構。

謝謝!

回答

1

關於缺失的參考文獻: 對於您自己添加到項目中的每個參考,您都需要設置「copy local to true」。通過這種方式,所有這些引用將被打包,並在部署到雲時可用於您的項目。

關於演示和業務層: - 請記住,如果您在應用程序中具有Web和workrole角色,您將得到兩個單獨的VM運行您的應用程序,您可以談論的唯一方式是通過內部端點。在Windows Azure上運行應用程序時,請考慮爲什麼需要在兩個虛擬機上分離代碼(如有必要),因爲您確實可以在Web角色中擁有Web前端以及後臺處理代碼。工作角色是沒有預先配置的IIS,只有虛擬機。大多數非web應用程序使用Web前端使用Worker角色作爲他們的前端,因此您需要謹慎設計您的應用程序以選擇Web角色中的內容以及工作角色。

0

Azure只不過是Windows Server 2008機器的集合。您可以隨意部署解決方案。通常,webrole用於Web層(前端),邏輯的後端角色(後端)。您的數據庫或數據存儲是最後一個層次。

+0

所以你說的是我的表示層必須是Web角色,我的業務層必須是一個工作者角色,我的數據層(連接到SQL Azure)必須是另一個工作者角色,然後我連接他們一起通過refernces? – 2012-02-23 10:42:32

+0

您可以將它們與Azure服務總線/ WCF/Azure隊列或任何其他可以想到的通信通道相連接。 – Peter 2012-02-23 10:45:51

+0

它根本不是'獨立'的角色。 Web角色只是安裝了IIS的VM。你可以運行後臺進程,Windows服務......任何你在傳統的服務器上運行的任何東西,只需一個角色。如果您在Web項目中引用該數據層,則數據層DLL將與該站點一起部署。然後,您將連接字符串指向SQLAzure(或任何可用Web的SQL Server),然後您就可以參加比賽了。 – 2012-02-23 11:34:36

1

Azure可以做到這一點。問題在於你是邏輯的還是物理的。如果它們是邏輯的,只需將不同的程序集添加到一個Web項目中即可,非常簡單,只需將其安裝在Web角色中即可。如果它們是物理層,即您的業務層是WCF服務,那麼這也是可能的,並且如果您願意,它可以以不同的網絡或工作者角色託管,甚至可以以一個Web角色託管。

相關問題