none
求C/S,B/S相结合软件架构的WCF实现 RRS feed

  • 问题

  • 我做开发有一年,C#,主要是做C/S,winform的开发,之前没接触过分布式开发,都是做一个winform客户端,直接访问数据库,现在软件是企业MIS系统,想做成产品,我想实现的软件架构是:
    公网BS:数据库--WCF服务(器)-IE浏览器 (主要看报表)
    内网CS:数据库--WCF服务(器)-客户端程序 (单据+报表)
    WCF服务(器)同时服务于BS,CS,WCF服务(器)和CS客户端希望全用代码配置,不用配置文件,宿主是winform程序(实现软件注册,帐套维护,数据库备份恢复等功能,同时为客户端提供数据,以及数据更新功能)
    看了一些介绍WCF的文章,对服务契约和数据契约,以及服务实现有一点点认识,但对如何用全代码实现一直不太明白,在此想求一个实现上述所说架构的简单实例,并能简单说明一下,小弟不胜感激!

    站在产品的角度,不希望用配置文件,感觉配置文件适合做项目,而不是做产品,如果软件安装到一个只有几个文员的小公司,难道让这些小姑娘去配置服务器吗?关于这个问题,大侠能给点拨一下,小弟也不胜感激!

    • 已编辑 iolea 2010年1月5日 3:16 修改
    2010年1月5日 3:15

答案

  • 1.可以这样来做。
    2.我没有这样的代码。使用代码配置WCF服务的例子你可以参考MSDN,这个很简单,我博客里的例子,也有类似的代码,你可以扩展。
    3.要注意性能问题,你对系统所有的功能,统一包装为WCF服务,看是风格统一,但是有时候我们直接使用DLL可能效率更高。而不是增加一层WCF服务。
    4.如果系统有大数据操作,你也要注意。
    5.WCF里安全也是比较复杂的一块。
    6.长时间操作,注意超时的属性设置。



    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月6日 9:55
    版主

全部回复

  • Hi,
       1.在项目里使用WCF,也要遵循一些原则,不能滥用。在需要的地方使用。而不是全部功能都经过WCF包装以后,再发布出来。如果全部这样做的话,导致的直接问题,就是性能。如果你认为一些功能需要暴露出来,并且WCF可以带来好处,那可以使用。如果使用WCF以后带来严重的性能瓶颈,请详细考虑自己的设计方案。
    2.配置文件的作用,在WCF里也很重要。当然是要配置文件对于部署产品可以带来很大的灵活性。产品也一样,你可以事先设定一些信息。如果在代码里,客户端只有重新编译,部署才能更新。当然你也根据项目情况决定。

    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月5日 10:14
    版主
  • 谢谢您的回复,我在CSDN发的同样问题,无人回,哎!
    2010年1月6日 2:36
  • 我是想把单据的SQL查询语句和更新语句封装在WCF中,客户端就是界面,获取从WCF这边得到的数据源,这样,CS客户端,BS界面,就都可以使用相同的WCF服务了,您觉得我这个思路可以吗?如果可以的话,能不能给个WCF服务、宿主、CS客户端,全用代码实现配置的基本编程的模板(或称为模型),然后我就可以根据这个编程模板,举一反三的做出我想要的WCF服务,谢谢!
    2010年1月6日 2:44
  • 1.可以这样来做。
    2.我没有这样的代码。使用代码配置WCF服务的例子你可以参考MSDN,这个很简单,我博客里的例子,也有类似的代码,你可以扩展。
    3.要注意性能问题,你对系统所有的功能,统一包装为WCF服务,看是风格统一,但是有时候我们直接使用DLL可能效率更高。而不是增加一层WCF服务。
    4.如果系统有大数据操作,你也要注意。
    5.WCF里安全也是比较复杂的一块。
    6.长时间操作,注意超时的属性设置。



    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月6日 9:55
    版主
  • 3Q,版主,您老负责了,小弟在此不胜感激,啥也别说了,眼沮花花地。
    2010年1月7日 2:14
  • 3Q,版主,您老负责了,小弟在此不胜感激,啥也别说了,眼沮花花地。

    Welcome~
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年1月7日 7:49
    版主