Windows和Web应用程序与DB的最佳策略

时间:2012-06-04 14:58:10

标签: .net sql-server

情况如下。 我为客户开发了一个WinForm应用程序。我们使用了安装在本地域上的一个服务器上的SQL Server数据库。 到目前为止一切正常。 现在,客户希望为应用程序的一部分添加基于Web的应用程序,并且他们希望通过平板设备从Internet访问该部分。远程用户和本地用户都需要同时查看相同的数据。 我们现在面临连接到本地SQL Server的挑战。

如果请求只能远程使用应用程序,那么简单的VPN连接就可以完成。 但是因为远程员工只使用平板电脑设备,看起来我们只能选择构建受限制的公共Web应用程序。 我很想知道数据访问部分的最佳方法是什么? 我正在考虑以下事项:

  • 使用SQL Azure并将本地数据库移动到SQL Azure数据库。这样,Winform和Web应用程序可以连接到同一个数据库。不太确定客户是否愿意接受他的数据库将在远程Microsoft服务器上......!
  • 另一种选择可能是将本地SQL Server打开到Internet并允许远程连接。对我来说,这是我根据安全问题考虑的最后一个选项。
  • 另一种选择可能是为Web应用程序同时拥有SQL Server本地数据库和SQL Azure,并在两台服务器之间同步所需的数据

我真的很想知道你们在那种环境中会提出什么建议。我们需要保留Winform应用程序,我们需要能够通过平板电脑设备访问数据。

3 个答案:

答案 0 :(得分:2)

为什么不创建公开所需功能的Web服务层?

答案 1 :(得分:1)

我建议你开发一个ASP.NET Web应用程序,将它托管在本地服务器上,并允许它连接到SQL数据库。

您需要配置路由器/防火墙以将http流量定向到此服务器。

如果您的客户端可以提供域登录,或者使用ASP.NET Forms身份验证,则可以使用Integrated Security保护登录。

为了便于开发与平板电脑/手机等兼容的漂亮应用程序,我建议使用Twitter Bootstrap

答案 2 :(得分:0)

我同意Paul Grimshaw的回答。

但是,如果要创建特定于平板电脑的应用程序(iOS,Android等)。您可以创建一个WCF服务,该服务可以访问客户端站点上的服务器上托管的SQL数据库。然后将WCF服务公开给Web,并通过WCF服务获取所需的数据。

您很可能会重复使用当前的许多WinForm应用程序代码来进行服务。在这种情况下,您将创建一个WinForm并自托管一个具有HttpBinding的WCF服务。