用友开发,用友二次开发U8二次开发规范_第1页
用友开发,用友二次开发U8二次开发规范_第2页
用友开发,用友二次开发U8二次开发规范_第3页
用友开发,用友二次开发U8二次开发规范_第4页
用友开发,用友二次开发U8二次开发规范_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、UB深圳市企管通科技二次开发规范摘要目前U8产品越来越庞大,提供的应用与服务也越来越多样化。公司整体的发展战略要 求U8要成为一个能支持规模化交付的产品。为了达到这样的目标,仅仅通过我们的水平产 品是无法满足客户的行业化、个性化的要求的。所以二次开发就成为一个能满足可以要求的 填充剂,填补水平产品与客户的需求中的差异的空隙。什么是二次开发?二次开发是与一次开发是相对应的,所以凡是由U8产品开发部提供的 U8产品、套件以外的都应属于二次开发的产品。从这个定义出发以下行为属于开发开发范畴。分公司、大区的基于 U8的开发行为。第三方合作伙伴的基于 U8的开发行为。行业开发本部基于 U8产品的开发行为

2、。主要的开发模式。.独立开发模式,独立于产品模式描述:在开发过程中基本不利用 U8产品的构件(只利用登录构件),开发成果形成单独 的可执行文件及动态库,模块不需要与U8门户程序集成,二次开发模块的权限设置、功能升级、部署均独立于产品。优点:对产品的影响小,产品可升级性强,不受产品功能制约。 模块功能灵活度大,能够实现很复杂的功能。缺点:二次开发的模块产品风格与 U8产品风格差距较大,产品中一些很完善的功能 (权 限、打印、格式设置、输出等)不能被二次开发利用,打印、输出等基础功能需要重新 开发,开发效率低。注意问题:如果使用了 U8登录构件,在产品升级后,应测试登录构件是否向下兼容,如果不 兼

3、容要根据新版登录构件的使用文档对二次开发程序的登录部分作修改。禁止行为:为最大限度的保证产品的可升级性,禁止直接修改产品的系统数据表、视图、存储过程等数据库对象。适用需求:深圳市企管通科技UB与产品关联度小,二次开发的功能与产品相对独立,属单独的功能需求,不影响产 品的业务流程,但允许由产品中取数。例如:在U8产品的基础上增加提成管理系统。.通过产品插件接口开发模式模式描述:此模式的开发是利用产品开放的插件接口对原产品模块做功能扩展。开发成果形成单独的动态链接库,模块功能不能单独使用,一般由产品模块通过插件接口依据插 件注册信息自动调用。二次开发模块的权限设置、功能升级、部署均独立于产品。优点

4、:利用插件方式开发, 对产品影响小,产品可升级性强。 插件机制可以规范二次开发 模块的开发方式,插件产品重用性强,功能配置灵活。缺点:受产品插件接口开放程度的限制,目前只有库存模块提供了二次开发插件接口,其他模块还未提供,而库存模块也只提供了单据保存、审核、明细行双击等部分事件的插件接口,面对用户多种多样的二次开发需求,产品的插件接口开放程度还很不够。注意问题:插件开发应完全符合 U8产品提供的插件二次开发规范,尽量采用与产品一致的开发语言(VB6.0)做插件,保证插件数据库操作与产品的数据库操作在同一事务中。 禁止行为:适用需求:客户需求与产品模块结合紧密,需要基于某一产品模块做功能扩展,尽

5、量采用插件方式。目标针对目前的开发现状现我们分几个方面制定开发行为规范,以此规范开发人员的行为, 告诉二次开发人员哪些行为是安全的,哪些行为是危险的。U8二次开发行为规范1、独立模块开发规范利用VB或其他开发工具开发独立的模块是目前一般的开发行为,这种开发方式对U8的依赖最低,藕合度小,受到的升级的影响也最小。在目前U8开发性比较低的情况下这是一种合理的选择。但是这种方式无法做到与系统的无缝结合。在UI的风格上也有可能造成较大的差异。开发分以下阶段进行。需求调研阶段:调研规范:二次开发调研不同于产品功能调研,客户提出的需求有可能代表一类行业的应用方式,但也有可能为该客户独有的需求。要求二次开发

6、人员必须仔细分析客户提出需求的原因,首先确定是否可以通过软件以变通的方式实现用户的需求,确认没有其他解决方案后才可定义为二次开发需求。需求规范:对于典型行业的二次开发的需求,且符合集团行业开发部做行业项目支持的深圳市企管通科技UB条件,需要遵循行业开发部提供的二次开发需求模板编写二次开发需求文档。需求文档要严格按照模板内容逐项编写,特别要注意业务算法、数据精度、效率要求等设计相关的内容一 定要作深入调研。对于分公司负责开发的项目,也可以参照行业开发部提供的二次开发需求 模版进行需求编写,作为下一步设计、研发的指导性文档。二次开发需求完成后,首先要经过用户确认,然后提交项目组召集相关需求、设计、

7、研 发人员进行需求评审,需求确认后即可进行设计、研发工作。设计阶段: 设计原则:1)需求设计一致性:二次开发模块设计必须满足软件需求说明书的所有要求,包括所 有功能要求、性能要求和其它要求。软件需求说明的变化与软件设计说明书的变化 必须保持一致。变化不能随意进行,应置于严格的配置管理之下,对于软件需求确 认后的变更要严格控制,避免二次开发周期过长。2)数据结构独立性:对于二次开发的模块禁止修改产品系统表数据结构及相关视图、 存储过程、触发器等数据对象,最大限度的保证产品的可升级性。二次开发新建数据对象的命名规则应遵从二次开发数据对象命名规范。3)数据一致性、合法性:设计过程中要考虑二次开发模块

8、与相关产品模块数据的一致 性。首先要保证产品的数据安全,尽量避免直接新增或修改系统数据表的记录。如果确实需要维护系统数据表的记录,尽量采用产品开放的业务组件操作数据库记录, 保证数据的完整性、合法性。4)产品化原则:对于有可能产品化或插件化的二次开发需求,在设计时要考虑二次开发模块的通用性、可推广性。二次开发模块要达到易安装、易使用、易维护的设计 要求。尽量使用U8产品使用的构件,需要向集团申请模板编号、模块编号,避免 和产品冲突。编码阶段:1)尽量采用与产品模块开发语言一致的开发语言。2)首先VB语言编码规范遵循 U8产品使用的VB编码规范,见附件。利于二次开发模 块的产品化。其他开发语言编

9、码规范也可参照VB的编码规范执行。3)其次,作如下补充:注释规范:模块开头说明:增加“相关产品模块及本模块与产品模块的关系”、“作者单位”、“作者电子邮箱”、“适用产品版本”配置管理工具可采用 SourceSafe作配置管理。2、二次开发项目命名规范U8中使用的产品有自己的规范,产品以大写的英文字母表示如 AR应收系 统,该产品下的子产品用产品的字母开头后面接字母或数字 AR101设置,AR10 101初始设置,在门户的中的显示为树的形式,其中 AR为AR101的父节点,A R101为的父节点。其他新产品的起名,或二次开发的产品的起名必须遵循上面深圳市企管通科技UB+的规则,并不能和已有的厂品

10、名称相重,下面是在 U8中以使用的厂品名称及相 应的对应的关键字。厅P关键字产品名称1AR应收系统2AP应付系统3BM预算管理4BO物料清单5CA成本管理6CM合同管理7CO网上结算8CP产能管理9CR合并报表10CSCRM系统11DA企业营运分析12EA企业应用集成13EC工程变更14EQ设备管理15EX出口管理16FA固定资产17FC车间管理18FD结算中心19FM资金管理20GF集团财务21GL总账22GR公司对账23GSGSP质量管理24HBHR基础设置25HM人事管理深圳市企管通科技UB26HT人事合同管理27IA系统菜单28MC经理查询29MO生产订单30MP主生产计划31MQ需求

11、规划32NB网上银行33NE网上报销34OM委外管理35PA售前分析36PM项目管理37POWEB财务38PP采购计划39PS管理驾驶舱40PU采购管理41QM质量管理42RT招聘管理43SA销售管理44SG专家财务评估45SOWEB购销存46ST库存管理47TM考勤休假管理48TR培训管理49WA工资管理50WH报账中心51WM保险福利管理对于二次开发项目需要确认项目编号,在以后定义菜单、组件名称、数据库命名时必须 在相关的位置遵循此规范。规范如下:客户化开发项目的开头必须是 EF,然后是项目名,如EFNF表示是二次开发南孚项目。深圳市企管通科技U3+此长度不能超过6位。3、二次开发菜单命名

12、规范二次开发项目的菜单命名开头是项目名如:EFNF。一级产品名称长度为 2位,如:EFNF01 o二级产品名称长度为 2位,如:EFNF0101 o三级产品名称长度为 2位,如:EFNF010101 o无论是独立的二次开发子产品还是在标准产品下增加二次开发菜单都要求遵循此规范。总长度为不能超过14位。4、二次开发权限命名规范权限和菜单命名要求一致,字面必须大写。5、关键项目命名规范【UAP项目】UAP产品在使用前都需要先定义一个项目,此项目必须遵循二次开发项目命名规范。【单据、打印模板】单据打印模板数据的 CardNum字段的前缀必须是项目编号,后面的预置可以自由定义。如:EFNF001【栏目

13、模板】栏目预置在 Meta库中,其cKey字段的前缀必须是项目编号,后面的预置可以自由定义,cProjectNO字段值不能是U870,必须使用项目号。如:EFNF001【过滤模板】过滤预置在 Meta库的flt_defineMeta_Base表中,其FilterID字段的前缀必须是项目编号,后面的预置可以自由定义 ,ProjectNO字段值不能是U870,必须使用项目号。如:EFNF001【数据引擎】实体名称必须以项目号和下划线作为前缀,并以ENT作为结尾。如EFNF_CGDD_ENT业务对象名称必须以项目号和下划线作为前缀,并以BO作为结尾。如EFNF_CGDD_BO【参照】参照的编号必须以

14、项目编号和下划线为开头如:EFNF_Customer。深圳市企管通科技UBU8的开发规范1、代码规范VB程序组件命名规范VB组件命名需要在组件前面增加项目编号,如: EFNFCustomer.dllVB程序开发规范参见附件VB代码规范.chm.Net程序命名空间规范U8 U8的命名空间规范应遵守.Net Framework规范的,在分段部分不完全一样,U8的规范分为至少4段,即EF.项目号.U8.分别为二次开发名段:EF.总产品名段:项目号.U8.小产品名段,服务框架:指定产品模块名称和服务的框架,如AppSvr-应用服务器,Workflow工作流服务器,Sale销售管理,Stock库存,Fr

15、amework等含义比较清晰的词或词组, 不要用很难理解的太简单或太冗长的词或词组.界面层次名段: UIUser Interface, UIPUser Interface Processes, CI Client Side Interface, SI Server Side Interface , BF Business Fa?ade, BOBusiness Object, DAO Data Access Object, DO Data Object.对后续的段不做要求。.Net程序开发规范参见附件20031008 U8 NET 代码规范.pdf2、数据库规范参见数据库开发文档。3、COM+开

16、发规范Com钮件规范无状态性开发的接口组件,最好不要具有公共属性,公共字段,不允许具有静态成员,静态方法。可序列化接口组件的接口类型必须可被序列化,及返回类型,参数类型必须是可被序列化的类型。特别注意的是,当你使用集合类型或DataSet的时候,你需要确保运行时,它里面所包含的类型必须能够被序列化。out参数深圳市企管通科技UB不允许使用out参数,可以使用ref参数代替。内部引用接口组件的接口上所引用的类型,最好在其他的程序集中实现,最好不要在自己程序集中实现,因为如果是在自己内部实现,如果使用了自定义类型,那就不能写在你的接口程序集里,因为如果这样,就增加了 CI对程序集自身的依赖性,这样

17、CI被部署到客户端,程序集自身也要被部署到客户端了,但是CI和程序集同名,无法放在一起。但是生成工具也会尝试生成,不过将略去初始值(只具有默认值),移除内部逻辑代码 (方法,属性中的逻辑)。如果在接口程序集中声明了一些类型,而在接口类中没有引用, 那么生成工具将忽略(移除)这些类型。类型忽略接口组件的一些基类型将会被忽略,比如 ServicedComponent, MarshalByRefObject等 系统基类型,他们的属性,方法不会被生成。OneWa昉法只能具有Void返回值,不能具有带 ref参数的方法。Com+使用方式在你的接口类(如 BF , BFDISPATCH ) 上标记特性 S

18、erviceVisible 。你可以使用ServiceVisible(ServiceTypes.SingleCall) 或 ServiceVisible(ServiceTypes.Singleton) 来指定是 SingleCall 对象,还是 Singleton 对象。,认(ServiceVisible() )是 SingleCall 。 如 ServiceVisible(ServiceTypes.SingleCall) public class BuesinessFacade MethodTypes 特性MethodTypes特性可以指定在方法上,构造参数可以使用MethodTypesOp

19、tion枚举Sync :只生成同步方法(默认,或不写)。Async :只生成异步方法,不包含同步方法。Both :同时提供同步方法和异步方法。OneWay指定该方法为 OneWay如MethodTypes(MethodTypesOption.Sync)public DataSet GetData(string id) .Context的使用如果你的接 口程序集是从 UFIDA.U8.Framework.BizBase.dll 中 的 BFBase 和 BOBase 或 IcontextContainer 继承或实现,那么就可以利用Context来传递自定义对象或数据(必须是可序列化的)。如,在

20、客户端,对BF访问时,通过Add方法可以向Context传递额外的数据,该数据可以随着调用传递 到服务端。BFObject bf = new BFObject();bf.context.Add( key, value );bf.DoSomrthing();object value = bf.contextkey”在服务端的BF,你也可以取出并改变 Context的值,然后让它原路返回到客户端。深圳市企管通科技UBthis.context key = new value ”;除此之外,SingleCall对象在服务端任何状态改变,客户端都无法直接得到不过,需要注意的是,当你从 BFBase继承的

21、时候,服务端无法向客户端传递数据,因为你的组件是COM+件,具有JIT特性,状态无法取得,除非你禁用了JIT (非常不推崇)。如果不是COM+件(从BOBaseiJ现IContextContainer ),不会有此问题。客户端向服务端传递Context没有任何限制。Com+生成方式生成工具Generate.exeUsage:Generate source destination -keyfile: -lib:source:指定你的接口程序集位置destination: 指定你的生 成目标 路径,工具 将在你指定的目录 下建立 ClientInterface 和ServerInterface 两个目录,用来存放文件,每个目录会生成两个文件,一个是接口,一个是代理.-keyfile:如果是强名称(COM+成:件,指定签名文件。-lib:指定你的接口程序集所依赖的文件的目录,用“;”来标记,如-lib:C;Winnt;C:winntsystem32发布工具Publish.exeUsage Filepath|Directory -si -ciFilepath|Directory :可以指定一个文件,或则一个目录-si:表明要发布SI-ci:表明要发布CI可以把依赖文件放入Reference目录下最后会在你指定的目录或文件所在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论