2009-11-23 18 views
2

該公司有一個處於惡劣條件下的PHP應用程序。他們希望開始制定計劃來重新設計它,但是他們需要以當前的設計運行,因爲各種原因,我不會進入這裏。用於數據訪問的PHP + .Net Web服務 - 糟糕的設計選擇?

他們希望對當前的設計進行一些增強,但這樣做的目的是讓這些增強功能可以在它們出現時由.NET版本部分重用。這樣做的一個想法是使應用程序的數據和業務邏輯部分駐留爲一個將被PHP端使用的.NET web服務。

我的問題是這會導致PHP中的問題? PHP能否快速有效地使用.NET Web服務?或者這只是一個糟糕的設計決定?

回答

2

爲了使PHP快速使用.NET Web服務,您需要使用PHP5本機SOAP客戶端API,從而使緩存可以在本地存儲WSDL。如果你使用PHP4,你可以使用Nusoap,但它不像原生類那麼快。

0

網絡服務的主要優勢在於它的互操作性,或被其他語言獨立使用的能力。 PHP應該有一些東西可以讓它消費Web服務,這樣就可以實現;不會太大。缺點是可能會稍微慢一些,但這是您必須測試才能看到對整體解決方案有多大影響的問題。一般來說,大多數解決方案本質上並非對錯,你必須測試它們對你的特定情況的有用性。

0

只要遠離基於WSHTTP的Web服務並使用BASIC HTTP,PHP就可以使用.NET Web服務。爲了安全起見,您可以使用SSL保護BASIC HTTP Web服務。當你在Visual Studio 2008中,並且你有一個ASP.NET(可以是MVC或不是,無所謂)項目打開時,右鍵單擊該項目並選擇「添加新項目」。您會看到Web下的一些東西,名爲Web Service。這將創建一個.asmx文件,您可以找到有關如何創建這些基本Web服務的教程。

另一種選擇是使用Windows Communication Foundation,它有很多有用的類,但它可能更復雜。 WCF服務的默認配置是WSHTTP,但也可以使用WCF創建BASIC HTTP Web服務。

4

我的問題是這會導致PHP的問題 ? PHP能否快速高效地使用.NET服務? 或者這只是一個糟糕的設計決定?

我在這裏有兩個想法。首先直接回答你的問題。我不相信這是一個糟糕的設計,如果.NET服務是書面語言不可知的,那麼應該沒什麼問題。

第二個想法是一個「希望」。我希望選擇使用.NET框架並不是因爲寫得不好的PHP。在我看來,由於執行不力,語言的改變是設計失敗的地方。如果公司選擇重新編寫PHP,將會有更多的努力轉化爲新的語言,最終的結果將是一個內置傳統支持的統一語言基礎。但後來我是一個PHP粉絲。

2

Web服務的重點在於各種開發平臺之間的互操作性。例如twitter是一個基於Rails的網站,它的服務通過其RESTful web-api以.NET,java,python等編寫的各種桌面和網絡應用程序消耗。就我所知,Facebook是基於PHP和C++的,並且有多少webapps通過api來使用它的服務。所以我不認爲這是一個壞主意。問題是你如何實現這個web服務。意思是,你想使用它一次,然後擺脫它或長期起訴。如果第二個選項是真的 - 確保你設計你的web服務API。另外PHP可以輕鬆使用XML-RPC和SOAP。我使用了兩個(由基於Perl的服務提供),沒有任何問題或者對性能影響很大。

我認爲使用.NET從PHP遷移不是最明智的選擇 - 但這是有點主觀的觀點。根據我的經驗,由於野獸的性質,它幾乎總是以矯枉過正,設計錯誤,維護費用高昂和更多的車輛而告終。

P.S .: 我不是一個PHP迷,但我不相信爲了轉換而轉換到.NET。 .NET基礎架構的維護成本也更高,而且需要更多的勞動力。

0

根本沒有什麼問題,只是調查你的選擇。

網絡服務可以輸出各種格式的數據。 SOAP/XML是默認的,但沒有理由不能做YML,Xml序列化對象或我目前最喜歡的JSON(這使得從瀏覽器調用它非常容易)。

看看WCF服務,我相信他們應該取代Web服務格式。

最後,如果您正在尋找最佳實踐,請查看S ervice Oriented Architecture。它是一個龐大而多變的領域,這正是他們所談論的事情。

相關問題