从我的客户端连接到我的数据库的最佳策略

时间:2011-12-04 17:15:59

标签: wpf database silverlight web-services architecture

我正在研究为客户开发新版本的客户端/服务器应用程序。目前的解决方案是asp.net mvc。

中的一个网站

该应用程序的目的是构建一个数字标牌解决方案,这意味着在客户端上,用户将从视频和图像创建播放列表,并安排它们显示在屏幕上。要显示的项目是WPF用户控件,一个用于图像逻辑,另一个用于视频逻辑。

当前的应用程序是基于Web的,并直接访问中央数据库。当所有客户端(提供信息的客户端)请求数据时,它通过Web服务完成。客户非常乐意使用基于Web的客户端,尽管他们要求更“丰富”的行为。这包括一个主要要求,即预览单个“幻灯片”和幻灯片集合。

我开始将其作为WPF应用程序开发(因为预览了wpf用户控件而丢弃了silverlight)。现在我面临着定义如何访问数据库的问题/挑战。客户可能希望使用与现在相同的使用模式,他们可以随身携带实验室,因此不会与数据库保持同一网络。

我的问题是:我如何设计数据库连接层,我应该选择基于纯Web服务,这样每个人总是使用它,或者我应该做某种断开模式,他们可以在家里工作,然后连接并同步他们的数据?我是否应该要求它们与数据库在同一网络上,所以我可以使用数据库层和连接字符串直接连接?

基于Web服务的方法是否足够快以处理图像,视频(考虑只加载这些视频的缩略图,否则数据会破坏性能〜几个Gb og数据)。我计划在客户端上使用缩略图,在家庭网络上连接并获取所有大型视频和图像......

1 个答案:

答案 0 :(得分:1)

在设计应用时,值得记住KISSYAGNI原则,并警惕过度杀伤解决方案和过早优化。

如果我理解正确,你有一个有效的网络应用程序,其中唯一需要的进一步功能是各种幻灯片。
您可以找到许多jQuery(或任何其他Web客户端框架)解决方案。

但是,如果您决定开发一个新客户 - 您已经拥有一个运行良好的网络服务!我建议使用它。

关于在客户端存储数据的想法 - 这是YAGNI的经典候选者;测试应用程序的性能,然后查看是否需要更复杂的东西,如客户端等的缓存等。

客户端应用程序直接访问数据库的附注不是推荐的方法;它有效地取消了“客户端 - 服务器”的“服务器”部分,并在您的演示文稿和业务逻辑/数据访问之间产生高度耦合。
最好在服务器上安装一个负责获取所请求文件的WCF应用程序。