2010-11-28 40 views
0

道歉新手web服務的問題 -設計Web服務調用讀取數據庫/寫

我試圖創建具有一個方法列表進行讀取Web服務/寫入數據庫。一個示例函數將形式 -

CreateNewEmployee(string username, string employeeid, string deptname) 

我創建了一個web服務在.net(asmx)具有上述webmethod。在那裏,我打開到數據庫的連接,並插入數據庫,然後關閉連接。這是設計Web服務調用的正確方法嗎?

我應該改爲傳遞一個對象而不是多個參數嗎?

嘗試創建將數據寫入數據庫的web服務時,最佳實踐的任何指針?

要添加一些更多的信息

  • 我們希望有Web服務,因爲它可能由組織(Web和桌面)中的許多不同的應用程序重複使用。
    我們還計劃創建一個用戶可以使用這些Web服務創建數據混搭的環境。

感謝, 內特

+0

請注意,除非您別無選擇,否則不應使用ASMX Web服務。他們已被WCF取代。 – 2010-11-29 21:06:32

回答

0

是 - 傳遞對象VS大參數集。另外,如果您在.Net環境中,是否考慮過WCF?如果你看看ADO.Net數據服務(以前稱爲Astoria)是如何工作的,它將會使你朝着正確的方向發展。

+0

感謝鮑勃。將考慮WCF。 – user275157 2010-11-28 16:45:14

0

從獲勝的答案引用到this SO question

Web服務是數據訪問的絕對可怕的選擇。 這幾乎沒有任何好處,這是一大筆開銷和複雜性。

您可以閱讀其餘的討論。

編輯:一種非常好的方法,以具有可以由多個應用程序共享一個通用數據訪問功能 - 網絡,桌面,服務 - 是創建編譯爲一個DLL一個Visual Studio項目。每個想要使用數據訪問功能的解決方案都會引用DLL,該DLL可以部署到GAC或其他某個中心位置,或者只是添加到項目的bin文件夾中。或者,爲了能夠逐步完成數據訪問代碼,可以將數據訪問項目添加到解決方案中。

這是在大型企業中很常見的做法,許多後臺辦公應用程序共享通用功能。它不僅用於數據訪問,還用於其他服務,如日誌記錄和認證/授權。一些分部創建了一組這些DLL,它們被稱爲它們的「框架」。它確保每個應用程序都具有相同的功能和相同的業務邏輯,並且有一個修改版本可以影響所有應用程序。這與使用Web服務相似,但它避免了Web服務的開銷和性能。

+0

編輯帖子以添加更多信息。我們將有相當多的用戶試圖重新使用這些服務。有什麼建議麼? – user275157 2010-11-28 16:44:48