[英]Looking to create a Client-Side Application (WPF) to perform CRUD operations on remote data
我正在接受一個項目來開發一個我非常興奮的應用程序。 問題是我不完全確定如何實現一個特定的要求。
應用程序需要是客戶端應用程序(因此我使用WPF來開發它)並且需要對遠程服務器執行CRUD操作(因此其他人也可以訪問此數據)。 我堅持的主要障礙是這個客戶端應用程序不僅將從特定網絡運行,而且其中一個核心用戶也將在家中使用它。 我不確定如何安全地將數據暴露給互聯網。
我最初使用LINQ 2 SQL開發應用程序,想象我只是將端口轉發到運行SQL Server的專用機器,但這可能是一個可怕的想法。 做一些研究,看起來我應該使用WCF創建一個服務,然后在一台機器上運行它 - 並讓WPF客戶端應用程序使用它。
這感覺就像在這里做了一些額外的工作,特別是因為我正在使用這個項目來學習 WPF。 我還沒有考慮過 WCF。 我有另一種選擇嗎? 我最初將SQL Server暴露給互聯網的原始概念真的那么糟糕嗎?
謝謝!
首先,我同意你應該避免將你的數據庫暴露在互聯網上......這就像是讓一個孩子一夜之間獨自留在樹林里(有拯救生物和利潤的生物)。
你確實有幾個選擇。 首先,如果公司有網絡管理員,您可以考慮設置VPN。 這樣,員工可以在家中,防火牆內直接連接到SQL Server。
如果做不到這一點,我認為使用Linq-to-SQL的WCF並不是一個糟糕的選擇。 我用這兩個構建了一個應用程序,它們可以很好地協同工作 - 我將Linq-to-SQL表實體本身作為WCF數據協定。 我建議的一件事是為您的CRUD操作選擇一個簡單的設計模式,並盡可能地堅持它 - 使用Load,Find,InsertOrUpdate和Save的存儲庫模式。
這個問題有很多不同的角度,但如果我理解你的要求......
解決遠程用戶問題:可以將SQL Server安全地配置為暴露給Internet,以便將軟件作為要連接的服務應用程序。 或者您可以讓遠程用戶VPN進入SQL服務器所在的網絡。
對於開發方法,我建議使用MVVM。 它適用於WPF,可以讓您首先使用自己的自定義數據層學習WPF。 然后,當您感到舒服時,您可以重構使用WCF並提供高質量的應用程序。
為什么不使用WCF數據服務 - http://msdn.microsoft.com/en-us/library/cc668772(v=vs.103).aspx 。 如果您需要它是安全的,請參閱此http://msdn.microsoft.com/en-us/library/dd728284.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.