版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1.2系統(tǒng)開發(fā)工具介紹深圳市信息職業(yè)技術(shù)學(xué)院——開發(fā)環(huán)境和UML建模開發(fā)工具和操作系統(tǒng)環(huán)境介紹01目
錄NuGet包本地配置及升級說明02項目運行配置說明03UML建模04代碼段的使用05知識回顧數(shù)據(jù)庫的基礎(chǔ)語法;數(shù)據(jù)庫的基礎(chǔ)操作;學(xué)習(xí)目標通過本節(jié)學(xué)習(xí)可以:掌握工業(yè)軟件的項目運行配置;掌握工業(yè)軟件UML建模工具的使用;掌握Nuget包本地是如何配置的;掌握代碼段的使用;了解工業(yè)軟件開發(fā)環(huán)境的操作系統(tǒng);了解工業(yè)軟件的開發(fā)用到的工具有哪些。01開發(fā)工具和操作系統(tǒng)環(huán)境介紹思考題工業(yè)管理軟件開發(fā)的操作系統(tǒng)環(huán)境是?系統(tǒng)開發(fā)工具使用的是?操作系統(tǒng)環(huán)境介紹工業(yè)軟件開發(fā)操作系統(tǒng):只能在Windows操作下進行開發(fā);操作系統(tǒng)內(nèi)存:16G或以上;操作系統(tǒng)版本:Windows10或以上版本(Windows11家庭版除外);操作系統(tǒng)說明:1)windows11家庭版操作系統(tǒng)很多開發(fā)工具的安裝都會受到影響;如SQLServer數(shù)據(jù)庫、ODAC安裝失敗,創(chuàng)建不了ftp用戶名密碼等;2)檢查電腦操作系統(tǒng),如果操作系統(tǒng)為Windows11家庭版,可以升級到windows11專業(yè)版或者重裝系統(tǒng)。開發(fā)工具介紹工業(yè)管理軟件開發(fā)VS環(huán)境數(shù)據(jù)庫MQ代碼段Redis建模工具系統(tǒng)開發(fā)工具:VisualStudio2019或以上,VS2019以下不支持.netcore,工軟BS開發(fā)使用的是.netcore框架開發(fā)的;數(shù)據(jù)庫:支持oracle(11g或以上)、sqlserver(2012以上版本)和mysql(5.7或以上),工業(yè)軟件中使用數(shù)據(jù)庫較多的是Oracle,其次是SQLServer,MySql使用相對較少;Redis:session緩存信息的處理,工業(yè)管理軟件中項目啟動讀取配置、數(shù)據(jù)庫表映射、元數(shù)據(jù)、實體規(guī)則、模塊定義等這些的處理都是Redis實現(xiàn)的;MQ:消息隊列,一部分的系統(tǒng)間的異步傳輸實現(xiàn)使用的是MQ,大部分系統(tǒng)的傳輸使用的是接口實現(xiàn)的;建模工具:ModelFirst,UML實體建模,根據(jù)建模生成實體和界面類的代碼是通過該工具實現(xiàn)的;代碼段:用于在開發(fā)過程中快速生成代碼片段,生成的代碼片段包括實體屬性和擴展屬性,提升開發(fā)效率。02NuGet包本地配置及升級說明思考題工業(yè)管理軟件平臺程序集是通過什么進行管理的?Nuget包本地配置及升級說明NuGet包升級配置平臺程序集是通過NuGet包進行管理的,系統(tǒng)開發(fā)依賴于平臺程序集,在第一次獲取項目程序進行開發(fā)之前需要將平臺程序集的NuGet包進行本地項目配置及升級操作。操作步驟如下:1、解決方案項目用VS打開-->【工具】-->【NuGet包管理器】-->【程序包管理器設(shè)置】Nuget包本地配置及升級說明NuGet包升級配置2、進入到選項-->【程序包源】Nuget包本地配置及升級說明NuGet包升級配置3、升級NuGet包03項目運行配置思考題工業(yè)管理軟件開發(fā)環(huán)境要確保哪幾個工程能夠運行成功才表示項目環(huán)境是OK的?項目運行配置項目運行配置工業(yè)管理軟件的項目程序調(diào)試工程包括調(diào)度服務(wù)SIE.ScheduleServer、應(yīng)用服務(wù)SIE.WebApiHost、Web服務(wù)WebClient、桌面端應(yīng)用程序WpfClient;在開發(fā)階段調(diào)試用到的工程為SIE.WebApiHost、WebClient、WpfClient,所以在項目開發(fā)前要確保這三個工程能夠正常運行不報錯,為后續(xù)代碼開發(fā)出現(xiàn)異常減少排查時間和方便問題跟蹤定位。SIE.WEBAPIHOST項目運行配置ApiHost項目運行配置將SIE.WebApiHost項目設(shè)置為啟動項目(注意啟動類型要以WebAPIHost啟動
),檢查SIE.WebApiHost的配置文件appsettings.json是否符合要求,需要檢查的配置包括:數(shù)據(jù)庫的配置、
Redis的配置(不配置使用內(nèi)存緩存)、MQ的配置(未使用消息隊列可以不配置)、日志的配置、上傳方式的配置。SIE.WEBAPIHOST項目運行配置ApiHost項目運行配置配置無問題后,生成解決方案不報錯,運行項目能夠啟動成功則表示SIE.WebApiHost環(huán)境OK。webclient項目運行配置WebClient項目運行配置將WebClient項目設(shè)置為啟動項目,檢查WebClient的配置文件appsettings.Development.json是否符合要求,需要檢查的配置包括:數(shù)據(jù)庫的配置、
Redis的配置(不配置使用內(nèi)存緩存)、MQ的配置(未使用消息隊列可以不配置)、日志的配置、上傳方式的配置。webclient項目運行配置WebClient項目運行配置生成解決方案不報錯,運行項目,能跳轉(zhuǎn)到登錄界面,輸入用戶名和密碼能登錄成功,說明WebClient開發(fā)環(huán)境OK。Wpfclient項目運行配置WpfClient項目運行配置將WpfClient項目設(shè)置為啟動項目,檢查WpfClient的配置文件appsettings.json是否符合要求,需要檢查的配置包括:數(shù)據(jù)庫的配置、MQ的配置(未使用消息隊列可以不配置)、日志的配置、上傳方式的配置。Wpfclient項目運行配置WpfClient項目運行配置生成解決方案不報錯,運行項目,能跳轉(zhuǎn)到登錄界面,輸入用戶名和密碼能登錄成功,說明WpfClient開發(fā)環(huán)境OK。04UML建模思考題工業(yè)管理軟件中UML建模是通過什么工具進行建模的?UML建模UML建模是軟件工程中一種重要的工具和方法,它提供了一種統(tǒng)一的語言和符號體系,用于描述和設(shè)計軟件系統(tǒng)的結(jié)構(gòu)和行為,幫助開發(fā)人員更好地理解和溝通系統(tǒng)需求和設(shè)計;工業(yè)軟件開發(fā)中UML建模是通過ModelFirst進行創(chuàng)建的,創(chuàng)建完成后使用模板生成代碼拷貝到解決方案項目中;ModelFirst建模主要是建實體和實體之間的關(guān)系,實體類統(tǒng)一繼承基類DataEntity,關(guān)系包含一般關(guān)系和組合關(guān)系。UML建模工具的使用UML建模工具的使用1、解壓ModelFirst工具到對應(yīng)文件夾下(免安裝),使用EAP.ModelFirst.exe打開,可以右鍵將這個exe文件發(fā)送到桌面快捷方式,方便下次使用。UML建模工具的使用UML建模工具的使用2、創(chuàng)建工程,打開ModelFirst,在右邊項目總管中,右鍵新建工程,雙擊創(chuàng)建類圖。注意:使用modelfirst建模時,右邊preject工程的層級最好跟項目的層級保持一致,這樣生成的實體類拷貝到解決方案項目中就不用一個個去修改命名空間,也可以防止改漏的命名空間而引發(fā)的異常問題。UML建模工具的使用UML建模工具的使用3、創(chuàng)建實體類,如下圖,可以在左邊工具箱中把類型中的類或者枚舉拖到中間創(chuàng)建,也可以右鍵新建-類。說明:使用ModelFirst建立模型,我們只使用到了類和枚舉,接口和控制器等不要在UML建模中體現(xiàn)。UML建模工具的使用UML建模工具的使用4、創(chuàng)建屬性。說明:屬性名不能命名為Id,因為框架表的主鍵設(shè)置的為Id,這里的屬性只建業(yè)務(wù)相關(guān)的屬性,框架級別通用的屬性框架有統(tǒng)一處理。UML建模工具的使用UML建模工具的使用5、創(chuàng)建關(guān)系。說明:這里的關(guān)系,常用關(guān)系為關(guān)聯(lián)和組合關(guān)系;聚會關(guān)系沒有在關(guān)系中體現(xiàn),通過中間表實現(xiàn)的。UML建模工具的使用UML建模工具的使用6、組合關(guān)系說明:需要手動將箭頭去掉,不去掉是單向關(guān)系。UML建模工具的使用UML建模工具的使用7、生成代碼,BS的功能模型選擇2018下的Entity和WebViewConfig。05代碼段的使用思考題工業(yè)管理軟件中視圖屬性的代碼片段引入的快捷鍵是?普通屬性的代碼片段引入的快捷鍵是?代碼段的作用1、SMOM代碼段引入的目的是為了提升開發(fā)效率,將一段代碼行提取出來,可以多次重復(fù)使用。2、SMOM引入的代碼段包括屬性和擴展屬性,與ModelFrist實體建模的屬性類似。3、代碼段和ModelFrist是兩種不同的實現(xiàn)方式,實現(xiàn)效果是一樣的,對于新功能我們可以通過ModelFrist進行實體建模,項目原有功能上做二開增加屬性可以通過代碼段添加,效率會更高。4、實體和實體之間的屬性一致,盡量不要使用復(fù)制操作,如果復(fù)制之后關(guān)聯(lián)的實體名沒有修改,功能會報錯排查問題也比較麻煩;這種方式的操作盡量通過代碼段實現(xiàn)。代碼段的導(dǎo)入代碼段的導(dǎo)入1、將代碼段解壓到對應(yīng)文件夾下,點擊VS中的“工具-代碼片段管理器”。代碼段的導(dǎo)入代碼段的導(dǎo)入2、在彈出的“代碼片段管理器”對話框中,語言選擇“CSharp”。代碼段的導(dǎo)入代碼段的導(dǎo)入3、點擊“添加”或者“導(dǎo)入”按鈕,這里以“添加”為例。代碼段的導(dǎo)入代碼段的導(dǎo)入4、如下圖代碼片段能夠查看到,表示添加或者導(dǎo)入成功,點擊確定,即操作完成。注意:代碼段不要重復(fù)添加,重新添加進來后使用代碼段會顯示多個,需要去選擇操作。代碼段的使用代碼段的使用1、代碼段導(dǎo)入成功后,在實體中輸入“pfp”,代碼片段能否顯示出來,如果可以說明OK,如果代碼片段不能出來重啟VS再試試。代碼段的使用代碼段的使用2、輸入pfp(視圖屬性代碼段為pfv),兩次tab鍵導(dǎo)入,修改備注和屬性名(修改備注和屬性名時鼠標定位到對應(yīng)位置,不要來回切,會把關(guān)聯(lián)的內(nèi)容一起修改)。代碼段注意事項代碼段注意事項1、擴展列表屬性使用代碼段生成出來的注冊擴展列表屬性(RegisterListExtension)是錯的,需手動調(diào)整為RegisterExtensionList。代碼段注意事項代碼段注意事項2、擴展屬性默認關(guān)聯(lián)的實體為Entity,Entity是我們實體的基類,一定要修改,不修改如果該屬性要映射為數(shù)據(jù)庫字段,會導(dǎo)致該數(shù)據(jù)庫連接名下所有的表都映射該字段。練習(xí)1、工業(yè)管理軟件開發(fā)中調(diào)試工程包括()A:SIE.ScheduleServer; B:SIE.WebApiHost;C:WebClient; D:WpfClient。2、工業(yè)管理軟件中,網(wǎng)頁端功能的項目運行啟動使用的調(diào)試工程是()A:SIE.ScheduleServer; B:SIE.WebApiHost;C:WebClient; D:WpfClient。3、工業(yè)管理軟件開發(fā)中通過代碼段加入引用屬性使用的快捷鍵是pfv。ABCDC錯本章小結(jié)SMOM開發(fā)工具介紹建模工具及代碼段的使用結(jié)束介紹了工業(yè)軟件UML建模的工具,詳細講解了建模工具的使用,必須掌握;介紹了代碼段的導(dǎo)入及使用,代碼段的使用在開發(fā)過程中使用較多,必須掌握。開發(fā)環(huán)境及項目運行配置介紹了工業(yè)軟件在什么操作系統(tǒng)下進行開發(fā);介紹了工業(yè)軟件涉及到的開發(fā)工具;詳細講解了Nuget包本地配置及升級,需要掌握;詳細講解了項目運行配置,這部分內(nèi)容較重要需要掌握。THANKYOU深圳市信息職業(yè)技術(shù)學(xué)院——基礎(chǔ)語法、基礎(chǔ)操作4.2.3數(shù)據(jù)庫常用介紹查詢數(shù)據(jù)更新數(shù)據(jù)使用視圖管理事務(wù)處理了解SQL使用存儲過程知識回顧學(xué)習(xí)目標通過本節(jié)學(xué)習(xí)可以:重點學(xué)習(xí)如何查詢數(shù)據(jù)重點學(xué)習(xí)如何更新數(shù)據(jù)掌握視圖的使用掌握存儲過程的使用了解如何管理事務(wù)處理01了解SQL了解SQLSQL(發(fā)音為字母S-Q-L或sequel)是結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)的縮寫。SQL是一種專門用來與數(shù)據(jù)庫溝通的語言。SQL有如下的優(yōu)點:SQL不是某個特定數(shù)據(jù)庫供應(yīng)商專有的語言。幾乎所有重要的DBMS都支持SQL,所以學(xué)習(xí)此語言使你幾乎能與所有數(shù)據(jù)庫打交道。SQL簡單易學(xué)。它的語句全都是由有很強描述性的英語單詞組成,而且這些單詞的數(shù)目不多。SQL雖然看上去很簡單,但實際上是一種強有力的語言,靈活使用其語言元素,可以進行非常復(fù)雜和高級的數(shù)據(jù)庫操作。了解SQL使用PLSQLDeveloperPLSQLDeveloper工具是Oracle常用的數(shù)據(jù)庫管理工具。在安裝PLSQLDeveloper之前,要先安裝好Oracle客戶端。Oracle客戶端的安裝很簡單,下載解壓后放到某個目錄下即可。安裝Oracle客戶端使用PLSQLDeveloperPLSQLDeveloper的安裝很簡單,按照提示安裝即可。安裝完后,打開PLSQLDeveloper,打開配置選項窗口,按下面說明進行配置,配置完后關(guān)閉并重新打開PLSQLDeveloper。安裝和配置PLSQLDeveloper指定Oracle客戶端的目錄指定oci.dll的目錄,在Oracle客戶端目錄下使用PLSQLDeveloper連接數(shù)據(jù)庫需要知道數(shù)據(jù)庫的IP、端口、服務(wù)名以及用戶名和密碼。連接數(shù)據(jù)庫用戶名密碼ip:port/service_name02查詢數(shù)據(jù)查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECT
<列名>
FROM
<表名>
WHERE
<條件>;該SQL包含了SELECT、FROM以及WHERE三個子句。SELECT:子句用于指定要查詢的列名稱。FROM:子句指定查詢的表名稱。WHERE:子句指定過濾數(shù)據(jù)的條件。一般來說,以分號作為單個SQL語句的結(jié)尾,但不是強制的。如果有多個SQL語句,可以使用分號區(qū)分不同的SQL,所以加上分號是一個好習(xí)慣?;静樵冋Z法查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTdnameFROMdept;把要查詢的列放在SELECT子句后面,非常簡單。檢索單個列查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTdeptno,dname,locFROMdept;指定檢索多個列,列與列之間使用逗號分隔開。如果檢索所有列,可以顯示指定所有字段,也可以只指定*,*表示所有字段,如下所示:SELECT*FROMdept;檢索多個列查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTjobFROMemp;如果希望去掉上面重復(fù)的數(shù)據(jù),比如SALESMAN只顯示一個,可以加上DISTINCT關(guān)鍵字去重:SELECTDISTINCTjobFROMemp;去除重復(fù)數(shù)據(jù)查詢數(shù)據(jù)_檢索數(shù)據(jù)SELECTdeptnoASno,dnameASname,locFROMdept;當字段命名較長時,可以使用別名簡化。如果是表達式,可以使用別名命名,比如a+bASsalary。當從多張表查詢數(shù)據(jù)時,如果有相同的字段,可以使用別名進行區(qū)分。指定別名查詢數(shù)據(jù)_排序數(shù)據(jù)SELECT*FROMempORDERBYjob;通過使用ORDERBY子句對數(shù)據(jù)排序。如果不排序,數(shù)據(jù)一般將以它在底層表中出現(xiàn)的順序顯示,這有可能是數(shù)據(jù)最初添加到表中的順序。排序數(shù)據(jù)查詢數(shù)據(jù)_排序數(shù)據(jù)SELECT*FROMemptORDERBYsal,ename;可以指定按多個列排序,使用逗號隔開。首先會按前面的字段排序,如果值相同則按后面的字段排序。按多個列排序查詢數(shù)據(jù)_排序數(shù)據(jù)SELECTempno,ename,job,mgr,hiredate,sal,commFROMempORDERBY2,3;SELECT子句先于ORDERBY執(zhí)行,所以在排序時可以得到字段所在位置然后進行排序。按列的位置排序查詢數(shù)據(jù)_排序數(shù)據(jù)SELECTempno,sal,ename,job,mgrFROMempORDERBYsalASC,enameDESC;ASC表示升序,默認排序方式,DESC表示降序。如果想在多個列上進行降序排序,必須對每一列指定DESC關(guān)鍵字。指定排序方向查詢數(shù)據(jù)_過濾數(shù)據(jù)比較運算符查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjob='MANAGER';要查詢某個值的數(shù)據(jù),可以使用=運算符判斷。匹配過濾一般把字段放左邊,具體值放右邊字符串類型要放到引號內(nèi),即使這個字串符是數(shù)值查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjob<>'SALESMAN';SELECT*FROMempWHEREjob!='SALESMAN';可以使用<>也可以使用!=,不過有的數(shù)據(jù)庫不支持!=,建議使用<>。不匹配過濾查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREsal>3000;SELECT*FROMempWHEREsal<1800;SELECT*FROMempWHEREsal>2000ANDsal<3000;SELECT*FROMempWHEREsal>=1250ANDsal<=1600;SELECT*FROMempWHEREsalBETWEEN1250AND1600;范圍過濾..between..and....>=..and..<=..查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREcomm=NULL;SELECT*FROMempWHEREcommISNULL;SELECT*FROMempWHEREcommISNOTNULL;SELECT*FROMempWHEREcomm<>300;當碰到NULL值時,會被判定為不滿足條件,所以這里不會查出NULL值的數(shù)據(jù)。需要添加下面的條件才能把NULL的數(shù)據(jù)查出來:SELECT*FROMempWHEREcomm<>300ORcommISNULL;空值過濾這種方式無法查詢?yōu)榭罩档臄?shù)據(jù)針對空值,需要使用ISNULL或ISNOTNULL不會把查詢出包含NULL的數(shù)據(jù)查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHERENOT(job='SALESMAN’);WHERE子句中的NOT操作符有且只有一個功能,那就是否定其后所跟的任何條件。這里當匹配條件時返回TRUE,然后NOT取反得到FALSE,這樣匹配條件的數(shù)據(jù)被過濾了,查出的是未匹配的數(shù)據(jù)。NOT運算符查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjob='SALESMAN'ANDsal>1300;SELECT*FROMempWHEREjob='SALESMAN'ORdeptno=30;AND運算符在其兩側(cè)的查詢條件都成立時整個查詢條件才成立,其意思相當于“并且”。OR運算符在其兩側(cè)的查詢條件有一個成立時整個查詢條件都成立,其意思相當于“或者”。AND、OR運算符需兩側(cè)條件同時成立僅需其中一個條件成立查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREjobIN('CLERK','PRESIDENT’);SELECT*FROMempWHEREjob='CLERK'ORjob='PRESIDENT';取出CLERK和PRESIDENT的所有數(shù)據(jù),功能上與OR是一樣的。當值特別多時,相比較OR而言,使用IN書寫會更簡潔。IN運算符得到的結(jié)果是一樣的查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREsal+comm=1900;可以拿字段進行計算形成一個新的字段。既可以在WHERE子句也可以在SELECT子句對字段進行計算。SELECTsal+comm,t.*FROMemptWHEREsal+comm=1900;計算字段查詢數(shù)據(jù)_過濾數(shù)據(jù)SELECT*FROMempWHEREename||','||job='ALLEN,SALESMAN';可以使用||把字符串拼接起來形成一個新的字段,有些數(shù)據(jù)庫使用+拼接。既可以在WHERE子句也可以在SELECT子句對字段進行拼接。SELECTename||','||job,t.*FROMemptWHEREename||','||job='ALLEN,SALESMAN';
拼接字段查詢數(shù)據(jù)_模糊匹配在條件中可以使用通配符%或_進行模糊匹配,%表示匹配多個任意字符,_只能匹配一個任意字符。SELECT*FROMempWHEREenameLIKE'J%’;查出J開頭的所有數(shù)據(jù),不管J后面有多少個字符。SELECT*FROMempWHEREenameLIKE'%N';查出以N結(jié)尾的所有數(shù)據(jù),不管N前面有多少個字符都能匹配出來。SELECT*FROMempWHEREenameLIKE'%AR%';查出只要包含了AR的所有數(shù)據(jù),不管AR前后有多少個字符。模糊匹配查詢數(shù)據(jù)_聚合數(shù)據(jù)SELECTCOUNT(*),SUM(sal),MIN(mgr),MAX(mgr),AVG(sal)FROMemp;聚合函數(shù)用于對所有數(shù)據(jù)或分組數(shù)據(jù)進行計算。COUNT統(tǒng)計行數(shù),SUM匯總,MIN統(tǒng)計最小值,MAX統(tǒng)計最大值,AGV計算平均值;聚合函數(shù)會忽略NULL值,在使用COUNT的時候要特別注意,如果指定的是*不會忽略NULL值,如果指定的是某個字段,該字段有NULL會被忽略,意味著所在行不會被統(tǒng)計。SELECTCOUNT(*),COUNT(mgr)FROMempt;聚合函數(shù)其中一行的MRG是NULL不會被統(tǒng)計查詢數(shù)據(jù)_聚合數(shù)據(jù)可以使用GROUPBY子句對數(shù)據(jù)進行組,GROUPBY后面指定分組字段,會把字段值相同的視為一組,然后可以基于分組進行統(tǒng)計。如果分組列中包含具有NULL值的行,NULL值將單獨劃分為一組。SELECTjob,COUNT(*),SUM(sal),AVG(sal)FROMempGROUPBYjob;分組數(shù)據(jù)查詢數(shù)據(jù)_聚合數(shù)據(jù)在分組后,可以使用HAVING子句對分組統(tǒng)計進一步過濾。HAVING是基于分組計算過濾的,必須結(jié)合GROUPBY子句一起使用。SELECTjob,COUNT(*),SUM(sal),AVG(sal)FROMempGROUPBYjobHAVINGCOUNT(*)>2;該示例統(tǒng)計出了每個分組超過兩行的數(shù)據(jù):過濾分組03更新數(shù)據(jù)更新數(shù)據(jù)_插入數(shù)據(jù)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子句中指定字段對應(yīng)值。如果對所有字段賦值,可以不用指定這些字段名稱,只要在VALUES子句指定列值即可。如果僅對部分字段賦值,那么就必須指定這些字段名稱。對于設(shè)置為非空的字段,必須要賦值。INSERTINTOemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)SELECT7935,'XIAOLI','CLERK',7566,to_date('1985-1-23','yyyy-mm-dd'),1200,NULL,20FROMdual;可以把查詢語句的數(shù)據(jù)插入到表中,意味著可以通過這種方式把多行的數(shù)據(jù)插入到表中。插入數(shù)據(jù)更新數(shù)據(jù)_修改、刪除數(shù)據(jù)UPDATE<表名>SET字段1=值1,字段2=值2,字段3=值3,…WHERE;UPDATEempSETename='XIAOLI2'WHEREempno=7935;修改滿足條件的數(shù)據(jù)。DELETEFROM<表名>WHERE...;DELETEFROMemp;刪除所有數(shù)據(jù)。DELETEFROMempWHEREempno=7935;刪除滿足條件的數(shù)據(jù)。注意:為了防止誤修改和刪除,在執(zhí)行前要仔細檢查,有條件的話要先做備份。修改、刪除數(shù)據(jù)04使用視圖更新數(shù)據(jù)_使用視圖視圖并不存放數(shù)據(jù),相當于一張?zhí)摂M表,里面包含了一段SQL語句,然后基于這個視圖查詢數(shù)據(jù)。使用視圖查詢數(shù)據(jù)的好處如下:重用SQL語句。簡化復(fù)雜的SQL操作。在編寫查詢后,可以方便地重用它而不必知道其基本查詢細節(jié)。使用表的一部分而不是整個表。保護數(shù)據(jù)??梢允谟栌脩粼L問表的特定部分的權(quán)限,而不是整個表的訪問權(quán)限。更改數(shù)據(jù)格式和表示。視圖可返回與底層表的表示和格式不同的數(shù)據(jù)。了解視圖更新數(shù)據(jù)_使用視圖SELECT*FROMempa,deptbWHEREa.deptno=b.deptno;針對這兩張兩表聯(lián)結(jié)的查詢,可以將其創(chuàng)建為視圖: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;創(chuàng)建視圖05使用存儲過程更新數(shù)據(jù)_使用存儲過程存儲過程(StoredProcedure)是一組為了完成特定功能的SQL語句集,它存儲在數(shù)據(jù)庫中,一次編譯后永久有效,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。使用存儲過程的原因:通過把處理封裝在一個易用的單元中,可以簡化復(fù)雜的操作。重復(fù)使用。存儲過程可以重復(fù)使用,從而可以減少數(shù)據(jù)庫開發(fā)人員的工作量。減少網(wǎng)絡(luò)流量。存儲過程位于服務(wù)器上,調(diào)用的時候只需要傳遞存儲過程的名稱以及參數(shù)就可以了,因此降低了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。簡化對變動的管理。如果表名、列名或業(yè)務(wù)邏輯(或別的內(nèi)容)有變化,那么只需要更改存儲過程的代碼。使用它的人員甚至不需要知道這些變化。了解存儲過程更新數(shù)據(jù)_使用存儲過程下面是Oracle數(shù)據(jù)庫創(chuàng)建存儲過程的方法:調(diào)用存儲過程:創(chuàng)建存儲過程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內(nèi)編寫業(yè)務(wù)邏輯06管理事務(wù)處理更新數(shù)據(jù)_管理事務(wù)處理使用事務(wù)處理(transactionprocessing),通過確保成批的SQL操作要么完全執(zhí)行,要么完全不執(zhí)行,來維護數(shù)據(jù)庫的完整性。事務(wù)(transaction)指一組SQL語句,確保要一起提交,要么一起回滾;回滾(rollback)指撤銷指定SQL語句所做的修改;提交(commit)指將SQL語句結(jié)果永久寫入數(shù)據(jù)庫表;保留點(savepoint)指事務(wù)處理中設(shè)置的臨時占位符(placeholder),可以回滾事務(wù)中的部署修改(與回退整個事務(wù)處理不同)。只有INSERT、UPDATE、DELETE語句參與事務(wù)管理,CREATE、DROP等不能納入事務(wù)管理。管理事務(wù)處理BEGINUPDATEaccountSETmoney=money-100WHERENAME='張三';UPDATEaccountSETmoney=money+100WHERENAME='李四';COMMIT;EXCEPTIONWHENOTHERSTHENROLLBACK;END;更新數(shù)據(jù)_管理事務(wù)處理將張三的100塊錢轉(zhuǎn)給李四,如果沒有事務(wù)機制,在下面的轉(zhuǎn)賬過程中,當張三扣掉了100,然后在轉(zhuǎn)給李四的時候發(fā)生了錯誤,這樣就會導(dǎo)致張三少了100,但是李四卻沒有收到100。管理事務(wù)示例扣掉張三的100把100轉(zhuǎn)給李四成功則提交保證數(shù)據(jù)一致失敗則回滾修改保證數(shù)據(jù)一致本章小節(jié)本章主要講解了數(shù)據(jù)庫常見操作,包括:首先介紹了什么是SQL;詳細的講解了常見的SQL查詢;講解了如何更新數(shù)據(jù);講解了如何使用視圖、存儲過程;最后講解了事務(wù)的基本使用;1.1系統(tǒng)技術(shù)棧介紹深圳市信息職業(yè)技術(shù)學(xué)院——SMOM技術(shù)棧介紹系統(tǒng)架構(gòu)的演化路線01目
錄系統(tǒng)架構(gòu)常用方案02SMOM系統(tǒng)方案及實現(xiàn)03SMOM系統(tǒng)部署方案04課程目標通過本節(jié)學(xué)習(xí)可以:了解系統(tǒng)架構(gòu)的演化路線;了解常用的系統(tǒng)架構(gòu)方案有哪些;學(xué)習(xí)SMOM系統(tǒng)方案有哪些;學(xué)習(xí)SMOM的幾種部署方案;01系統(tǒng)架構(gòu)的演化路線系統(tǒng)架構(gòu)的演化路線特征:應(yīng)用程序、數(shù)據(jù)庫、文件都部署在同一個服務(wù)器上。描述:公司創(chuàng)業(yè)初期、個人服務(wù)器、前期的簡易架構(gòu)會使用這種把應(yīng)用、文件、數(shù)據(jù)庫都放在一個服務(wù)器,即節(jié)約了服務(wù)器成本,也方便維護。應(yīng)用程序文件數(shù)據(jù)庫單體架構(gòu)應(yīng)用服務(wù)器單體架構(gòu)系統(tǒng)架構(gòu)的演化路線應(yīng)用程序應(yīng)用服務(wù)器文件文件服務(wù)器數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器分層架構(gòu)特征:應(yīng)用程序、數(shù)據(jù)庫、文件都部署分別拆分部署在不同的服務(wù)器上。描述:隨著公司的規(guī)模擴展,業(yè)務(wù)量的增長,單臺服務(wù)器性能及存儲空間不足,需要將應(yīng)用和數(shù)據(jù)分離,并發(fā)處理能力和數(shù)據(jù)存儲空間得到了很大改善。分層架構(gòu)系統(tǒng)架構(gòu)的演化路線分布式架構(gòu)數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器(主)應(yīng)用服務(wù)器1應(yīng)用服務(wù)器2應(yīng)用程序應(yīng)用服務(wù)器3文件服務(wù)器1文件服務(wù)器2文件服務(wù)器3文件數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)器(從)特征:按服務(wù)職責(zé)分別做分布式負載均衡,分別為應(yīng)用程序、文件系統(tǒng)、數(shù)據(jù)庫搭建服務(wù)器集群做負載均衡分擔服務(wù)器壓力,解決單臺服務(wù)器處理能力和存儲空間上限的問題。描述:使用集群是系統(tǒng)解決高并發(fā)、海量數(shù)據(jù)問題的常用手段。通過向集群中追加資源,使得服務(wù)器的負載壓力不在成為整個系統(tǒng)的瓶頸。分布式架構(gòu)XX服務(wù)1廣告服務(wù)1用戶服務(wù)1系統(tǒng)架構(gòu)的演化路線微服務(wù)架構(gòu)應(yīng)用程序文件數(shù)據(jù)庫商品服務(wù)2應(yīng)用程序文件數(shù)據(jù)庫用戶服務(wù)2應(yīng)用程序文件數(shù)據(jù)庫廣告服務(wù)2應(yīng)用程序文件數(shù)據(jù)庫XX服務(wù)2特征:根據(jù)業(yè)務(wù)進行拆分服務(wù)集群,一些并發(fā)量不多的服務(wù)集群可能合并放在同一個應(yīng)用服務(wù)器,并發(fā)量大、響應(yīng)速度要求快的會拆分到多個應(yīng)用服務(wù)器。描述:為了應(yīng)對日益復(fù)雜的業(yè)務(wù)場景,通常使用分而治之的手段將整個系統(tǒng)業(yè)務(wù)分成不同的產(chǎn)品線。縱向拆分:將一個大應(yīng)用拆分為多個小應(yīng)用。橫向拆分:將復(fù)用的業(yè)務(wù)拆分出來,獨立部署為分布式服務(wù)。設(shè)計服務(wù)接口,規(guī)范服務(wù)依賴關(guān)系。微服務(wù)架構(gòu)商品服務(wù)102系統(tǒng)架構(gòu)常用方案系統(tǒng)架構(gòu)常用方案單體應(yīng)用架構(gòu)(MonolithicArchitecture):單體應(yīng)用架構(gòu)是最簡單的架構(gòu)形式,將整個應(yīng)用程序作為一個單一的、緊密耦合的單元進行開發(fā)和部署。這種架構(gòu)適用于小型應(yīng)用和初始階段的項目,易于開發(fā)和測試,但隨著應(yīng)用規(guī)模的增長,單體應(yīng)用可能變得難以維護和擴展。優(yōu)點:結(jié)構(gòu)簡單、開發(fā)速度快、實現(xiàn)簡單,可用于產(chǎn)品的第一版等有原型驗證需求。缺點:性能差、基本沒有高可用、擴展性差,不適合用于大規(guī)模部署、應(yīng)用等生產(chǎn)環(huán)境。數(shù)據(jù)庫單體架構(gòu)單體架構(gòu)瀏覽器移動端桌面端應(yīng)用程序系統(tǒng)架構(gòu)常用方案客戶端-服務(wù)端架構(gòu)(Client-ServerArchitecture):將應(yīng)用程序劃分為客戶端和服務(wù)器兩個部分。客戶端負責(zé)用戶界面和交互,服務(wù)器負責(zé)處理業(yè)務(wù)邏輯和數(shù)據(jù)存儲。這種架構(gòu)可以實現(xiàn)分布式計算和資源共享,常見的例子包括Web應(yīng)用程序和移動應(yīng)用程序。優(yōu)點:在分布式處理、靈活性和可擴展性方面具有優(yōu)勢,對于安全性來說也有一定的保障。缺點:存在單點故障、網(wǎng)絡(luò)依賴性和成本等方面的挑戰(zhàn)。在設(shè)計和選擇架構(gòu)時,需要綜合考慮系統(tǒng)的需求、可用性要求和預(yù)算限制等因素。數(shù)據(jù)庫客戶端-服務(wù)端架構(gòu)客戶端-服務(wù)端架構(gòu)瀏覽器移動端桌面端Web服務(wù)Api服務(wù)系統(tǒng)架構(gòu)常用方案分層架構(gòu)(LayeredArchitecture):分層架構(gòu)將應(yīng)用程序劃分為多個層次,每個層次負責(zé)不同的功能。常見的層次包括表示層(PresentationLayer)、業(yè)務(wù)邏輯層(BusinessLogicLayer)和數(shù)據(jù)訪問層(DataAccessLayer)。分層架構(gòu)提供了良好的模塊化和可擴展性,使得不同層次可以獨立開發(fā)和測試。優(yōu)點:模塊化和可維護性、可擴展性、可重用性、可測試性。缺點:多層通訊的性能損失、設(shè)計復(fù)雜性高、部分業(yè)務(wù)存在過度分層、跨層依賴。數(shù)據(jù)庫分層架構(gòu)分層架構(gòu)業(yè)務(wù)邏輯層(BLL)數(shù)據(jù)訪問層(DAL)表示層(UI)系統(tǒng)架構(gòu)常用方案微服務(wù)架構(gòu)(MicroservicesArchitecture):微服務(wù)架構(gòu)將應(yīng)用程序拆分為一組小型、自治的服務(wù),每個服務(wù)都專注于特定的業(yè)務(wù)功能。這種架構(gòu)提供了高度的靈活性、可伸縮性和獨立部署能力,每個服務(wù)可以獨立開發(fā)、測試和部署。微服務(wù)架構(gòu)適用于大型、復(fù)雜的應(yīng)用和團隊。優(yōu)點:獨立性和自治性、可伸縮性、彈性和容錯性、技術(shù)多樣性、高內(nèi)聚低耦合性缺點:分布式系統(tǒng)復(fù)雜性、網(wǎng)絡(luò)通信開銷、運維復(fù)雜性、分布式事務(wù)管理復(fù)雜性、分布式系統(tǒng)的測試和調(diào)試復(fù)雜微服務(wù)架構(gòu)數(shù)據(jù)庫微服務(wù)架構(gòu)瀏覽器移動端桌面端訂單程序數(shù)據(jù)庫XX程序03SMOM系統(tǒng)方案及實現(xiàn)SMOM系統(tǒng)方案及實現(xiàn)SMOM服務(wù)化、高可用的應(yīng)用集群架構(gòu)穩(wěn)定性:服務(wù)自動注冊發(fā)現(xiàn),通過健康檢查,自動故障轉(zhuǎn)移可擴展性:服務(wù)器可動態(tài)擴容,支持公有云/私有云/混合云部署04SMOM系統(tǒng)部署方案集中式部署集中式部署架構(gòu)特點當前架構(gòu)采用集中式部署架構(gòu);優(yōu)點:服務(wù)器資源量少、集中,一套服務(wù)資源可提供多廠使用,服務(wù)器成本低,但也可以每廠獨立的環(huán)境。數(shù)據(jù)統(tǒng)一歸檔于總部服務(wù)器,數(shù)據(jù)安全性高,IT力量集中。運維成本小,只需集團有小量運維人員即可。
缺點:工廠到集團網(wǎng)絡(luò)要求高,需要專線或者延時低帶寬(最好少于30毫秒),網(wǎng)絡(luò)穩(wěn)定性要求較高。盡可能實現(xiàn)雙專線(高低搭配、不同運營商)實現(xiàn)網(wǎng)絡(luò)高可用SMOM系統(tǒng)部署方案SMOM多基地-集中式部署方案分布式部署架構(gòu)特點優(yōu)點:各廠有自己服務(wù)器群,避免總部到工廠之間網(wǎng)絡(luò)斷開時導(dǎo)致停產(chǎn)的問題。同時屬于工廠內(nèi)部網(wǎng)絡(luò),網(wǎng)絡(luò)延時低,應(yīng)用響應(yīng)快。缺點:架構(gòu)對于應(yīng)用層實現(xiàn)有較高要求,需實現(xiàn)大量接口進行業(yè)務(wù)數(shù)據(jù)同步,在網(wǎng)絡(luò)抖動情況下存在數(shù)據(jù)同步失敗或漏同步的情況(需要運維人員進行處理),各廠需有一定的運維力量。生產(chǎn)環(huán)境架構(gòu)提供高可用、高性能特點。通過部署多應(yīng)用服務(wù)節(jié)點、數(shù)據(jù)庫采用RAC提供雙節(jié)點高可用服務(wù)。通過雙熱模式、多節(jié)點分流模式,提供高性能的服務(wù),通過dataguard實現(xiàn)主庫同步數(shù)據(jù)到從庫。相關(guān)的高可用、高性能部署,可根據(jù)實際情況決定是否使用,數(shù)據(jù)庫可使用雙機或者單機,從庫是否使用,應(yīng)用節(jié)點可根據(jù)實情情況進行增減。當前架構(gòu)實現(xiàn)分布部署,適合總部、工廠各自部署服務(wù)器群(新增工廠直接復(fù)制現(xiàn)有拓撲),有專線的場景下實現(xiàn)工廠數(shù)據(jù)匯總,總部進行分析、決策。架構(gòu)中實現(xiàn)多節(jié)點進行熱備及分流,能同時處理大量并發(fā)請求。SMOM系統(tǒng)部署方案SMOM多基地-分布式部署方案高可用:Oracle可做RAC達到高可用,主庫兩節(jié)點間共用相同虛擬IP,主庫節(jié)點A和和節(jié)點B共用數(shù)據(jù)文件,節(jié)點A正常提供監(jiān)聽服務(wù),接收到請求時會分流到A節(jié)和B節(jié)點進行處理,當節(jié)點A下線時,節(jié)點B提供監(jiān)聽服務(wù),接收到請求會在B節(jié)點上處理,以達到其中一個節(jié)點宕機時,另一個節(jié)點能提供服務(wù)。當A節(jié)點恢復(fù)時,請求會再分流到A和B節(jié)點上,達到高可用,高性能的要求主從庫:通過DataGuard方式,實現(xiàn)數(shù)據(jù)主從數(shù)據(jù)庫同步,由從庫提供報表及看板類數(shù)據(jù)查詢,減少主庫IO影響。歸檔庫:根據(jù)歸檔需求,在父子級表篩選數(shù)據(jù)創(chuàng)建Shell腳本,調(diào)用導(dǎo)出參數(shù)文件導(dǎo)出參數(shù)文件中配置數(shù)據(jù)導(dǎo)出的表和數(shù)據(jù)條件基于數(shù)據(jù)存儲時間,進行歷史數(shù)據(jù)歸檔操作SMOM系統(tǒng)方案及實現(xiàn)SMOM服務(wù)化、高可用的應(yīng)用集群架構(gòu)DBDBDBDBvip:90ip:92vip:90ip:91RACDataGuard應(yīng)用層儲存層主庫節(jié)點A主庫節(jié)點B從庫歸檔庫歷史數(shù)據(jù)歸檔思考?思考題內(nèi)容SMOM架構(gòu)是包含了哪些架構(gòu)。SMOM集中式部署有什么優(yōu)缺點。練習(xí)練習(xí)題內(nèi)容,一兩題?1.單體架構(gòu)為什么適合創(chuàng)業(yè)型公司?2.微服務(wù)架構(gòu)可以把多個服務(wù)集群部署在同一個應(yīng)用服務(wù)器嗎?3.數(shù)據(jù)庫主從庫通過什么方式實現(xiàn)?練習(xí)題答案1.成本低、運維簡單,開發(fā)方便2.可以3.DataGuard本章小節(jié)本章主要講解系統(tǒng)架構(gòu)方案介紹、SMOM架構(gòu)和部署方案:首先系統(tǒng)架構(gòu)的演化歷程其次對系統(tǒng)架構(gòu)做了介紹再講解了SMOM的整體系統(tǒng)架構(gòu)后面詳細的講解了SMOM的部署方案通過本章的學(xué)習(xí),初學(xué)者可以掌握系統(tǒng)架構(gòu)的演化方案和各個架構(gòu)的特點,還有SMOM的復(fù)雜架構(gòu)、部署方案。THANKYOU深圳市信息職業(yè)技術(shù)學(xué)院1.4系統(tǒng)技術(shù)棧介紹深圳市信息職業(yè)技術(shù)學(xué)院——平臺框架運行原理平臺啟動原理01目
錄前端界面生成流程02學(xué)習(xí)目標通過本節(jié)學(xué)習(xí)可以:了解工業(yè)軟件的平臺運行原理;了解工業(yè)軟件的前端界面生成流程;01平臺啟動原理平臺啟動原理啟動流程平臺啟動原理開始初始化1:注冊一些必要的服務(wù)(如:WPF啟動的時候也要用到一些消息的組件,提前進行注冊)2:重置應(yīng)用程序運行環(huán)境3:初始化應(yīng)用程序環(huán)境(如:上下文線程信息、設(shè)置運行時環(huán)境)獲取程序集1:掃描運行目錄下的所有SIE.*.DLL2:掃描Domain目錄下的所有*.DLL3:掃描UI目錄下的所有*.DLL初始化模塊和擴展屬性1:初始化所有的模塊2:注冊所有擴展屬性3:加載所有提交前事件、提交后事件、實體驗證規(guī)則啟動過程介紹平臺啟動原理初始化所有的Modules1:初始化所有的實體模塊(實體工程的Module初始化)2:初始化所有界面模塊(UI工程的Module初始化)可以在這里初始化方法里面掛載各種攔截事件(如:實體查詢事件)觸發(fā)AllModulesIntialized事件所有實體元數(shù)據(jù)初始化完畢,包括實體元數(shù)據(jù)之間的關(guān)系。(可以用來聲明自定義編輯器,及其它需要比較提前進行初始化的功能)初始化編譯期元數(shù)據(jù)1:初始化所有的命令(反射找出所有的命令)2:初始化所有的js資源(所有嵌入式資源)3:觸發(fā)命令元數(shù)據(jù)初始化完成事件CommandMetaIntialized4:觸發(fā)初始化期定義的元數(shù)據(jù)初始化完成時事件MetaCompiled啟動過程介紹平臺啟動原理觸發(fā)ModuleOperations事件該事件主要用來掛載菜單模塊觸發(fā)ServiceIntializing
事件服務(wù)初始化,在此事件中向IoC容器注冊服務(wù)觸發(fā)AppMetaCompleted事件所有元數(shù)據(jù)初始化工作完成事件(如:用來掛載通用查詢面板的命令:保存過濾條件、打開過濾的條件面板等)觸發(fā)RuntimeStarting
事件應(yīng)用程序運行時開始前事件,可以在這里提前加載ui類的功能(如:C/S的工作臺addins插件)啟動過程介紹平臺啟動原理觸發(fā)MainProcessStarting事件主過程開始前事件(如:可以在這里設(shè)置皮膚主題)啟動主進程主要C/S用到,用來關(guān)掉前面的加載動畫、打開主進程界面。觸發(fā)StartupCompleted事件整個啟動完成事件,可以在這里做一些事件的訂閱、消息訂閱等啟動過程介紹02前端界面生成流程前端界面生成流程界面布局定義-默認的模板布局結(jié)構(gòu)前端界面生成流程界面渲染邏輯-頁面塊說明主塊(MainBlock)每個聚合塊都會僅有一個主塊,表示這個頁面的主要模塊,也是主要呈現(xiàn)的模塊信息。環(huán)繞塊(Surrounders)環(huán)繞塊指的是可以環(huán)繞布局在主塊周圍的信息,可以有0~N個,默認一版的列表界面有一個環(huán)繞的“查詢視圖塊”。子塊(Children)子塊指的是主塊對應(yīng)的所有聚合子塊、附加明細塊、附加子列表塊。聚合塊(AggtBlocks)所有AutoUI生成的界面都是通過聚合塊描述的,里面包含整個頁面的信息:主塊、環(huán)繞塊、子塊、頁面布局元數(shù)據(jù)。前端界面生成流程界面渲染邏輯-塊生成公共類說明布局元數(shù)據(jù)(Layout)用于每個“塊”布局信息描述,比如可以在這里定義了,主塊、子塊、環(huán)繞塊的布局位置。模板(CodeBlocksTemplate)所有的AutoUI生成的界面都是通過模板來生成的,可以集成模板重寫每一塊的生成邏輯。AutoUI頁面生成AutoUI類,是個殼,單例(暴露給客戶端),對外提供的公共類,可以通過該類獲取框架生成的塊。ViewFactory視圖創(chuàng)建工廠,可以根據(jù)塊來生成對應(yīng)的視圖。UIGeneratorUI生成器,主要根據(jù)元數(shù)據(jù)生成對應(yīng)的前端控件。前端界面生成流程界面渲染邏輯-流程前端界面生成流程界面渲染邏輯鞏固知識:頁面布局是通過自定義定義模板的布局元數(shù)據(jù)定義頁面的每一塊都是可以獨立生成的客制化界面可以通過AutoUI自動生成需要的界面只要理解了頁面的生成邏輯,其實要做客制化界面是很簡單的,可以通過自定義模板的布局描述相應(yīng)的布局,通過控制頁面的“塊”生成邏輯,即可生成相應(yīng)的頁面元素思考題平臺啟動為什么分了這么多步驟?加了那么多事件?練習(xí)1、聚合塊包含哪些?()A:Surrounders環(huán)繞塊;B:Grandson孫塊;C:Children子塊;D:MainBlock主塊。BTHANKYOU深圳市信息職業(yè)技術(shù)學(xué)院2.1項目運行配置知識回顧平臺啟動原理前端界面生成原理學(xué)習(xí)目標通過本節(jié)學(xué)習(xí)可以:對BS端功能運行配置和啟動有個基礎(chǔ)的認識對CS端功能運行配置與啟動有個基礎(chǔ)的認識對數(shù)據(jù)庫生成與菜單配置有個基礎(chǔ)的認識01網(wǎng)頁端功能運行配置與啟動說明網(wǎng)頁端功能運行與啟動配置說明WebClient啟動配置文件說明網(wǎng)頁端功能運行和啟動時需要將WebClient設(shè)置為啟動項目,讀取對應(yīng)配置文件的信息,取決于launchSettings.json的配置,配置啟動類型分為:WebClient與IISExpress.啟動類型為WebClient時讀取WebClient工程文件的appsettings.json配置文件啟動類型為IISExpress時讀取WebClient工程文件的appsettings.Development.json文件網(wǎng)頁端功能運行與啟動配置說明啟動類型為Webclient讀取的配置文件為appsettings.json文件:WebClient啟動配置文件說明網(wǎng)頁端功能運行與啟動配置說明啟動類型為IISExpress讀取的配置文件為appsettings.Development.json文件:IISExpress啟動配置文件說明啟用WebClient本地模式調(diào)試步驟說明1.啟動類型為WebClient時,分為兩種模式:本地模式:Local;代理模式:Remote。本地模式:需要設(shè)置appsettings.json的DataPortal.Mode為Local網(wǎng)頁端功能運行與啟動配置說明網(wǎng)頁端功能運行與啟動配置說明啟用WebClient本地模式調(diào)試步驟說明2.運行調(diào)試時,還需要配置數(shù)據(jù)庫連接字符串,如果工程沒有數(shù)據(jù)提供者類,默認讀取的為master的連接字符串網(wǎng)頁端功能運行與啟動配置說明啟用WebClient本地模式調(diào)試步驟說明3.運行調(diào)試時,設(shè)置WebClient為啟用項目,調(diào)試模式設(shè)置為WebClient網(wǎng)頁端功能運行與啟動配置說明啟用WebClient本地模式調(diào)試步驟說明4.運行調(diào)試,進入到登錄界面,瀏覽對應(yīng)的IP和端口對應(yīng)的配置為urls的配置啟用WebClient代理模式調(diào)試步驟說明1.啟動類型為WebClient時,代理模式:需要設(shè)置appsettings.json的DataPortal.Mode為Remote,并配置代理地址:DataPortal.Url.。網(wǎng)頁端功能運行與啟動配置說明啟用WebClient代理模式調(diào)試步驟說明2.啟動類型為WebClient時,需要設(shè)置配置啟動項目。勾選多個啟動項目,選擇SIE.WebApiHost啟動,WebClient啟動。網(wǎng)頁端功能運行與啟動配置說明網(wǎng)頁端功能運行與啟動配置說明啟用WebClient代理模式調(diào)試步驟說明3.運行調(diào)試時,設(shè)置完成后可以看到多個啟動項目,然后直接點啟動。網(wǎng)頁端功能運行與啟動配置說明啟用WebClient代理模式調(diào)試步驟說明4.運行調(diào)試,進入到登錄界面,瀏覽對應(yīng)的IP和端口對應(yīng)的配置為urls的配置啟用IISEx本地模式調(diào)試步驟說明設(shè)置appsettings.Development.json的DataPortal.Mode為Local網(wǎng)頁端功能運行與啟動配置說明啟用IISExpress本地模式調(diào)試步驟說明設(shè)置WebClient為啟用項目,調(diào)試模式設(shè)置為IISExpress網(wǎng)頁端功能運行與啟動配置說明網(wǎng)頁端功能運行與啟動配置說明啟用IISExpress本地模式調(diào)試步驟說明4.運行調(diào)試,進入到登錄界面,瀏覽對應(yīng)的IP和端口對應(yīng)的配置為launchSettings.json中的sslPort配置啟用IISExpress代理模式調(diào)試步驟說明1.啟動類型為IISExpress時,代理模式:需要設(shè)置appsettings.Development,并配置代理地址:DataPortal.Url.。網(wǎng)頁端功能運行與啟動配置說明啟用IISExpress代理模式調(diào)試步驟說明啟動類型為IISExpress時,需要設(shè)置配置啟動項目。勾選多個啟動項目,選擇SIE.WebApiHost啟動,WebClient啟動,后續(xù)的啟動步驟和本地模式一樣的。網(wǎng)頁端功能運行與啟動配置說明02桌面端功能運行配置與啟動說明啟用WpfClient本地模式調(diào)試步驟說明1.啟動WpfClient,設(shè)置appsettings.json的DataPortal.Mode為Local桌面端功能運行配置與啟動說明啟用WpfClient本地模式調(diào)試步驟說明2.運行調(diào)試時,還需要配置數(shù)據(jù)庫連接字符串,如果工程沒有數(shù)據(jù)提供者類,默認讀取的為master的連接字符串桌面端功能運行配置與啟動說明網(wǎng)頁端功能運行與啟動配置說明啟用WpfClient本地模式調(diào)試步驟說明3.運行調(diào)試,進入到登錄界面,則表示啟動成功。03數(shù)據(jù)庫生成與菜單配置介紹數(shù)據(jù)庫生成與菜單配置介紹數(shù)據(jù)庫生成通用說明SMOM程序的數(shù)據(jù)庫表是通過程序生成的:項目源碼第一次升級數(shù)據(jù)庫表時,要通過CS端進行數(shù)據(jù)庫升級操作,生成成功后可以在BS端配置菜單,之后就可通過BS端的“實體元數(shù)據(jù)”菜單進行升級操作CS端升級數(shù)據(jù)庫只能本地模式進行操作,不能啟用代理模式進行數(shù)據(jù)庫升級操作,升級數(shù)據(jù)庫,會生成表和表對應(yīng)的序列(id和系統(tǒng)序列),通過腳本創(chuàng)建表時要同時創(chuàng)建對應(yīng)的兩個序列,BS端“實體元數(shù)據(jù)”菜單的升級數(shù)據(jù)庫時盡量不勾選“更新實體元數(shù)據(jù)”,可在“實體元數(shù)據(jù)”的“更新”或者“選擇更新”進行操作。CS端升級數(shù)據(jù)庫操作步驟說明1.啟動WpfClient,設(shè)置appsettings.json的DataPortal.Mode為Local,通過將dev.generateDbOnStartup屬性設(shè)置為true,打開升級數(shù)據(jù)庫窗體數(shù)據(jù)庫生成與菜單配置介紹CS端升級數(shù)據(jù)庫操作步驟說明2.啟動項目,在彈出的升級數(shù)據(jù)庫對話框中進行如下操作數(shù)據(jù)庫生成與菜單配置介紹CS端升級數(shù)據(jù)庫操作步驟說明3.升級完成后,關(guān)閉升級數(shù)據(jù)庫對話框,在跳轉(zhuǎn)到的登錄界面,輸入用戶名:SysAdmin,密碼:123456,進行登錄,第一次登錄要修改密碼,修改成功登錄成功后,關(guān)閉窗體,在BS端進行菜單配置和后續(xù)操作。數(shù)據(jù)庫生成與菜單配置介紹BS端升級數(shù)據(jù)庫操作步驟說明1.WebClient的項目引用和配置更改好后,將WebClient設(shè)置為啟動項目,啟動項目注意:必須用CS端將框架的數(shù)據(jù)庫生成出來,才能在BS端進行數(shù)據(jù)庫升級操作。數(shù)據(jù)庫生成與菜單配置介紹BS端升級數(shù)據(jù)庫操作步驟說明2.輸入用戶名和密碼登錄成功后,點擊“實體元數(shù)據(jù)”功能(如果沒有該功能,在菜單功能中進行菜單配置)。數(shù)據(jù)庫生成與菜單配置介紹BS端升級數(shù)據(jù)庫操作步驟說明3.在進入的“實體元數(shù)據(jù)”功能中,點擊“升級數(shù)據(jù)庫”按鈕數(shù)據(jù)庫生成與菜單配置介紹BS端升級數(shù)據(jù)庫操作步驟說明4.在“升級數(shù)據(jù)庫窗口”中,點擊“確定”按鈕就那些數(shù)據(jù)庫升級操作數(shù)據(jù)庫生成與菜單配置介紹初始菜單配置說明SMOM初始菜單配置是在界面端模塊初始化類的初始化方法中添加模塊操作的事件進行配置的數(shù)據(jù)庫生成與菜單配置介紹初始菜單配置說明1.同一個實體類只能配置一個菜單;2.配置的菜單顯示不出來,可以在配置菜單的初始化方法中設(shè)置斷點,看是否能進入,可以通過下圖的方式逐步排查原因;數(shù)據(jù)庫生成與菜單配置介紹初始化菜單操作說明1.運行程序,點擊“菜單”功能,在進入的菜單功能中點擊“更新功能模塊”(批量操作)或者是“更新選擇的功能模塊”(單個操作),進行初始化操作(這一步操作也可以在“模塊定義”功能進行操作)說明:新增加的菜單要先進行初始化操作才能配置菜單數(shù)據(jù)庫生成與菜單配置介紹初始化菜單操作說明2.更新完成后,點擊左邊的“刷新”按鈕,或者是關(guān)閉“菜單”功能重新打開,新添加的菜單就會在左邊的列表中顯示出來。數(shù)據(jù)庫生成與菜單配置介紹平臺菜單配置說明初始化完成后,將左邊列表的數(shù)據(jù)拖到右邊菜單列表中,點擊保存,菜單就配置好了。數(shù)據(jù)庫生成與菜單配置介紹自定義菜單配置步驟說明1.在“模塊定義”菜單中添加模塊,保存添加的模塊注意:1.自定義菜單一定要加上Url,并且Url必須帶http://或者https://,方能展示分配的菜單權(quán)限;2.自定義外部的菜單如果修改了模塊定義的信息,在菜單功能中已經(jīng)配置的對應(yīng)菜單需要先刪除保存后再重新配置該菜單。數(shù)據(jù)庫生成與菜單配置介紹自定義菜單配置步驟說明2.在“菜單”中將左邊的模塊菜單拖動到右邊菜單中,點擊保存注意:這里第三方系統(tǒng)的連接能打開,打開方式需要配置為“窗體”數(shù)據(jù)庫生成與菜單配置介紹自定義菜單配置步驟說明3.在“功能地圖”中點擊右邊的“刷新”圖標,菜單就能顯示出來,點擊“百度”菜單,就能調(diào)整到百度數(shù)據(jù)庫生成與菜單配置介紹練習(xí)?本章練習(xí)了解BS端功能運行配置和啟動,CS端運行配置和啟動知識?了解數(shù)據(jù)庫生成和菜單配置知識??預(yù)習(xí)練習(xí)SMOM項目結(jié)構(gòu)知識了解?本章小節(jié)本章主要講解了項目運行配置的說明,包括:首先介紹了網(wǎng)頁端運行和啟動配置說明
;其次講解了桌面端運行和啟動配置說明;再次講解了數(shù)據(jù)庫生成操作步驟說明;最后講解了菜單配置說明。一般在SMOM項目運行啟動中,啟動調(diào)試不同的模式時,需要配置不同的配置文件。因此要求學(xué)生必須了解清晰并掌握本章知識。2.2項目結(jié)構(gòu)介紹知識回顧WebClient啟動配置IISExpress啟動配置WpfClient啟動配置CS端數(shù)據(jù)庫生成操作BS端數(shù)據(jù)庫生成操作菜單配置說明學(xué)習(xí)目標通過本節(jié)學(xué)習(xí)可以:對解決方案項目層級有個基礎(chǔ)的認識對項目工程有個基礎(chǔ)的認識對項目文件存儲目錄有個基礎(chǔ)的認識對平臺程序集有個基礎(chǔ)的認識01解決方案項目層級說明解決方案項目層級說明Modules文件夾下是存放我們具體業(yè)務(wù)的項目工程,業(yè)務(wù)開發(fā)實現(xiàn)的工程都要建在Modules文件夾下解決方案下的SIE.ScheduleServer、SIE.WebApiHost、WebClient、WpfClient為項目調(diào)試工程。Modules調(diào)試工程解決方案項目層級說明02項目工程說明項目工程說明項目工程說明Modules文件夾下項目工程說明Modules文件夾下是業(yè)務(wù)工程,包含服務(wù)端工程,BS界面端工程和CS界面端工程。新建的業(yè)務(wù)工程不要放到Modules文件夾最外面,最好根據(jù)實際業(yè)務(wù)用文件夾包起來,不然項目工程一多,工程維護比較麻煩。建具體工程時,最好評估下工程要做的功能來引用依賴的dll,不要一建工程就不管有沒有用,先把dll引用進來,而是需要什么就引用什么。工程的dll依賴不要出現(xiàn)循環(huán)依賴。服務(wù)端工程不要引用客戶端相關(guān)dll。BS界面端工程不要引用CS界面端工程。CS界面端工程不要引用BS界面端工程。項目工程說明調(diào)試工程調(diào)試工程SIE.ScheduleServer:調(diào)度調(diào)試工程,只能引用服務(wù)端工程或者是dll。SIE.WebApiHost:Api接口調(diào)試工程,用于調(diào)試api接口方法,只能引用服務(wù)端工程或者是dll。WebClient:BS端功能調(diào)試工程,如果要還原部署后功能問題,需要啟用代理進行調(diào)試;該工程不能引用CS端工程或者是dll,否則會引發(fā)異常。WpfClient:CS端功能調(diào)試工程,如果要還原部署后功能問題,需要啟用代理進行調(diào)試;該工程不能引用BS端工程或者是dll,否則會引發(fā)異常。03項目文件存儲目錄結(jié)構(gòu)介紹項目文件儲存目錄結(jié)構(gòu)說明Common文件存儲目錄說明Common文件存儲目錄說明Common文件夾下存儲的是公共的服務(wù)包,例如:WpfClient,WebClient,SIE.WebApiHost,SIE.ScheduleServer(調(diào)度服務(wù)),Resources(資源文件)等服務(wù)包文件。項目文件儲存目錄結(jié)構(gòu)說明Modules文件存儲目錄說明Modules文件存儲目錄說明Modules文件夾下存儲的是公共工程文件,業(yè)務(wù)工程文件,例如:Common(公共工程文件),ERPInterface(ERP接口工程文件),SMES(MES業(yè)務(wù)工程文件),SQMS(QMS業(yè)務(wù)工程文件),SWMS(WMS業(yè)務(wù)工程文件)等。也可以按照項目需求自行添加項目業(yè)務(wù)工程文件的。項目文件儲存目錄結(jié)構(gòu)說明nupkgs文件存儲目錄說明nupkgs文件存儲目錄說明nupkgs文件夾下存儲的是Nuget下的包文件:DevExpress相關(guān)包文件,Hangfire(用于執(zhí)行后臺任務(wù)工具函數(shù)庫)相關(guān)包文件,RazorEngine(模版引擎)相關(guān)包文件,SIE平臺框架程序集相關(guān)包文件等。項目文件儲存目錄結(jié)構(gòu)說明packages文件存儲目錄說明packages文件存儲目錄說明packages文件夾下存儲的是WPF工程項目引用過包文件,WpfClient編譯生成時會自動生成的packages文件夾,并將引用的文件放到packages文件夾下。項目文件儲存目錄結(jié)構(gòu)說明platform文件存儲目錄說明platform文件存儲目錄說明platform文件夾下存儲的是解決方案里面生成以后的目錄文件:生成SMOM解決方案時會自動生成platform文件夾,目錄結(jié)構(gòu)是SMOM=>netcoreapp3.1,netstandard2.0。netcoreapp3.1存儲的WebClient引用的dll文件;netstandard2.0存儲的服務(wù)端引用的dll文件。項目文件儲存目錄結(jié)構(gòu)說明Projects文件存儲目錄說明Projects文件存儲目錄說明Projects文件夾下存儲的是項目啟動服務(wù)文件:Projects文件夾里面的生成的文件夾是根據(jù)解決方案來生成的,例如:只有一個SMOM解決方案,就生產(chǎn)一個SMOM文件夾,如果多個則會生成多個解決方案對應(yīng)的文件夾。文件夾下面儲存的是項目啟動服務(wù)文件。SIE.ScheduleServer(調(diào)度服務(wù))啟動文件;SIE.WebApiHost(服務(wù)端)啟動文件。WebClient(BS客戶端)啟動文件;WpfClient(CS客戶端)啟動文件.04平臺封裝程序集介紹平臺封裝程序集說明平臺封裝程序集說明SIE.dll:核心類庫的實現(xiàn)及接口定義,基礎(chǔ)通用功能的封裝等。SIE.Wpf.dll:所有界面生成的封裝,如使用到的Wpf生成界面布局、基礎(chǔ)控件、命令的封裝等。SIE.Common.dll:命令、編輯器、界面布局等后端通用實現(xiàn);編碼段、通用序列算法生成的實現(xiàn)和員工,預(yù)警,調(diào)度,推送,打印,模板的基類及接口定義。SIE.Wpf.Common.dll:命令、編輯器、界面布局等前端通用實現(xiàn);以及員工、打印、模板的基類前端實現(xiàn)。SIE.ORM.MappingColumn.dll:ORM數(shù)據(jù)庫映射庫。SIE.Log4Net.dll、SIE.LogClient.dll、SIE.LogData.dll、SIE.SqlLogger.dll:日志庫,框架日志的實現(xiàn)。SIE.dllSIE.Wpf.dllSIE.Common.dllSIE.Wpf.Common.dllSIE.ORM.MappingColumn.dllSIE.Log4Net.dllSIE.LogClient.dllSIE.LogData.dllSIE.SqlLogger.dll平臺封裝程序集說明平臺封裝程序集說明SIE.Caches.dll:緩存實現(xiàn)庫。SIE.Diagnostics.dll:性能診斷庫,主要寫數(shù)據(jù)庫操作。SIE.Iscript.dll:接口庫。SIE.Script.dll:腳本庫,對SIE.Iscript.dll的實現(xiàn)。SIE.Messages.dll:消息庫,框架消息的實現(xiàn)。SIE.RazorEngine.dll:模板引擎庫。SIE.Session.Redis.dll:Redis庫。SIE.Localization.dll:本地化庫,框架多語言的后端實現(xiàn)。SIE.Wpf.Localization.dll:本地化庫,框架多語言的前端實現(xiàn)。SIE.Caches.dllSIE.Diagnostics.dllSIE.Iscript.dllSIE.Script.dllSIE.Messages.dllSIE.RazorEngine.dllSIE.Session.Redis.dllSIE.Localization.dllSIE.Wpf.Localization.dll平臺封裝程序集說明平臺封裝程序集說明SIE.Mda.dll:模塊庫,如模塊,實體元數(shù)據(jù),數(shù)據(jù)庫升級相關(guān)操作的后端實現(xiàn)。SIE.Wpf.Mda.dll:模塊庫,如模塊,實體元數(shù)據(jù),數(shù)據(jù)庫升級相關(guān)操作的前端實現(xiàn)。SIE.Rbac.dll:權(quán)限庫,如菜單,用戶,角色及權(quán)限相關(guān)的后端實現(xiàn)。SIE.Wpf.Rbac.dll:權(quán)限庫,如菜單,用戶,角色及權(quán)限相關(guān)的前端實現(xiàn)。SIE.Dashboard.dll:看板設(shè)計器的后端實現(xiàn)。SIE.Wpf.Dashboard.dll:看板設(shè)計器的前端實現(xiàn)。SIE.Mda.dllSIE.Wpf.Mda.dllSIE.Rbac.dllSIE.Wpf.Rbac.dllSIE.Dashboard.dllSIE.Wpf.Dashboard.dll平臺封裝程序集說明平臺封裝程序集說明SIE.Schedule.dll:調(diào)度庫,調(diào)度平臺的后端實現(xiàn)。SIE.Wpf.Schedule.dll:調(diào)度庫,調(diào)度平臺的前端實現(xiàn)。Hangfire.Core.dll:調(diào)度平臺核心實現(xiàn)。SIE.Queue.dll:消息隊列庫,平臺消息隊列的實現(xiàn)。SIE.Wpf.MQ.dll:消息隊列前端實現(xiàn)。SIE.Alert.dll:預(yù)警庫,平臺預(yù)警功能的后端實現(xiàn)。SIE.Wpf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 眉縣方言短時時間副詞“緊”的互動語言學(xué)研究
- 具有層狀結(jié)構(gòu)的鎢酸鉍及鹵氧化鉍復(fù)合物光催化性能研究
- 2025年南京鐵道職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年北京經(jīng)貿(mào)職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 2025年北京科技經(jīng)營管理學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年云南理工職業(yè)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2025年云南工程職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年臨沂職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 網(wǎng)絡(luò)博弈智能決策支持-洞察分析
- 碳纖維復(fù)合材料新能源設(shè)備設(shè)計-洞察分析
- 《健康體檢知識》課件
- 部編版語文五年級下冊 第一單元 專項訓(xùn)練課外閱讀(含答案)
- 蘇少版七年級美術(shù)下冊 全冊
- 名表買賣合同協(xié)議書
- JTG-T-F20-2015公路路面基層施工技術(shù)細則
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 中西方校服文化差異研究
- 《子宮肉瘤》課件
- 《準媽媽衣食住行》課件
- 給男友的道歉信10000字(十二篇)
- 客人在酒店受傷免責(zé)承諾書范本
評論
0/150
提交評論