簡體   English   中英

希望創建一個客戶端應用程序(WPF)來對遠程數據執行CRUD操作

[英]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暴露給互聯網的原始概念真的那么糟糕嗎?

是。 許多 警告 ,你根本不應該 (我想把那個句子中的每個單詞都鏈接到另一個來源,但你抓住了我的漂移)。

WCF絕對是這里的方式,因為它有很多選項保護它並且很容易從WPF內部消費

雖然公開數據庫並直接訪問它似乎是最簡單的解決方案,但這幾乎不是最好的解決方案。 您將不得不學習一些新技術,但從長遠來看,您將從中受益。

這個問題有很多不同的角度,但如果我理解你的要求......

解決遠程用戶問題:可以將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM