如何更好地部署(安装)此应用程序?

时间:2015-10-25 08:52:12

标签: c# architecture

我的应用程序有两个主要部分。首先,客户端,基本上是用户接口,第二,作为库的存储库,它与数据库连接并具有插入,更新,删除所有逻辑......并确保数据的一致性。

应用程序尚未进行缓存,并且客户端直接使用存储库来访问数据库。但是当我必须部署应用程序以供局域网内的许多用户使用时,我认为这不是最好的解决方案。

第一个解决方案

在需要该应用程序的用户的所有计算机中安装客户端和存储库。

这样做的缺点是,当我更新应用程序时,我必须更新许多应用程序,并且可能并非所有应用程序都因任何原因而更新。因此,如果更新是修复某些问题的存储库,那么如果未更新应用程序的客户端将在数据库中引入不一致数据,那么修复是否要纠正此类问题。

第二个解决方案

客户端直接使用存储库,但应用程序安装在网络驱动器中。我只有一个安装,所以如果我需要更新应用程序,我必须做一次。

应用程序不是很大,大约12MB,但它可能有点慢,因为必须通过网络从服务器到用户计算机。因此,也许某些用户可以将应用程序复制到本地计算机,因此我无法确保第一个解决方案出现问题。

第三种解决方案

客户端应用程序不直接使用存储库,存储库位于服务器中,客户端使用WCF与服务器通信,服务器使用存储库访问数据库。

缺点是服务器必须运行存储库,因此如果连接了许多客户端,则需要大量RAM,而如果用户的计算机具有本地应用程序,则需要内存本地电脑。

在sumary中,当我不得不贬低这种应用程序时,这是最好的解决方案,或者你将在项目中使用哪种解决方案?

非常感谢你。

1 个答案:

答案 0 :(得分:1)

这实际上取决于您的部署方法,您使用ClickOnce进行部署吗?如果是这样,您可以将数据保存在每台PC本地,避免出现这些RAM问题,如果您发送新更新,请更改所需的版本号并将其设置为在运行之前进行检查,这样他们将无法运行该程序更新它。问题是他们必须具有网络访问权限,但这也是远程数据的问题。在这种情况下,您只需要在更新期间访问网络,不确定这是否是一个问题。

相关问题