解决方案:七彩cms云转码_云转码+cms一体化自适应自动发布系统
优采云 发布时间: 2022-11-28 21:20解决方案:七彩cms云转码_云转码+cms一体化自适应自动发布系统
想要云端转码切片和CMS自动发布系统吗?云转码+cms一体化自适应发布系统,满足你所有需求,后台上传视频,自动转码添加切片,前台根据后台分类配置,自动生成完整的针对移动端优化的在线视频CMS和CMS配置系统,SEO优化效果极佳。本系统就是今天要说的云转码+cms集成系统,完美解决了两个系统集成难的痛点。
云转码+cms集成系统
云转码+cms一体化系统具备所有云转码切片功能,以及所有在线视频播放CMS功能,后台自动配置,前台自动生成,分类自动生成,视频自动生成,在线播放,截图展示,分享链接展示都有. 本系统完美解决了大多数人搭建在线视频播放的需求。不需要技术,一键搭建,简单易用,没有花哨的功能,只有最实用的功能。
功能
" />
在线转码、在线切片、防盗链、门户CMS配置、视频分类、视频筛选、在线视频播放、分类展示,你期待的应有尽有,更多介绍可以在官网和gitee查看。
解决痛点
无法自行开发云转码切片管理后台的用户或企业用户。
认为各种云平台的云转码服务太贵,想自己搭建云转码切片平台的用户或企业用户。
想要控制自己的视频数据的消费者或企业用户。
" />
无法搭建在线视频播放平台的用户或企业用户。
无法将云端转码后的视频整合到在线视频播放平台的用户或企业用户。
想要云转码+SEO优化+CMS在线视频应用+低成本运营一站式解决方案的用户或企业用户。
大截图
解决方案:基于组件的管理信息系统中代码自动生成技术的研究
武汉理工大学硕*敏*感*词*论文摘要 伴随着网络的迅猛发展,管理信息系统的开发在市场中占有的分量越来 越大。但在管理信息系统开发中,重复代码的编写工作是一件繁琐的体力劳 动,例如建立大批量数据库表、生成系统界面等,程序员成为了高度脑力劳 动和繁琐的体力劳动的矛盾混合体。代码生成技术为解决管理信息系统的快 速开发问题具有重大的意义。代码*敏*感*词*的使用可以将软件以最快的速度推 向市场,可以自动完成重复的繁琐编码工作。 论文研究了基于组件的代码自动生成技术,该技术是降低管理信息系统 类软件开发强度、缩短开发周期的可行性方法;并指出了以.NET作为自动生 成的平台优于以往微软开发技术如c0M/DCOM技术,在此基础上,从自定义.NET 组件相对于NET原创
控件在开发管理信息系统的优势加以分析,提出了基于 自定义组件的代码自动生成技术。 总结了代码自动生成技术在管理信息系统中的应用,分析了代码生成技 术的优势和劣势、代码*敏*感*词*的实现方法,提出了基于数据库设计文档的代 码自动生成技术。 对管理信息系统的模型进行总结和抽象,提出了代码*敏*感*词*的模型,并 讨论了代码生成技术所收录
的关键技术,如VBA技术、映射技术,提出了利 用代码生成技术自动生成数据库、管理信息系统界面的方法。
以实验室监测仪器网络化管理系统为例,探讨了基于代码自动生成的管 理信息系统开发的实现流程,并对基于代码自动生成的软件开发方式与传统 的软件开发方式进行比较,指出代码自动生成技术的可行性及其不足之处。 通过测试和实际使用证明,基于组件的代码自动生成能够使管理信息系 统的开发和维护更方便、更快捷、更科学,有效地提高开发人员的工作效率, 把开发人员和维护人员从单调的代码编写中解放出来,使其能够开发出更符 合客户需求的管理信息系统。 关键词:NET组件;自定义组件;代码自动生成;管理信息系统;数据库 武汉理工大学硕*敏*感*词*论文 Abstract 、聃ththeswift development ofthenetworkthedevelopment ManagementInformationSystem(MIS)areoccupied moreandmore widely inthemarket,but therearelotsofredundantworkinthesoftware developmentprocess,asfollows, theestablishmentofmass database,theproduction systemsurfaceandSO programmerhasbecomea contradictorymixtureofthe highly mentallabor andthetrivial physical labor.Automaticcode generationtechniques havethe great significance forthesolutionofthe problems ofswift development ofMIS.Theuse ofthe code generator Can push marketquicklyand automaticallycomplete codingwork ofrepeated andtrivial. 111ethesis presented theautomaticcode generationtechniquesbasedonthe component,which isfeasiblemethodtoreducethe designintensity andshortenthe designcycle ofMISsoftware;it hasalso pointed outthatit isexcelledtomake the.NETas design platform than formerlyMicrosoft technical like COM/DCOMtechnology.Moreoveraccording superiorityof.NET component,itpresented automaticcodegenerationtechniques basedon custom component. Thethesis summarized applicationofautomatic code generation techniques MIS,andanalyzedits advantages disadvantagesandthe realizationmethod,produced theautomaticcode generationtechniques basedon thedatabase design documents 111ethesissummarizedandabstractedthemodelof MIS,produced thecode generatormodel,discussed keytechnologies,suchasVBA technology、the mappingtechnologyandproduced themethodofautomatic produce databaseand themanagement information systemusing code generationtechniques Thethesis tookthe network managementsystem laboratory’Smonitor instrument allexample,discussed realizationflowofthe design managementinformation system basedonthecodeautomatic generatorcompared designmodelmethodbasedoncodeautomaticgenerator withthetraditional 武汉理工大学硕*敏*感*词*论文softwaredesignmethod,pointed outthe feasibility andthe deficiency ofthecode generationtechniques. Through tests.thecodeautomatic generator basedonthemodulecould出 designandmaintenanceofMISmore convenientlyquickly researchers’workingeRiciency effectivelyreleased researchersandmaintenanceperson fromthebarrencodecompilationtodesign thenecessaryMISwhiehsatisfiedthecustomers. Key words:.NET component;custom component;generating codeautomatically;management informationsystem;database III 武汉理工大学硕*敏*感*词*论文 1.1研究背景 第1章绪论 随着计算机平台从单机、机群、局域网到互联网的转移,软件技术的发 展正进入一个变革性的阶段。
管理信息系统(MIS。managementinformation system)的开发在市场中占有的分额越来越大,*敏*感*词*很多软件公司都对管理 信息系统进行了很多的专题研究。从未来的软件发展和客户需求来看,管理 信息系统的市场需求还会不断扩大…。本文提出了一种新型的软件开发方法, 并着重探讨软件的协同性和动态性、以特定的MIS领域的代码自动生成为基 础,探讨基于组件的软件系统的开发方法与技术。 管理信息系统,是一个由人、计算机等组成的能进行信息的采集
、传递、 储存、加工、维护和使用的系统“3。从概念上,管理信息系统由四个部件构成: 信息源、信息处理器、信息用户和信息管理者。它们的联系如图卜l所示。 信息源是信息的产生地;信息处理器负责信息的传输、加工、保存等任务; 信息用户是信息的使用者,利用信息进行决策;信息管理者负责信息系统的 设计、实现和维护。 管理信息系统构成图传统的信息类软件开发模式受限于开发周期和成本、入员调配上的因素, 不太适合于规模较大项目的设计和实现。’。在MIs、ERP等信息类软件系统开 发过程中,开发人员在开发不同的系统,有大量时间用于界面开发等重复性 工作,浪费大量的人力,严重制约程序员工作效率的进一步提高;并且因为 机械的重复编码工作对人力资源的大量消耗,设计和开发人员没有足够时间 和精力研究客户需求,从而造成更大浪费,进而延误软件推向市场的时间。
武汉理工大学硕*敏*感*词*论文 代码自动生成技术相对于计算机技术的发展而言属于一门比较新的技 术,在软件系统开发过程中,代码生成技术的使用可以使代码更健壮,缩短 软件进入市场的时间,它可以自动完成重复的繁琐编码工作,降低软件开发 的强度,缩短开发周期,减少重复代码的书写。信息系统开发工作中,能尽 可能重用己有代码和设计,将对加快开发进度和提高软件产品质量有很大帮 助。如果能够按照一定的方式和流程,自动的生成全部或者大部分的管理信 息系统代码,一方面能够缩短软件项目开发周期,降低成本;另一方面,能 够解放开发人员的生产力,提高软件产品的设计质量。’。因此,代码自动生成 技术越来越引起各大软件公司和各种计算机方面研究机构的重视,对降低软 件开发的强度,缩短开发周期,减少代码的重复书写等有着重要的意义。 1.2*敏*感*词*研究综述 1.2.1管理信息系统的发展 管理信息系统在现代社会已深入到各行各业,由于计算机技术的迅速发 展和普及,管理信息系统事实上已成为计算机管理信息系统。管理信息系统 是一个历史范畴,它的内涵随着时间的变化而不断地变化。从最早的业务处 理系统到流行的管理信息系统,从简单的部门信息管理到企业战略信息管理, 反映了信息技术与管理活动相互融合的进程嘲。
20世纪50年代,企业将目光首先集中到物料需求方面,建立库存模型以 控制合理库存。1965年,实现使库存压缩到最低水平的物料需求计划(MRP, material requirementsplanning)管理方法。在此基础上增加能力需求计 划,使系统具有生产计划和能力平衡,且具有反馈能力的闭环MRP系统。闭 环MRP进一步扩展,形成了制造资源计划(MRPII,manufacturingresources planning),以物料需求为核心,将企业各个环节联系起来扩大信息共享,使 生产、销售、财务、采购等紧密结合在一起,组成全面生产管理的集成优化 模式。90年代又形成企业资源计划(ERP,enterpriseresourcesplanning)。 它既具有MRPII的实用性,还考虑到混合型生产需要,为企业提供了全方位 的解决方案。针对ERP数据库设置复杂,实施过程太长等弊端,又出现动态 企业模型(DEM,dynamicenterprisemodel),把各种生产类型和制造环境 武汉理工大学硕*敏*感*词*论文的生产经营过程集成起来,超越企业边界把业务工作流程在标准参考模型的 基础上,进行业务流程映射,灵活加以组合,以适应各种情况“1。
管理信息系统是一个不断发展的新型学科,其定义随着计算机技术和通 讯技术的进步也在不断更新,在现阶段普遍认为管理信息系统是由人和计算 机设备或其他信息处理手段组成并用于管理信息的系统。随着计算机和数据 库技术的迅猛发展,管理信息系统也出现了长足的进步,从主机/终端模式到 客户机/服务器模式,再到B/s三层体系,管理信息系统向着高度信息共享的 方向不断发展o,。 主机/终端模式是实现信息共享的最初模式,其特点是系统稳定、易于维 护,缺点是对主机资源要求过高,对*敏*感*词*应用支持不够,难于实现跨硬件 和跨平台的信息共享,终端应用任务简单,造成了不必要的浪费。客户机/服 务器模式是20世纪90年代兴起的一种全新的计算模式,它一方面充分共享 服务器的资源,另一方面充分利用了客户机的本地资源,可支持*敏*感*词*的应 用,但其维护费用与推广费用比较大。3。B/s三层体系结构正越来越受到企业 信息管理应用的青睐,这种模式的特点是所有应用服务都有专门的应用服务 器处理,减轻了数据服务器的处理负担,可利用服务器群集技术,支持大规 模用户的应用,客户端也只要一个浏览器,使用很方便01,但其数据安全性不 高、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,难 以实现传统模式下的特殊功能要求。
例如通过浏览器进行大量的数据输入或 进行报表的应答、专用性打印输出都比较困难和不便。 B/S与C/S这两种技术各有利弊,建立C/S、B/S结构相结合的网络构架 已成为必然趋势。信息发布采用B/S结构,保持了瘦客户端的优点。装入客 户机的软件可以采用统一的wwW浏览器。而且由于WWW浏览器和网络综合服 务器都是基于工业标准,可以在所有的平台上工作。数据库端采用c/s结构, 通过ODBC/JDBC连接。这一部分只涉及到系统维护、数据更新等,不存在完 全采用C/S结构带来的客户端维护工作量大等缺点。并且在客户端可以构造 非常复杂的应用,界面友好灵活,易于操作,能解决许多B/S存在的固有缺 点。对于原有的基于c/s体系结构的应用,只需开发用于发布的WWW界面, 就可非常容易地升级到这种体系结构,并保留原来的某些子系统。这样就充 分地利用现有系统的资源。 管理信息系统是一个交叉性综合性学科,组成部分有:计算机学科(网 武汉理工大学硕*敏*感*词*论文络通讯、数据库、计算机语言等)、数学(统计学、运筹学、线性规划等)、 管理学、仿真等多学科。随着科学技术的高速发展,管理信息系统涉及的范围 还要扩大。 1.2.2基于组件的软件开发技术 组件是软件系统中的一个具有功能性的部分,它可以与其他的组件集成 去形成一个更大的部分或者是一个完整的应用程序。
组件也是一个可替换单 元,可以构成软件系统的即插即用(plug play)的软件成分,因此,采用组件技术的软件系统更易于开发且具有更大的灵活性。组件技术就是利用某 种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细 节进行了封装,同时对各种业务逻辑规则进行了实现,向用户屏蔽了内部操 作细节,同时也体现了应用系统安全机制和事务机制嘲。完成后的组件是与语 言本身己经没有了任何的关系,甚至可以实现跨平台。对使用而言,它就是 实现了某些功能的、有输入输出接口的黑匣子。 软件开发技术的发展经历了由结构化一面向对象一组件软件技术这样一 个过程,从本质上来说,这也是一个软件重用思想不断深化、发展的过程。 将组件方法和软件工程方法学结合,就形成了一种新的软件开发模式——基 于组件的软件开发模式““。基于组件的开发模型(CBSD)如图1-2所示。将 一个软件系统的开发分为三个阶段:应用系统的分析和设计,组件开发和组 件装配。 面向对象软件的基本组成单元是类和对象,基础核心是“类”的概念。 类的封装问题是细粒度概念,对于整个软件来说,完全从类的分析、设计、 构建开始完成项目的开发耗费是巨大的。
而组件提供了更粗粒度的封装方法。 组件的粒度可以用组件提供的功能的数量来度量,特别是功能点的数目来进 行度量。用功能点度量比用代码行度量更具有优势,因为用不同的编程语言 实现相同的功能代码行的差异比较大嘲。 应用系统分析与设计系统需求分析 软件体系结构 领域工程 图1-2基于组件的软件开发模型由于组件数量、种类等的不断增多,组件库的管理方面的研究方兴未艾。 在组件库管理系统方面,美国军方与政府资助的项目建立了组件库系统如 CARDS,ASSET,DSRS等“”。STARS项目就组件库之间共享资源和无缝互操作 问题,提交了(ALOAF,assetlibraryopenarchitectureframework)开 发体系结构的组件库框架1.2版“”。另外,在软件产品线系统方面,成功应 用实例有瑞典CelsiusTechSystem公司和美国空军电子系统中心(Esc)的产 品线系统“”。 1.2.3代码自动生成技术 代码生成即CodeGeneration,在使用VisualStudio等开发工具的时候, 很多代码框架都是自动生成“”。代码生成可以看作是一种自动转换机制或者 一种由源模型到目标模型的映射,它是用工具程序(代码*敏*感*词*)生成文档、 界面、程序段和控件等“1。
编译器其实是代码自动生成的一个例子,从高级语 言生成机器语言,编写程序的行为可以认为是在干涉编译器,影响它生成代 码的行为。 代码生成有不同的层次,最低级的是IDE那样的函数框架,其次是MFC 那样的工程向导,再高级的是IDL的接口定义语言,再然后是类似微软提出 武汉理工大学硕*敏*感*词*论文的DSL(DomainSpecificLanguage)。’。 国内夕}很多软件公司和各种计算机方面的研究机构都一直在研究代码自 动生成的技术。比如微软公司,微软的各种开发工具(甚至包括像Office这 类非严格意义上的开发工具)就都提供了丰富的代码自动生成功能。这些功 能体现在各种各样的开发向导上.如著名的MFC应用程序框架、VisualBasic 的“所见即所得”开发环境等。 代码*敏*感*词*可以用在很多不同类型的应用软件开发中。最常用的在数据 库访问和用户界面上。最多的是用在数据库访问方面,因为数据访问的代码 是重复性非常高的。另外,生成数据访问层提供了技术平台的可移植性,并 为平台可移植的益处提供了标准。用户界面编码也有很大的重复性,所以它 也成为*敏*感*词*的通常的目标。另外,~个用户界面*敏*感*词*也可以提供多方面 的实现,比如针对同一份定义,生成胖客户端和瘦客户端等。
对应用程序分类是困难的,特别是代码*敏*感*词*的多样性。一种区分的方 法是观察*敏*感*词*的输入和输出。在输入端可以使用代码,或者设计模型作为 输入。在输出端,可以根据一些条件创建输出,或者设计部分实现的新的代 码,或者设计完全实现并且需求不会扩展的代码““。 基于这样的输入和输出,我们可以得到一些*敏*感*词*的模型: (1)Codemunger。Codemunger读入代码作为输入,然后创建新的代码作 为输出,这些新代码可以部分的或者完全的依赖于*敏*感*词*的设计。 (2)内联代码增强器。这种模型读入代码作为输入,以输入代码作为基础 创建新代码,但是有一部分代码基于原创
代码的设计扩展而来,嵌入式SQL 语言,比如Pro*C,就是内联代码增强器的例子。SQL是用C代码写的,生成 器从实现了命令和查询的c代码中的SQL扩展,创建c代码。 (3)混合代码*敏*感*词*。这种模型使用代码作为输入,然后使用输入代码为 基础创建新代码,但是返回输出代码到输入的文件中。向导经常就作为混合 代码*敏*感*词*来实现。代码中嵌入的特别的注释,来定义*敏*感*词*添加新代码的 范围。 (4)局部代码*敏*感*词*。局部代码*敏*感*词*使用一个抽象的定义(如数据库设 计文档模型等)来作为输入,然后创建输出代码,用户自己使用子类来做扩 展,以完整实现设计。
" />
(5)层*敏*感*词*。这种类型的*敏*感*词*从一个抽象的设计创建完整的输出代码 武汉理工大学硕*敏*感*词*论文集。这种代码意味着不作任何扩展。这是目前开源和商业*敏*感*词*最普遍的形 1.3本文研究内容根据*敏*感*词*标准化生产的软件开发趋势与所存在问题的分析,现提出了 自己的解决方案——基于.NET组件的代码自动生成平台的研究设想。该设想 主要围绕组件的标准化、自动化生产以及可复用组件的管理、组装等问题进 行探索性的研究,结合管理信息系统的特征,论述了软件复用在开发该系统 中的实际应用。通过软件复用技术的系统分析,对基于复用的信息管理系统 的项目开发的关键技术进行了较深入的研究和实践,为基于复用的软件项目 开发提供参考。 本文采用面向对象的编程思想,结合VisualStudio.NET和SQL Server 相关技术,实现系统的平台无关性,以及数据的标准化,有助于以后系统的 扩展性;采用组件技术,提高系统的灵活性和可扩展性;采用中间件技术, 提高系统的可靠性和稳定性;采用软件复用的思想,结合组件技术,实现某 些代码的自动生成,降低软件开发的强度,缩短开发周期,减少代码的重复 书写。 武汉理工大学硕*敏*感*词*论文第2章.NET介绍 Microsoft.NET是为了简化在第三代因特网的高分布式环境下的应用程 序开发,基于开发的互联网标准和协议实现异质语言和平台的高度交互性而 构建的新一代计算和通信平台““。
Microsoft.NET代表了一个集合、一个环境、一个可作为平台支持新一 代Internet编程结构…1。 (1).NET首先是一个环境,这是一个理想化的支持未来互联网环境,应该 以一个整体的服务的形式展示在最终用户的面前,用户只需要知道自己想要 做什么,而不需要一步步的在网上搜索、操作来达到自己的目标。 (2).NET谋求的是一种理想的互联网环境,而要搭建这样的一种互联环 境,首先需要解决的问题是针对现有的互联网的缺陷,来设计一种下一代的 Internet结构,这种结构是面向软件和应用层次的一种有别于浏览器只能景 泰浏览的可编程Internet软件结构。 (3).NET的最终目标就是让用户在任何地方、任何时间,以及利用任何设 备都能访问他们所需要的信息、文件、程序,而不需要知道这些东西存在什 么地方,甚至不需要知道如何获取,只需要发出请求,然后只管接受就是了。 而所有的后台的复杂性完全屏蔽起来。 2.1.NETFramework .NET Framework的目的是便于开发商更容易地建立网络应用程序和WEB 服务,它的关键特色是提供了一个多语言组件开发的执行的环境。从层次结 构来看,.NETFramework又包括三个主要组成部分:通用语言运行环境 (commonlanguageruntime),服务框架(servicesframework),上层的两类 应用模板——面向WEB的网络应用程序模板(WebForms或WebService)和 Windows应用程序模板(WinForms)“”. 图2—1显示了.NET框架的各个组成部分和它们之间的关系。
武汉理工大学硕*敏*感*词*论文图2-I.NET框架的逻辑视图 公共语言运行期(CLR,commonlanguageruntime)通过提供运行期执行 环境,建立了.NET框架的基础。所开发的在此环境中运行的应用和组件称为 托管(managed)应用和组件。之所以称为托管,是因为CLR管理这些应用和 组件中的代码的执行过程,并提供大量服务简化其开发和部署。CLR最主要的 一个特征是其自动内存管理和垃圾回收功能。这一特征有助于集中实现组件 行为而不用担心内存管理、内存分配相关的编程错误。 CLR可以用具有良好设计的、简单直观的API或者基于构造的对象模型来 表述组件功能,例如可以用元数据attribute说明性地描述属性、方法和事 CLR另一个重要特征是一旦实现了组件,CLR就可以自动在一个或多个应用程序中应用,而不需要任何额外的注册。收录
组件的配件可以按照并行的 方式进行改版和部署。也就是说,CLR可以使多个版本的组件共存。这样就可 以进一步开发和部署组件的版本而不会因为疏忽而破坏任何依赖于当前组件 版本行为的现有应用程序。同时,CLR提供真正的语言互操作性,可以从任 何.NET框架编程语言(如C#,VisualBasic.NET,Microsoft Jscript.NET 和MicrosoftVisualJ#)中开发、使用和继承组件,这样组件开发者可以使 用任何喜欢的语言开发组件。
武汉理工大学硕*敏*感*词*论文.NET框架类库位于CLR的上层,它用一种一致、直观的方式显示了类的 丰富层次结构,其范围覆盖了大量不同应用程序和组件开发方案。通过提供 共同的基础和可以让所有组件及应用程序共享的API,.NET框架类库真正实 现了基于组件的编程。大多数类库可以分成多个部分(如图2-I)。每个逻辑部 分都与一组相关的命名空间相互关联。而命名空间用于在类库中基于共同且 的、功能或技术目标刨建逻辑与层次的类的分组。基类库(BCL,baseclass library)包括许多常用的命名空间如:System,System.Collections和 System.Diagnostics。在所有的应用程序和组件中它提供了基本的功能,包 括最初的基本类型(Int32、String和Boolean)和常用的数据结构(例如数组、 堆和哈希表)。BCL还包括诸如网络连接、协议实现、文件和I/O流的类、多 线程、文本处理、正则表达式、全球化支持和反射等功能。很多的高层类库 都是以此为基础而构建的。 表示数据访问的ADO.NET层,作为System.Data命名空间和其子命名空 间的一部分嵌入到.NET框架中。
ADO.NET提供了对断开或离线缓冲的关系数 据进行操作的能力。数据访问层能访问各类数据库引擎,对微软的SQLServer 提供非常高性能的连接。 XML层是ADO.NET层的对应层,包括了System.Xml命名空间及其子命名 空间中的类。XUL层能有效地访问有结构和无结构的瑚I.数据。此外,它还 提供各种基于行业标准的实现如可扩展样式表语言转换(xsLT,extensible stylesheetlanguagetransformations),XML路径语言(Xpath)和XML模式 (Schema)。这一层的类库也赋予了XML格式串行化对象的能力。 GDI+层代表由System.Drawing命名空间和其子命名空间提供的面向对象 制图和绘画功能,收录
原创
物体、向量技术和格式化文本,并能使用和创建 不同格式的图像文件,包括JPEG,GIF,BMP和TIFF等。 组件黻由Syste吐C删tModel和Syst印Lca甲0ne训lIDdeLDesign命名空间的 类组成,提供把类转变成可设计的、定制的、串行和反串行的组件结构的设 计工具。微软的VisualStudio.NET就是以此模型构建的。
这一层使得不同 应用开发技术能够共享类似的组件创建和技术以及设计模式。 图2-l中的最顶层描述了应用开发技术:ASP.NEr(ebForms和)矾.Web服9D以及 WindowsForms,即它提供基于.NET框架支持的图形化Win32客户端和服务器端应用程序 开发。在SystemWindows.Forms命名空间中实现的WindowsForms以开发Win32平台 10 武汉理工大学硕*敏*感*词*论文 的应用程序为目标。而在System.Web命名空间和其子命名空间中实现的 ASP。NET和WebForms支持Web应用程序以及XMLWeb服务开发。 2.2 ADO.NET ADO.NET是.NET平台中专门用于存取后端数据库与迸行数据操作的一组 类。ADO.NET虽然是ADO的改进版,但是它比ADO的功能要强大了许多。ADO.NET 还引入了过去所没有的面向对象的结构,让数据应用程序的编写更为结构化。 除此之外,ADO.NET也采用了标准的XML作为数据交换格式,让网络上的不同 系统也能相互运作。“”” 如图2—2显示了使用ADO.NET时要用到的主要对象。 01eDbDataReaderDataScc sqlPataReader 图2-2 ADO.NET的主要对象 (1)01eDbConnection和SqlConnection对象,代表数据库连接;类似 于ADO的Connection对象。
(2)OleDbCommand和SqtDbCommand对象,代表将要直接发送到数据库 的SQL文本字符串。类似于ADO的Command对象。 (3)01eDbDataAdapter和SqlDataAdapter对象,用于保存数据库的 SELECT、INSERT、UPDATE和DELETE命令。这些对象可以作为数据库和DataSet 对象之间的中介。可以使用Fill方法填充DataSet对象并从数据库断开连接, 然后使用UPDATE方法重新连接到数据库,并将在DataSet对象中所做的更改 保存回数据库。 (4)DataSet对象收录
实际数据的副本,类似于断开连接的ADO Recordset对象。DataSet对象可以收录
DataRelation对象和Contraint对 武汉理工大学硕*敏*感*词*论文 象,这两个对象分别代表数据库之间的关系和这些表中数据的约束。DataSet 对象还可以收录
DataTable对象,这对象又可以收录
DataColumn和DataRow, 使用DataTableMapping对象和DataColumnMapping对象,数据集可以将数据 库中的表和列映射为相应的DataTable对象和DataColumn对象。
(5)SqlDataReader对象和OleDbReader对象代表连接的、仅向前移动 的、只读数据读取器、如果能够保持与数据库的持续连接,并且只希望读取 数据而不进行更改,在这中情况下,就不需创建DataSet对象。数据读取器 类似于连接的、单向、只读ADORecordset对象。 在ADO.NET的主要对象中,DataSet是其核心对象之一,它提供了独立于 数据源的数据访问,为了实现这种平台互用性和可伸缩的数据访问,ADO.NET 采用了基于YOaL数据的传输格式。当数据传输时,ADO.NET是将DataSet表述 为XML,然后XML格式传递给其他组件。DataSet的这种设计使我们能够使用 XML方便地通过WEB将数据传输。 ADO.NET结构的另一个核心对象是.NET数据提供程序(DataProvider), 它用于实现数据操作和对数据的传递、单向、只读访问。.NET数据提供程序、 DataSet和xML之闯的关系如图2—3所示。 2.3.NET的优势 数据库 图2-3 ADO.NET框架图 对于那些以WINDOWS以.NET为现阶段主流的开发技术和应用平台的公司 而言,Microsoft现在主推的.NET成为了公司以后开发的一个主流技术“”。
武汉理工大学硕*敏*感*词*论文 以往使用微软开发技术的开发人员一直习惯使用ASP进行WEB编程,使 用VisualBasic,VC进行企业级的应用程序编程,基于COM/DC渊技术设计 应用程序。当今社会进入互联网时代,使用以往的工具、技术进行软件开发 时总存在着一些缺点。例如:用ASP开发WEB程序时,比较单一,交互性差, 缺乏灵活性,对用户的一些特殊数据无法处理;而用COM/DCoM技术开发的程 序,很难在互联网上*敏*感*词*部署和使用。首先,不可能*敏*感*词*下载ActiveX, 其次,不能轻易跨越防火墙并受限于某些网络协议。 .NET正好能解决以上的问题。这是因为.NET开发的程序天生就是互联网 的WEB程序,更易于让程序员使用不同的语言.快捷刨建功能强大的互联网 应用程序的开发平台。.NET公共语言运行时,不管是VisumBasic,VC,ASP, c#开发的程序,源代码都被编译为IL(中间语言),要运行这个程序时在编 译成真正的本机代码,所有的工作都是由CLR管理。因此,使用不同的.NET 开发语言进行开发,等开发完成了可以编译成标准的IL,这样就可以把不同 语言开发出来的软件进行“软件聚集”,然后“缝合”一起变成一个完整的应 用程序“”。
例如:.NET的多层应用程序可用VisualBasic.NET编写用户界 面,使用c#编写业务层,再用Vc来实现数据访问层。 COM组件和.NET组件也有不同之处,DCOM不能轻易地跨越防火墙并受限 于网络协议,而.NET组件不像非DCOM组件,它可以使用非专用的,独立于平 台的xML与其他在网络上任何位置的组件通信,.NET组件不需要注册到注册 表内,部署也更加简便。 基于以上的优点,本文采用.NET作为代码生成的目标,进行代码自动生 成技术的研究及实现。 2.4本章小结 本章对.NET平台架构及其优势,以及.NET相关知识进行了介绍,阐明了 采用.NET作为自动生成的目标的原因和必要性,指出了以.NET作为自动生成 的平台优于以往微软开发技术如COM/DCoM技术的地方。 13 武汉理工大学硕*敏*感*词*论文 自定义组件技术的研究及实现3.1组件技术 组件技术是在面向对象技术基础之上丰富演化而来的“”。组件是软件系 统中的一个具有功能性的部分,它可以与其他的组件集成去形成一个更大的 部分或者是一个完整的应用程序。在数据库应用程序中,采用组件技术可以 达到隔离前端应用程序与数据库的目的。
连接相应数据库之后,就不必考虑 低层细节,可以改变数据访问实现逻辑而不影响前端“”。组件也是一个可替 换单元,可以构成软件系统的即插即用(plug play)的软件成分,因此,采用组件技术的软件系统更易于开发且具有更大的灵活性…1。 组件具有以下特点: (1)封装性。组件是包装、分发和传递的单元。一个组件应当能够也必 须能够与其他组件实现交互操作。组件的一个重要特性就是它是一个“黑盒”。 其内部结构对于组件的客户来说是不可见的,即它具有“封装性”。组件客户 对于组件只有通过确定的接口所提供的功能或者服务感兴趣,只有通过这个 明确定义的接口,才能与组件进行连接。 (2)*敏*感*词*。组件是服务的提供者。*敏*感*词*是将组件视为一个能够为用 户提供服务(操作或函数)的软件实体。 (3)完整性。组件是数据完整或封装边界。尽管*敏*感*词*允许组件操作的 独立性,但是没有指明组件的交换边界。完整性是强调组件是一个可以提供 独立的、可替换的行为单元,是指组件的独立性。 在.NET框架中,组件是实现System.ComponentModel.IComponent接口的 一个类,或从实现IComponent的类中直接或间接导出的类。
" />
在编程中,“组 件”这个术语通常用于可重复使用并且可以和其他对象进行交互的对象。“。 3.2自定义组件技术 在设计组件时,尽量考虑组件的通用性,使尽可能多的不同应用程序能 够使用,而对于使用组件的应用程序而言,组件是黑箱,即利用组件的应用 14 武汉理工大学硕*敏*感*词*论文 程序开发者不必了解这些组件的具体实现。典型的组件有:链表、数组、字 符串、按钮和复选框。当程序员发现他在重复地写类似的代码,这时就隐藏 着“组件”,程序员这时应花时间,挖掘出组件,即抽取这些代码的公共成分, 并为它创建统一的、通用的接口时,组件就诞生。就这个意义来讲,函数就 是组件,但组件比函数更广泛,是函数概念的扩展。例如:类可作为组件, 它含了更多的东西,一个组件含多个函数(方法)口”。 在.NET框架中,组件的一个重要功能就是它们是可设计的,这意味着作 为组件的类可用于快速应用程序开发(RAD)环境(如VisualStudio.NET) 中。可将组件添加到VisualStudio.NET的工具箱中,也可将组件拖放到 某个窗体上,还可以在设计图面上对组件进行操作。 本文运用代码自动生成技术,可以直接利用相应开发工具提供的控件, 在.NET中主要是“Label、TextBox、DataGrid”,等等,但一个设计良好的管 理信息系统,应该采用自定义组件对程序进行开发。
自定义组件可以是直接 从原创
控件简单继承下来的一个控件,当然在继承时可以对该控件做一些功 能增强:也可是自己设计的一个全新控件。。采用自定义组件的好处很多,以 VB、VB.NET、c#等开发工具提供的输入框(TextBox)控件为例,该控件没有 提供比较方便的输入控制功能;例如用于只输入“金额”的输入框,不能限 制用户输入英文字母。当然,利用原本提供的输入框控件,也可以通过编写 代码的方式来控制用户输入,但这就需要在所有需要控制的地方都编写相应 代码,工作量巨大。利用自定义组件,就可以很好的解决这个问题,自定义 的组件可以从原先提供的TextBox控件继承,然后添加相应属性和控制代码, 设定属性的值就能方便的控制最终用户的输入。 再例如,在管理信息系统软件中,很多界面上的输入都有部分字段是必 须输入的,一般采用的方法是在相应的标签控件上用不同颜色来区别,而采 用自定义组件的方式,就可以有更多的选择,例如可以实现让不允许为空的 输入框以不同边框颜色来显示,等等,而且这个设定信息不是传统软件设定 中写在EXE文件中的不能修改的方式,而是在程序启动后才设定的,可以随 着数据库设定信息的改变而动态设定。
所以,采用自定义组件的管理信息系统的开发,比用原创
的控件有更多 的优势。采用自定义组件,核心代码只需要编写一次,而且维护升级方便。 在本文的研究中,对管理信息系统开发中常用的控件都进行了定制。 15 武汉理工大学硕*敏*感*词*论文 3.3自定义组件的开发流程 Visual Studio.NET集成开发环境(IDE)提供了一个可扩展的、添加方 便的而且还没有数量限制的自定义组件功能。这个自定义组件可以用Visual Basic、C、c撑或者其他的.NET的使用的语言来编写。在组件开发中主要涉及 到以下几个基本概念”1: (1)容器。容器是用来放置组件的,一个容器可以收录
一个或多个组件, 这些组件成为容器的子组件。容器是一个特殊的类,一个类是容器,必须实 现或继承System.ComponentModel.IContainer接口或类,并提供一个没有参数 的构造器。 (2)场所。场所由容器提供,容器使用场所管理子组件,并和它们交互。 一个类要成为场所,必须实现System.ComponentModel.Isite接口。 (3)控件。控件具有用户交互界面,是一种特殊形式的组件。在.NET中, 只有继承了System.Windows.Forms.Control类或System.Web.UI.Control的类才 是控件。
这两个类都实现了System.ComponentModel.IComponent接口,同样 控件还应提供一个无参数的构造器。 图3-1组件开发流程图 16 武汉理工大学硕*敏*感*词*论文 在基于组件的代码自动生成技术中,组件开发是重点。按照一定的流程 开发,NET组件是提高系统开发效率,缩短系统开发周期的关键。.NET组件的 开发可以分为五个阶段:组件分析、组件设计、组件实现、组件测试与部署 及组件评价与维护。具体的流程如图3-l所示,图的左侧是传统软件生命周期 法,右侧是.NET组件开发的流程“”。 3.3.1组件分析 组件分析是对组件的必要性进行分析以及判定组件的功能和性能的过 这一阶段的主要任务是:为什么要开发自定义组件,开发的自定义组件要有什么功能?虽然组件技术和面向对象的结合,提供了一种编写分布式可 重用应用软件的机制,但如果没有严密的分析,只能生产出低劣的组件,从 而组装出低劣的应用程序啪3。 3.3.2组件设计 组件设计是指在对组件分析的基础上,完成标识组件功能、接口的过程 在管理信息系统开发中,进行组件设计时,应该遵循以下的原则:(1)数据库的增加、编辑、删除、查询等操作应该由组件来完成,并将 访问权限授予.NET组件,以保证数据库的安全性。
(2)把对每个用户的连接变成和.NET组件的连接,以避免数据库资源的 浪费和崩溃的危险; (3)组件不能盲目追求其功能强大,每一个.NET组件应只实现一个或一 类相似的功能。这样有助于重用机制的发挥和调节系统的适应性; (4)组件的接口应尽量简单、友好; (5)组件的应具有较高的通用性,以提高整个应用系统的复用能力,同时还要兼顾简单和实用性; (6)应该尽可能地不修改组件的接口。 17 武汉理工大学硕*敏*感*词*论文 3.3.3组件实现 组件实现是指开发人员定制系统所需组件的过程。 组件实现方式有多种,主要有以下三种方法: (I)简单继承控件: .NET框架是面向对象的,应该尽可能使用现有的控件,继承时可以对控 件做一些功能增强和修改。创建一个继承现有控件的新类,这个新类拥有它 继承于基类的全部功能,可以在这个新类中增加新的逻辑来创建附加功能, 或重写父控件的功能。 (2)复合型控件: 由于.NET已经拥有了如此多有用的控件,多个控件的组合可以完成许多 功能。创建一个复合型控件就是把已有控件的实例添加到复合型控件基类的 Control属性当中。以下是一些典型的例子: 1)用来保存用户名、密码的一组文本框,用独特的方法来格式化组合的 信息。
2)一组总是一起使用的带有相关逻辑的按钮,如添加、编辑、删除、保 存按钮。 3)一组选项按钮,带有与所选项相向的单一属性。 4)一个数据表,带有按照特定方式改变其外观或行为的按钮。 与继承控件一样,复合型控件仅适用于在多个地方需要相向功能的情况。 如果功能仅需要一次,就只需把有关控件放在窗体上,并在窗体中收录
适当 的逻辑即可脚1。 (3)从零开始创建控件: 如果控件需要的特定功能与任何现有控件都没有关联,就应从头编写, 绘制它自己的界面,实现它自己的逻辑。该选项需要开发人员做更多的工作, 但可以在.NET的窗体设计个实现任何功能。 要从头编写控件,必须继承control类,该类能够提供像颜色和尺寸属 性这样的基本功能。有了内置的基本功能后,要使白定义组件运转起来,主 要任务就是为控件增加所有指定的属性和方法,编写将控件描绘在屏幕上的 呈现逻辑,处理控件的鼠标和键盘的输入。 18 武汉理工大学硕*敏*感*词*论文 3.3.4组件测试 组件测试是指验证组件所声明的接口及功能特性的过程1。 组件测试的方法主要有两种:系统测试;本地测试。系统测试是指开发 人员编译好.NET组件后,在管理信息系统的整体环境中测试。
该方法优点是 简单、易用,不需要再编多余的程序,以节省时间。缺点是:当组件出错时, 应用程序不能指出组件错误发生的具体位置,只能简单地显示组件对象创建 不成功。 本地测试是指系统开发人员利用开发环境所提供地配套开发工具对组件 进行测试。该方法优点在于如果组件构造中有错误,可以充分利用开发工具 所提供的单步跟踪、断点设置、立即窗口显示等功能很快地发现错误,降低 了开发过程的返工率。缺点是:必须花费一定的时间编写多余的测试程序, 增加了开发人员的工作量。 3.3.5组件维护 组件维护是指根据系统实际应用的发展,对组件进行改进或废弃“20。组 件维护主要有三种方式: (1)根据不同的应用需要,有选择地使用不同的接口。 (2)为了适应新需要,更新现有接口功能或设计开发新接口。 (3)对于已经无利用价值的.NET组件,应废弃。由于组件间的独立性, 某组件的废弃并不会影响其他组件的继续使用。 3.4自定义组件的实现 在创建自定义组件的进程中,主要的步骤是; (1)启动一个新的WindowsControlLibraryT程,并为工程和代表控 件的类指定名称。 (2)工程将收录
个看起来非常像窗体的设计界面。
将控件拖动到这个 界面上就像拖动到窗体上一样。按照需要编写加载和处理控件的逻辑处理, 这也非常类似于窗体的操作。 (3)创建自定义组件的属性,为使用自定义组件的窗体提供功能。 19 武汉理工大学硕*敏*感*词*论文 (4)建立组件,并在windowshpplication中引用。 本文以日期控件为例,来说明白定义组件开发的流程。日期字段是数据 库中的常用字段,各种开发语言大都提供了用于显示日期字段的控件,如VB, VB.NET,DELPHI等。但是这些日期控件有一些不足之处,不能满足用户需求。 主要表现在以下方面:必须要有日期输入,不能把日期控件的日期值消除为 无;日期控件具有缺省值,不能判断是否为用户输入的日期。利用自定义组 件技术,就可以很好的解决这个问题。自定义的组件可以从原先提供的日期 控件中继承,然后添加相应属性和事件,设定属性值就能方便的控制最终用 户的操作。本文中,自定义日期组件的外观如图3—2所示。 图3-2自定义日期组件该自定义日期组件采用上文所提到的复合型控件的方法。如图3—3所示, 图的上方是VS.NET中原创
的日期控件(DateTimePicker),下方是自定义的日 期组件。
日期组件(DItlTlndi妇】 按钮控件‘htt) 文本框控件CT“tB“) 图3-3日期组件 考虑到VS.NET2003中原有的日期控件必须要有时间输入,如图3—3的上 方所示,自定义日期组件主要对该控件进行以下的改进:保留原有 DateTimePicker控件的功能;用户能对日期时间控件不进行时间选择,做 到日期控件上的时间能改能删;对如下一些键的操作进行添加或修改,如 TAB,DELETE,Backspace,上,下,左,右键等。将该自定义组件和数据 武汉理工大学硕*敏*感*词*论文 库中日期型变量进行数据绑定。 该自定义组件主要由三个文本框控件Textbox、日期控件DateTimePicker 和一个按钮控件Button组成。三个文本框控件Textbox,分别对年、月、日 进行操作;使用日期控件DateTimePicker,保留了原来DateTimePicker的功 能,能让用户通过图3—2的邈按钮对日期进行选择;另外还有一个按钮控件 Button,如图3-3中翻,用户能够通过该按钮对日期进行撤消操作。 该自定义日期组件的实现主要步骤如下: (1)打开VisualStudio.NET,新建项目,项目类型选择“VisualBasic 项目”,模板选择“Windows控件库”。
(2)进入控件的设计页面,将三个文本框、一个按钮和一个日期控件拖动 到控件页面上,并排列它们,如图3-3下图所示。在这里使用了一个技巧: 在控件页面上对三个文本控件和一个按钮控件进行拖动调整,使之对日期控 件进行覆盖,使日期控件只显示出篷按钮,这样既保留了日期控件对日期进 行选择的功能,又能方便对三个文本框控件和按钮控件进行代码编写,而不 受日期控件的影响,如图3-4所示。在开发复合型组件时,应该善于利用已 有组件的功能,将多个组件进行组合,这样能降低组件开发的强度,加快组 件开发的效率。 图3.4自定义日期组件 (3)改写控件的属性和名称。 (4)创建组件的公共属性。使用属性声明语法对公共属性进行的定义, 该语法通过get和set访问函数将专用数据成员和公共属性关联起来。该自 定义日期组件主要创建了5个属性:MyEnable属性,该属性是布尔型,用来 指示是否可启用此控件:MyDateTime属性,该属性是Object类型,主要是用 2l 武汉理工大学硕*敏*感*词*论文 于对数据库中日期型变量的绑定操作;MyDateYear属性,该属性是整型,用 于设置或取得日期中的年份;MyDateMonth属性,该属性是整型,用于设置或 取得日期中的月份;MyDateDay属性,该属性是整型,用于设置或取得日期中 的天数。
创建MyDateTime属性的示例代码如下所示: <Description(”用于设置日期”)>PublicPropertyMyDateTimeOAs Object ’此属性主要是用于对数据库中日期型变量的绑定操作 Get IfM_date IsDBNull.ValueOr M_date ls Nothing Then Remm Nothing Else Ream M_dam EndIf EndG文 Se“ByVMValueAs Object) IfValueIsDBNull.ValueThen Mdate=DBNull.Value Else M_date=CType(Value,Date) EndIf EndSet End Property (5)为组件增加方法。为自定义日期组件增加了一个setmy_date方法、 My—datelnput—Validating方法和ButCan_Click方法。setmy—date方法用 于将数据库传递来的日期僮转换为相应组件的值,并在组件上显示; My—dateInput—Validating方法用于对输入日期的合法性进行判断; ButCan_Click方法对日期组件进行重置。
其中set_my—date方法的关键代码 如下: Sub set_mydate(ByVal dateValAs ObjecO Try Dim temp_date AsDate temp_dam CType(dateVal,Date)Me.Tx毋ear.Text=tempdate.Year.ToStr吨.TrimO‘传递年份 Iftemp_date.Month.ToString.Trim.Length=1 Then 22 武汉理工大学硕*敏*感*词*论文 ‘传递月份 Me.TxtMonth.Text=-…0&tempdate.Month.ToString.TrimO E]se Me.TxtMonth.Text tempdate.Month.ToString.Trim0EndIf tftemp__date.Day.ToString.Trim.Length=1Then‘传递日期 Me.TxtDay.Text=…0‘&temp_date.Day.ToString.Trim()