综合应用WPF/WCF/WF/LINQ之八:后台开发人员的Solution
下面对各个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,编译非常慢,导致开发人员的时间浪费过多。
综合应用WPF/WCF/WF/LINQ之八:后台开发人员的Solution相关推荐
- 综合应用WPF/WCF/WF/LINQ之三:采用用代码创建的方式实现CheckListBox的CustomControl
以我们的Eallies OA系统为例,实现PageBase的方法如下: 1.在Eallies.OA.UI.Controls.Logical项目中添加一个纯的Class,并让其继承于System.Win ...
- 综合应用WPF/WCF/WF/LINQ之二十七:代码生成器之DBMLToProcedure
本存储过程代码生成器能处理如下几种形式的存储过程: 1.形如InsertTableName的存储过程,用于插入某条记录. 2.形如UpdateTableNameByFieldName的存储过程,用于根 ...
- 综合应用WPF/WCF/WF/LINQ之十七:关于简化发布新版本的步骤的问题
对于比较简单的项目,我们可以直接编译项目,然后将bin\Debug下面的文件Copy到发布目录即可. 但对于比较复杂的项目,如加入了配置文件的项目,则不能这样做.这时要求发布目录下的文件除xbap.m ...
- 综合应用WPF/WCF/WF/LINQ之一:DEV-WOW 作品源代码公布
Eallies OA 使用说明 1.本程序在Windows 2003.SQL Server 2005.Visual Studio 2008环境下测试通过. 2.请将项目解压缩至某一目录下,如D:\Ea ...
- 为什么技术团队领导者多是后台开发人员
先别急着往下拉文章,现在思考一个问题:你现在的软件开发团队或之前的团队,带领团队的人处于软件开发职能的哪一个岗位?产品经理,UI设计还是前端开发,后台开发,测试人员,运维人员?(专业团队除外) 给出上 ...
- 多线程编程是后台开发人员的基本功
这里先给大家分享一个小故事: 在我刚开始参加工作的那年,公司安排我开发一款即时通讯软件(IM,类似于 QQ 聊天软件),在这之前我心里也知道如果多线程操作一个整型值是要加锁的,但是当时为了图代码简便, ...
- 作为一名后台开发人员,你必须知道的两种过滤器
前段时间在网上看到一篇关于过滤器的文章,感觉非常硬核.又因为这个知识点是后台开发中必知必会的技能点,所以分享给大家,一起学习,共同进步! 下面是正文. 对于海量数据处理业务,我们通常需要一个索引数据结 ...
- 后台开发人员面试内容——计算机网络(五)
计算机网络 一.OSI七层网络协议: 应用层--表示层--会话层--传输层--网络层--数据链路层--物理层 五层体系机构: 应用层--传输层(TCP报文.UDP数据包)--网络层(IP数据报或分组) ...
- 后台开发人员面试内容——JVM虚拟机(四)
一.Java类加载机制 类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期包括:加载(Loading).验证(Verification).准备(Preparation).解析(Resolut ...
最新文章
- Kernel oops panic 调试 (未完待续)
- lpk.dll是什么
- UDP和TCP中的伪首部
- MRCTF2020]你传你码呢
- [android] 解决DatePickerDialog和TimePickerDialog控件取消按钮问题
- android仿ios弹框_在“提示”框中:iOS外观(在Android上运行),Google Maps作为Time Machine,下载Wii游戏保存...
- “ 紫手环的力量 ” :我想,美好的生活应该是自已造就的...
- 新入职了一个卷王 , 天天加班12点!张口闭口就手写spring , 太让人崩溃了......
- 会说话的狗狗本电脑版_「电脑知识」硬件狗狗专业电脑硬件检测跑分工具免安装单文件版|电脑硬件|电脑|显卡|狗狗|操作系统...
- 怎么用Excel来批量生成SQL语句
- Android框架揭秘-Android Binder IPC笔记
- 七个基本量纲_超星尔雅三维建模与仿真答案题库
- 清除浏览器缓存(js、css等)
- 计算机知识演讲稿,乔布斯的演讲稿 我们的IT梦想
- 地震模拟在计算机,地震模拟计算机,seismic analog computer,音标,读音,翻译,英文例句,英语词典...
- async的waterfall
- Qt知识点梳理 —— 静态函数发送信号
- 【华为思科】访问web服务器
- 苹果电脑IOS ssh远程关机
- Android 简单生成二维码名片