首页 新闻 会员 周边

提问Wcf+Linq+winForm的一些基础问题

0
悬赏园豆:100 [已解决问题] 解决于 2009-08-14 09:57

由于新项目准备使用一些“新技术”,研究了几天.net,觉得使用wcf+linq还不错。有些基础问题前来询问,望大家帮忙。

1、关于wcf
客户端进行了模块化设计,比如说每一个模块都封装成了单独的dll。于此同时模块需要访问数据时都是通过wcf调用业务组件方式。而客户端各个模块又是相对独立的,如果都调用同一个wcf,就会造成

wcf形成一个巨大的接口,职责不清。

我目前的想法是:将wcf划分成多个服务,通过对外公布不同的服务。客户端dll通过独立引用相关的wcf,从而实现与业务中间层的呼应,这样wcf相对就独立,职责清楚。

形成了:功能模块1-》wcf服务1-》业务逻辑1   这样一个线性的开发模式。

而其中wcf如果采用独立进程作为宿主,如何才能实现不同的服务呢?是否有更好的设计方法?


2、关于Linq
由于软件功能不多,最大的数据表数据量也不过200万,采用sql server数据库,暂时不考虑采用存储过程。

使用Linq可以很简单的实现ORM,而且代码生成也非常简单,但是几天学习下来对Linq即清楚又模糊!

我目前想法是将所有表生成在一个dbml中,这样如果有数据表修改只需要修改一处就可以了。而且数据表也不算多,20个左右。但就是说如果放在一起就会造成一个大的功能类,维护不容易。也不能很

好的加入处理逻辑,我见Linq里面是可以partial到不同的实现单元中实现特殊处理的。


所以比较模糊,如何设计dbml呢?将所有的表都放于一起?有没有好的设计方法?表都在一起会不会有性能影响?

Linq的性能如何?是否有必要与其他的框架结合使用?能否胜任复杂的业务结构?

5207的主页 5207 | 初学一级 | 园豆:9
提问于:2009-08-12 16:27
< >
分享
最佳答案
0

关注。

收获园豆:5
博弈IT | 菜鸟二级 |园豆:366 | 2009-08-12 22:46
其他回答(1)
0

Hi,一起讨论一下你的问题:

1.你现在想法可以,将wcf根据功能,划分成多个服务,每个服务包含特定的操作。
然后公布不同的WCF服务。
 
2.功能模块1-》wcf服务1-》业务逻辑1。这样的架构可以。WCF其实可以对数据
访问层方法进行包装,也可以包装业务逻辑层。如果你的服务需要第三方系统访问,可以包装业务逻辑层方法。
3.WCF可以再一个宿主内托管多个服务。配置一下就可以了,每个服务你公布不同的终结点即可。
可以暴露不同协议Metadata的终结点。单独使用配置文件就可以完成。只是需要重复不同的Service配置节点。
4.托管宿主,如果是企业应用,一般IIS应用很常见,主要是部署简单,和Web Service类似,但是IIS6只能使用http相关的绑定协议,IIS7里可以使用netTcpBinding.如果是自定义托管宿主的话,可以使用Windows Service来托管,主要是基于稳定的服务目标的考虑。Windows 服务宿主部署相对复杂。但是这个是企业托管WCF服务的首选。Winform 和Console程序适合做学习使用。
5.Linq我不熟悉,关于ORM的性能问题没做过深入学习。所以你的问题我不能随便回答。关于WCF的问题可以一起讨论。
    以后又问题,欢迎到MSDN WCF中文技术论坛或者我的博客来交流。  希望我的回答对你的有所帮助。

收获园豆:95
Frank Xu Lei | 园豆:1860 (小虾三级) | 2009-08-12 19:20
非常感谢你的回答。 今天在查阅了一些资料后开始对wcf有了多一点了解,基本确认可以实体我的想法。现在最重要的可能就是Linq和Wcf的结合 使用问题了。 因为我想把Linq的数据 类做为wcf的DataContract!关于wcf的下一步我希望能在可架构及稳定 性上增加一些了解。 再次谢谢你的回答。
支持(0) 反对(0) 5207 | 园豆:9 (初学一级) | 2009-08-12 20:56
@5207 建议将DataContract与Linq的数据实体类分开实现,两者职责不同,混在一起有坏味道。
支持(0) 反对(0) 麒麟.NET | 园豆:3614 (老鸟四级) | 2009-08-13 12:24
@5207: 不要客气,以后多交流~
支持(0) 反对(0) Frank Xu Lei | 园豆:1860 (小虾三级) | 2009-08-13 13:16
@麒麟.NET: 望能详细一点。因为我觉得Linq的数据实体其实已经是数据了,另外设计 就会有维护的问题产生。比如 增加某个字段的话,我需要更多n个地方。是不是有什么好的解决办法?
支持(0) 反对(0) 5207 | 园豆:9 (初学一级) | 2009-08-13 18:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册