您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 【毕业论文】基于net的商业供应链管理系统设计与实现
基于.NET的商业供应链管理系统设计与实现于山山姬光荣(中国海洋大学信息科学与工程学院,山东青岛,266071)摘要:提出了一个基于.NET的商业供应链管理系统的总体架构,并对其功能模块和程序设计进行了详细描述。数据访问部分采用了托管容器式持久性方式(CMP),与传统数据访问方式相比,事实证明CMP使得系统更加易于维护、升级、增强功能并且在数据结构变化时可以简单快速修改代码。关键词:.NET;托管容器式持久性;C#中图分类号:TP311文献标示码:ATheDesignandImplementationofCommercialSupplyChainManagementSystemBasedOn.NETYu,ShanshanJi,Guangrong(InformationScienceandEngineeringCollege,OceanUniversityofChina,Qingdao,China,266071)Abstract:AstructureofSupplyChainManagementSystembasedon.NETisproposed.Thefunctionmoduleandprogramdesignarealsodescribedindetail.TheContainer-ManagedPersistence(CMP)modeisadoptedinthepartofdataaccessingofthesystemstructure.Comparedwithtraditionalmethods,factshaveprovedthatthesystemcanbeconvenientlymaintained,upgraded,expanded,andthecodescanbemodifiedsimplyandquicklywhenthedatastructurechanged.Keywords:.NET;CMP;C#1引言广义上的供应链(supplychain)定义为相互间通过提供原材料、零部件、产品、服务的厂家、供应商、零售商等组成的网络。供应链管理(SupplyChainManagement)则是对供应链中的信息流、物流和资金流进行设计、规划和控制,从而增强竞争实力,提高供应链中各成员的效率和效益。商业供应链具体指的是供应链的中间环节。面对竞争日趋激烈的市场环境,中小商业企业要生存和发展,最为核心的能力是对市场和经营的快速反应能力和正确的决策能力,要实现这两点,必须要有一个能快速实施、快速应用、快速见效的强大的供应链应用平台,将商业企业的管理从传统的手工方式或低水平的信息化管理方式提升到现代化的科学管理方式。本文所介绍的是为某商业企业量身定制的基于.NET的商业供应链管理系统。2系统所用关键技术2.1ASP.NET技术ASP.NET隶属于Microsoft.NET框架,是由.NET提供的编程类库所组成的,它提供了应用程序模型,是采用了面向对象的思想——模块化与组件化的技术而构建的。作为Web应用程序开发的前端软件,ASP.NET与.NET框架实现了完全的整合。除了底层的.NETFramework所提供的各种对象都可以使用外,还提供ASP.NETruntime来处理应用程序相关的处理程序,包括Session对象、Application对象、OutputCache等功能;2.2托管容器式持久性(CMP)托管容器式持久性(Container-ManagedPersistence,CMP)是一种设计模式,这种模式下业务对象不考虑数据从何处来,以及如何存放。从表面上看,CMP是这样一种模式:系统中的所有数据对象都不考虑自身的数据访问方法。所有的业务对象是纯粹的业务对象,它们维护业务数据并根据业务规则判断这些数据是否正确。业务对象和数据访问层没有丝毫关系。这种模式下,容器是一个类,它的任务是得到一个未知数据源的业务对象实例,并且进行数据操作。这里的操作指CRUD(Create、Retrieve、Update和Delete)4种数据操作中的任何一种。基本的流程如下:1.业务对象被其他某些控件调用,例如被Web页面的后台编码调用。2.业务对象创建一个容器和一个持久对象,也就是一个以托管容器式持久性方式运行的对象。3.然后业务对象调用容器上的相关SELECT、INSERT、UPDATE或者DELECT方法来执行实际的数据访问。图1说明了CMP如何嵌入整个网站的体系结构中。图1CMP工作原理CMP的工作主要基于这样一个实施:容器是唯一了解持久性方法和底层数据源细节的类。这是通过创建一个元数据库来实现的,元数据库提供了执行对象关系映射(Object-RelationalMapping,ORM)的信息。对象关系映射是一种用来将类的字段和公共属性映射到不同的数据构选(例如数据库中的表和存储过程)的技术。2.3C#语言C#是Microsoft.NET开放环境的核心语言,它是一种简单、现代、面向对象、类型非常安全、派生于C和C++的编程语言,它对.NET特性的支持不仅是完整的,而且提供了比其他语言更合适的语法,它的出现代表了程序设计语言下一步的发展方向。2.4SQLServerSQLServer、Internet信息服务器和ASP.NET引擎都提供了坚实可靠的安全模型,它们可以很好地在一起协同工作。SQLServer2000是公认的运行在WindowsNT平台上的最佳数据库,是一套完全的数据库和数据库分析解决方案。3系统设计与实现3.1功能模块1)系统维护模块:用户信息、密码和权限的维护。2)销售模块:可根据不同条件查询某种规格的商品,某天、某段时间在经销商处的实际销售数量、销售金额和汇总信息等等。3)库存模块:可按照不同条件查询商品在经销商处的库存数量、库存金额和首次进货日期等。4)付款模块:该模块包括应付款确认、应付款查询和已付款查询。5)订单模块:该模块包括订单预定、订单审批、供应商确认、商品接收确认。6)短信模块:供应商可以根据实际需要制订各种信息(如:当日销售额、销售数量、库存信息、应付款信息等等),系统会按照定时或短信互动点播两种方式发送到供应商注册的手机上。3.2环境配置WEB服务器:操作系统MicrosoftWindows2000Server以上版本;并安装MicrosoftIIS(Internet信息服务)和Microsoft.NETSDK.NETFramework1.1以上版本;ASPXPagesServerControlsUserControlsBusinessObjectsDatasourceAgnosticPersistableObjectsXMLContainerSQLContainerOracleContainer数据库服务器:MicrosoftSQLServer2000。3.3体系结构系统整体架构采用了B/S三层结构模式,将系统分为表示层(也称用户界面层)、功能层(也称业务逻辑层)和数据层(也称数据服务层),开发平台则采用了.NETFramework,有效地降低了系统对客户机的要求,避免了在客户机上分发应用程序与版本控制的困难。其中表示层主要完成界面与最终用户交互的功能,在应用程序里是一些aspx页面以及相关代码;功能层用于封装商业规则和逻辑,在应用程序里被封装为.NET组件;数据层通过数据访问组件与SQLServer数据库(或其他数据库)进行交互,所有的数据操作通过存储过程来执行。图2系统的体系结构3.3.1数据层设计与实现为了构建一个易于维护、升级、增强功能的架构,而且在数据结构发生变化时能做到代码的修改快速简单,没有使用传统的“存储过程调用/封装”数据层,而是采用了托管容器式持久性(Container-ManagedPersistence,CMP)模型。采用基于CMP的体系结构的一个巨大好处是整个业务对象中间层不再依赖于任何数据源,它的工作仅仅是维护和验证数据。数据可以来自SQLServer数据库、Oracle数据库、XML文件或者Internet上的XML文档等等。这样不需要费很大力气就可以方便快速的调试、维护和增强数据层,并且防止底层持久性方法(persistencemethod)的变化对Web应用程序的其他部分造成极大的负面影响。系统可采用任何一款关系型数据库。在本项目中,使用的是SQLServer,它能与.NETFramework无缝集成。本项目所有的数据访问都是通过存储过程实现的,可以从数据库中得到最佳性能和最大的灵活性,也更加便于维护代码。当定义好存储过程之后,为了让CMP系统结构可以使用它们,现在需要添加它们的元数据到web.config文件。下面是对应存储过程P_SelectOrder的CMP元数据的代码:ContainerMappingContainerMappingIdSelectOrder/ContainerMappingIdContainedClassOrderSet/ContainedClassSelectCommandNameP_SelectOrder/CommandNameParameterClassMemberShopID/ClassMemberParameterName@ShopID/ParameterNameDbTypeHintVarchar/DbTypeHintParamDirectionInput/ParamDirectionSize20/Size浏览器浏览器浏览器浏览器客户端WEB数据库数据库用户界面层业务逻辑层数据服务层系统/ParameterParameter……/Parameter/Select/ContainerMapping代码中ContainerMappingId为容器映射ID,用来标识这个特定容器映射,Select结点包含了选择数据的信息,CommandName包含使用的存储过程的名称,存储过程的每一个参数都有一个Parameter元素。这种结构的优点在于存储过程本身的任何变化只需在web.config文件里进行修改,而不触及应用程序代码。3.3.2功能层设计与实现功能层是在包含数据层的底层组件之上的抽象层,而不是实际的物理层或组件和组件层之间的划分。功能层封装的是业务逻辑和规则,它的处理与具体的用户界面的交互无关,仅仅是核心的商业规则和逻辑。这些业务逻辑都被封装成.NET组件,经编译后在bin文件夹内生成相应的dll文件。图3显示了系统封装的所有组件。图3系统封装的组件在CMP体系结构中,首先要做的是初始化一个存储容器,一旦拥有存储容器,它就知道所要处理的容器映射,然后创建一个PersistableObject(或者PersistableObjectSet)实例来从数据库中选择数据。下面是初始化存储容器SelectOrder的代码:publicDataTableSelectOrder(stringshopid,stringorderno){SqlPersistenceContainerspc=newSqlPersistenceContainer(CMPConfigurationHandler.ContainerMaps[SelectOrder]);OrderSetci=newOrderSet();ci.ShopID=shopid;ci.OrderNo=orderno;spc.Select(ci);returnci.ResultSet.Tables[0];}3.3.3表示层设计与实现表示层采用了ASP.NET技术。ASP.NET技术的应用增强了系统的通用性,客户端只需安装IE或Netscape等任一款浏览器,无需加载任何组件。用户界面广泛采用了ASP.NET中的各种验证控件(Validation),利用正则表达式的匹配能够很好的在前台控制用户输入信息的规范和准确。用户界面使用了统一的级联样式表(CSS),更加易于整个UI的维
本文标题:【毕业论文】基于net的商业供应链管理系统设计与实现
链接地址:https://www.777doc.com/doc-21547 .html