對於託管移動應用程序連接的服務器組件,我認爲最簡單的方法就是託管ASP.NET Web應用程序的Web角色。 Web應用程序可用於服務以及Web前端(HTML)網站。
ASP.NET MVC and Web API使設置Web服務變得非常簡單,並且使用非HTML數據格式(如JSON或XML)很容易。您的移動應用程序可以使用REST JSON API與Web應用程序進行通信,或者您可以使用XML/SOAP(如果需要)或任何您想要的格式。 JSON作爲傳輸格式的REST API可能是目前最流行的。考慮一個Web應用程序的一種方法是,它只是一種發送和接收來自客戶端的數據的方式。如果客戶端是網絡瀏覽器,您可以將內容作爲HTML頁面提供,或者如果您的客戶端是移動應用程序,則可以將數據作爲JSON提供,然後讓客戶端根據需要顯示它。基本上,您的網絡應用程序既可以是您的網站(HTML),也可以是適用於非網絡瀏覽器客戶端的「API」。
您可以將工作者角色看作有點像Windows服務。它們主要用於執行後端處理以及類似的事情。工作者角色可能提供某種能力來託管面向公衆的API,但您必須自己管理連接,消息管道,回收以及所有這些;而一個Web角色可能會爲您提供一個Web服務器(IIS)來管理連接等。如果您要引入諸如消息隊列之類的東西,將面向公衆的API作爲Web角色是有意義的,消息處理組件是工作者角色。 Web應用程序可以通過REST JSON API從客戶端接收消息,然後將消息傳遞給隊列,工作人員角色將其選中。如果您有重要的服務器端業務邏輯,可以在後臺處理而不影響客戶端,則引入隊列和輔助角色是很有意義的。
這是一個很好的回答安迪,非常感謝。 –
很好的答案,但其中的一部分並不完全正確。工作者角色是Windows Server VM,就像Web角色一樣,只是沒有啓用IIS。工作者角色不應被認爲是Windows服務:它是一個虛擬機。任何可以在Web角色中運行的東西,都可以在工作者角色中運行。而且......不提前閱讀,我看到@smarx已經指出了這一點。所以不理我。 –
是的,我知道我所說的在技術上不是100%準確的,但我只是想用一個比喻來幫助理解何時使用工作者角色與網絡角色。網頁== IIS,工作人員==沒有IIS。 –