该Solution的所有Project如下:

  下面对各个Project一一进行介绍:
  Eallies.OA.BLL:用于系统中BLL层的所有类的存放。该Project可以采用Eallies.Utilities.ContractToBLL工具自动完成,对应于Eallies.OA.Generator目录下的GenerateBLL.bat文件。
  Eallies.OA.Service:用于系统中后台服务层的所有类的存放。该Project可以采用Eallies.Utilities.BLLToService工具自动完成,对应于Eallies.OA.Generator目录下的GenerateService.bat文件。
  Eallies.OA.Service.Contract:用于系统中后台服务层的Contract的所有接口的存放。该Project比较重要,包含重要的业务逻辑,它的完成,需要对系统的业务逻辑有很深的了解,因此该Project应该由业务逻辑开发人员来完成。
  Eallies.OA.Service.Contract.Fault:用于系统中WCF技术错误处理的类的存放。
  Eallies.OA.Service.Host:用于系统中后台服务层的Host的所有文件的存放。该Project可以采用Eallies.Utilities.ServiceToHost工具自动完成,对应于Eallies.OA.Generator目录下的GenerateHost.bat文件。
  Eallies.OA.Service.Wrapper:用于系统中后台服务层的Wrapper的所有类的存放。一般来说,应该遵循谁提供Web Service,谁就完成Service Wrapper的原则来开发,这是因为,Web Service的任何修改,只有开发Web Service的人知道。该Project可以采用工具自动完成,对应于Eallies.OA.Generator目录下的GenerateWrapper.bat文件。
  其它Project均在数据库开发人员的Solution中介绍过。
  为什么UI层不直接调用BLL层,而是要经过UI->Service.Wrapper->Service.Host->Service->BLL这样绕一大圈的方式来调用BLL层呢?这是因为:第一,直接调用会导致系统耦合度太高,任何后台的改动都会导致前台需要重新编译、发布,而这样做了之后,只要Contract不改变,则前台不用做任何改动;第二,这样做了之后,比较适合SOA的理念,系统的扩展性、交互性和灵活性大大提高;第三,直接调用会导致Solution中会有过多的Project,编译非常慢,导致开发人员的时间浪费过多。
本文转自 Eallies 51CTO博客,原文链接:http://blog.51cto.com/eallies/79039,如需转载请自行联系原作者

综合应用WPF/WCF/WF/LINQ之八:后台开发人员的Solution相关推荐

  1. 综合应用WPF/WCF/WF/LINQ之三:采用用代码创建的方式实现CheckListBox的CustomControl

    以我们的Eallies OA系统为例,实现PageBase的方法如下: 1.在Eallies.OA.UI.Controls.Logical项目中添加一个纯的Class,并让其继承于System.Win ...

  2. 综合应用WPF/WCF/WF/LINQ之二十七:代码生成器之DBMLToProcedure

    本存储过程代码生成器能处理如下几种形式的存储过程: 1.形如InsertTableName的存储过程,用于插入某条记录. 2.形如UpdateTableNameByFieldName的存储过程,用于根 ...

  3. 综合应用WPF/WCF/WF/LINQ之十七:关于简化发布新版本的步骤的问题

    对于比较简单的项目,我们可以直接编译项目,然后将bin\Debug下面的文件Copy到发布目录即可. 但对于比较复杂的项目,如加入了配置文件的项目,则不能这样做.这时要求发布目录下的文件除xbap.m ...

  4. 综合应用WPF/WCF/WF/LINQ之一:DEV-WOW 作品源代码公布

    Eallies OA 使用说明 1.本程序在Windows 2003.SQL Server 2005.Visual Studio 2008环境下测试通过. 2.请将项目解压缩至某一目录下,如D:\Ea ...

  5. 为什么技术团队领导者多是后台开发人员

    先别急着往下拉文章,现在思考一个问题:你现在的软件开发团队或之前的团队,带领团队的人处于软件开发职能的哪一个岗位?产品经理,UI设计还是前端开发,后台开发,测试人员,运维人员?(专业团队除外) 给出上 ...

  6. 多线程编程是后台开发人员的基本功

    这里先给大家分享一个小故事: 在我刚开始参加工作的那年,公司安排我开发一款即时通讯软件(IM,类似于 QQ 聊天软件),在这之前我心里也知道如果多线程操作一个整型值是要加锁的,但是当时为了图代码简便, ...

  7. 作为一名后台开发人员,你必须知道的两种过滤器

    前段时间在网上看到一篇关于过滤器的文章,感觉非常硬核.又因为这个知识点是后台开发中必知必会的技能点,所以分享给大家,一起学习,共同进步! 下面是正文. 对于海量数据处理业务,我们通常需要一个索引数据结 ...

  8. 后台开发人员面试内容——计算机网络(五)

    计算机网络 一.OSI七层网络协议: 应用层--表示层--会话层--传输层--网络层--数据链路层--物理层 五层体系机构: 应用层--传输层(TCP报文.UDP数据包)--网络层(IP数据报或分组) ...

  9. 后台开发人员面试内容——JVM虚拟机(四)

    一.Java类加载机制 类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期包括:加载(Loading).验证(Verification).准备(Preparation).解析(Resolut ...

最新文章

  1. Kernel oops panic 调试 (未完待续)
  2. lpk.dll是什么
  3. UDP和TCP中的伪首部
  4. MRCTF2020]你传你码呢
  5. [android] 解决DatePickerDialog和TimePickerDialog控件取消按钮问题
  6. android仿ios弹框_在“提示”框中:iOS外观(在Android上运行),Google Maps作为Time Machine,下载Wii游戏保存...
  7. “ 紫手环的力量 ” :我想,美好的生活应该是自已造就的...
  8. 新入职了一个卷王 , 天天加班12点!张口闭口就手写spring , 太让人崩溃了......
  9. 会说话的狗狗本电脑版_「电脑知识」硬件狗狗专业电脑硬件检测跑分工具免安装单文件版|电脑硬件|电脑|显卡|狗狗|操作系统...
  10. 怎么用Excel来批量生成SQL语句
  11. Android框架揭秘-Android Binder IPC笔记
  12. 七个基本量纲_超星尔雅三维建模与仿真答案题库
  13. 清除浏览器缓存(js、css等)
  14. 计算机知识演讲稿,乔布斯的演讲稿 我们的IT梦想
  15. 地震模拟在计算机,地震模拟计算机,seismic analog computer,音标,读音,翻译,英文例句,英语词典...
  16. async的waterfall
  17. Qt知识点梳理 —— 静态函数发送信号
  18. 【华为思科】访问web服务器
  19. 苹果电脑IOS ssh远程关机
  20. Android 简单生成二维码名片

热门文章

  1. android studio设置生成的release版本apk的名称
  2. 复旦大学吴立德《数值优化》、《深度学习》和
  3. ELK技术栈—Logstash—Input插件
  4. javascript第一天
  5. 一段从TXT导入excel的py脚本
  6. [LeetCode] Max Points on a Line 题解
  7. 计算机组成原理——指令流水线
  8. Qt on android 蓝牙开发(控制小车)
  9. HashMap是如何实现快速存取的
  10. 团队-科学技术器-模块测试过程