给IBuySpy构建一个PlugIn系统.net

2024-04-12

给IBuySpy构建一个PlugIn系统.net(通用4篇)

篇1:给IBuySpy构建一个PlugIn系统.net

PlugIn,很COOL的特性,下面将演示如何给我们的IBuySpy定制一个Page Start PlugIn,这个PlugIn可以让用户自己来创建PlugIn,嵌入到IBuySpy的Page Start PlugIn里面,在网站页面载入的时候,会执行用户嵌入的PlugIn, 可我们为什么要给IBuySpy创建PlugIn接口

PlugIn,很COOL的特性,下面将演示如何给我们的IBuySpy定制一个Page Start PlugIn,这个PlugIn可以让用户自己来创建PlugIn,嵌入到IBuySpy的Page Start PlugIn里面,在网站页面载入的时候,会执行用户嵌入的PlugIn。

可我们为什么要给IBuySpy创建PlugIn接口呢?我们要实现同样的功能,可以直接的修改它的代码,岂不是直接很多?原因:IBuySpy只是用来演示PlugIn的,你可以把同样的技术应用到其他的WebForm甚至WinForm,而它们可能并不会像IBuySpy一样是免费的,我们交付的产品里面不会附上代码,如果我们提供了PlugIn的接口,无疑会让我们的产品更加具有扩展性。何况很多功能可能可以直接作成PlugIn来嵌入到原有的系统中,这个时候无需再改动原有的代码,再去编译它。

1、构建IBuySpy的PlugIn所需的接口,这些接口就是可以公开给用户代码的:

首先需要的是一个通用的IPlugIn接口,所有具体的插件将实现这个接口:

namespace ASPNetPortal.PlugIns {

public interface IPlugIn {

String Name {get;}

String Version {get;}

void DoAction(IPlugInArgs args);

}

}

这个接口有三个成员:

Name属性,公开插件的名称

Version属性,公开插件的版本

DoAction方法,执行插件要做的操作,这个方法还有一个IPlugInArgs的参数,需要传递给方法所参数可以通过它传递出去。

然后就是这个IPlugInArgs接口:

namespace ASPNetPortal.PlugIns {

public interface IPlugInArgs {

System.Web.HttpContext Context {get;}

Object Data {get;}

}

}

它有两个成员:

Context属性,一个HttpContext类型的对象,如果我们要让插件能够在页面上做些事,不给它HttpContext肯定不行。

Data属性,一个Object类型的对象,预留的,什么地方需要就什么地方用上,

接着是一个接口集合类:

namespace ASPNetPortal.PlugIns {

public class PlugInCollection : CollectionBase {

public Int32 Add(IPlugIn plugIn) {

return this.List.Add(plugIn);

}

public IPlugIn this[Int32 index] {

get {

return (IPlugIn) this.List[index];

}

}

}

}

很简单明了。用户可能不止嵌入一个插件。

PlugIn也可以有很多类型,比如我们这里要实现的Page Start PlugIn,是一个在页面载入的时候可以让嵌入的PlugIn执行的。当然你也可以创建各种类型的PlugIn。

namespace ASPNetPortal.PlugIns {

public interface IPageStartPlugIn : IPlugIn {}

}

这个PlugIn接口不需要再做任何事,直接继承IPlugIn就可以了。

2、修改IBuySpy,让它支持执行PlugIn:

根据我们的需求,我们创建一个实际的插件参数类,这个类继承自IPlugInArgs:

namespace ASPNetPortal.PlugIns {

public class PlugInArgs : IPlugInArgs {

private System.Web.HttpContext _context;

private Object _data;

public PlugInArgs(System.Web.HttpContext context, Object data) {

_context = context;

_data = data;

}

public System.Web.HttpContext Context {

get {

return _context;

}

}

public Object Data {

get {

return _data;

}

}

}

}

篇2:给IBuySpy构建一个PlugIn系统.net

关键词:.NET,三层架构,实时监控,线程,泛型

0 引言

油库是储存和外输油品的重要场所。库区内储运的易燃、易爆物质以及生产设备数量较多,事故风险高,安全生产监控难度大。近年来,自动化监测系统在油库使用日益广泛,但这些系统大多存在两个问题:1)监控手段以参数监控为主,缺乏必要的预警报警及多媒体监控。2)油库管理过程中现有的各类监控预警子系统没能实现无缝连接,产生“信息孤岛”。针对以上问题,本文利用.NET平台下三层架构模式及多线程技术,设计并实现了一个基于.NET架构的油库实时安全监控管理系统。

1 油库实时安全监控管理系统设计

1.1 系统结构设计

整个系统结构如图1所示。分为本地监控和远程管理两部分,本地监控包括3方面:数据采集模块,实时监控系统和数据管理系统。数据采集模块负责采集油库日常运行中的各类实时数据,包括油罐液位、温度值、油气浓度报警值和周界报警门禁等信号。这些数据通过RS-485硬件采集卡传入主控机,进行处理和存储。实时监控系统通过若干摄像头对油库周围安全进行全方位录像。数据管理系统包括本地管理系统和远程管理系统,通过网络相连,共享数据库和视频图像,对采集的数据进行分析。

1.2 系统主要功能模块设计

整个系统主要分为安全监控和信息管理两大部分,如图2所示。安全监控是指对整个油库业务进行实时跟踪,是整个系统的核心部分,包括以下功能模块:

1)视频监控:油库摄像头对油库周围进行实时监控,并反应在主控机上。

2)周界报警:油库四周报警电缆,当非法跨越或踩踏时提示并报警。

3)门禁管理:油库进出需发卡操作门的开闭,并显示和保存。

4)油罐液位监测:以图像数字等形式显示油罐当前液位,并提示高低限报警。

5)油气浓度监测:实时监控油库油气浓度,异常时报警提示。

信息管理是对采集来的实时数据进行综合处理,并对历史数据管理和查询,主要包含下面几个模块:

1)安全信息查询:对油库各种安全监测的处理情况及责任人等信息进行查询。

2)收发油数据录入:对收发油的数据进行统一管理,并可以提供查询。

3)油库储量查询:对原数据进行统计,并提供分时间油品的统计和绘图。

4)电子巡更:对油库巡逻情况进行排班,数据录入,并进行查询。

5)编码管理:对油库的油品油罐尺寸和大小等可变的状态量进行统一编码。

2 油库实时安全监控系统的实现

本系统采用.NET 2.0+SQLSERVER2005框架实现。系统实现时采用了三层体系结构,即表示层(UI),数据访问层(DAL)和业务逻辑层(BLL)。其中,UI层使用Win Form,由C#编写。DAL层负责数据库的数据存取;BLL层通过调用DAL层的方法来实现业务需求。为了防止直接依赖造成三者之间的强耦合和便于数据库管理系统的变迁(例如从SQLServer换成MySQL),系统采用在数据访问层和业务逻辑层分别定义一簇接口,业务逻辑层不依赖具体的数据访问层,而是仅依赖数据访问层的接口族,表示层依赖业务逻辑层的接口族的机制。因此确保了当系统更换数据库管理系统时,不必改写整个业务逻辑层,因为业务逻辑层里根本没有任何数据访问层中的具体类,而全部通过接口实现。系统具有以下特点:1)将业务规则集中到易于创建、使用和重用的组件中,方便开发和维护;2)将数据访问集中到组件中,减少应用程序中的重复代码,使每个需要访问的窗体都使用相同的组件;3)对任何数据访问的例程更改都只需要进行一次即可,系统维护方便。

系统中串口通信模块实现时使用.NET 2.0新增的类SerialPort,专门处理串行端口的控制及数据收发。其实现流程如下图3所示:

3 多线程和泛型在系统中的实现

3.1 多线程的实现

系统中使用多线程实现对数据采集和数据处理同时进行。各种采集设备使用不同的线程读取各类硬件信息,采集出来的数据放入一个公共的缓冲区中,供主程序处理。图4是系统执行流程图。

在C#中,线程的处理主要有两种方式,一种是使用Thread类,例如:

Thread td=new Thread(fuc)//fuc为采集线程的方法,实例了一个td线程但不能控制窗口控件,所以系统需要另外一种安全线程来操作窗口控件。例如:下面代码片断实现了子线程向窗口的文本框写入字符串的功能。

另外,在系统的视频监控下载中使用了C#2.0中新增的类BackgroudWorker,使用这个新类可以节省开发时间,更加简便快捷,把从创建委托和调用中解放出来。

3.2 泛型的实现

在子线程和主程序交换数据时候,由于涉及数据的类型不同,需要传递的变量包括类、字符串数组和整形数组等。鉴于此,系统采用C#2.0提供的泛型结构实现,运行时自动解释为本地代码,提高了运行效率和代码质量,并保证数据类型安全。例如:系统在实现记录门禁打卡的采集数据类IORecord时,采用泛型方式如下,首先进行实例化:

在子线程读取数据中,实例化IORecord io=new IORecord();这时向泛型的数据类型里添加实例化的对象iorecord.Add(io),当另一个线程读取这些采集数据进行处理的时候,直接使用该泛型链表。

4 结束语

本文创新点:当前针对油库这种特殊环境的实时监控系统,基于.NET平台实现的相关例程和资料很少,本文提供了一个基于.NET平台的油库实时安全监控管理系统的方案,并对其关键的技术进行了描述。该系统目前已经实现并在若干储备油库中使用,效果良好,运行稳定,基本满足了对油库进行数字化、自动化改造和综合管理的需要,为数字化油库研究提供了一个参考。

参考文献

[1]鲍胜利,钟勇.基于J2EE的实时监控系统的设计与实现[J].计算机工程,2008,34(5):240-242.

[2]杨锦园.储备油库统一信息管理系统设计[J].电脑与信息技术,2007,15(5):25-26.

篇3:给IBuySpy构建一个PlugIn系统.net

关键词:.NET平台;SOA;ERP系统;模型构建;应用

中图分类号:TP311.52文献标识码:A文章编号:1007-9599 (2012) 02-0000-02

The Applications of SOA in ERP System Model Building for .NET Platform

Lu Lan,Chen Ming

(SiChuan Technology and Business College,Dujiangyan 611831,China)

Abstract:SOA is service-oriented architecture is the thinking of the next-generation architecture is mainly used in the distribution of software development,SOA loosely coupled and platform-independent,and so on characteristics,combined with its ability to good system the flexibility and interoperability solution and therefore has been more widely used,after years of development,has gradually become a major enterprise application architecture.This article describes the principle of SOA framework model and business processes,SOA,ERP systems,and a detailed study of the design of ERP systems in the SOA/.NET environment.

Keywords:.NET platform;SOA;ERP system;Model;Application

一、SOA的原理及业务流程

SOA是一种架构模型,它的一个最核心的本质就是要把服务和技术完全分离开来,这样,才能够最大限度的把服务的集成和重组实现。它是通过定义良好的接口以及契约来把应用程序当中的不同功能单元之间相互联系起来,这样就能够使得任何一个在这样的系统当中得到构建的服务,都能够在松散耦合并且是按需提供的方式的作用之下实现彼此之间的交互。从而我们可以知道,SOA的主要思想就是能够在复杂且多变的环境当中,把各种各样的不同服务予以独立出来,之后,对每一个独立的服务都实行组件化的封装,那么,在这之后就是要在各种不同服务之间来实现彼此之间的相互调用,主要的方法就是通过标准的接口来完成。

SOA架构就是把提供服务的一方与被服务的一方两者相互分离开来,需指出的是,这一分离主要就是要通过服务契约机制来得到实现的,换句话来讲,也就是服务消费者在对服务进行使用之前,就需要通过一种特定的途径来把提供服务的一方所发布出来的服务契约予以接收,之后定位服务并予以正确的使用服务。

二、SOA架构在ERP系统当中的应用优势

(一)能够在异构环境当中应用

对于异构环境来讲,主要包含了四个层次,也就是硬件平台、操作系统、数据库以及应用软件,但是,我们要想使得一套硬件、一套操作系统、一套数据库以及一套应用软件能够把企业管理当中的所有企业管理问题都解决掉,那肯定是不现实的,但是,我们应该尽可能的选择最适合的方案来把管理当中的问题最大限度的解决好,而通过支持SOA的ERP系统,企业就能够按照自己的实际需要来选择最适合的解决方案。

(二)能够减少企业的IT成本

在以前,绝大多数企业在进行ERP系统的建设的时候,通常都是会站在项目的角度上来考虑,但是,随着企业IT系统的不断增多,系统的集成问题就逐渐显现出来了,但是到了这个时候,要想集成就会显得比较困难了。而SOA对企业提出了要求,要求企业必须要在建设IT系统的时候就对这些问题进行充分的考虑,换句话说,就是企业必须要对服务之间的接口问题进行充分的考虑,这样,就能够使得企业的IT成本大大降低。另外,SOA改变了以往的软件购买模式,就目前而言,很多企业在购买软件的时候,通常都会选择成熟性的软件,必须要一个模块或者是一个系统来进行购买,这样,企业在购买的过程当中,通常都没有办法把那些企业不需要的功能剔除掉,增加了很多不必要的成本。而SOA集团财务软件恰好可以帮助企业真正实现按需购买,企业需要什么样的功能就购买相应的服务,这样就帮助企业避免一些不必要的开支。

(三)能够完成企业IT系统的动态变化

SOA集团财务系统的使用,能够让企业的IT人员无需过多的对IT系统的底层技术予以关心,通过这一系统的使用,能够让IT人员更多的从集团财务业务的处理以及财务业务和IT之间的有机结合进行考虑。另外,我们都知道,传统的企业在开发集团财务系统这一过程当中,往往把大量的人力、物力以及财力盲目的耗费在重复功能之上,在这样的系统开发完成以后,如果企业发生任何的业务变化,这时要想对系统进行更改是十分困难的。现在,如果使用SOA,那么,对于企业来讲,它所面对的就变成了一个个彼此之间相互独立的服务,并且这些独立的服务之间要想实现相互之间的调用,只需要通过标准的接口就行了,在这样的情况之下,一旦企业有业务变化的发生的时候,企业需要做的就是把相对应的业务进行修改就可以了,从而大大降低了修改的难度和复杂度,进而保证了企业IT系统的动态变化。

三、SOA/.NET环境下ERP系统的设计

(一)基于SOA的ERP系统模型的构建

现结合ERP系统的主要思想,设计了建立在SOA上的网络服务的系统架构,对于这一架构,主要采用了四层架构,分别为用户界面层、业务逻辑层、数据访问层以及数据层。

首先,用户界面层。对于用户界面层来讲,它主要是按照用户的各种不同的需求以及用户的权限来为用户提供不同的客户端界面,客户端界面的存在不仅可以通过网页的形式,而且还可以是桌面上的应用程序。这一界面,主要为广大的用户提供的是调用业务的逻辑层Web服务的接口,在进行Web服务的接口的调用的时候,用户只需要按照界面所提供的接口以及功能说明来提供相应的参数就可以了。

其次,业务逻辑层。整个的业务流程都是在业务逻辑层当中的,对于业务逻辑层来讲,它在整个系统当中占据了极其重要的位置,但是,它是最为复杂的一个层次。这一层次主要是对各种业务实行逻辑封装,之后通过服务的形式把它进行发布,来为应用个开发提供调用,它主要就是对用户界面层所提出的请求进行响应,它和数据库之间主要是通過数据访问层来实现彼此的交互的。

再者,数据访问层。对于数据访问层来讲,它是和业务逻辑相独立开来的,在这一层,没一个系统都必须要和数据库之间实现交互。

最后,数据层。数据层主要存放的就是与应用程序相关的业务数据以及相关的控制数据,这些数据的存放可以是在一个数据库中,也可以是在多个数据库当中,数据访问层对数据库颁布操作命令,在将这一操作命令执行完成之后,再把结果反馈至数据访问层当中。

(二)基于SOA的ERP系统的设计

该系统是通过使用Web/XML标准来完成应用程序之间的互操作性,从而来实现业务流程之间的自动化。从目前的情况来看,我们可以通过两个开发平台来实现Web服务器,这两个开发平台在就是J2EE平台以及Microsoftnet平台,在本文当中,研究的是基于.NET平台的ERP系统的设计,那么,现按照系统的需求分析结果以及业务流程的分析结果,并结合上述的分析,来把业务划分成为七个不同的服务模块,这七个服务模块也就是供应商管理模块、采购管理模块、计划管理模块、库存管理模块、生产管理模块、销售管理模块以及分销管理模块,我们主要采用了Web Service所提供的标准接口,并通过SOAP这样的方式,来在这七个不同服务模块之间完成彼此之间的互访。具体的开发模型是:

四、结语:

总之,在引入了SOA之后,ERP软件的的双方都发生了巨大的变化,着这样的环境之下,供应商能够按照一定的标准来在每一项服务开发完成之后,把这一服务发送至注册中心,企业可以结合自己自身的需要,来灵活地进行新业务流程的搭配,大大增强了企业业务模型的灵活性。所以,对于ERP厂商来讲,只有尽早的对自己底层技术的升级进行考虑,才能够始终保持着自己的竞争优势,否则,改ERP厂商就很可能会被淘汰掉。所以我们说,SOA有着十分广阔的发展前景,它作为企业构架信息化平台的一项新的技术,必定会对ERP市场产生十分深远的影响。

参考文献:

[1]刘国强.基于SOA技术的企业级软件构架方法研究[J].山西建筑,2008年34卷2期

[2]丁兆青,董传良.基于SOA的分布式应用集成研究[J].计算机工程,2007年10期

[3]卢致杰,覃正.SOA构架与电子商务应用集成[J].计算机应用研究,2004年10期

篇4:给IBuySpy构建一个PlugIn系统.net

1 系统需求分析

网络日益发达的今天,网络支付手段开始逐步完善,越来越多的人开始选择通过点击鼠标下订单、送货上门的快捷便利的购物方式。网络已经为改变传统的商业模式提供了一种技术上的可行性方案,可以利用Internet的技术和协议,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密联系在一起。这种结合不仅消除了时间和空间上带来的障碍,大大节约交易成本,也扩大了交易的范围,这种方案已经被广泛地推广到商业活动中,人们称其为电子商务。该设计基于C#的ASP.NET,用Visual studio2010开发环境和SQL Server 2008完成后台数据库的实现。前台实现功能有系统相关信息的管理、新书相关信息管理、图书相关信息管理、图书类别相关信息管理、订单相关信息管理、留言相关信息管理、评论相关信息管理以及用户注册相关信息管理等[1]。

2 系统功能模块

大网上书店网站功能模块主要分为后台管理员和前台用户,后台管理员可以实现对账号相关信息的管理、对留言相关信息的管理和对图书相关信息的管理;前台用户主要是实现对相关图书信息的管理、用户信息相关的管理和留言相关信息的管理等(见图1)。

3 系统整体功能实现

该网上书店主要有系统相关信息的管理、新闻信息相关信息的管理、图书相关信息的管理、图书类别相关信息的管理、订单相关信息的管理、留言相关信息的管理、评论相关信息的管理以及用户注册相关信息的管理等[2]。

前台的功能有对图书、用户和留言的相关信息的管理,对相关图书信息的管理就是增删改查并进行更新,对用户的管理就是随时检测用户是否在数据库存在,然后若存在就直接登录系统,若不存在,系统显示没有此用户,留言管理就是对用户留言进行管理和维护,同时通过用户留言来了解用户的不同需求。另外,还模拟了一些加入购物车后,对用户想要买的产品的价格进行统计加和,当然顾客把想要买的东西放进购物车也可以选择不买,再就是网页有一些访问次数的记录。

上一篇:的八年级期末作文题目下一篇:有回忆的饼干小学生作文