企业办公自动化管理系统需求性和可行性的设计方案
关于OA办公系统需求分析
关于OA办公系统需求分析1
第一章 绪论1
1.2 本文所做工作1
第二章 系统开发技术2
2.2 Spring技术3
第三章 系统分析6
3.2 系统分析7
3.2.3我的办公桌模块8
3.2.4系统管理模块9
第四章 数据库设计10
4.1 表格图10
第五章 系统实现过程13
第六章 系统的测试与运行14
第一章 绪论
1.1 选题背景
在正常办公中,企业通常会遇到许多资源和数据,比如员工资料、邮件、申请记录、打印机、计算机等,这些资源和数据管理不善情况下通常凌乱不堪,在需要时不知道存放在何处,从而影响工作效率。因此,我们设计了能满足这种需求的系统–企业Web OA系统。
通过”企业Web OA系统”对企业日常办公进行管理,满足了企业日常办公管理各方面的需求,实现了企业员工之间短消息的发送与接收功能,大大的方便了企业内部人员沟通。
1.2 本文所做工作
为了开发出该系统并且是系统能够真正达到”适用、够用、好用”的标准一配合用户单位的使用,查阅相关的书籍及电子文档,也向先辈们请教。在开发设计过程中,采用现在流行的SSH框架整合和Jquery、Ajax技术,通过Hibernate连接数据库,借助一些工具优化系统。另外,为了增加系统的实用性,使之能尽量与实际的应用系统和用户需求相吻合,我对许多同类系统的内容、功能进行了分析与对比,吸取了它们的可取之处,借鉴了一些经验。
1.3 本文的安排
整个设计共分为6章,各章的主要内容安排如下:
1. 绪论。介绍论文的选题背景、所做工作以及论文的结构安排。
2. 系统开发技术。主要介绍本系统用到的主要技术。
3. 系统分析。主要介绍系统开发前的前期工作,包括可行性分析及系统设计思想与需求规定。从用户需求的角度从系统的角度应该达到的功能、性能、效率等指标。
4. 数据库设计。为了使软件开发者对该软件的功能划分、数据结构及业务流程有一个大概的理解,使之成为整个开发工作的开始。
5. 系统实现。主要是详细说明项目是如何执行的及界面展示。
6. 系统测试与运行。阐述测试的方法,测试的步骤、测试达到的效果。
第二章 系统开发技术
2.1 Jquery与JavaScript技术
jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是–WRITE LESS,DO MORE,写更少的代码,做更多的事情。jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。在Jquery技术中使用万能的$几乎可以做到一切Ajax所拥有的技术,
Jquery使用简单方面,它是一个轻量级的JS库,在使用的时候只需要将其编译好的JS文件引入即可使用,另一方面其UI插件做的视图效果非常理想,同样也是方便应用。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
2.2 Spring技术
Spring的核心是个用于构造Java应用程序的轻量级框架,实现了Ioc模式的容器。其中的core包是框架的最基础部分,并提供依赖注入特性来使你可管理Bean容器功能;context包提供了一种框架式的Bean访问方式(ApplicationContext.xml),还添加了文本消息的发送;DAO包则提供了JDBC的抽象层。也提供了一种方法实现编程性和声明性事务管理,不仅仅式针对实现特定接口。在Spring中重要的式MVC模式:View出于客户端层,通常用jsp,即页面显示部分;Controller也处于服务端层,通常用Servlet来实现,即页面显示的逻辑部分实现;Model处于中间层,通常用服务器端的javabean,即业务逻辑部分的实现。对于一些公用的方法,则可以放在一个类中。
2.3 JPA技术
JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。可以按照Java的基础语义进行持久化开发。
2.4 Fire Workflow插件
Fire Workflow 是一款国内的开源插件,用于工作流的设计部署,相对于国际上比较有名的几个工作流引擎,此框架的优势是结构比较简洁,扩展性比较好!此插件和spring,JPA一样是几个普通的jar包,嵌入到的系统中以解决工作流领域的问题。
Fire Workflow 是面向开发人员的,由模型,引擎,设计器,流程管理四部分组成,其流程设计器与主流IDE紧密集成,在Eclipse的插件可以让开发人员调试流程就像调试基本的java类一样简单。Fire Workflow自带7张表,由于本系统本身就拥有大量的数据表,所以Fire Workflow相对于目前比较流行的JPBM的30张表显的异常简洁。另外,选择此插件的另一个原因就是此插件的开发是基于Spring文件开发的,正好与本系统很好的整合在一起.
2.5 Apache James邮件服务器
Apache James 简称 James, 是 Java Apache Mail Enterprise Server的缩写。James 是100%基于Java的电子邮件服务器。它是一种独立的邮件服务器,并提供了一个完整的电子邮件解决方案,用来收、发电子邮件。James服务器的核心是一个名为config.xml的配置文件,在第一次启动服务器后该系统会自动生成一个config.xml文件,服务器所要执行的动作都是基于此配置文件,可以再与外网失去连接的情况下在局域网内收发邮件。配置文件里面的DNS就可以与外网进行邮件收发,不过很大程度上会给别的服务器当做垃圾邮件处理,最好还是用在自己的局域网内做内部邮件使用。
2.6 Struts技术
Struts是一个基于J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的,是开发Web应用程序的开放源码框架。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大地节省了时间。
本系统选用Struts作为MVC的控制器,因为它足够成熟,用户群广泛。虽然它也有缺点,但完全利用别的软件弥补,比如利用Sitemesh代替Titles等。WebWork很优秀,但起步晚,用户群太小;JSF和Tapestry是重量级的MVC架构。通过这个两个方面的对比即可得出Struts的两大优点,即用户群大且轻量级。
2.7 JSP页面技术
JSP产生于Servlet之后,主要是为了解决Servlet中输出HTML代码效率低的问题而产生的。JSP技术比较简单,类似于ASP、PHP这些脚本语言。JSP的技术主要是由以下两个部分组成:
JSP的基本语法:两个注释、3个脚本元素、8个动作指令。
JSP的九大内置对象:request请求对象、response响应对象、pageContext页面上下文对象、session会话对象、application应用程序对象、out输出对象、config配置对象、page页面对象和exception例外对象。
第三章 系统分析
3.1 需求分析
3.1.1 引言
软件需求分析的编制是为了使用户和软件开发者双方对该软件的初始化规定有一个共同的理解,使之成为整个开发工作的基础。
3.1.2 任务概述
Web版或局域网系统,应用范围为政府机关大中小企业单位。相关人员对计算机操作和业务了解应有一定的基础。
3.1.3 需求规定
A.对性能的规定:软件支持的终端数根据数据库支持的用户数来确定;软件支持的并行操作的用户应在100以上。
B.对性能的规定:速度要快,对于小数据量的数据记录要在短时间内实现各种操作和转换传送;当业务需求发生变化时,该软件应能对这些变化具有良好的适应能力,保持代码与表数据的一致性。而且一定的环境或软件或操作方式不发生变化。
C.输入输出要求:对输入输出的数据必须给与相应的格式类型、数值范围及精度说明。
D.其他专门要求:用户为企事业涉及到公司机密以及财务,对数据的保密性、安全性尤其重视,同时对软件使用方便要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性等都有比较高的要求。
3.2 系统分析
3.2.1 编制流程
后台功能图如下所示:
前台功能图如下所示:
3.2.2用户身份验证模块
本系统功能的开发与设计,是完全针对公司内部进行办公管理以及为各部门员工提供便捷的电子化交互平台搭建的。用户身份验证模块是公司办公自动化管理系统重要组成部分之一,它主要功能是在系统用户进入系统时的身份验证以及在不同页面浏览时的身份验证,以防止公司重要资料的泄露。
3.2.3我的办公桌模块
此模块包含了部门管理、电子邮件、个人资料管理3个子模块,主要是用于日常的办公需要,所有的用户都拥有此模块
【部门管理】:主要对门门的增删查改
【电子邮件】:此部分主要用于内部邮件的收发,用户可以在与外网无法连接的情况下进行收发带附件的邮件,目前对于附件没有什么要求(对邮件进行增删查)
【个人资料管理】:用于修改自己的个人资料(对用户进行增删查改)
3.2.4系统管理模块
在本系统中,管理员的权限是最大的,这也是考虑到了本系统的安全性而设计的,防止公司机密外泄,本模块包含了登陆身份验证,系统管理员的管理。
【管理员】:管理本系统的管理员
3.3 数据结构分析
3.3.1 逻辑结构
本系统所使用的每个数据结构的名称、标识符以及它们之间每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次或表格的相互关系要详尽体现。
3.3.2 物理结构
本系统内所使用的每个数据结构中的每个数据项的存储要求、访问方法、存取单位、存取物理关系(索引,设备,存储区域)、设计考虑和保密条件。
3.3.3 出错补救措施
故障出现后可采取变通措施,包括:
(1)后备技术,当原始系统数据万一丢失时,可以使用系统备份数据进行恢复;
(2) 降效技术,当丢失的数据不是很多时,可采用手工操作重新录入数据;
(3) 当数据库由于不正常关机或停电等不可预知的原因产生错误时,求助于Oracle公司工程师,公司不是Oracle数据库产品的提供商,不提供类似的相应服务;
(4) 由Oracle公司或者相关的工程师优化数据库;
(5) 优化网络配置。
第四章 数据库设计
数据库设计是项目开发和系统设计中非常重要的一个环节,在这里要特别强调数据库设计的重要性,是因为数据库设计就像建设高楼大厦的根基一样,如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中都会引起比较大的问题。
4.1 表格图
4.1.1 我的办公桌
(1)管理员表(tb_admin)
字段类型主键外键是否可为空描述
idint是不可自增
namevarchar不可账号
pwdvarchar可密码
useFlagbit可
(2)部门表(tb_department)
字段类型主键外键是否可为空描述
idint是不可自增
memovarchar可备忘录
namevarchar不可部门名称
useFlagbit可
(3)传阅表(tb_handround)
字段类型主键外键是否可为空描述
idint是不可自增
contentlongtext可内容
creatorIPvarchar可
sendTimedatetime可时间
titlelongtext不可标题
useFlagbit可
user_idint不可用户Id
(4)传阅附件表(tb_handround_attachment)
字段类型主键外键是否可为空描述
idint是不可自增
attachmentNamelongtext可附件名
attachmentRealNamelongtext可真附件名
attachmentYearvarchar可
handround_idInt可传阅ID
(5)传阅状态表(tb_handround_state)
字段类型主键外键是否可为空描述
idint是不可自增
comfirmDatedatetime可确认时间
leaveWordlongtext可
sendTimedatetime可传阅时间
stateFlagInt可
handround_idInt可传阅ID
user_idint可用户ID
(6)用户表(tb_userinfo)
字段类型主键外键是否可为空描述
idint是不可自增
namevarchar不可用户名
positionvarchar可位置
pwdvarchar不可传阅时间
realNamevarchar不可真实姓名
useFlagBit可传阅ID
department_idint可用户ID
第五章 系统实现过程
5.1 开发平台
服务器:Weblogic 8.0
数据库:MySQL5.1
平台技术:Jquery+Struts+Spring+JPA
操作系统:Windows XP
5.2 系统框架
在src目录下主要是各个层的包,是一些java类,在WebRoot目录下是一些实现页面的JSP文件,同时在其里面的WEB-INF包里面有struts以及spring的配制文件
5.3 系统实现
5.3.1 我的办公桌模块
主要是用来进行日常办公的需要,收发邮件,这一部分是整个办公系统必须的功能。
用户在成功登录到页面后,单击”我的办公桌”则可列出:部门资料、电子邮件、个人资料、三个功能块,每块均通过超级链接打开,如下图:
【部门资料】:包括公司的所有部门
【电子邮件】:主要是用于系统内部的邮件收发,支持附件的上传下载,利用James服务器以及事先分配好的内部邮箱名进行收发邮件,如下图:
【个人资料】:此块主要用于用户修改自己的密码
第六章 系统的测试与运行
6.1 系统测试
6.1.1 配置测试环境
(1)安装JDK和bea,weblogic;
(2)运行整个项目;
(3)启动weblogic,在登录之后,需要启动Apatche James服务器来管理邮件接收
(4)发布该系统.通过Web Application Modules实现.
(5)发布成功后即可进入登录页面.
6.2 测试结果
测试结果如下各界面所示:
(1)登录页面
(2)主页面
结论
紧张愉快的毕业设计结束了,我通过努力实现了一个结合了计算机和办公自动化理论并体现了时代潮流的系统。
本系统只提供了一些基本的功能,还不能提供办公自动化需求的完全信息,还需要进一步地考查调研。所有可能实现的功能都将会在今后的工作中继续分析、设计、逐步实现,力求使本系统更加完善。
在开发过程中,我本着将所学的理论知识应用于实践的思想,开发出高质量系统的目的,进行了详细的调研,细致耐心的开发与设计,以刻苦钻研,实事求是的态度开发出本系统。最重要的是通过开发与设计,锻炼了我们分析问题以及进行合理规划与分析设计的能力,同时对开发工具的使用能力也有大幅度提高。我们将所学的理论知识结合到了实际的应用中去,实际的动手能力也有明显的提升。
虽然办公自动化系统仍有许多待解决的问题和待完善的地方,但相信通过我们的不断努力、继续学习,必定会有更加完美的成果跟大家见面。这次开发过程中所学到的所有知识,将成为我今后学习工作当中的坚实基础。希望以后还会有这种锻炼自己的实践机会。
以上是一篇范文,供你参考。希望可以帮到你。
javascript 中如何调用 ActiveX 的内部方法?
我的网站整理了不少自己的和网友的文章,学习中有需要可以看一下
桂林网站建设、桂林电脑培训:
(1)同时支持客户端和服务端
Respones.Write(“script language=”javascript”HelloJava()/script”);
(2)仅支持客户端
aspx:
aspx.cs:
btnDelete.attribute(“onclick”)=”return HelloJava();”
(3)仅支持客户端
this.DropDownList1.Attributes[“onchange”] = “Javascript:return DropDownListChanged();”;
————————————————————————————————————————————————-
+++++++++++++++++第一种情况:
1.后台方法:
protected string CsharpVoid(string strCC)
{
return strCC;
}
2.javascript 调用
script
var s = “%=CsharpVoid(“a href=””)%/””)%”;
document.write(s);
/script
+++++++++++++++++第二种情况:
1.后代码:
protected void CsharpVoid()
{
string strCC = “”;
Response.Write(strCC);
}
2.调用方法:CsharpVoid()
script
document.write(“%CsharpVoid();%”);
/script
你可在页面中放一个按钮,把它设置为不可见style=”display:none”,然后,用脚本让此按钮点击
document.all(“button1”).click();
在此按钮的C#后台中写事件代码,这就是最简单的脚本调用C#方法.
在网上看到这样一个问题:作者用的平台是.NET,用C#在本机开发,在aspx文件中调用 js文件:
script language=”javascript” src=”mymenu.js”/script
结果在页面及 alert 提示的中文均为乱码,求解决办法。结果后面跟贴给出一长串的解决办法,其实很简单,在aspx 文件的头部添加一行代码即可:
!–Page ContentType=”text/html” ResponseEncoding=”gb2312″–
很简单吧,呵呵。!–page ContentType=”text/html” ResponseEncoding=”gb2312″– script language=”javascript” type=”text/javascript” src=”TreeView.js”/scriptscript language=”javascript” type=”text/javascript” src=”TreeView.js”/script
————————————————————————————————————————————————–
在C#中调用VBScript、JavaScript等脚本的实现
作者:秋枫
以前在做工作流(workflow)项目的时候,里面有一项就是在用户制定流程定义时可以编写脚本来控制活动的跳转,而这些脚本定义后存在数据库中,当流程启动的时候,工作流引擎会控制活动执行顺序,串型的两个活动比较简单,但有的活动到下一个活动有条件判断,或者存在多个分支,简单的还好,只要在数据库表中加个字段就可以实现,复杂一点的就需要通过脚本实现了。当时经验不够,几天都没找到快速的解决办法,想自己写一个自定义脚本引擎没有把握,而且时间也不够,还是在网上找找看吧,花了一些时间,还是找到了一个自认为比较好的解决办法,写出来同大家分享。
下面通过两部分来说明实现以及应用。
一.使用MSScriptControl
到微软的网站上下载Windows Script Control,它是一个ActiveX(R) 控件,所以在.NET中使用我Interop了一下。下载安装完成后,新建一个C#的Windows应用程序项目,在解决方案资源管理器中选中引用节点,右键点击选择添加引用菜单,弹出添加引用对话框,单击浏览找到安装Windows Script Control的目录,选取msscript.ocx文件确定。那么在引用节点下会增加一个MSScriptControl组件,下面是他Interop后的所有对象。
ScriptControl 对支持 ActiveX(TM) Script 的宿主 Script 引擎提供简单接口。接下来我们对被转化成ScriptControlClass类的ScriptControl的属性和方法进行一些说明。
属性
AllowUI 属性:应用于 ScriptControl 本身或 Scirpt 引擎显示的用户界面元素,可读写。
CodeObject 属性:返回对象,该对象用于调用指定模块的公用成员。只读。
Error 属性:返回 Error 对象,其中包含所发生的最后一个错误的相关详细信息。只读。
Language 属性:设置或返回正在使用的 Script 语言名称。可读写。
Modules 属性:为 ScriptControl 对象返回模块集合。只读。
Procedures 属性:返回在指定模块中定义的过程集合。只读。
SitehWnd 属性:设置或返回窗口的 hWnd,通过执行 Script 代码,此窗口用于显示对话框和其他用户界面元素。可读写。
State 属性:设置或返回 ScriptControl 对象的模式。可读写。
Timeout 属性:设置或返回时间(毫秒),此时间后用户可选择中止 Script 代码的执行或允许代码继续执行。可读写。
UseSafeSubset 属性:设置或返回 Boolean 值,指明宿主应用程序是否有保密性要求。如果宿主应用程序需要安全控制,则 UseSafeSubset 为 True,否则为 False。可读写。
方法
AddCode 方法:向模块添加指定代码。可多次调用 AddCode 方法。
AddObject 方法:使主机对象模型对 Script 引擎可用。
Eval 方法:计算表达式并返回结果。
ExecuteStatement 方法:执行指定的语句。
Reset 方法:放弃所有已经添加到 ScriptControl 中的 Script 代码和对象。
Run 方法:运行指定过程。
事件
Error 事件:出现运行时错误时,发生此事件。
Timeout 事件:当超出了 Timeout 属性指定的时间且用户在结果对话框中选定了 End 时,发生此事件。
补充几点
AllowUI 属性如果设置为false,则显示对话框之类的语句不起作用,如在 VBScript 中MsgBox 语句,JavaScript中的alert等,并且如果执行的脚本超出TimeOut设置的毫秒数,也不会跳出超出时间提醒的对话框,反之则相反;重新设置 Language 属性会清空AddCode加载的代码;对于TimeOut属性,发生超时时,ScriptControl 检查对象的 AllowUI 属性,确定是否允许显示用户界面元素。
如果读者需要更详细的了解,可以查看MSDN文档。
为了使控件更容易使用,我用一个ScriptEngine类包装了一下,下面是完整代码:
using System;
using MSScriptControl;
using System.Text;
namespace ZZ
{
///
/// 脚本类型
///
public enum ScriptLanguage
{
///
/// JScript脚本语言
///
JScript,
///
/// VBscript脚本语言
///
VBscript,
///
/// JavaScript脚本语言
///
JavaScript
}
///
/// 脚本运行错误代理
///
public delegate void RunErrorHandler();
///
/// 脚本运行超时代理
///
public delegate void RunTimeoutHandler();
///
/// ScriptEngine类
///
public class ScriptEngine
{
private ScriptControl msc;
//定义脚本运行错误事件
public event RunErrorHandler RunError;
//定义脚本运行超时事件
public event RunTimeoutHandler RunTimeout;
///
///构造函数
///
public ScriptEngine():this(ScriptLanguage.VBscript)
{
}
///
/// 构造函数
///
/// 脚本类型
public ScriptEngine(ScriptLanguage language)
{
this.msc = new ScriptControlClass();
this.msc.UseSafeSubset = true;
this.msc.Language = language.ToString();
((DScriptControlSource_Event)this.msc).Error += new DScriptControlSource_ErrorEventHandler(ScriptEngine_Error);
((DScriptControlSource_Event)this.msc).Timeout += new DScriptControlSource_TimeoutEventHandler(ScriptEngine_Timeout);
}
///
/// 运行Eval方法
///
/// 表达式
/// 函数体
/// 返回值object
public object Eval(string expression,string codeBody)
{
msc.AddCode(codeBody);
return msc.Eval(expression);
}
///
/// 运行Eval方法
///
/// 脚本语言
/// 表达式
/// 函数体
/// 返回值object
public object Eval(ScriptLanguage language,string expression,string codeBody)
{
if(this.Language != language)
this.Language = language;
return Eval(expression,codeBody);
}
///
/// 运行Run方法
///
/// 入口函数名称
/// 参数
/// 函数体
/// 返回值object
public object Run(string mainFunctionName,object[] parameters,string codeBody)
{
this.msc.AddCode(codeBody);
return msc.Run(mainFunctionName,ref parameters);
}
///
/// 运行Run方法
///
/// 脚本语言
/// 入口函数名称
/// 参数
/// 函数体
/// 返回值object
public object Run(ScriptLanguage language,string mainFunctionName,object[] parameters,string codeBody)
{
if(this.Language != language)
this.Language = language;
return Run(mainFunctionName,parameters,codeBody);
}
///
/// 放弃所有已经添加到 ScriptControl 中的 Script 代码和对象
///
public void Reset()
{
this.msc.Reset();
}
///
/// 获取或设置脚本语言
///
public ScriptLanguage Language
{
get
set
}
///
/// 获取或设置脚本执行时间,单位为毫秒
///
public int Timeout
{
get
set
}
///
/// 设置是否显示用户界面元素
///
public bool AllowUI
{
get
set
}
///
/// 宿主应用程序是否有保密性要求
///
public bool UseSafeSubset
{
get
set
}
///
/// RunError事件激发
///
private void OnError()
{
if(RunError!=null)
RunError();
}
///
/// OnTimeout事件激发
///
private void OnTimeout()
{
if(RunTimeout!=null)
RunTimeout();
}
private void ScriptEngine_Error()
{
OnError();
}
private void ScriptEngine_Timeout()
{
OnTimeout();
}
}
}
上面的包装定义了一个ScriptLanguage枚举,这样操作起来更方便一点。另外脚本引擎包括了Error事件和Timeout事件,根据实际使用情况可进行注册。
二.脚本引擎演示
我建了个窗体程序,测试包括脚本语言的选择,是否开启AllowUI属性,超时时间的设置,以及脚本引擎调用方法的选择。测试程序代码比较长,下面列出了主要部分:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace ZZ
{
public class Form1 : System.Windows.Forms.Form
{
private ScriptEngine scriptEngine;
private System.Windows.Forms.CheckBox checkBoxAllowUI;
private System.Windows.Forms.TextBox textBoxResult;
private System.Windows.Forms.NumericUpDown numericUpDownTimeout;
private System.Windows.Forms.TextBox textBoxCodeBody;
private System.Windows.Forms.Button buttonRun;
private System.Windows.Forms.Button buttonCancel;
private System.Windows.Forms.ComboBox comboBoxScript;
private System.Windows.Forms.TextBox textBoxParams;
private System.Windows.Forms.RadioButton radioButtonEval;
private System.Windows.Forms.RadioButton radioButtonRun;
private System.Windows.Forms.TextBox textBoxMethodName;
private System.ComponentModel.Container components = null;
public Form1()
{
InitializeComponent();
this.comboBoxScript.SelectedIndex = 0;
this.scriptEngine = new ScriptEngine();
this.scriptEngine.UseSafeSubset = true;
this.scriptEngine.RunError += new RunErrorHandler(scriptEngine_RunError);
this.scriptEngine.RunTimeout += new RunTimeoutHandler(scriptEngine_RunTimeout);
}
protected override void Dispose( bool disposing )
{
if( disposing )
if (components != null)
components.Dispose();
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
private void InitializeComponent()
{
//省略
}
#endregion
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
//运行脚本
private void buttonRun_Click(object sender, System.EventArgs e)
{
this.scriptEngine.Reset();
this.scriptEngine.Language = (ScriptLanguage)Enum.Parse(typeof(ScriptLanguage),this.comboBoxScript.SelectedItem.ToString());
this.scriptEngine.Timeout = (int)this.numericUpDownTimeout.Value;
this.scriptEngine.AllowUI = this.checkBoxAllowUI.Checked;
if(this.radioButtonEval.Checked)//执行Eval方法
{
this.textBoxResult.Text = this.scriptEngine.Eval(this.textBoxMethodName.Text+”(“+this.textBoxParams.Text+”)”,this.textBoxCodeBody.Text).ToString();
}
else//执行Run方法
{
string[] parameters = (string[])this.textBoxParams.Text.Split(‘,’);
object [] paramArray = new object[parameters.Length];
for(int i = 0;i
paramArray[i] = Int32.Parse(parameters[i]);
this.textBoxResult.Text = this.scriptEngine.Run(this.textBoxMethodName.Text,paramArray,this.textBoxCodeBody.Text).ToString();
}
}
//退出程序
private void buttonCancel_Click(object sender, System.EventArgs e)
{
this.Close();
}
//错误函数
private void scriptEngine_RunError()
{
MessageBox.Show(“RunError执行脚本错误!”);
}
private void scriptEngine_RunTimeout()
{
MessageBox.Show(“RunTimeout执行脚本超时,引发错误!”);
}
}
}
下面是测试程序运行界面:
在文本框中写了一个JavaScript的函数。输入12,输出12000012。
JAVA工作流框架哪个比较好?
Activiti、JBPM、JBoss Seam、XJR java快速开发平台
Activiti是由jBPM 的创建Tom Baeyen离JBoss之后建立的项目,构建在开发 jBPM 版本1到4时积累的多年经验的基础之上,旨在创建下一代的 BPM 解决方案。文档丰富,csdn有相应专栏,并且国人贡献了一本《activiti实战》详细的讲解了基于activiti的开发内容,网上教程资源丰富。Activiti上手比较快,界面也比较简洁、直观,学习周期相对较短。官方提供webapp war包,部署在Tomcat下可快速操作和了解activiti,esclipse提供支持activiti项目的ide插件,总的来说环境支持良好。
代码量大,核心代码改动难度较大,但提供了完整的技术文档,架构良好,网上开发文档较多,一定上降低了二次开发的难度。
支持,用户体验好,但是流程设计器是英文版,还需要汉化。
支持多种表单:动态表单,外置表单,普通表单,但表单设计未集成,需要自己集成表单设计。
支持绝大部分工作流功能,符合中国国情的审批流程需要在此基础上进行开发。
JBPM(Java Business Process Management):JAVA业务流程管理,是一个可扩展、灵活、开源的流程引擎, 它可以运行在独立的服务器上或者嵌入任何Java应用中。
1、jBPM3是一个完整的工作流系统实现,面向开发人员,目的在于简化对组织核心流程进行支撑的软件创建,不支持标准。
2、jBPM4引入PVM,使其拥有更强大的扩展性,同时增加BPMS特性,这些特性包括了对BPMN的支持、面向业务人员的Web建模器和简单统计分析功能的加入。
3、jBPM5基于原先的Drools Flow,支持BPMN,通过与Drools的合并支持BAM,通过内容仓库增加对流程可视化的支持。由于放弃了jBPM4的PVM,引擎的可扩展性受到损害,并且不再支持jPDL。
JBoss Seam,算得上是Java开源框架里面最优秀的快速开发框架之一。
Seam是一个很棒的选择,作为程序员来说,要比用 Spring/Hibernate/Struts省心的多,更能够把精力放在业务逻辑的编写上面,开发效率也很不错,可能是Java开源框架里面最优秀的快速开发框架之一了。
Activti的学习价值比较高,是工作流入门的好教材,可以学习里面好的代码风格和思路。Activiti最大的优点就是免费开源,小项目中应用简单的串行并行流转基本能满足需求。现在很多开发人员会选择它。但是要拿Activiti做到中国式的企业级应用门槛和难度很高。想用Activiti来做符合中国国情的审批流程,其实还需要做大量的开发封装。接下来介绍一款基于Activiti扩展的工作流引擎。
XJR java快速开发框架工作流程引擎:采用主流的Activiti工作流引擎,遵循bpmn规范,可实现XML、Json一键导入导出,以及添加了人员动态选择、便捷式会签设置、便捷式任务委托设置、添加自定义表单、自定义节点按钮、动态变量选择(包括会签变量、按钮变量、表单变量)以及各节点属性优化,遵循以客户为中心的优化原则,将整个流程的操作变得简单、快捷,实现0基础客户短时间可自由编辑流程模板。
XJR快速开发平台技术选型
使用目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi,WebSocket,Jquery,BootStrap, maven,Jenkins 等等,支持多种数据库MySQL, Oracle, sqlserver等。 分层设计:使用分层设计,分为dao,service,Controller,view层,层次清楚,低耦合,高内聚。 安全考虑:严格遵循了web安全的规范,前后台双重验证,参数编码传输,密码md5加密存储,shiro权限验证,从根本上避免了SQL注入,XSS攻击,CSRF攻击等常见的web攻击手段。
模块功能
功能模块:开发向导、代码 生成器,商业智能、工作流、报表管理、移动端开发、作业计划、多语言、数据源管理、企业微信、钉钉、消息管理,菜单 管理,用户管理,机构管理,角色管理,区域管理,字典管理,日志查询等基础模块。
目前java开发哪个开发工具最好用
常见的十四种Java开发工具的特点
1、JDK(JavaDevelopmentKit)Java开发工具集
从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java(J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。
2、JavaWorkshop
3、NetBeans与SunJavaStudio5
NetBeans是开放源码的Java集成开发环境(IDE),适用于各种客户机和Web应用。
SunJavaStudio是Sun公司最新发布的商用全功能JavaIDE,支持Solaris、Linux和Windows平台,适于创建和部署2层JavaWeb应用和n层J2EE应用的企业开发人员使用。NetBeans是业界第一款支持创新型Java开发的开放源码IDE。开发人员可以利用业界强大的开发工具来构建桌面、Web或移动应用。同时,通过NetBeans和开放的API的模块化结构,第三方能够非常轻松地扩展或集成NetBeans平台。NetBeans3.5.1主要针对一般Java软件的开发者,而JavaOneStudio5则主要针对企业做网络服务等应用的开发者。Sun不久还将推出ProjectRave,其目标是帮助企业的开发者进行软件开发。NetBeans3.5.1版本与其他开发工具相比,最大区别在于不仅能够开发各种台式机上的应用,而且可以用来开发网络服务方面的应用,可以开发基于J2ME的移动设备上的应用等。在NetBeans3.5.1基础上,Sun开发出了JavaOneStudio5,为用户提供了一个更加先进的企业编程环境。在新的JavaOneStudio5里有一个应用框架,开发者可以利用这些模块快速开发自己在网络服务方面的各种应用程序。
4、Borland的JBuilder
Jbuilder进入了Java集成开发环境的王国,它满足很多方面的应用,尤其是对于服务器方以及EJB开发者们来说。下面简单介绍一下Jbuilder的特点:
1)Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的应用。
2)用户可以自动地生成基于后端数据库表的EJBJava类,Jbuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言InterfaceDefinitionLanguage)和控制远程对象。
3)Jbuilder支持各种应用服务器。Jbuilder与InpriseApplicationServer紧密集成,同时支持WebLogicServer,支持EJB1.1和EJB2.0,可以快速开发J2EE的电子商务应用。
4)Jbuilder能用Servlet和JSP开发和调试动态Web应用。
5)利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。由于Jbuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。
6)Jbuilder拥有专业化的图形调试介面,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。JBuilder环境开发程序方便,它是纯的Java开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较吃内存,这时运行速度显得较慢。
5、Oracle的JDeveloper
Oracle9iJDeveloper(定为9.0版,最新为10g)为构建具有J2EE功能,XML和Webservices的复杂的,多层的Java应用程序提供了一个完全集成的开发环境。它为运用Oracle9i数据库和应用服务器的开发人员提供特殊的功能和增强性能,除此以外,它也有资格成为用于多种用途Java开发的一个强大的工具。
Oracle9iJDeveloper的主要特点如下:
①具有UML(UnifiedModelingLanguage,一体化建模语言)建模功能。可以将业务对象及e-business应用模型化。
②配备有高速Java调试器(Debuger)、内置Profiling工具、提高代码质量的工具“CodeCoach”等。
③支持SOAP(SimpleObjectAccessProtocol)“简单对象访问协议”、UDDI(UniversalDescription,DiscoveryandIntegration)“统一描述、发现和集成协议”
、WSDL(WebServicesDescriptionLanguage)“WEB服务描述语言”等Web服务标准。JDeveloper不仅仅是很好的Java编程工具,而且是OracleWeb服务的延伸,支持ApacheSOAP,以及9iAS,可扩充的环境和XML和WSDL语言紧密相关。Oracle9iJdeveloper完全利用Java编写,能够与以前的Oracle服务器软件以及其他厂商支持J2EE的应用服务器产品相兼容,而且在设计时着重针对Oracle9i,能够无缝化跨平台之间的应用开发,提供了业界第一个完整的、集成了J2EE和XML的开发环境,允许开发者快速开发可以通过Web、无线设备及语音界面访问的Web服务和交易应用,以往只能通过将传统Java编程技巧与最新模块化方式结合到一个单一集成的开发环境中之后才能完成J2EE应用开发生命周期管理的事实,从根本上得到改变。缺点就是对于初学者来说,较复杂,也比较难。
6、IBM的VisualAgeforJava
VisualAgeforJava是一个非常成熟的开发工具,它的特性以于IT开发者和业余的Java编程人员来说都是非常用有用的。它提供对可视化编程的广泛支持,支持利用CICS连接遗传大型机应用,支持EJB的开发应用,支持与Websphere的集成开发,方便的bean创建和良好的快速应用开发(RAD)支持和无文件式的文件处理。
IBM为建设Web站点所推出的WebSphereStudioAdvancedEdition及其包含的Visual
AgeforJavaProfessionalEdition软件已全面转向以Java为中心,这样,Java开发人员对WebSphere全套工具的感觉或许会好了许多。Studio所提供的工具有:Web站点管理、快速开发JDBC页向导程序、HTML编辑器和HTML语法检查等。这确实是个不错的HTML站点页面编辑环境。Studio和VisualAge集成度很高,菜单中提供了在两种软件包之间快速移动代码的选项。这就让使用Studio的Web页面设计人员和使用VisualAge的Java程序员
可以相互交换文件、协同工作。VisualAgeforJava支持团队开发,内置的代码库可以自动地根据用户做出改动而修改程序代码,这样就可以很方便地将目前代码和早期版本做出比较。与VisualAge紧密结合的WebsphereStudio本身并不提供源代码和版本管理的支持,它只是包含了一个内置文件锁定系统,当编辑项目的时候可以防止其他人对这些文件的错误修改,软件还支持诸如MicrosoftVisualSourceSafe这样的第三方源代码控制系统。VisualAgeforJava完全面向对象的程序设计思想使得开发程序非常快速、高效。你可以不编写任何代码就可以设计出一个典型的应用程序框架。VisualAgeforJava作为IBM电子商务解决方案其中产品之一,可以无缝地与其他IBM产品,如WebSphere、DB2融合,迅速完成从设计、开发到部署应用的整个过程。VisualAgeforJava独特的管理文件方式使其集成外部工具非常困难,你无法让VisualAgeforJava与其他工具一起联合开发应用。
7、BEA的WebLogicWorkshop
BEAWebLogicWorkshop是一个统一、简化、可扩展的开发环境,使所有的开发人员都能在BEAWebLogicEnterprisePlatform之上构建基于标准的企业级应用,从而提高了开发部门的生产力水平,加快了价值的实现。WebLogicWorkshop除了提供便捷的Web服务之外,它能够用于创建更多种类的应用。作为整个BEAWebLogicPlatform的开发环境。不管是创建门户应用、编写工作流、还是创建Web应用,Workshop8.1都可以帮助开发人员更快更好地完成。WebLogicWorkshop的主要特点如下:
①使J2EE开发切实可行,提高开发效率
BEAWebLogicWorkshop使开发人员远离J2EE内在的复杂性,集中精力专注业务逻辑,无须操心单调乏味的基础结构代码。这种创新意味着,已被企业验证的J2EE的强大功能,最终被大多数不熟悉Java和J2EE的应用开发人员所掌握,从而使IT部门的工作效率提高一个数量级。可视化设计器以及直观的概念,如事件、属性和控件等,实现了基于事件的开发。Workshop简化的程序设计模型,使开发人员不必掌握复杂的J2EEAPI和面向对象的程序设计原理。所有开发人员,包括J2EE专家和具有可视化和过程化语言技能的应用开发人员在内,都可以共同工作在BEAWebLogicEnterprisePlatform之上。Workshop的可视化开发环境,创建带有代码注释的标准Java文件,用来说明由运行时框架实施的企业级需求。J2EE和其他高级开发人员,借助功能强大的代码编辑功能,可以访问Java源代码,从而弥补了可视化设计器的不足。
②构建企业级应用
通过在可伸缩、安全可靠的企业级架构上实施各种应用,BEAWebLogicWorkshop大大降低了开发风险。而且,所有应用的创建都使用标准的J2EE组件,既保护了您的技术投资,又保持了最大的灵活性。BEAWebLogicWorkshop运行框架,是统一整个架构的汇聚层,使单一、简化的程序设计模型扩展到所有的BEAWebLogicEnterprisePlatform应用类型。通过解释设计时创建的注释代码,运行时框架可以实现必要的J2EE组件,并且提取出与J2EE应用开发有关的所有底层细节。
③降低IT复杂性BEAWebLogicWorkshop提供各种Java控件,使得与IT资源的连接更轻而易举。另外,在构建任何BEAWebLogicPlatform的应用中,Java控件不仅可扩展而且完全相同。这种强大、有效的方法能够:降低IT技术的复杂性,优化信息的可用性,推动包含”最佳业务方案”的可重用服务的开发,使开发人员能以更低的成本、更短的时间实现更大的产出。
利用BEAWebLogicWorkshop,任何开发人员都能以最大的生产效率,构建各种Web服务、Web应用、门户和集成项目。BEAWebLogicWorkshop是BEA的产品战略核心,它帮助客户接触和利用面向服务架构(SOA)的强大功能。BEAWeblogicWorkshop8.1极大简化了当前实际企业集成环境中企业级应用和服务的构建,并成为全面支持关键企业级应用(如异步、真正松耦合和粗粒度消息传送等)的自然选择。它的缺点就是过于复杂,对于初学者来说,理解起来较为困难。
8、WebGain的VisualCafeforJavaVisualCafe是只能在Symantec公司的Java虚拟机、Netscape公司的Java虚拟机和Microsoft虚拟机上工作的调试器。这对于开发者来讲是一个重要的特性,因为用户开发的Java代码中的许多软件bug就可能中会在某种特定的虚拟机上起作用。在修改后进行编译基继续进行调试时,VisualCafe会自动将文件存盘,使用VisualCafe创建的原生应用具有许多特点。除了明显的速度提高之外,Symantec使类库的二进制方式比正常的JDK小VisualCafe为所指定的关系自动生成或更新必要的Java代码。利用VisualCafe,用户可以从一个标准对象数据库中集合完整的Java应用程序和Applet,而不必再编写源代码。VisualCafe还提供了一个扩充的源代码开发工具集。VisualCafe综合了Java软件的可视化源程序开发工具,它允许开发人员在可视化视图和源视图之间进行有效地转换。在可视化视图中进行的修改立即反映在源代码中。对源代码的改变自动更新可视化视图。VisualCafe具有许多源文件方面的特性,如全局检索和替换。绝大多数Java开发工具的文献的问题在于简单地挨个介绍开发工具的每部分组件,但用户在开应用时还需要一个面向任务的手册,利用这个手册你可以不必知道工具每一部分的特定功能就可以开始创建自己的应用。VisualCafe提供了非常全面的用户指南,它对最开始的安装到创建第一个Java应用和Applet都提供了全面的帮助,VisualCafe将自动生成所指明关系的必要Java代码。VisualCafe可以在Windows95和WindowsNT平台下运行,Symantec公司为Java开发工作提供一个在Macintosh操作系统下可以运行的RAD工具。VisualCafe编译器速度很快,在国际化支持方面比较突出;缺点就是对于初学者来说,较复杂,也比较难。
9、Macromedia的JRUN
Macromedia公司的JRun是一个具有最广阔适用性的Java引擎,用于开发及实施由JavaServlets和JavaServerPages编写的服务器端Java应用。JRun是第一个完全支持JSP1.0规格书的商业化产品,全球有超过80,000名开发人员使用JRun在他们已有的Web服务器上添加服务器端Java的功能。其中Web服务器包括了MicrosoftIIS,NetscapeEnterpriseServer,Apache等。JRun是开发实施服务器端Java的先进引擎。如果我们希望在我们的Web应用中添加服务器端Java功能,那么JRun将成为我们的正确选择。JRun目前有3个版本,它是第一个支持JavaServerPages(JSP)规格书1.0的商业化产品。JSP是一种强大的服务器端技术,它是用于创建复杂Web应用的一整套快速应用开发系统。JRun可以使我们开始开发并测试Java应用。它最多接受5个并发的连接并且包括全部JavaServletAPI,支持JavaServerPages(JSP),支持所有主要的Webservers和计算机平台。JRunPro能够在生产环境下承受大访问量的负载,帮助我们实施应用、服务或Web站点(包括内联网)。JRunPro支持无限量并发式连接运行多个Java虚拟机,包括多个并发的Java虚拟机(JVM)。提供一个远程管理applet以及一个远程可再分布式的管理applet。JRunProUnlimited包括了所有JRunPro的功能,除次以外,还可以运行无限量的,并发的JVM。JRun依靠其内置的JRunWebServer可以单独运行。使用服务器端Java,用户可以开发出复杂的商业应用系统。最重要的一点是,由于servlets的平台独立性,以及更加简单的开发、更快速的实施、更经济的维护成本,它是CGI(CommonGatewayInterface)或Perlscripts的极佳的替代产品。缺点就是对于初学者来说,较复杂,也比较难。10、JCreator
JCreator是一个Java程序开发工具,也是一个Java集成开发环境(IDE)。无论你是要开发Java应用程序或者网页上的Applet元件都难不倒它。在功能上与Sun公司所公布的JDK等文字模式开发工具相较之下来得容易,还允许使用者自订义操作窗口界面及无限Undo/Redo等功能。JCreator为用户提供了相当强大的功能,例如项目管理功能,项目模板功能,可个性化设置语法高亮属性、行数、类浏览器、标签文档、多功能编绎器,向导功能以及完全可自定义的用户界面。通过JCreator,我们不用激活主文档而直接编绎或运行我们的JAVA程序。JCreator能自动找到包含主函数的文件或包含Applet的Html文件,然后它会运行适当的工具。在JCreator中,我们可以通过一个批处理同时编绎多个项目。JCreator的设计接近Windows界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的JDK完美结合,是其它任何一款IDE所不能比拟的。它是一种初学者很容易上手的java开发工具,缺点是只能进行简单的程序开发,不能进行企业J2EE的开发应用。
11、MicrosoftVJ++
VisualJ++是Microsoft公司推出的可视化的Java语言集成开发环境(IDE),为Java编程人员提供了一个新的开发环境,是一个相当出色的开发工具。无论集成性、编译速度、调试功能、还是易学易用性,都体现了Microsoft的一惯风格。VisualJ++具有
下面的特点:
1)VisualJ++把Java虚拟机(JVM)作为独立的操作系统组件放入Windows,使之从浏览器中独立出来。
2)Microsoft的应用基本类库(AFC,ApplicationFoundationClassLibrary)对SUN公司的JDK作了扩展,使应用基本类库更加适合在Windows下使用。
3)VisualJ++的调试器支持动态调试,包括单步执行、设置断点、观察变量数值等。
4)VisualJ++提供了一些程序向导(Wizards)和生成器(Builders),它们可以方便地帮助用户快速地生成Java程序,帮助你在自己的工程中创建和修改文件。
5)VisualJ++界面友好,其代码编辑器具有智能感知、联机编译等功能,使程序编写十分方便。VisualJ++中建立了Java的WFC,这一新的应用程序框架能够直接访问Windows应用程序接口(API),使你能够用Java语言编写完全意义上的Windows应用程序。
6)VisualJ++中表单设计器的快速应用开发特性使用WFC创建基于表单的应用程序变得轻松、简单。通过WFC可以方便地使用ActiveX数据对象(ADO,ActiveXDataObjects)来检索数据和执行简单数据的绑定。通过在表单设计器中使用ActiveX数据对象,可以快速地在表单中访问和显示数据。VisualJ++能结合微软的一贯的编程风格,很方便进行Java的应用开发,但它的移植性较差,不是纯的Java开发环境。
12、Eclipse
Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse联盟已经宣布将在2004年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来比较困难。