使用WCF做为后台服务,如何访问数据库?
ck436 2010-09-21 10:50:00 我是这么想的,我做的项目一方面要采用数据库存储数据,但另一方面还有对数据库中数据进行大量的数学计算,
即从数据库中取出很小部分的数据,却要对这小部分数据进行较大的计算量,然后把计算结果再存回数据库,
之前一直在使用silverlight还是wpf而徘徊,前者部署方便但本地资源应用不足,后者数据库和数学算法实现较方便但部署特别是framework部署相当麻烦。
现在感觉不如只把silverlight和wpf做为用户端的前台显示,
对数据的数学计算算法可以做成dll文件,放在服务端直接调用,
再采用WCF与前端的silverlight和wpf通信。
这样子有几个好处:
1、前台显示不再有过多的设计压力,不管转到哪种技术都不会太困难,仅仅用于显示,本来二种技术就是互通的,这样子我甚至可以直接开发出silverlight和wpf二个版本的前台显示,至于使用桌面端还是浏览器端可以由用户自己选择。
2、将我的数据算法放在dll文件中,可以在服务端执行这些算法,也可以在用户端实现计算,如果想减轻服务端的压力,则可以由用户端来计算,二个位置转换方便。比如silverlight的运行效率有些低,且不能引用c++版本的dll,那么就在服务器上实现算法,而对于wpf版客户端,则可以直接在本地实现运算,以减小服务器的压力。
但由于对WCF技术不熟悉,存在一些疑问,请大家给解答一下:
1、在服务端访问数据库,那WCF是否可以直接访问数据库呢?还是必须通过实体框架实现?没有用WCF实现过,不知道该怎么整?
2、如何在设计之初就考虑到SQLServer和Oracle二各数据库的双引擎,以便在部署时不管采用哪种数据库都可以轻松的实现?
3、如何在服务端引用编译成dll的数学算法,是在WCF的函数中直接调用,还是通过其他方法实现呢?
4、对于用Matlab等数学计算软件生成的C++版本的dll,是否可以在服务端成功调用?我只知道在wpf中可以调用。
5、域的问题,服务端访问数据库,是否需要考虑这个问题?比如说我把数据库和WCF宿主不放在一块呢?我只知道silverlight需要考虑。
6、是否给出一个类似采用WCF实现的数据库访问实例,好参考一下?越简单越好。
7、我这样的构想不知是否可行?或者有什么不足之处或者建议,希望能指导一二。