如果要共享一些通用功能, WCF 还是 引用dll assembly?

问题描述

有个公司现在开发维护了10多个网站,都是给客户做的。10个网站都是同一类型,也是这个公司的主营业务,所以很多功能都一样,像是创建账本,统计库存,收据管理什么的,代码几乎一样。现在每个网站都是独立的,如果哪个功能要升级,就要把所有网站改一遍。现在想把一些核心的,通用的功能抽出来,编译成dllassembly。其它项目就引用这个dll,这样就不用重复的在10个网站上修改。这个公司也有webservice接口,有些客户有自己的ERP系统,要用这个接口,所以又想,可不可以把通用功能做成WCF层。WCF跟dll文件引用,有什么好处呢?多谢。

解决方案

解决方案二:
wcf跟dll不是一个层次上的东西。两者并不是排斥的关系,不是说你用了dll就不能用为出发了。wcf是用来作通讯用的框架。而dll是编译好的中间代码。你可以把你做的dll在一台机子上运行,用wcf调用你的dll为所有的机子服务。
解决方案三:
wcf跟dll不是一个层次上的东西。两者并不是排斥的关系,不是说你用了dll就不能用wcf了。wcf是用来作通讯用的框架。而dll是编译好的中间代码。你可以把你做的dll在一台机子上运行,用wcf调用你的dll为所有的机子服务。
解决方案四:
都搞了10个网站了,前期就应该想到这个问题啊。现在再考虑是不是有点晚了.作为公司的核心业务层,早就该封装成dll了。如果要调用wcf,除非你10个网站都部署在同一个机房,否则会出现网速引起的性能问题。你说十个网站代码“几乎“一样,这个”几乎“实在是太不让人放心了。这样做的前提是代码要”完全"一样。如果不能保证的话,还是老老实实维护10个网站吧。毕竟客户要的是稳定。
解决方案五:
10个网站,也是一点一点积累的。开始哪里想到那么多啊。继续维护10个站已经太麻烦了,而且以后还会有更多的站。现在所有网站都在同一台服务器上。速度不是问题。我是想问,加一个wcf层,用wcf调用dll,给所有网站服务,有什么好处呢?
解决方案六:
引用4楼valve1900的回复:

10个网站,也是一点一点积累的。开始哪里想到那么多啊。继续维护10个站已经太麻烦了,而且以后还会有更多的站。现在所有网站都在同一台服务器上。速度不是问题。我是想问,加一个wcf层,用wcf调用dll,给所有网站服务,有什么好处呢?

好处就是需要修改一个通用功能话,修改一处就可以了,坏处就是你要知道哪些是通用的,有可能错用。
解决方案七:
引用5楼gws044010607的回复:

引用4楼valve1900的回复:10个网站,也是一点一点积累的。开始哪里想到那么多啊。继续维护10个站已经太麻烦了,而且以后还会有更多的站。现在所有网站都在同一台服务器上。速度不是问题。我是想问,加一个wcf层,用wcf调用dll,给所有网站服务,有什么好处呢?好处就是需要修改一个通用功能话,修改一处就可以了,坏处就是你要知道哪些是通用的,有可能错用。

如果用dll,也一样啊。通用功能都放到一个dll里,也是改一处就可以了。也有灵活性的问题。
解决方案八:
不用纠结,你都搞在一起,自己不就知道所以然嘛。同样的需求,你搞两个,我不信你不能在一两天之内有所进步。为什么相反地上csdn问这类简单茶具的问题呢。
解决方案九:
引用7楼sp1234的回复:

不用纠结,你都搞在一起,自己不就知道所以然嘛。同样的需求,你搞两个,我不信你不能在一两天之内有所进步。为什么相反地上csdn问这类简单茶具的问题呢。

钻石就是不一样
解决方案十:
引用4楼valve1900的回复:

我是想问,加一个wcf层,用wcf调用dll,给所有网站服务,有什么好处呢?

最基本的概念,提供wcf的目的是因为不想对方拥有dll。
解决方案十一:
你编译为dll复用如果可行,我实在看不出来有什么理由扯上wcf这种概念。难道仅仅因为它时髦?先动手做试验,然后自己选择答案。在步入社会之前没有什么正规的试验经验,是现在很多学生的毛病,以至于工作之后就好像2岁的小孩子学游泳时被人直接扔到水里一样,抓到什么时髦概念都纠结。
解决方案十二:
对于框架使用问题,先要自己动手,就好象搞研究一样进行测试,然后把自己的经验大声说出来,而不是去csdn这种地方提很简单的问题。
解决方案十三:
引用9楼sp1234的回复:

引用4楼valve1900的回复:我是想问,加一个wcf层,用wcf调用dll,给所有网站服务,有什么好处呢?最基本的概念,提供wcf的目的是因为不想对方拥有dll。

对,这是一个好处。
解决方案十四:
引用10楼sp1234的回复:

你编译为dll复用如果可行,我实在看不出来有什么理由扯上wcf这种概念。难道仅仅因为它时髦?先动手做试验,然后自己选择答案。在步入社会之前没有什么正规的试验经验,是现在很多学生的毛病,以至于工作之后就好像2岁的小孩子学游泳时被人直接扔到水里一样,抓到什么时髦概念都纠结。

这个问题起于要剔除重复代码。想到WCF是因为这些网站现在有WebService,同客户连接。这样就长远看,肯定要有对外的WCF接口。那么对内呢?是WCF的接口,还是dll?这不是一个实验问题。实验可以验证可行性,单选择最佳方案需要经验,所以才发贴问啊。
解决方案十五:
完全是两个东西
解决方案:
个人觉得就剔除重复代码,其实wcf和dll都能实现。wcf,你请求服务的时候,总是要时间的,当然了,如果每次更新,你也不用去每一网站替换dll,只要更新下自己的wcf服务。

时间: 2024-10-29 12:24:20

如果要共享一些通用功能, WCF 还是 引用dll assembly?的相关文章

关于WCF的引用,添加服务和添加web服务的区别

原文:关于WCF的引用,添加服务和添加web服务的区别  本章内容主要是根据我做的实验来阐述这2种添加服务针对WCF的不同之处,我们按照示例一步一步来看.   如下是工程的结构: 该WCF服务是通过控制台程序(Host)以自宿的形式发布的,绑定使用wsHttpBinding.我们在Client端分别添加 服务引用(add service references)和添加Web引用(add Web Reference )来引用WCF服务.   以下是客户端的代码,分别使用添加服务引用和添加Web引用的

客户端添加WCF服务引用,自动生成.NET类型

问题描述 WCF服务,客户端可以通过添加服务引用自动生成代理类的!问题来了,在一个项目中添加不同的WCF服务引用,生成的代理类有时有很多类型是重复被代理生成的.比如:添加服务地址A的服务引用,创建出来一个类型A.ClassA,再添加另一个服务地址B的服务引用,又创建出来一个类型B.ClassA,这两个类型在服务端其实都是一个类型定义,只是两个服务接口使用了相同的这个类型ClassA.那么客户端在使用ClassA时有些麻烦,因为添加了多个WCF服务引用,相同类型ClassA的命名空间会不同,有时会

WCF中引用其他Web Service部署IIS后调用报错

问题描述 在WCF中引用了其他WebService,本机测试一切正常,调用正常.发布部署IIS后,可以正常访问,其他方法也正常,调用这个引用了其他WebService的方法就报错.错误信息如下:Therewasnoendpointlisteningathttp://XX.XXXX:8899/sms_hb/services/Sms/thatcouldacceptthemessage.ThisisoftencausedbyanincorrectaddressorSOAPaction.SeeInner

迅雷为上市“变脸”会员功能成摆设引用户不满

"该资源被举报,无法添加到离线下载--"小葵无奈地关掉迅雷,"能把我的年费退给我吗!"数月来,她的离线下载和高速下载功能屡屡无法使用,使用迅雷下载电影,速度只有每秒20K,差不多相当于原来的几十分之一.小葵表示,自己3月份才续费了一年的迅雷白金会员,如今会员功能形同虚设,150元钱打了水漂. 会员功能成摆设引用户不满 "迅雷自从上市,就换了一副面孔.会员离线功能受限制,只能靠普通下载,而且网速巨慢,只有几十K(每秒)." "迅雷会员现在

为上市“变脸” - 迅雷会员功能成摆设引用户不满

class="post_content" itemprop="articleBody"> "该资源被举报,无法添加到离线下载--"小葵无奈地关掉迅雷,"能把我的年费退给我吗!"数月来,她的离线下载和高速下载功能屡屡无法使用,使用迅雷下载电影,速度只有每秒20K,差不多相当于原来的几十分之一.小葵表示,自己3月份才续费了一年的迅雷白金会员,如今会员功能形同虚设,150元钱打了水漂-- 会员功能成摆设引用户不满 "

巧用WPS表格中共享工作簿功能

  在工作或学习中,我们常常会遇到要收集大家的个人资料,对于处理这类事情的方法经常是先通过填写纸质表格,然后再由专人输入电脑.但是小编这里要告诉大家的是用WPS表格共享工作簿就可以轻松搞定. 一.建立共享文件夹 为了实现多人协同工作,必须建立一个共享文件夹(当服务器),让参与人有权访问此文件夹.例如我们在某台电脑(也可以自己的电脑)的E盘上建立一个"员工信息"的共享文件夹. 建立共享文件夹 建立共享文件夹 二.设计建立共享工作簿 我们以收集员工个人信息为例设计建立一个工作簿,命名为&q

通用功能测试用例

一般jsp页面的测试 输入文本框类型控件的测试 文本框中-> 数字类型的测试 树控件的测试 最新内容请见作者的GitHub页:http://qaseven.github.io/

迅雷野蛮下载是什么功能?删除“al.dll”文件可以加速下载吗?

  您好,野蛮下载为一个设想概念.实际各版本中无此功能. 如需体验可自行操作删除 C:Program FilesCommon FilesThunder NetworkTPVer1文件夹下的 al.dll文件 (如找不到目录可运行迅雷后查看任务进程中的ThunderPlatform.exe程序右键打开文件位置). 删除后下载速度会处于最优先下载,但不会突破物理带宽. 注意事项:此操作有风险,会有上传速度增加等未知因素问题,请谨慎操作,如坚持操作后果自行承担.

WCF服务引用后,识别不了

问题描述 我写了一个WCF服务,如果在同一个解决方案里面,客户端可以正常的添加引用WCF服务并调用服务端的接口,如下图1.但是如果我用另外一个项目去引用WCF服务,虽然能够引用服务,但是调用不了WCF服务中的接口,如图2和图3[图1][图2][图3] 解决方案 解决方案二:你在另外一个项目的app.config查找IPlateService,看对应的Namespace*****************************************************************