博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ERP环境检测工具设计与实现 Environment Detection
阅读量:6307 次
发布时间:2019-06-22

本文共 3026 字,大约阅读时间需要 10 分钟。

环境检测的功能在安装程序中应用的很普遍,ERP程序中也需要在系统第一次启动时,对所安装的环境进行检测,遇到不满足的情况要及时提示用户更新系统。

网格中显示要检测的编号,内容描述,最后一列是检测结果,工具栏Export可以将检测结果导出为EXCEL文件。

先来看检测规则的设定,仍然是发挥XML文件的功效,设定放到Xml文件中

当需要检测新的项目时,一般只需要更改此文件内容,增加检测方法。

Method方法定义于程序中的一个静态方法,运行时反射调用此方法进行判断。

public bool CheckIfDotNetFrameworkInstalled()        {            return BaseCommon.CheckIfDotNetFrameworkInstalled(DotNetFrameworkVersion.Version20);        }                /*  Could have a look in the registry for things like:          HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\ Excel\InstallRoot and then check in that path for excel.exe.         */        public bool CheckExcelInstalled()        {            Type officeType = Type.GetTypeFromProgID("Excel.Application");            return officeType != null;        }        /*  Detecting if an Oracle Database is Installed        Check for the existence of an ORACLE_HOME. It's also reasonable to expect that this environment         should be configured for the installation, so testing the environment variables and exiting with a             sensible diagnostic (possibly suggesting they run oraenv) is a good first start.         If you have an ORACLE_HOME, ORACLE_SID or other appropriate environment variable set up,             you can then check for the existence of an oracle home and test for database connectivity and permissions.        */        public bool CheckOracleInstalled()        {            string ORACLE_HOME = Environment.GetEnvironmentVariable("ORACLE_HOME");            string ORACLE_SID = Environment.GetEnvironmentVariable("ORACLE_SID");            return !string.IsNullOrWhiteSpace(ORACLE_HOME) && !string.IsNullOrWhiteSpace(ORACLE_SID);        }        public bool CheckJavaInstalled()        {            string JAVA_HOME = Environment.GetEnvironmentVariable("JAVA_HOME");            return !string.IsNullOrWhiteSpace(JAVA_HOME);        }        public bool CheckForMySQLServer()        {            string query = "SELECT Name FROM Win32_Product WHERE Name LIKE '%MySQL Server%'";            var searcher = new ManagementObjectSearcher(query);            var collection = searcher.Get();            return collection.Count > 0;        }
 

这几个功能方法是我从StackOverflow中找到的,在Windows 7 x86的机器上,结果值与实际值没有偏差。

再来分析一下,在具体的环境中,为了运行一个ERP程序有哪些内容需要我们去检测。

1  基本的.NET  Framework 需要检测。现在项目基本上都升级到Target=.NET 4.0,版本4.0也要检测。.NET 4.5因为不支持XP系统,短时间还没有打算编译为.NET 4.5版本。

.NET 4.0 不允许运行于Windows 2000系统中,但可运行于XP中,XP至今仍然非常的流行,断绝了XP的支持,等于把一大批客户抛到脑后,这是不可接受的。

2  SQL Server 是否安装。应当要检测SQL Server是否已经安装,而不是在系统连接数据库时,提示无法连接到服务器。而对于数据库,SQL Server是否允许远程访问这一项,至今没有找到方法可以去检测。如果SQL Server 安装在本机,可以考虑自动启动它的,允许远程访问。

当然也不能做的太霸道了,蓝软ERP,每次以集成认证方式登陆系统后,会修改sa的密码,让我的其它ERP产品无法连接到数据库中。记得学数据库的时候,推荐安装好SQL Server后把SA帐户禁用,但我看到有些ERP产品,却以SA作为连接帐户,理论与实践确实有些差异。

3  Dot Net时代,COM/COM+已经不是很重要的技术。以.NET Framework内建的事务机制可满足事务需求。

操作系统的安全补丁,因很少用到和发现问题,没有去检测。

4  Excel/Word/PowerPoint项目的检测是为产生导出文件。ERP项目中,绝大部分单据都可以导出到EXCEL进行编辑,查看。部分单据,比如员工信息,员工简历要导出成WORD格式,以便于打印装订。

PPT格式的导出很少遇到。最近遇到一个需求,要求可以把物料清单导出为Visio格式的图形格式,以图形的方式直观的显示当前物料清单它的下一层物料列出。这个功能需求很实用,目前还没有找到办法去实现。

转载地址:http://znxxa.baihongyu.com/

你可能感兴趣的文章
hdu1874畅通工程续
查看>>
rails 字符串 转化为 html
查看>>
java-学习8
查看>>
AOP动态代理
查看>>
Oracle序列
查看>>
xcodebuild命令行编译错误问题解决
查看>>
Yii2.0 下的 load() 方法的使用
查看>>
华为畅玩5 (CUN-AL00) 刷入第三方twrp Recovery 及 root
查看>>
LeetCode----67. Add Binary(java)
查看>>
母版页 MasterPage
查看>>
[转] ReactNative Animated动画详解
查看>>
DNS原理及其解析过程
查看>>
记录自写AFNetWorking封装类
查看>>
没想到cnblog也有月经贴,其实C#值不值钱不重要。
查看>>
【转】LUA内存分析
查看>>
springboot使用schedule定时任务
查看>>
[转] Entity Framework Query Samples for PostgreSQL
查看>>
XDUOJ 1115
查看>>
PHP学习(四)---PHP与数据库MySql
查看>>
模版方法模式--实现的capp流程创建与管理
查看>>