罗敏贵 发表于 2012-12-18 18:52:31

WCF开发日志 -

<div id="cnblogs_post_body">一、摘要

   
   场景:   
          项目比较大,不可能所有契约在一个类里来实现,可能会有上百个服务上千个契约,按照目前在网上搜索的结果是…..只能一个servicehost对应一个服务,某个mvp的建议是所有契约都放到一个类里来实现。。。我崩溃。。。。。
   想法:
         也有人建议用 partial class的方式,把不同的契约分布到不同的CS文件里,虽然可能看上去好一点,但每回添加服务都得重编译,我觉得太扯淡了 。。。。。
         我希望是尽可能的把服务根据功能的不同按模块划分开来,不同的服务做成不同的dll,以插件的形式注册到一个表里,用servicehost来加载,不知大家有没有好的建议 。
         其实可以考虑用CSLA.NET的方案,只写一个服务,它称为统一入口,这个方式还是不错的,就是他为解决并发,并发好像在博客园里有人写了怎么实现,地址是                  http://www.cnblogs.com/zgynhqf/archive/2010/07/01/1769228.html
    现实:
   说一千道一万架不住我不会,我只能实现:
    1、如何在Windows中Host多个WCF服务?      
2、不能是多个Open方法,那样太幼稚了 !
3、 考虑到整个团队都不会CSLA.NET,或OEA 就我会一点:) , 这个还的多谢周哥,和 胡总 的栽培了。
4、 整个团队学习成本太高,只有不断的分享,讨论来加快进度了。
二、本文大纲

          a、摘要 。
         b、本文大纲 。
         c、项目准备阶段 。
         d、主要核心代码 。
         e、达到的效果图 。
三、项目准备阶段

   这个图需要一点C# 基础才能看的懂的:) 估计一上图大家就看的懂(自己想象中……..)了。
    http://images.cnblogs.com/cnblogs_com/luomingui/201209/201209062134163527.png
       这里主要是创建 Windows项目和 WCF Service Library 项目
      Windows项目还需要引用WCF Service Library 项目
   
四、主要核心代码

<blockquote>   http://images.cnblogs.com/cnblogs_com/luomingui/201209/201209062134222932.png
    运行按钮事件代码:
    <div style="border-bottom: #4f81bd 1px solid; text-align: left; border-left: #4f81bd 1px solid; line-height: 18px; background-color: white; margin: 0px; width: 100.52%; font-family: 'Courier New','Consolas','Fixedsys','BitStream Vera Sans Mono', courier,monospace,serif; height: 272px; color: black; font-size: 12px; overflow: auto; border-top: #4f81bd 1px solid; border-right: #4f81bd 1px solid">    1:         private void button1_Click(object sender, EventArgs e)    2:       {    3:         if (button1.Tag == "run")    4:         {    5:               ServiceStart();    6:               button1.Text = "停止(&X)";    7:               button1.Tag = "stop";    8:         }    9:         else    10:         {    11:               button1.Text = "运行(&R)";    12:               button1.Tag = "run";    13:         }    14:       }    15:
页: [1]
查看完整版本: WCF开发日志 -