WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3)

写在最前面:转载请注明出处

目录置顶:

WCF服务端具体实现

我拿一个具体的实例讲WCF服务端的实现

组织架构

在这个ACS.OA.WCFService中的MainClient文件夹下添加一个WCF服务(因为我当时划分模块时,把组织架构划分到设置里面,所以服务命名为 SettingService.svc)删除SettingService.svc.cs和 ISettingService.cs。

SettingService.svc代码如下:

<%@ ServiceHost Language="C#" Debug="true" Service="ACS.OA.WCFServiceLib.MainClient.SettingService" CodeBehind="SettingService.cs" %>

在ACS.OA.WCFContract项目的MainClient文件夹下添加一个接口 ISettingService.cs

ISettingService代码如下:

    [ServiceContract]
    public interface ISettingService
    {
        #region 艾克仕网络云OA组织架构
        [OperationContract]
        byte[] GetOrgaList(byte[] bytData);

        [OperationContract]
        byte[] AddOrga(byte[] bytData);

        [OperationContract]
        byte[] UpdateOrga(byte[] bytData);

        [OperationContract]
        byte[] DeleteOrga(byte[] bytData);

        #endregion
}

ACS.OA.WCFServiceLib项目的MainClient文件夹下添加一个类SettingService.cs

SettingService代码如下:

 1 public class SettingService: WCFServiceLibBase, ISettingService
 2     {
 3         #region 艾克仕网络云OA组织架构
 4         public byte[] GetOrgaList(byte[] bytData)
 5         {
 6             try
 7             {
 8                 return SettingServiceImpl.Instance.GetOrgaList(bytData);
 9             }
10             catch (Exception ex)
11             {
12                 return ErrorLogRecode(ex);
13             }
14         }
15         public byte[] AddOrga(byte[] bytData)
16         {
17             try
18             {
19                 return SettingServiceImpl.Instance.AddOrga(bytData);
20             }
21             catch (Exception ex)
22             {
23                 return ErrorLogRecode(ex);
24             }
25         }
26         public byte[] UpdateOrga(byte[] bytData)
27         {
28             try
29             {
30                 return SettingServiceImpl.Instance.UpdateOrga(bytData);
31             }
32             catch (Exception ex)
33             {
34                 return ErrorLogRecode(ex);
35             }
36         }
37         public byte[] DeleteOrga(byte[] bytData)
38         {
39             try
40             {
41                 return SettingServiceImpl.Instance.DeleteOrga(bytData);
42             }
43             catch (Exception ex)
44             {
45                 return ErrorLogRecode(ex);
46             }
47         }
48         #endregion
49  }

SettingService

与Domain具体交互,在后续章节中我再想讲。

再回到项目ACS.OA.WCFService找到Web.config在<services> </services>之间添加如下代码:

<service behaviorConfiguration="OATcpBehavior" name="ACS.OA.WCFServiceLib.MainClient.SettingService">
        <endpoint binding="netTcpBinding" bindingConfiguration="OATcpBinding" name="SettingService" contract="ACS.OA.WCFContract.MainClient.ISettingService">
          <identity>
            <dns value="OAMainClient"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
      </service>

右键生成,然后访问本地IIS(net.tcp需要安装本地IIS)http://localhost/DDD/ACS.CloudOA.WCFService/MainClient/SettingService.svc

就可以显示以下信息:

svcutil.exe net.tcp://desktop-oeq0gl2/DDD/ACS.CloudOA.WCFService/MainClient/SettingService.svc/mex

net.tcp://desktop-oeq0gl2/DDD/ACS.CloudOA.WCFService/MainClient/SettingService.svc/mex 这个就是地址,把中间的desktop-oeq0gl2修改为IP地址或域名

然后使用SvcUtil就可以生成客户端的代理类和客户端的配置信息。

WCF服务端的实现 大体就是这个步骤了。



下一节我讲一下【WCF客户端配置以及代理】 ,如果你觉得有帮助,请继续关注...谢谢

时间: 2024-07-31 09:54:46

WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3)的相关文章

WCF客户端配置以及代理-----基于DDD领域驱动设计的WCF+EF+WPF分层框架(4)

写在最前面:转载请注明出处 目录置顶: 关于项目--------------------基于DDD领域驱动设计的WCF+EF+WPF分层框架(1) 架构搭建--------------------基于DDD领域驱动设计的WCF+EF+WPF分层框架(2) WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3) WCF客户端配置以及代理-----基于DDD领域驱动设计的WCF+EF+WPF分层框架(4) Domain具体实现------------基于DD

基于DDD领域驱动设计的WCF+EF+WPF分层框架

目录置顶: 关于项目--------------------基于DDD领域驱动设计的WCF+EF+WPF分层框架(1) 架构搭建--------------------基于DDD领域驱动设计的WCF+EF+WPF分层框架(2) WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3) WCF客户端配置以及代理-----基于DDD领域驱动设计的WCF+EF+WPF分层框架(4) Domain具体实现------------基于DDD领域驱动设计的WCF+EF

架构搭建----基于DDD领域驱动设计的WCF+EF+WPF分层框架(2)

写在最前面:转载请注明出处 目录置顶: 关于项目--------------------基于DDD领域驱动设计的WCF+EF+WPF分层框架(1) 架构搭建--------------------基于DDD领域驱动设计的WCF+EF+WPF分层框架(2) WCF服务端具体实现---------基于DDD领域驱动设计的WCF+EF+WPF分层框架(3) WCF客户端配置以及代理-----基于DDD领域驱动设计的WCF+EF+WPF分层框架(4) Domain具体实现------------基于DD

C#进阶系列——DDD领域驱动设计初探(六):领域服务

前言:之前一直在搭建项目架构的代码,有点偏离我们的主题(DDD)了,这篇我们继续来聊聊DDD里面另一个比较重要的知识点:领域服务.关于领域服务的使用,书中也介绍得比较晦涩,在此就根据博主自己的理解谈谈这个知识点的使用. DDD领域驱动设计初探系列文章: C#进阶系列——DDD领域驱动设计初探(一):聚合 C#进阶系列——DDD领域驱动设计初探(二):仓储Repository(上) C#进阶系列——DDD领域驱动设计初探(三):仓储Repository(下) C#进阶系列——DDD领域驱动设计初探

DDD领域驱动设计之领域服务

1.DDD领域驱动设计实践篇之如何提取模型 2.DDD领域驱动设计之聚合.实体.值对象 3.DDD领域驱动设计之领域基础设施层 什么是领域服务,DDD书中是说,有些类或者方法,放实体A也不好,放实体B也不好,因为很可能会涉及多个实体或者聚合的交互(也可能是多个相同类型的实体),此时就应该吧这些代码放到领域服务中,领域服务其实就跟传统三层的BLL很相似,只有方法没有属性,也就没有状态,而且最好是用动词命名,service为后缀,但是真正到了实践的时候,很多时候是很难区分是领域实体本身实现还是用领域

(转载)浅谈我对DDD领域驱动设计的理解

原文地址:http://www.cnblogs.com/netfocus/p/5548025.html 从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品.所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的. 再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备.但是最近由于各种原因,导致服务经常出故

DDD领域驱动设计仓储Repository

DDD领域驱动设计初探(二):仓储Repository(上) 前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repository,为什么Repository会有这么大的争议,博主认为主要原因无非以下两点:一是Repository的真实意图没有理解清楚,导致设计的紊乱,随着项目的横向和纵向扩展,到最后越来越难维护:二是赶时髦的为了“模式”而“模式”,仓储并非适用于所有项目,这就像没有任何一种架构能解决所有的设计难题一样.本篇

浅谈我对DDD领域驱动设计的理解

从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品.所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的. 再比如,我是一家互联网公司,公司有很多系统对外提供服务,面向很多客户端设备.但是最近由于各种原因,导致服务经常出故障.所以,我们希望通过各种措施提高服务的质量和稳定性.其中的一个措施就是希望能做一个灰度发布的平台,这个

C#进阶系列——DDD领域驱动设计初探(二):仓储Repository(上)

前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repository,为什么Repository会有这么大的争议,博主认为主要原因无非以下两点:一是Repository的真实意图没有理解清楚,导致设计的紊乱,随着项目的横向和纵向扩展,到最后越来越难维护:二是赶时髦的为了“模式”而“模式”,仓储并非适用于所有项目,这就像没有任何一种架构能解决所有的设计难题一样.本篇通过这个设计的Demo来谈谈博主对仓储的理解,有不对的地方还望