我們正在準備爲學校創建一個以Web爲中心的平臺,並且我們計劃在Azure中託管它。但是,公立學校有一定的限制,阻止他們公開訪問互聯網,這意味着基於Azure的系統將無法在那裏工作。將Azure應用程序部署到Windows服務器
是否可以將相同的項目部署到本地服務器以及Azure雲而不碎片化我們的代碼庫?
我們正在準備爲學校創建一個以Web爲中心的平臺,並且我們計劃在Azure中託管它。但是,公立學校有一定的限制,阻止他們公開訪問互聯網,這意味着基於Azure的系統將無法在那裏工作。將Azure應用程序部署到Windows服務器
是否可以將相同的項目部署到本地服務器以及Azure雲而不碎片化我們的代碼庫?
這取決於您在解決方案中使用的Azure的哪些方面。如果您有一個manilla ASP.NET應用程序,並且不使用Azure依賴性(如AppFabric或任何Azure SDK(如blob存儲)),則可以將其部署到IIS的標準實例。
如果您使用的是Azure依賴關係,那麼我會盡力在您的代碼庫中分離這些依賴關係,按照慣例來抽象任何依賴關係。然後,您可以基於配置更改切換到不使用它們,並且在部署到Windows時還原爲本地或存根備份。這在運行CI /構建時也是一樣的。
這就是我想說的。如果Azure與您的應用程序高度集成,例如Table Storage是您的主要存儲機制,而不是SQL Azure,則可能會很困難。但如果你只是將它撒在幾個地方,不應該很難抽象出來。 – Craig 2012-01-09 05:55:26
這真的取決於你的應用程序在做什麼。 Azure部署項目(.ccproj項目)和相關的.cspkg軟件包不適用於Windows Server部署。
如果您的應用程序使用Windows Azure的特定功能(例如表存儲),那麼您將不得不以某種方式處理內部部署。如果您希望擁有一個同時在本地和Windows Azure上運行的代碼庫,則可以選擇一種方法使用依賴注入方法,該方法可以注入基於目標部署的功能的正確實現。
我有一個客戶端這個真實世界的場景。他們有客戶想要繼續使用他們自己的服務器上安裝的產品。與此同時,他們有更新的客戶希望將他們的應用程序作爲服務租用,並使用現收現付模式。
這是否意味着兩個代碼庫?否,但這意味着你必須願意在發展抽象和控制倒置方面多走幾公里。
一般而言,我會去這個問題,像這樣:
也...
別忘了玩得開心! ;〜)
很多很好的答案!最好的StackOverflow :) – 2012-01-10 01:23:22