我公司计划将旧的Winforms应用程序转换为WPF / Silverlight客户端/服务器应用程序。
拥有一个小型服务器应用程序的想法是将可访问数据库的列表与可以访问每个数据库的用户类型相结合,而不必在每个客户端的管理控制中管理数据库。此外,如果SQL请求将由服务器处理,然后返回结果,那将是很好的。
应用程序应该在一组任意数据库上工作,这些数据库将与服务器“注册”,用户根据其身份验证权限获取数据库列表。然后,他们可以在这些数据库上做几乎可以想象的所有事情。该系统应该能够处理多达200万行。
数据库非常不同,可能有很多数据库,它们可能是MS Access,Oracle,SQL Server等,所以以前我都无法指定它们。最重要的是,需要与SQLite缓存进行通信。 我已经从Winforms应用程序中获得了SQL查询所需的一切。
我在想:
1)一个简单的WCF服务器,在配置文件中指定每个用户类型的可用数据库。
2)接口,指定可以对服务器进行的所有必要的SQL查询。
3)客户......
这个想法是: 客户端 - 服务器应用程序,客户端使用WCF服务通过调用服务方法对表执行SQL查询(INSERT,UPDATE,SELECT等)。
理想情况下,该服务应该可用于WPF和Silverlight应用程序。
这是要走的路吗?我希望在格式,通信,服务等方面使用哪些现有技术。
如果这有问题,我会考虑回到桌面应用程序,但是如何减轻每个客户端的用户类型/数据库访问问题?
答案 0 :(得分:0)
我会坚持使用ADO.NET并从DbProviderFactory类开始。这将允许您根据提供程序使用工厂设计模式提供的信息确定正确的数据库访问。因此,您不必为每个数据库类型和数据库创建专用对象,而是可以使用DbProviderFactory抽象该逻辑。
以下链接显示了一些示例:http://msdn.microsoft.com/en-us/library/wda6c36e(v=VS.100).aspx