MES开发与应用 课件汇 韩祎 1.2.1-2系统开发工具介绍-开发环境和UML建模- 3.4.7 工业管理软件开发基础-平台通配置-平台编辑器使用介绍_第1页
MES开发与应用 课件汇 韩祎 1.2.1-2系统开发工具介绍-开发环境和UML建模- 3.4.7 工业管理软件开发基础-平台通配置-平台编辑器使用介绍_第2页
MES开发与应用 课件汇 韩祎 1.2.1-2系统开发工具介绍-开发环境和UML建模- 3.4.7 工业管理软件开发基础-平台通配置-平台编辑器使用介绍_第3页
MES开发与应用 课件汇 韩祎 1.2.1-2系统开发工具介绍-开发环境和UML建模- 3.4.7 工业管理软件开发基础-平台通配置-平台编辑器使用介绍_第4页
MES开发与应用 课件汇 韩祎 1.2.1-2系统开发工具介绍-开发环境和UML建模- 3.4.7 工业管理软件开发基础-平台通配置-平台编辑器使用介绍_第5页
已阅读5页,还剩584页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.2系统开发工具介绍深圳市信息职业技术学院——开发环境和UML建模开发工具和操作系统环境介绍01目

录NuGet包本地配置及升级说明02项目运行配置说明03UML建模04代码段的使用05知识回顾数据库的基础语法;数据库的基础操作;学习目标通过本节学习可以:掌握工业软件的项目运行配置;掌握工业软件UML建模工具的使用;掌握Nuget包本地是如何配置的;掌握代码段的使用;了解工业软件开发环境的操作系统;了解工业软件的开发用到的工具有哪些。01开发工具和操作系统环境介绍思考题工业管理软件开发的操作系统环境是?系统开发工具使用的是?操作系统环境介绍工业软件开发操作系统:只能在Windows操作下进行开发;操作系统内存:16G或以上;操作系统版本:Windows10或以上版本(Windows11家庭版除外);操作系统说明:1)windows11家庭版操作系统很多开发工具的安装都会受到影响;如SQLServer数据库、ODAC安装失败,创建不了ftp用户名密码等;2)检查电脑操作系统,如果操作系统为Windows11家庭版,可以升级到windows11专业版或者重装系统。开发工具介绍工业管理软件开发VS环境数据库MQ代码段Redis建模工具系统开发工具:VisualStudio2019或以上,VS2019以下不支持.netcore,工软BS开发使用的是.netcore框架开发的;数据库:支持oracle(11g或以上)、sqlserver(2012以上版本)和mysql(5.7或以上),工业软件中使用数据库较多的是Oracle,其次是SQLServer,MySql使用相对较少;Redis:session缓存信息的处理,工业管理软件中项目启动读取配置、数据库表映射、元数据、实体规则、模块定义等这些的处理都是Redis实现的;MQ:消息队列,一部分的系统间的异步传输实现使用的是MQ,大部分系统的传输使用的是接口实现的;建模工具:ModelFirst,UML实体建模,根据建模生成实体和界面类的代码是通过该工具实现的;代码段:用于在开发过程中快速生成代码片段,生成的代码片段包括实体属性和扩展属性,提升开发效率。02NuGet包本地配置及升级说明思考题工业管理软件平台程序集是通过什么进行管理的?Nuget包本地配置及升级说明NuGet包升级配置平台程序集是通过NuGet包进行管理的,系统开发依赖于平台程序集,在第一次获取项目程序进行开发之前需要将平台程序集的NuGet包进行本地项目配置及升级操作。操作步骤如下:1、解决方案项目用VS打开-->【工具】-->【NuGet包管理器】-->【程序包管理器设置】Nuget包本地配置及升级说明NuGet包升级配置2、进入到选项-->【程序包源】Nuget包本地配置及升级说明NuGet包升级配置3、升级NuGet包03项目运行配置思考题工业管理软件开发环境要确保哪几个工程能够运行成功才表示项目环境是OK的?项目运行配置项目运行配置工业管理软件的项目程序调试工程包括调度服务SIE.ScheduleServer、应用服务SIE.WebApiHost、Web服务WebClient、桌面端应用程序WpfClient;在开发阶段调试用到的工程为SIE.WebApiHost、WebClient、WpfClient,所以在项目开发前要确保这三个工程能够正常运行不报错,为后续代码开发出现异常减少排查时间和方便问题跟踪定位。SIE.WEBAPIHOST项目运行配置ApiHost项目运行配置将SIE.WebApiHost项目设置为启动项目(注意启动类型要以WebAPIHost启动

),检查SIE.WebApiHost的配置文件appsettings.json是否符合要求,需要检查的配置包括:数据库的配置、

Redis的配置(不配置使用内存缓存)、MQ的配置(未使用消息队列可以不配置)、日志的配置、上传方式的配置。SIE.WEBAPIHOST项目运行配置ApiHost项目运行配置配置无问题后,生成解决方案不报错,运行项目能够启动成功则表示SIE.WebApiHost环境OK。webclient项目运行配置WebClient项目运行配置将WebClient项目设置为启动项目,检查WebClient的配置文件appsettings.Development.json是否符合要求,需要检查的配置包括:数据库的配置、

Redis的配置(不配置使用内存缓存)、MQ的配置(未使用消息队列可以不配置)、日志的配置、上传方式的配置。webclient项目运行配置WebClient项目运行配置生成解决方案不报错,运行项目,能跳转到登录界面,输入用户名和密码能登录成功,说明WebClient开发环境OK。Wpfclient项目运行配置WpfClient项目运行配置将WpfClient项目设置为启动项目,检查WpfClient的配置文件appsettings.json是否符合要求,需要检查的配置包括:数据库的配置、MQ的配置(未使用消息队列可以不配置)、日志的配置、上传方式的配置。Wpfclient项目运行配置WpfClient项目运行配置生成解决方案不报错,运行项目,能跳转到登录界面,输入用户名和密码能登录成功,说明WpfClient开发环境OK。04UML建模思考题工业管理软件中UML建模是通过什么工具进行建模的?UML建模UML建模是软件工程中一种重要的工具和方法,它提供了一种统一的语言和符号体系,用于描述和设计软件系统的结构和行为,帮助开发人员更好地理解和沟通系统需求和设计;工业软件开发中UML建模是通过ModelFirst进行创建的,创建完成后使用模板生成代码拷贝到解决方案项目中;ModelFirst建模主要是建实体和实体之间的关系,实体类统一继承基类DataEntity,关系包含一般关系和组合关系。UML建模工具的使用UML建模工具的使用1、解压ModelFirst工具到对应文件夹下(免安装),使用EAP.ModelFirst.exe打开,可以右键将这个exe文件发送到桌面快捷方式,方便下次使用。UML建模工具的使用UML建模工具的使用2、创建工程,打开ModelFirst,在右边项目总管中,右键新建工程,双击创建类图。注意:使用modelfirst建模时,右边preject工程的层级最好跟项目的层级保持一致,这样生成的实体类拷贝到解决方案项目中就不用一个个去修改命名空间,也可以防止改漏的命名空间而引发的异常问题。UML建模工具的使用UML建模工具的使用3、创建实体类,如下图,可以在左边工具箱中把类型中的类或者枚举拖到中间创建,也可以右键新建-类。说明:使用ModelFirst建立模型,我们只使用到了类和枚举,接口和控制器等不要在UML建模中体现。UML建模工具的使用UML建模工具的使用4、创建属性。说明:属性名不能命名为Id,因为框架表的主键设置的为Id,这里的属性只建业务相关的属性,框架级别通用的属性框架有统一处理。UML建模工具的使用UML建模工具的使用5、创建关系。说明:这里的关系,常用关系为关联和组合关系;聚会关系没有在关系中体现,通过中间表实现的。UML建模工具的使用UML建模工具的使用6、组合关系说明:需要手动将箭头去掉,不去掉是单向关系。UML建模工具的使用UML建模工具的使用7、生成代码,BS的功能模型选择2018下的Entity和WebViewConfig。05代码段的使用思考题工业管理软件中视图属性的代码片段引入的快捷键是?普通属性的代码片段引入的快捷键是?代码段的作用1、SMOM代码段引入的目的是为了提升开发效率,将一段代码行提取出来,可以多次重复使用。2、SMOM引入的代码段包括属性和扩展属性,与ModelFrist实体建模的属性类似。3、代码段和ModelFrist是两种不同的实现方式,实现效果是一样的,对于新功能我们可以通过ModelFrist进行实体建模,项目原有功能上做二开增加属性可以通过代码段添加,效率会更高。4、实体和实体之间的属性一致,尽量不要使用复制操作,如果复制之后关联的实体名没有修改,功能会报错排查问题也比较麻烦;这种方式的操作尽量通过代码段实现。代码段的导入代码段的导入1、将代码段解压到对应文件夹下,点击VS中的“工具-代码片段管理器”。代码段的导入代码段的导入2、在弹出的“代码片段管理器”对话框中,语言选择“CSharp”。代码段的导入代码段的导入3、点击“添加”或者“导入”按钮,这里以“添加”为例。代码段的导入代码段的导入4、如下图代码片段能够查看到,表示添加或者导入成功,点击确定,即操作完成。注意:代码段不要重复添加,重新添加进来后使用代码段会显示多个,需要去选择操作。代码段的使用代码段的使用1、代码段导入成功后,在实体中输入“pfp”,代码片段能否显示出来,如果可以说明OK,如果代码片段不能出来重启VS再试试。代码段的使用代码段的使用2、输入pfp(视图属性代码段为pfv),两次tab键导入,修改备注和属性名(修改备注和属性名时鼠标定位到对应位置,不要来回切,会把关联的内容一起修改)。代码段注意事项代码段注意事项1、扩展列表属性使用代码段生成出来的注册扩展列表属性(RegisterListExtension)是错的,需手动调整为RegisterExtensionList。代码段注意事项代码段注意事项2、扩展属性默认关联的实体为Entity,Entity是我们实体的基类,一定要修改,不修改如果该属性要映射为数据库字段,会导致该数据库连接名下所有的表都映射该字段。练习1、工业管理软件开发中调试工程包括()A:SIE.ScheduleServer; B:SIE.WebApiHost;C:WebClient; D:WpfClient。2、工业管理软件中,网页端功能的项目运行启动使用的调试工程是()A:SIE.ScheduleServer; B:SIE.WebApiHost;C:WebClient; D:WpfClient。3、工业管理软件开发中通过代码段加入引用属性使用的快捷键是pfv。ABCDC错本章小结SMOM开发工具介绍建模工具及代码段的使用结束介绍了工业软件UML建模的工具,详细讲解了建模工具的使用,必须掌握;介绍了代码段的导入及使用,代码段的使用在开发过程中使用较多,必须掌握。开发环境及项目运行配置介绍了工业软件在什么操作系统下进行开发;介绍了工业软件涉及到的开发工具;详细讲解了Nuget包本地配置及升级,需要掌握;详细讲解了项目运行配置,这部分内容较重要需要掌握。THANKYOU深圳市信息职业技术学院——基础语法、基础操作4.2.3数据库常用介绍查询数据更新数据使用视图管理事务处理了解SQL使用存储过程知识回顾学习目标通过本节学习可以:重点学习如何查询数据重点学习如何更新数据掌握视图的使用掌握存储过程的使用了解如何管理事务处理01了解SQL了解SQLSQL(发音为字母S-Q-L或sequel)是结构化查询语言(StructuredQueryLanguage)的缩写。SQL是一种专门用来与数据库沟通的语言。SQL有如下的优点:SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以学习此语言使你几乎能与所有数据库打交道。SQL简单易学。它的语句全都是由有很强描述性的英语单词组成,而且这些单词的数目不多。SQL虽然看上去很简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。了解SQL使用PLSQLDeveloperPLSQLDeveloper工具是Oracle常用的数据库管理工具。在安装PLSQLDeveloper之前,要先安装好Oracle客户端。Oracle客户端的安装很简单,下载解压后放到某个目录下即可。安装Oracle客户端使用PLSQLDeveloperPLSQLDeveloper的安装很简单,按照提示安装即可。安装完后,打开PLSQLDeveloper,打开配置选项窗口,按下面说明进行配置,配置完后关闭并重新打开PLSQLDeveloper。安装和配置PLSQLDeveloper指定Oracle客户端的目录指定oci.dll的目录,在Oracle客户端目录下使用PLSQLDeveloper连接数据库需要知道数据库的IP、端口、服务名以及用户名和密码。连接数据库用户名密码ip:port/service_name02查询数据查询数据_检索数据SELECT

<列名>

FROM

<表名>

WHERE

<条件>;该SQL包含了SELECT、FROM以及WHERE三个子句。SELECT:子句用于指定要查询的列名称。FROM:子句指定查询的表名称。WHERE:子句指定过滤数据的条件。一般来说,以分号作为单个SQL语句的结尾,但不是强制的。如果有多个SQL语句,可以使用分号区分不同的SQL,所以加上分号是一个好习惯。基本查询语法查询数据_检索数据SELECTdnameFROMdept;把要查询的列放在SELECT子句后面,非常简单。检索单个列查询数据_检索数据SELECTdeptno,dname,locFROMdept;指定检索多个列,列与列之间使用逗号分隔开。如果检索所有列,可以显示指定所有字段,也可以只指定*,*表示所有字段,如下所示:SELECT*FROMdept;检索多个列查询数据_检索数据SELECTjobFROMemp;如果希望去掉上面重复的数据,比如SALESMAN只显示一个,可以加上DISTINCT关键字去重:SELECTDISTINCTjobFROMemp;去除重复数据查询数据_检索数据SELECTdeptnoASno,dnameASname,locFROMdept;当字段命名较长时,可以使用别名简化。如果是表达式,可以使用别名命名,比如a+bASsalary。当从多张表查询数据时,如果有相同的字段,可以使用别名进行区分。指定别名查询数据_排序数据SELECT*FROMempORDERBYjob;通过使用ORDERBY子句对数据排序。如果不排序,数据一般将以它在底层表中出现的顺序显示,这有可能是数据最初添加到表中的顺序。排序数据查询数据_排序数据SELECT*FROMemptORDERBYsal,ename;可以指定按多个列排序,使用逗号隔开。首先会按前面的字段排序,如果值相同则按后面的字段排序。按多个列排序查询数据_排序数据SELECTempno,ename,job,mgr,hiredate,sal,commFROMempORDERBY2,3;SELECT子句先于ORDERBY执行,所以在排序时可以得到字段所在位置然后进行排序。按列的位置排序查询数据_排序数据SELECTempno,sal,ename,job,mgrFROMempORDERBYsalASC,enameDESC;ASC表示升序,默认排序方式,DESC表示降序。如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。指定排序方向查询数据_过滤数据比较运算符查询数据_过滤数据SELECT*FROMempWHEREjob='MANAGER';要查询某个值的数据,可以使用=运算符判断。匹配过滤一般把字段放左边,具体值放右边字符串类型要放到引号内,即使这个字串符是数值查询数据_过滤数据SELECT*FROMempWHEREjob<>'SALESMAN';SELECT*FROMempWHEREjob!='SALESMAN';可以使用<>也可以使用!=,不过有的数据库不支持!=,建议使用<>。不匹配过滤查询数据_过滤数据SELECT*FROMempWHEREsal>3000;SELECT*FROMempWHEREsal<1800;SELECT*FROMempWHEREsal>2000ANDsal<3000;SELECT*FROMempWHEREsal>=1250ANDsal<=1600;SELECT*FROMempWHEREsalBETWEEN1250AND1600;范围过滤..between..and....>=..and..<=..查询数据_过滤数据SELECT*FROMempWHEREcomm=NULL;SELECT*FROMempWHEREcommISNULL;SELECT*FROMempWHEREcommISNOTNULL;SELECT*FROMempWHEREcomm<>300;当碰到NULL值时,会被判定为不满足条件,所以这里不会查出NULL值的数据。需要添加下面的条件才能把NULL的数据查出来:SELECT*FROMempWHEREcomm<>300ORcommISNULL;空值过滤这种方式无法查询为空值的数据针对空值,需要使用ISNULL或ISNOTNULL不会把查询出包含NULL的数据查询数据_过滤数据SELECT*FROMempWHERENOT(job='SALESMAN’);WHERE子句中的NOT操作符有且只有一个功能,那就是否定其后所跟的任何条件。这里当匹配条件时返回TRUE,然后NOT取反得到FALSE,这样匹配条件的数据被过滤了,查出的是未匹配的数据。NOT运算符查询数据_过滤数据SELECT*FROMempWHEREjob='SALESMAN'ANDsal>1300;SELECT*FROMempWHEREjob='SALESMAN'ORdeptno=30;AND运算符在其两侧的查询条件都成立时整个查询条件才成立,其意思相当于“并且”。OR运算符在其两侧的查询条件有一个成立时整个查询条件都成立,其意思相当于“或者”。AND、OR运算符需两侧条件同时成立仅需其中一个条件成立查询数据_过滤数据SELECT*FROMempWHEREjobIN('CLERK','PRESIDENT’);SELECT*FROMempWHEREjob='CLERK'ORjob='PRESIDENT';取出CLERK和PRESIDENT的所有数据,功能上与OR是一样的。当值特别多时,相比较OR而言,使用IN书写会更简洁。IN运算符得到的结果是一样的查询数据_过滤数据SELECT*FROMempWHEREsal+comm=1900;可以拿字段进行计算形成一个新的字段。既可以在WHERE子句也可以在SELECT子句对字段进行计算。SELECTsal+comm,t.*FROMemptWHEREsal+comm=1900;计算字段查询数据_过滤数据SELECT*FROMempWHEREename||','||job='ALLEN,SALESMAN';可以使用||把字符串拼接起来形成一个新的字段,有些数据库使用+拼接。既可以在WHERE子句也可以在SELECT子句对字段进行拼接。SELECTename||','||job,t.*FROMemptWHEREename||','||job='ALLEN,SALESMAN';

拼接字段查询数据_模糊匹配在条件中可以使用通配符%或_进行模糊匹配,%表示匹配多个任意字符,_只能匹配一个任意字符。SELECT*FROMempWHEREenameLIKE'J%’;查出J开头的所有数据,不管J后面有多少个字符。SELECT*FROMempWHEREenameLIKE'%N';查出以N结尾的所有数据,不管N前面有多少个字符都能匹配出来。SELECT*FROMempWHEREenameLIKE'%AR%';查出只要包含了AR的所有数据,不管AR前后有多少个字符。模糊匹配查询数据_聚合数据SELECTCOUNT(*),SUM(sal),MIN(mgr),MAX(mgr),AVG(sal)FROMemp;聚合函数用于对所有数据或分组数据进行计算。COUNT统计行数,SUM汇总,MIN统计最小值,MAX统计最大值,AGV计算平均值;聚合函数会忽略NULL值,在使用COUNT的时候要特别注意,如果指定的是*不会忽略NULL值,如果指定的是某个字段,该字段有NULL会被忽略,意味着所在行不会被统计。SELECTCOUNT(*),COUNT(mgr)FROMempt;聚合函数其中一行的MRG是NULL不会被统计查询数据_聚合数据可以使用GROUPBY子句对数据进行组,GROUPBY后面指定分组字段,会把字段值相同的视为一组,然后可以基于分组进行统计。如果分组列中包含具有NULL值的行,NULL值将单独划分为一组。SELECTjob,COUNT(*),SUM(sal),AVG(sal)FROMempGROUPBYjob;分组数据查询数据_聚合数据在分组后,可以使用HAVING子句对分组统计进一步过滤。HAVING是基于分组计算过滤的,必须结合GROUPBY子句一起使用。SELECTjob,COUNT(*),SUM(sal),AVG(sal)FROMempGROUPBYjobHAVINGCOUNT(*)>2;该示例统计出了每个分组超过两行的数据:过滤分组03更新数据更新数据_插入数据INSERTINTO<表名>(字段1,字段2,…)VALUES(值1,值2,…);INSERTINTOemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)VALUES(7935,'XIAOLI','CLERK',7566,to_date('1985-1-23','yyyy-mm-dd'),1200,NULL,20);在表名旁边指定字段名称,在VALUES子句中指定字段对应值。如果对所有字段赋值,可以不用指定这些字段名称,只要在VALUES子句指定列值即可。如果仅对部分字段赋值,那么就必须指定这些字段名称。对于设置为非空的字段,必须要赋值。INSERTINTOemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)SELECT7935,'XIAOLI','CLERK',7566,to_date('1985-1-23','yyyy-mm-dd'),1200,NULL,20FROMdual;可以把查询语句的数据插入到表中,意味着可以通过这种方式把多行的数据插入到表中。插入数据更新数据_修改、删除数据UPDATE<表名>SET字段1=值1,字段2=值2,字段3=值3,…WHERE;UPDATEempSETename='XIAOLI2'WHEREempno=7935;修改满足条件的数据。DELETEFROM<表名>WHERE...;DELETEFROMemp;删除所有数据。DELETEFROMempWHEREempno=7935;删除满足条件的数据。注意:为了防止误修改和删除,在执行前要仔细检查,有条件的话要先做备份。修改、删除数据04使用视图更新数据_使用视图视图并不存放数据,相当于一张虚拟表,里面包含了一段SQL语句,然后基于这个视图查询数据。使用视图查询数据的好处如下:重用SQL语句。简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道其基本查询细节。使用表的一部分而不是整个表。保护数据。可以授予用户访问表的特定部分的权限,而不是整个表的访问权限。更改数据格式和表示。视图可返回与底层表的表示和格式不同的数据。了解视图更新数据_使用视图SELECT*FROMempa,deptbWHEREa.deptno=b.deptno;针对这两张两表联结的查询,可以将其创建为视图:CREATEVIEWemp_allASSELECTa.empno,a.ename,a.job,a.mgr,a.hiredate,a.sal,m,a.deptno,b.dnameFROMempa,deptbWHEREa.deptno=b.deptno;通过视图可以简化查询语句:SELECT*FROMemp_all;创建视图05使用存储过程更新数据_使用存储过程存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。使用存储过程的原因:通过把处理封装在一个易用的单元中,可以简化复杂的操作。重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。简化对变动的管理。如果表名、列名或业务逻辑(或别的内容)有变化,那么只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。了解存储过程更新数据_使用存储过程下面是Oracle数据库创建存储过程的方法:调用存储过程:创建存储过程CREATEORREPLACEPROCEDUREp_testAS

v_sal_totalNUMBER;BEGIN

FORvIN(SELECT*FROMemp)LOOPv_sal_total:=nvl(v_sal_total,0)+v.sal;ENDLOOP;dbms_output.put_line(v_sal_total);END;BEGIN

p_test;END;定义存储过程名称定义变量BEGIN..END内编写业务逻辑06管理事务处理更新数据_管理事务处理使用事务处理(transactionprocessing),通过确保成批的SQL操作要么完全执行,要么完全不执行,来维护数据库的完整性。事务(transaction)指一组SQL语句,确保要一起提交,要么一起回滚;回滚(rollback)指撤销指定SQL语句所做的修改;提交(commit)指将SQL语句结果永久写入数据库表;保留点(savepoint)指事务处理中设置的临时占位符(placeholder),可以回滚事务中的部署修改(与回退整个事务处理不同)。只有INSERT、UPDATE、DELETE语句参与事务管理,CREATE、DROP等不能纳入事务管理。管理事务处理BEGINUPDATEaccountSETmoney=money-100WHERENAME='张三';UPDATEaccountSETmoney=money+100WHERENAME='李四';COMMIT;EXCEPTIONWHENOTHERSTHENROLLBACK;END;更新数据_管理事务处理将张三的100块钱转给李四,如果没有事务机制,在下面的转账过程中,当张三扣掉了100,然后在转给李四的时候发生了错误,这样就会导致张三少了100,但是李四却没有收到100。管理事务示例扣掉张三的100把100转给李四成功则提交保证数据一致失败则回滚修改保证数据一致本章小节本章主要讲解了数据库常见操作,包括:首先介绍了什么是SQL;详细的讲解了常见的SQL查询;讲解了如何更新数据;讲解了如何使用视图、存储过程;最后讲解了事务的基本使用;1.1系统技术栈介绍深圳市信息职业技术学院——SMOM技术栈介绍系统架构的演化路线01目

录系统架构常用方案02SMOM系统方案及实现03SMOM系统部署方案04课程目标通过本节学习可以:了解系统架构的演化路线;了解常用的系统架构方案有哪些;学习SMOM系统方案有哪些;学习SMOM的几种部署方案;01系统架构的演化路线系统架构的演化路线特征:应用程序、数据库、文件都部署在同一个服务器上。描述:公司创业初期、个人服务器、前期的简易架构会使用这种把应用、文件、数据库都放在一个服务器,即节约了服务器成本,也方便维护。应用程序文件数据库单体架构应用服务器单体架构系统架构的演化路线应用程序应用服务器文件文件服务器数据库数据库服务器分层架构特征:应用程序、数据库、文件都部署分别拆分部署在不同的服务器上。描述:随着公司的规模扩展,业务量的增长,单台服务器性能及存储空间不足,需要将应用和数据分离,并发处理能力和数据存储空间得到了很大改善。分层架构系统架构的演化路线分布式架构数据库数据库服务器(主)应用服务器1应用服务器2应用程序应用服务器3文件服务器1文件服务器2文件服务器3文件数据库数据库服务器(从)特征:按服务职责分别做分布式负载均衡,分别为应用程序、文件系统、数据库搭建服务器集群做负载均衡分担服务器压力,解决单台服务器处理能力和存储空间上限的问题。描述:使用集群是系统解决高并发、海量数据问题的常用手段。通过向集群中追加资源,使得服务器的负载压力不在成为整个系统的瓶颈。分布式架构XX服务1广告服务1用户服务1系统架构的演化路线微服务架构应用程序文件数据库商品服务2应用程序文件数据库用户服务2应用程序文件数据库广告服务2应用程序文件数据库XX服务2特征:根据业务进行拆分服务集群,一些并发量不多的服务集群可能合并放在同一个应用服务器,并发量大、响应速度要求快的会拆分到多个应用服务器。描述:为了应对日益复杂的业务场景,通常使用分而治之的手段将整个系统业务分成不同的产品线。纵向拆分:将一个大应用拆分为多个小应用。横向拆分:将复用的业务拆分出来,独立部署为分布式服务。设计服务接口,规范服务依赖关系。微服务架构商品服务102系统架构常用方案系统架构常用方案单体应用架构(MonolithicArchitecture):单体应用架构是最简单的架构形式,将整个应用程序作为一个单一的、紧密耦合的单元进行开发和部署。这种架构适用于小型应用和初始阶段的项目,易于开发和测试,但随着应用规模的增长,单体应用可能变得难以维护和扩展。优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求。缺点:性能差、基本没有高可用、扩展性差,不适合用于大规模部署、应用等生产环境。数据库单体架构单体架构浏览器移动端桌面端应用程序系统架构常用方案客户端-服务端架构(Client-ServerArchitecture):将应用程序划分为客户端和服务器两个部分。客户端负责用户界面和交互,服务器负责处理业务逻辑和数据存储。这种架构可以实现分布式计算和资源共享,常见的例子包括Web应用程序和移动应用程序。优点:在分布式处理、灵活性和可扩展性方面具有优势,对于安全性来说也有一定的保障。缺点:存在单点故障、网络依赖性和成本等方面的挑战。在设计和选择架构时,需要综合考虑系统的需求、可用性要求和预算限制等因素。数据库客户端-服务端架构客户端-服务端架构浏览器移动端桌面端Web服务Api服务系统架构常用方案分层架构(LayeredArchitecture):分层架构将应用程序划分为多个层次,每个层次负责不同的功能。常见的层次包括表示层(PresentationLayer)、业务逻辑层(BusinessLogicLayer)和数据访问层(DataAccessLayer)。分层架构提供了良好的模块化和可扩展性,使得不同层次可以独立开发和测试。优点:模块化和可维护性、可扩展性、可重用性、可测试性。缺点:多层通讯的性能损失、设计复杂性高、部分业务存在过度分层、跨层依赖。数据库分层架构分层架构业务逻辑层(BLL)数据访问层(DAL)表示层(UI)系统架构常用方案微服务架构(MicroservicesArchitecture):微服务架构将应用程序拆分为一组小型、自治的服务,每个服务都专注于特定的业务功能。这种架构提供了高度的灵活性、可伸缩性和独立部署能力,每个服务可以独立开发、测试和部署。微服务架构适用于大型、复杂的应用和团队。优点:独立性和自治性、可伸缩性、弹性和容错性、技术多样性、高内聚低耦合性缺点:分布式系统复杂性、网络通信开销、运维复杂性、分布式事务管理复杂性、分布式系统的测试和调试复杂微服务架构数据库微服务架构浏览器移动端桌面端订单程序数据库XX程序03SMOM系统方案及实现SMOM系统方案及实现SMOM服务化、高可用的应用集群架构稳定性:服务自动注册发现,通过健康检查,自动故障转移可扩展性:服务器可动态扩容,支持公有云/私有云/混合云部署04SMOM系统部署方案集中式部署集中式部署架构特点当前架构采用集中式部署架构;优点:服务器资源量少、集中,一套服务资源可提供多厂使用,服务器成本低,但也可以每厂独立的环境。数据统一归档于总部服务器,数据安全性高,IT力量集中。运维成本小,只需集团有小量运维人员即可。

缺点:工厂到集团网络要求高,需要专线或者延时低带宽(最好少于30毫秒),网络稳定性要求较高。尽可能实现双专线(高低搭配、不同运营商)实现网络高可用SMOM系统部署方案SMOM多基地-集中式部署方案分布式部署架构特点优点:各厂有自己服务器群,避免总部到工厂之间网络断开时导致停产的问题。同时属于工厂内部网络,网络延时低,应用响应快。缺点:架构对于应用层实现有较高要求,需实现大量接口进行业务数据同步,在网络抖动情况下存在数据同步失败或漏同步的情况(需要运维人员进行处理),各厂需有一定的运维力量。生产环境架构提供高可用、高性能特点。通过部署多应用服务节点、数据库采用RAC提供双节点高可用服务。通过双热模式、多节点分流模式,提供高性能的服务,通过dataguard实现主库同步数据到从库。相关的高可用、高性能部署,可根据实际情况决定是否使用,数据库可使用双机或者单机,从库是否使用,应用节点可根据实情情况进行增减。当前架构实现分布部署,适合总部、工厂各自部署服务器群(新增工厂直接复制现有拓扑),有专线的场景下实现工厂数据汇总,总部进行分析、决策。架构中实现多节点进行热备及分流,能同时处理大量并发请求。SMOM系统部署方案SMOM多基地-分布式部署方案高可用:Oracle可做RAC达到高可用,主库两节点间共用相同虚拟IP,主库节点A和和节点B共用数据文件,节点A正常提供监听服务,接收到请求时会分流到A节和B节点进行处理,当节点A下线时,节点B提供监听服务,接收到请求会在B节点上处理,以达到其中一个节点宕机时,另一个节点能提供服务。当A节点恢复时,请求会再分流到A和B节点上,达到高可用,高性能的要求主从库:通过DataGuard方式,实现数据主从数据库同步,由从库提供报表及看板类数据查询,减少主库IO影响。归档库:根据归档需求,在父子级表筛选数据创建Shell脚本,调用导出参数文件导出参数文件中配置数据导出的表和数据条件基于数据存储时间,进行历史数据归档操作SMOM系统方案及实现SMOM服务化、高可用的应用集群架构DBDBDBDBvip:90ip:92vip:90ip:91RACDataGuard应用层储存层主库节点A主库节点B从库归档库历史数据归档思考✎思考题内容SMOM架构是包含了哪些架构。SMOM集中式部署有什么优缺点。练习练习题内容,一两题?1.单体架构为什么适合创业型公司?2.微服务架构可以把多个服务集群部署在同一个应用服务器吗?3.数据库主从库通过什么方式实现?练习题答案1.成本低、运维简单,开发方便2.可以3.DataGuard本章小节本章主要讲解系统架构方案介绍、SMOM架构和部署方案:首先系统架构的演化历程其次对系统架构做了介绍再讲解了SMOM的整体系统架构后面详细的讲解了SMOM的部署方案通过本章的学习,初学者可以掌握系统架构的演化方案和各个架构的特点,还有SMOM的复杂架构、部署方案。THANKYOU深圳市信息职业技术学院1.4系统技术栈介绍深圳市信息职业技术学院——平台框架运行原理平台启动原理01目

录前端界面生成流程02学习目标通过本节学习可以:了解工业软件的平台运行原理;了解工业软件的前端界面生成流程;01平台启动原理平台启动原理启动流程平台启动原理开始初始化1:注册一些必要的服务(如:WPF启动的时候也要用到一些消息的组件,提前进行注册)2:重置应用程序运行环境3:初始化应用程序环境(如:上下文线程信息、设置运行时环境)获取程序集1:扫描运行目录下的所有SIE.*.DLL2:扫描Domain目录下的所有*.DLL3:扫描UI目录下的所有*.DLL初始化模块和扩展属性1:初始化所有的模块2:注册所有扩展属性3:加载所有提交前事件、提交后事件、实体验证规则启动过程介绍平台启动原理初始化所有的Modules1:初始化所有的实体模块(实体工程的Module初始化)2:初始化所有界面模块(UI工程的Module初始化)可以在这里初始化方法里面挂载各种拦截事件(如:实体查询事件)触发AllModulesIntialized事件所有实体元数据初始化完毕,包括实体元数据之间的关系。(可以用来声明自定义编辑器,及其它需要比较提前进行初始化的功能)初始化编译期元数据1:初始化所有的命令(反射找出所有的命令)2:初始化所有的js资源(所有嵌入式资源)3:触发命令元数据初始化完成事件CommandMetaIntialized4:触发初始化期定义的元数据初始化完成时事件MetaCompiled启动过程介绍平台启动原理触发ModuleOperations事件该事件主要用来挂载菜单模块触发ServiceIntializing

事件服务初始化,在此事件中向IoC容器注册服务触发AppMetaCompleted事件所有元数据初始化工作完成事件(如:用来挂载通用查询面板的命令:保存过滤条件、打开过滤的条件面板等)触发RuntimeStarting

事件应用程序运行时开始前事件,可以在这里提前加载ui类的功能(如:C/S的工作台addins插件)启动过程介绍平台启动原理触发MainProcessStarting事件主过程开始前事件(如:可以在这里设置皮肤主题)启动主进程主要C/S用到,用来关掉前面的加载动画、打开主进程界面。触发StartupCompleted事件整个启动完成事件,可以在这里做一些事件的订阅、消息订阅等启动过程介绍02前端界面生成流程前端界面生成流程界面布局定义-默认的模板布局结构前端界面生成流程界面渲染逻辑-页面块说明主块(MainBlock)每个聚合块都会仅有一个主块,表示这个页面的主要模块,也是主要呈现的模块信息。环绕块(Surrounders)环绕块指的是可以环绕布局在主块周围的信息,可以有0~N个,默认一版的列表界面有一个环绕的“查询视图块”。子块(Children)子块指的是主块对应的所有聚合子块、附加明细块、附加子列表块。聚合块(AggtBlocks)所有AutoUI生成的界面都是通过聚合块描述的,里面包含整个页面的信息:主块、环绕块、子块、页面布局元数据。前端界面生成流程界面渲染逻辑-块生成公共类说明布局元数据(Layout)用于每个“块”布局信息描述,比如可以在这里定义了,主块、子块、环绕块的布局位置。模板(CodeBlocksTemplate)所有的AutoUI生成的界面都是通过模板来生成的,可以集成模板重写每一块的生成逻辑。AutoUI页面生成AutoUI类,是个壳,单例(暴露给客户端),对外提供的公共类,可以通过该类获取框架生成的块。ViewFactory视图创建工厂,可以根据块来生成对应的视图。UIGeneratorUI生成器,主要根据元数据生成对应的前端控件。前端界面生成流程界面渲染逻辑-流程前端界面生成流程界面渲染逻辑巩固知识:页面布局是通过自定义定义模板的布局元数据定义页面的每一块都是可以独立生成的客制化界面可以通过AutoUI自动生成需要的界面只要理解了页面的生成逻辑,其实要做客制化界面是很简单的,可以通过自定义模板的布局描述相应的布局,通过控制页面的“块”生成逻辑,即可生成相应的页面元素思考题平台启动为什么分了这么多步骤?加了那么多事件?练习1、聚合块包含哪些?()A:Surrounders环绕块;B:Grandson孙块;C:Children子块;D:MainBlock主块。BTHANKYOU深圳市信息职业技术学院2.1项目运行配置知识回顾平台启动原理前端界面生成原理学习目标通过本节学习可以:对BS端功能运行配置和启动有个基础的认识对CS端功能运行配置与启动有个基础的认识对数据库生成与菜单配置有个基础的认识01网页端功能运行配置与启动说明网页端功能运行与启动配置说明WebClient启动配置文件说明网页端功能运行和启动时需要将WebClient设置为启动项目,读取对应配置文件的信息,取决于launchSettings.json的配置,配置启动类型分为:WebClient与IISExpress.启动类型为WebClient时读取WebClient工程文件的appsettings.json配置文件启动类型为IISExpress时读取WebClient工程文件的appsettings.Development.json文件网页端功能运行与启动配置说明启动类型为Webclient读取的配置文件为appsettings.json文件:WebClient启动配置文件说明网页端功能运行与启动配置说明启动类型为IISExpress读取的配置文件为appsettings.Development.json文件:IISExpress启动配置文件说明启用WebClient本地模式调试步骤说明1.启动类型为WebClient时,分为两种模式:本地模式:Local;代理模式:Remote。本地模式:需要设置appsettings.json的DataPortal.Mode为Local网页端功能运行与启动配置说明网页端功能运行与启动配置说明启用WebClient本地模式调试步骤说明2.运行调试时,还需要配置数据库连接字符串,如果工程没有数据提供者类,默认读取的为master的连接字符串网页端功能运行与启动配置说明启用WebClient本地模式调试步骤说明3.运行调试时,设置WebClient为启用项目,调试模式设置为WebClient网页端功能运行与启动配置说明启用WebClient本地模式调试步骤说明4.运行调试,进入到登录界面,浏览对应的IP和端口对应的配置为urls的配置启用WebClient代理模式调试步骤说明1.启动类型为WebClient时,代理模式:需要设置appsettings.json的DataPortal.Mode为Remote,并配置代理地址:DataPortal.Url.。网页端功能运行与启动配置说明启用WebClient代理模式调试步骤说明2.启动类型为WebClient时,需要设置配置启动项目。勾选多个启动项目,选择SIE.WebApiHost启动,WebClient启动。网页端功能运行与启动配置说明网页端功能运行与启动配置说明启用WebClient代理模式调试步骤说明3.运行调试时,设置完成后可以看到多个启动项目,然后直接点启动。网页端功能运行与启动配置说明启用WebClient代理模式调试步骤说明4.运行调试,进入到登录界面,浏览对应的IP和端口对应的配置为urls的配置启用IISEx本地模式调试步骤说明设置appsettings.Development.json的DataPortal.Mode为Local网页端功能运行与启动配置说明启用IISExpress本地模式调试步骤说明设置WebClient为启用项目,调试模式设置为IISExpress网页端功能运行与启动配置说明网页端功能运行与启动配置说明启用IISExpress本地模式调试步骤说明4.运行调试,进入到登录界面,浏览对应的IP和端口对应的配置为launchSettings.json中的sslPort配置启用IISExpress代理模式调试步骤说明1.启动类型为IISExpress时,代理模式:需要设置appsettings.Development,并配置代理地址:DataPortal.Url.。网页端功能运行与启动配置说明启用IISExpress代理模式调试步骤说明启动类型为IISExpress时,需要设置配置启动项目。勾选多个启动项目,选择SIE.WebApiHost启动,WebClient启动,后续的启动步骤和本地模式一样的。网页端功能运行与启动配置说明02桌面端功能运行配置与启动说明启用WpfClient本地模式调试步骤说明1.启动WpfClient,设置appsettings.json的DataPortal.Mode为Local桌面端功能运行配置与启动说明启用WpfClient本地模式调试步骤说明2.运行调试时,还需要配置数据库连接字符串,如果工程没有数据提供者类,默认读取的为master的连接字符串桌面端功能运行配置与启动说明网页端功能运行与启动配置说明启用WpfClient本地模式调试步骤说明3.运行调试,进入到登录界面,则表示启动成功。03数据库生成与菜单配置介绍数据库生成与菜单配置介绍数据库生成通用说明SMOM程序的数据库表是通过程序生成的:项目源码第一次升级数据库表时,要通过CS端进行数据库升级操作,生成成功后可以在BS端配置菜单,之后就可通过BS端的“实体元数据”菜单进行升级操作CS端升级数据库只能本地模式进行操作,不能启用代理模式进行数据库升级操作,升级数据库,会生成表和表对应的序列(id和系统序列),通过脚本创建表时要同时创建对应的两个序列,BS端“实体元数据”菜单的升级数据库时尽量不勾选“更新实体元数据”,可在“实体元数据”的“更新”或者“选择更新”进行操作。CS端升级数据库操作步骤说明1.启动WpfClient,设置appsettings.json的DataPortal.Mode为Local,通过将dev.generateDbOnStartup属性设置为true,打开升级数据库窗体数据库生成与菜单配置介绍CS端升级数据库操作步骤说明2.启动项目,在弹出的升级数据库对话框中进行如下操作数据库生成与菜单配置介绍CS端升级数据库操作步骤说明3.升级完成后,关闭升级数据库对话框,在跳转到的登录界面,输入用户名:SysAdmin,密码:123456,进行登录,第一次登录要修改密码,修改成功登录成功后,关闭窗体,在BS端进行菜单配置和后续操作。数据库生成与菜单配置介绍BS端升级数据库操作步骤说明1.WebClient的项目引用和配置更改好后,将WebClient设置为启动项目,启动项目注意:必须用CS端将框架的数据库生成出来,才能在BS端进行数据库升级操作。数据库生成与菜单配置介绍BS端升级数据库操作步骤说明2.输入用户名和密码登录成功后,点击“实体元数据”功能(如果没有该功能,在菜单功能中进行菜单配置)。数据库生成与菜单配置介绍BS端升级数据库操作步骤说明3.在进入的“实体元数据”功能中,点击“升级数据库”按钮数据库生成与菜单配置介绍BS端升级数据库操作步骤说明4.在“升级数据库窗口”中,点击“确定”按钮就那些数据库升级操作数据库生成与菜单配置介绍初始菜单配置说明SMOM初始菜单配置是在界面端模块初始化类的初始化方法中添加模块操作的事件进行配置的数据库生成与菜单配置介绍初始菜单配置说明1.同一个实体类只能配置一个菜单;2.配置的菜单显示不出来,可以在配置菜单的初始化方法中设置断点,看是否能进入,可以通过下图的方式逐步排查原因;数据库生成与菜单配置介绍初始化菜单操作说明1.运行程序,点击“菜单”功能,在进入的菜单功能中点击“更新功能模块”(批量操作)或者是“更新选择的功能模块”(单个操作),进行初始化操作(这一步操作也可以在“模块定义”功能进行操作)说明:新增加的菜单要先进行初始化操作才能配置菜单数据库生成与菜单配置介绍初始化菜单操作说明2.更新完成后,点击左边的“刷新”按钮,或者是关闭“菜单”功能重新打开,新添加的菜单就会在左边的列表中显示出来。数据库生成与菜单配置介绍平台菜单配置说明初始化完成后,将左边列表的数据拖到右边菜单列表中,点击保存,菜单就配置好了。数据库生成与菜单配置介绍自定义菜单配置步骤说明1.在“模块定义”菜单中添加模块,保存添加的模块注意:1.自定义菜单一定要加上Url,并且Url必须带http://或者https://,方能展示分配的菜单权限;2.自定义外部的菜单如果修改了模块定义的信息,在菜单功能中已经配置的对应菜单需要先删除保存后再重新配置该菜单。数据库生成与菜单配置介绍自定义菜单配置步骤说明2.在“菜单”中将左边的模块菜单拖动到右边菜单中,点击保存注意:这里第三方系统的连接能打开,打开方式需要配置为“窗体”数据库生成与菜单配置介绍自定义菜单配置步骤说明3.在“功能地图”中点击右边的“刷新”图标,菜单就能显示出来,点击“百度”菜单,就能调整到百度数据库生成与菜单配置介绍练习✎本章练习了解BS端功能运行配置和启动,CS端运行配置和启动知识?了解数据库生成和菜单配置知识?✎预习练习SMOM项目结构知识了解?本章小节本章主要讲解了项目运行配置的说明,包括:首先介绍了网页端运行和启动配置说明

;其次讲解了桌面端运行和启动配置说明;再次讲解了数据库生成操作步骤说明;最后讲解了菜单配置说明。一般在SMOM项目运行启动中,启动调试不同的模式时,需要配置不同的配置文件。因此要求学生必须了解清晰并掌握本章知识。2.2项目结构介绍知识回顾WebClient启动配置IISExpress启动配置WpfClient启动配置CS端数据库生成操作BS端数据库生成操作菜单配置说明学习目标通过本节学习可以:对解决方案项目层级有个基础的认识对项目工程有个基础的认识对项目文件存储目录有个基础的认识对平台程序集有个基础的认识01解决方案项目层级说明解决方案项目层级说明Modules文件夹下是存放我们具体业务的项目工程,业务开发实现的工程都要建在Modules文件夹下解决方案下的SIE.ScheduleServer、SIE.WebApiHost、WebClient、WpfClient为项目调试工程。Modules调试工程解决方案项目层级说明02项目工程说明项目工程说明项目工程说明Modules文件夹下项目工程说明Modules文件夹下是业务工程,包含服务端工程,BS界面端工程和CS界面端工程。新建的业务工程不要放到Modules文件夹最外面,最好根据实际业务用文件夹包起来,不然项目工程一多,工程维护比较麻烦。建具体工程时,最好评估下工程要做的功能来引用依赖的dll,不要一建工程就不管有没有用,先把dll引用进来,而是需要什么就引用什么。工程的dll依赖不要出现循环依赖。服务端工程不要引用客户端相关dll。BS界面端工程不要引用CS界面端工程。CS界面端工程不要引用BS界面端工程。项目工程说明调试工程调试工程SIE.ScheduleServer:调度调试工程,只能引用服务端工程或者是dll。SIE.WebApiHost:Api接口调试工程,用于调试api接口方法,只能引用服务端工程或者是dll。WebClient:BS端功能调试工程,如果要还原部署后功能问题,需要启用代理进行调试;该工程不能引用CS端工程或者是dll,否则会引发异常。WpfClient:CS端功能调试工程,如果要还原部署后功能问题,需要启用代理进行调试;该工程不能引用BS端工程或者是dll,否则会引发异常。03项目文件存储目录结构介绍项目文件储存目录结构说明Common文件存储目录说明Common文件存储目录说明Common文件夹下存储的是公共的服务包,例如:WpfClient,WebClient,SIE.WebApiHost,SIE.ScheduleServer(调度服务),Resources(资源文件)等服务包文件。项目文件储存目录结构说明Modules文件存储目录说明Modules文件存储目录说明Modules文件夹下存储的是公共工程文件,业务工程文件,例如:Common(公共工程文件),ERPInterface(ERP接口工程文件),SMES(MES业务工程文件),SQMS(QMS业务工程文件),SWMS(WMS业务工程文件)等。也可以按照项目需求自行添加项目业务工程文件的。项目文件储存目录结构说明nupkgs文件存储目录说明nupkgs文件存储目录说明nupkgs文件夹下存储的是Nuget下的包文件:DevExpress相关包文件,Hangfire(用于执行后台任务工具函数库)相关包文件,RazorEngine(模版引擎)相关包文件,SIE平台框架程序集相关包文件等。项目文件储存目录结构说明packages文件存储目录说明packages文件存储目录说明packages文件夹下存储的是WPF工程项目引用过包文件,WpfClient编译生成时会自动生成的packages文件夹,并将引用的文件放到packages文件夹下。项目文件储存目录结构说明platform文件存储目录说明platform文件存储目录说明platform文件夹下存储的是解决方案里面生成以后的目录文件:生成SMOM解决方案时会自动生成platform文件夹,目录结构是SMOM=>netcoreapp3.1,netstandard2.0。netcoreapp3.1存储的WebClient引用的dll文件;netstandard2.0存储的服务端引用的dll文件。项目文件储存目录结构说明Projects文件存储目录说明Projects文件存储目录说明Projects文件夹下存储的是项目启动服务文件:Projects文件夹里面的生成的文件夹是根据解决方案来生成的,例如:只有一个SMOM解决方案,就生产一个SMOM文件夹,如果多个则会生成多个解决方案对应的文件夹。文件夹下面储存的是项目启动服务文件。SIE.ScheduleServer(调度服务)启动文件;SIE.WebApiHost(服务端)启动文件。WebClient(BS客户端)启动文件;WpfClient(CS客户端)启动文件.04平台封装程序集介绍平台封装程序集说明平台封装程序集说明SIE.dll:核心类库的实现及接口定义,基础通用功能的封装等。SIE.Wpf.dll:所有界面生成的封装,如使用到的Wpf生成界面布局、基础控件、命令的封装等。SIE.Common.dll:命令、编辑器、界面布局等后端通用实现;编码段、通用序列算法生成的实现和员工,预警,调度,推送,打印,模板的基类及接口定义。SIE.Wpf.Common.dll:命令、编辑器、界面布局等前端通用实现;以及员工、打印、模板的基类前端实现。SIE.ORM.MappingColumn.dll:ORM数据库映射库。SIE.Log4Net.dll、SIE.LogClient.dll、SIE.LogData.dll、SIE.SqlLogger.dll:日志库,框架日志的实现。SIE.dllSIE.Wpf.dllSIE.Common.dllSIE.Wpf.Common.dllSIE.ORM.MappingColumn.dllSIE.Log4Net.dllSIE.LogClient.dllSIE.LogData.dllSIE.SqlLogger.dll平台封装程序集说明平台封装程序集说明SIE.Caches.dll:缓存实现库。SIE.Diagnostics.dll:性能诊断库,主要写数据库操作。SIE.Iscript.dll:接口库。SIE.Script.dll:脚本库,对SIE.Iscript.dll的实现。SIE.Messages.dll:消息库,框架消息的实现。SIE.RazorEngine.dll:模板引擎库。SIE.Session.Redis.dll:Redis库。SIE.Localization.dll:本地化库,框架多语言的后端实现。SIE.Wpf.Localization.dll:本地化库,框架多语言的前端实现。SIE.Caches.dllSIE.Diagnostics.dllSIE.Iscript.dllSIE.Script.dllSIE.Messages.dllSIE.RazorEngine.dllSIE.Session.Redis.dllSIE.Localization.dllSIE.Wpf.Localization.dll平台封装程序集说明平台封装程序集说明SIE.Mda.dll:模块库,如模块,实体元数据,数据库升级相关操作的后端实现。SIE.Wpf.Mda.dll:模块库,如模块,实体元数据,数据库升级相关操作的前端实现。SIE.Rbac.dll:权限库,如菜单,用户,角色及权限相关的后端实现。SIE.Wpf.Rbac.dll:权限库,如菜单,用户,角色及权限相关的前端实现。SIE.Dashboard.dll:看板设计器的后端实现。SIE.Wpf.Dashboard.dll:看板设计器的前端实现。SIE.Mda.dllSIE.Wpf.Mda.dllSIE.Rbac.dllSIE.Wpf.Rbac.dllSIE.Dashboard.dllSIE.Wpf.Dashboard.dll平台封装程序集说明平台封装程序集说明SIE.Schedule.dll:调度库,调度平台的后端实现。SIE.Wpf.Schedule.dll:调度库,调度平台的前端实现。Hangfire.Core.dll:调度平台核心实现。SIE.Queue.dll:消息队列库,平台消息队列的实现。SIE.Wpf.MQ.dll:消息队列前端实现。SIE.Alert.dll:预警库,平台预警功能的后端实现。SIE.Wpf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论