2013-05-12 177 views
0

我打算爲小型&中型企業構建生產應用程序。這是一個Intranet應用程序,最多有15到30個併發用戶。所提出的架構是:Intranet應用程序的體系結構

  • 客戶:Firefox瀏覽器
  • UI:HTML,JavaScript中,CSS
  • 通訊通過:jQuery的AJAX
  • 中間層:窗口服務託管WCF服務(使用的WebHttpBinding)
  • 數據庫:SQLServer 2012易捷版

在此體系結構中,缺少的部分是將服務於靜態HTML頁面。我不希望主要與IIS去的,因爲以下原因中:

  • 保持部署下來的成本
  • 大部分工作是在窗口服務正在做託管WCF服務

由於大多數中間層工作是由託管WCF服務的Window Service完成的,而且我的UI是HTML,JavaScript & CSS,我們可以不使用Web服務器(如IIS或其他支持ASP.NET技術的WebServers),並使用輕量級Web服務器只有像lighttpd,nginx等靜態HTML頁面?

這些輕量級Web服務器是否像lighttpd,nginx適合在生產環境中託管。

可能存在一個AJAX跨域請求作爲託管WCF服務的Window Service的問題,輕量級WebServer可能在不同的端口上運行,但在相同的IP地址上運行。我們可以通過打開它來跨越域請求,因爲它是一個Intranet應用程序。

這個架構背後的想法之一是,我想嘗試在其他規模較大的項目中重複使用它。

請讓我知道,如果這是可能的和相關的利弊&缺點這種方法。我也接受任何其他建議,這些建議將幫助我改進此架構。

+0

我同意安德斯。 Yuvi如果你在WCF上託管這個,這對未來的重用有什麼幫助?無論您是否使用iis,您仍然會被綁定到windows(或至少.net)。我沒有得到你想要做的事 - 這只是一個Web應用程序,而且基於IIS的MVC恰恰是這項工作的正確工具,除非你想使用node.js或其他東西。 – 2013-05-13 13:36:13

+0

休,在任何n層應用程序中,您都需要某種中間層。這可以是普通的Windows服務,託管WCF的Windows服務或IIS等Web服務器。 上面的例子只是一個起點。我正在嘗試開發一種可幫助我重新用於大型項目的架構。我想要消除IIS的原因之一是成本。如果我有我自己的服務,則不涉及成本。 – 2013-05-14 04:30:59

+0

但是你想避免什麼成本?你在談論Windows服務器授權費用嗎? – 2013-05-14 08:46:26

回答

1

我認爲你正在爲這樣一個小的網站過度設計它。如果你無論如何要運行WCF服務,使用IIS應該不成問題。

我建議要麼使用ASP.NET MVC,並在服務器上做HTML渲染,或與Web API結合使用客戶端庫(如angular.js)。

+0

安德斯,感謝您的輸入,但我想避免完全支持ASP.NET技術的IIS或任何WebServer。這裏的想法是使用託管WCF服務的Windows服務來完成中間層工作。所以現在的問題是我如何服務靜態HTML ...所以爲此我可以使用lighttpd,nginx這些輕量級的Web服務器。 – 2013-05-12 19:09:47

+1

爲什麼你想避免IIS?爲什麼你願意在這種情況下使用WCF? WCF不完全是輕量級的。 – 2013-05-12 19:10:52

+0

嗯..這是一個有效的點。對於這個例子,這個架構可能是過度設計。長遠的想法是建立一個通用的架構,我可以在未來的項目中重複使用。所以這就是我希望Windows Service/WCF能夠完成所有工作並獲得輕量級Web服務器來爲HTML提供服務的原因。 – 2013-05-12 19:17:43