2012-03-21 23 views
2

在過去的幾周裏,我一直在嘗試自我介紹一些關於silverlight的知識,以及它是如何工作的,我在我的應用程序開發中想要連接到我的Web服務器的MySQL數據庫。我的網絡服務器能夠運行ASP.NET頁面,但是Apache,並且本地運行PHP(這是我更熟悉的)。它有一個MySQL數據庫引擎,我非常精通使用PHP和MySQL的典型動態頁面創建。這些如何組合在一起:Silverlight,Apache,PHP,MySQL,Web服務?

我不熟悉什麼是這些「Web服務」不斷有人提我每次找到關於「你怎麼Silverlight的連接到數據庫?」這個問題的答案時......

所以我的基本問題實際上就是數據FLOW之一,並且所有的東西都適合這個難題,以及如何讓這一切都在這個特定的配置中工作。我見過的大多數答案都是用IIS代替Apache,ASP.NET代替PHP,MS SQL Server代替MySQL。

此外,答案傾向於開始使用縮寫和首字母縮略詞,而沒有真正解釋它們代表什麼。

例如:WCF和RIA服務是什麼,它們如何適應整個難題?

我想我只是在MACRO層面上尋找數據流結構的自頂而下的概述,而不是微觀(代碼)層面。

(編輯爲添加:) 另外:我已經完成了過去使用MySQLConnector.NET遠程從我的Web服務器的數據庫中提取的vb.net應用程序,但我知道客戶端機器必須列入白名單作爲遠程機器,這意味着我必須打開我的MYSQL服務器,並使訪問掩碼基本上爲%。%。%。%,以便任何客戶端連接...並且這是不受歡迎的...所以如果我理解正確的東西,Web服務運行在Web服務器上,客戶端向它發送請求,Web服務充當中介,從數據庫中獲取數據(可能是某種「存儲過程」看起來相似? ),並將數據傳遞給客戶端......這也意味着所有的數據庫訪問憑據都在服務器上,而不是在(可能可以被破解的)客戶端內部...

我有權利嗎?

此外,在回答的時候,我需要知道在哪裏訪問Web服務是...在Silverlight應用程序項目代碼,或Silverlight的WEB項目代碼...

+0

我發現這個... http://www.nikhilk.net/NET-RIA-Services-Vision-Architecture.aspx – 2012-03-21 15:39:13

+1

+1:爲什麼downvote沒有評論?他顯然花時間在自己的研究和工作上,說他在哪裏,並提出具體問題。如果你不喜歡他的問題,讓他知道爲什麼... – Windle 2012-03-21 15:39:18

+0

@Windle嘿,謝謝。 :)我只是試圖從概念上感受這一切,我經常會找到答案,其中所討論的技術不匹配,或者人們只是假設每個人都知道XYZ和ABC的含義,以及那些特定的位置拼圖碎片適合這個難題......我想如果我正在努力,其他人可能也會如此。 – 2012-03-21 15:42:53

回答

3

我發現這個奇妙的教程這有助於解釋它... http://www.designersilverlight.com/2010/05/23/php-mysql-and-silverlight-the-complete-tutorial-part-1/

這裏是我如何理解這一切工作。

過程有3個「層」:應用程序,Web服務器和數據庫。

應用程序調用Web服務器來執行腳本文件(如正常的PHP腳本)。有腳本文件可以有正常的URL變量傳遞給它(如script.php?foo = bar,所以$ foo在腳本中定義爲「bar」)...所以你可以使用這些URL編碼的變量/值對來調整您的腳本結果與您通常使用網頁一樣。

我想你會有每個類型的數據庫查詢一個腳本,用var/value對來調整你的結果。因此,在您的Web服務器上,您最終將獲得大量的PHP腳本,就像您通常使用具有不同頁面的網站一樣,並將變量傳遞給這些腳本以自定義結果。

例如,對於用戶來說,你可以有一個get_users.php腳本,將返回所有用戶...

但get_users.php?的loggedIn =真會得到被記錄在當前 get_users所有用戶。 php?loggedin = true & ingame = true將獲得所有已登錄並在遊戲中的用戶...您只需相應地編寫邏輯和生成的SQL查詢。

所有結果都使用XML或JSON(Javascript Open Notation:請參閱What is JSON and why would I use it?)進行編碼以傳輸到應用程序...實際上,應用程序正在讀取JSON編碼內容的回顯結果。

如果您要在網絡瀏覽器中打開這些腳本,您將只能看到JSON數據的文本打印輸出...沒有網頁...只是應用程序讀取的數據,然後解碼進入對象。

所以實際上,silverlight應用程序正在讀取在您的Web服務器上執行的PHP腳本的文本輸出,並解釋輸出。

^^^^^這是對我問題的簡短回答。 :)

說不過去,整個術語「網絡服務」的使用都是誤導性的,真正導致我誤入歧途的是什麼。我以爲這是某種服務或應用程序,您必須安裝在您的Web服務器上,就像PHPMyAdmin或其他軟件一樣。

+1

很高興你找到了你的答案!確保您對「Web服務」理念有良好把握的一件事是:從更一般的意義上說,Web服務可以用任何東西(不僅僅是PHP)來實現。例如,假設您在網上找到您想要使用的Web服務。只要他們爲如何調用他們的方法提供了一個API(例如SOAP Web服務的WSDL),不管他們是否用Java,C#實現,只要你返回XML或JSON。 – Windle 2012-03-30 16:20:52