3

我被交给了一个项目来开发一个我非常兴奋的应用程序。问题是我不完全确定如何实现一项特定要求。

该应用程序需要是客户端应用程序(所以我使用 WPF 来开发它)并且需要对远程服务器执行 CRUD 操作(因此其他人也可以访问此数据)。我坚持的主要障碍是,这个客户端应用程序不仅会从特定网络运行,而且核心用户之一也将在家中使用它。我不确定如何安全地将数据公开到互联网上。

我最初只使用 LINQ 2 SQL 开发应用程序,并想象我只需将端口转发到运行 SQL Server 的专用机器,但这可能是一个可怕的想法。做一些研究,看起来我应该使用 WCF 创建一个服务,然后在机器上运行它——并让 WPF 客户端应用程序使用它。

这感觉在这里有点额外的工作,特别是因为我正在使用这个项目来学习WPF。我什至还没有研究过WCF。我还有其他选择吗?我最初将 SQL Server 暴露在互联网上的想法真的那么糟糕吗?

谢谢!

4

4 回答 4

1

首先,我同意你应该避免将你的数据库暴露在互联网上......这就像把一个婴儿独自留在树林里过夜(有一些生物为了运动和利润而四处游荡)。

不过,您确实有一些选择。一方面,如果公司有网络管理员,您可能会考虑设置 VPN。这样,员工就可以在家中的防火墙内直接连接到 SQL Server。

如果做不到这一点,我认为带有 Linq-to-SQL 的 WCF 并不是一个糟糕的选择。我用这两个构建了一个应用程序,它们一起工作得很好——我将 Linq-to-SQL 表实体本身作为 WCF 数据契约。我会推荐的一件事是为您的 CRUD 操作选择一个简单的设计模式,并尽可能地坚持它——带有 Load、Find、InsertOrUpdate 和 Save 的存储库模式。

于 2012-04-25T02:20:45.397 回答
1

我最初只是将 SQL Server 暴露在互联网上的概念真的那么糟糕吗?

是的。有很多 警告,你根本不应该(我想把那个句子中的每个单词都链接到另一个来源,但你明白我的意思)。

WCF 绝对是要走的路,因为它有很多保护它的选项,并且很容易在 WPF 中使用

虽然公开数据库并直接访问它似乎是最简单的解决方案,但这几乎不是最好的解决方案。您将不得不学习一些新技术,但从长远来看,您会从中受益。

于 2012-04-25T10:04:02.333 回答
0

这个问题有很多不同的角度,但如果我理解你在问什么......

要解决您的远程用户问题:可以安全地将 SQL Server 配置为向 Internet 公开,以便软件即服务应用程序连接到该应用程序。或者,您可以让远程用户 VPN 进入 SQL 服务器所在的网络。

对于开发方法,我建议使用 MVVM。它与 WPF 配合得很好,并且允许您首先使用自己的自定义数据层来学习 WPF。然后,当您感到舒适时,您可以重构以使用 WCF 并交付高质量的应用程序。

于 2012-04-25T02:16:13.007 回答
0

为什么不使用 WCF 数据服务 - http://msdn.microsoft.com/en-us/library/cc668772(v=vs.103).aspx。如果您需要它是安全的,那么请参阅此http://msdn.microsoft.com/en-us/library/dd728284.aspx

于 2012-04-25T09:56:12.597 回答