閱讀本文請先閱讀以下兩篇文章html
Netsharp基於.NET平臺,支持的產品形態有三種:前端
Netsharp是三種終端的全集,本文介紹的內容多以北極熊做爲例子,由於北極熊功能最多、最強、最穩定。sql
三種形態都是前端,她們公用同一套後端,後端指的是業務服務器以後包括的功能。數據庫
Netsharp有五種部署類型,分別對應五種部署的場景:後端
類型設計模式 |
名稱緩存 |
說明安全 |
Desktop服務器 |
桌面客戶端架構 |
僅僅包括界面層、實體、接口以及先後端公用的程序集 經過互聯網與服務器端交互 |
Server |
業務服務器端 |
做爲業務服務器,對外經過互聯網公佈服務接口 處理複雜的業務邏輯功能 能夠作集羣(暫不支持) |
Desktop_Server |
傳統的CS結構 |
桌面客戶端和業務服務器在同一個進程內,主要方便開發調試;單人操做的系統,或者併發要求不高的,可使用此種模式。 |
WebFront |
WEB前端 |
Web前端服務器也是服務器,可是隻負責處理界面的渲染等邏輯,不處理業務邏輯,業務邏輯經過調用業務服務器的接口來完成 Web前端服務器與業務服務器多在同一個局域網 Web前端服務器與業務服務器分開通常出於安全和性能的考慮 Web前端服務器與業務服務器分開更易於Web前端服務器作集羣 WebFront模式須要管理多個Session,Desktop模式只須要管理一個Session |
WebFront_Server |
WEB前端+業務服務器 |
Web前端服務器與業務服務器在同一進程內 |
Netsharp的部署類型,能夠經過bin/Netsharp.Light.exe進行設置,下圖是部署類型的設置方式:
本章節介紹Netsharp的六個核心概念,他是Netsharp基礎,這六個概念都有對應的工具支持,從工具角度上對平臺的資源進行有效、清晰的管理。
這六個概念並非Netsharp的所有內容,本節也不是介紹Netshrap的技術架構,而是介紹Netsharp平臺是如何管理開發人員的成果的。
插件框架是愈來愈流行的一種開發方式。插件作的比較好的常見於IDE,如Eclipse(基於OSGI標準)、Netbean、SharpDevelop。國內一款軟件(OSGI.NET)實現了.NET平臺的OSGI標準,算是作得比較規範的。除此以外筆者沒有見過國內其餘的比較正規的插件體系,大部分聲稱系統支持的所謂插件都是僞插件,從技術角度來講不過是工廠模式加根據配置反射建立對象而已。筆者認爲插件系統有三個必需要素:
Netsharp的插件設計參考了SharpDevelop,SharpDevelop是一個IDE工具,有些地方並不適應於企業軟件,Netsharp在SharpDevelop的基礎上進行了以下的改造和擴展:
Netsharp提供了可視化工具對插件管理,管理工具支持兩種視角,插件視角和路徑視角:
在企業軟件開發中,實體模型主要指的是實體的模型,模型通常經過UML圖的方式表現,比較直觀的表達問題域的靜態結構關係,這種圖是分析設計所關心的。而對於平臺來講,關心的是作一個UML靜態類圖工具出來,更關心的是實體模型自己自描述的元數據信息,本文稱之爲實體元數據。
平臺有了實體元數據,業務開發的序幕就此拉開,這個過程能夠時髦的稱之爲「領域驅動」,不過跟常說的「領域驅動」稍有不一樣。基於實體元數據配合平臺工具能夠作的事情有:
關於Netsharp的實體設計,請參見管理軟件實體設計。
資源是Netsharp創造的概念,資源包括兩個方面,資源樹和資源類型,其中資源樹也可稱之爲資源節點。
如何理解資源咱們從考察以下兩個場景開始:
要素 |
商貿企業 |
軟件開發公司 |
角色 |
公司員工 |
軟件開發人員 |
工具 |
供應鏈管理系統(SCM) |
Netsharp |
數據類型 |
銷售訂單、發貨單、發票、出庫單等等 |
列表、表單、查詢、報表 |
數據舉例 |
3月1號銷售給客戶A總金額100W 3月1號給客戶A發貨 3月2號銷售給客戶B總金額120W |
3月1號開發銷售訂單列表,編輯列表元數據 3月1號開發銷售訂單表單,編輯表單元數據 3月2號開發銷售發票列表,編輯列表元數據 |
結論 |
SCM是工具,用來管理訂單、發貨單等數據 |
Netsharp是工具,用來管理列表、表單、報表的元數據。 |
上述兩個場景放在一塊兒考察,他們的不一樣之處在因而不一樣的行業,乾的不一樣的事情。相同的地方都是使用一個工具來管理本身工做中使用的數據。開發人員的數據就是工做區、列表、表單、報表等數據,Netsharp中把開發維護的這些數據叫資源。這些數據是有不一樣的類型,SCM的每種類型(銷售銷訂單、發貨單、銷售發票等)的數據叫單據;Netsharp中的每種類型(做區、列表、表單、報表等)叫資源類型。
資源和插件是相互補充的,插件和資源都是平臺的工具,區別在於,插件強調插件物理可插拔、路徑可擴展、插件項支持多種類型,可是其插件項的類型只能是攜帶信息比較少的類型,好比菜單。對於一些複雜的類型,好比工做區或者列表元數據,則須要強類型的結構來表達,這種狀況插件表達則不太合適,資源就是解決這種問題的,並且資源還有本身的視角。Netsharp的平臺工具中,大部分菜單都是使用資源進行管理的,能夠說資源的概念比插件的概念要大。
Netsharp中有30種以上的資源類型,這些資源類型按照樹狀結構進行分類,資源的分類叫資源樹,樹上的每一個節點叫資源節點。Netsharp中全部的資源類型的分類是統一的,即全部的資源分類都使用一個資源樹。資源節點在Netsharp中對應的實體是Netsharp.Core.ResourceNode。下圖是Netsharp的平臺管理工具的面板,他能夠經過工做區的主菜單」視圖/平臺工具」打開,這些工具中大部分是以資源的方式來進行管理的。
以Netsharp部件工做區(PartWorkspace)爲例,部件工做區是一種資源,他按照資源樹的方式進行管理,請參見下圖部件工做區的工具。
下圖是Netsharp的枚舉管理工具,枚舉是Netsharp的一種資源,他也按照資源樹的方式進行管理,請參見下圖:
下圖是Netsharp資源節點的管理界面,全部的資源節點組成了一棵資源樹。
對於管理軟件來講,通常會進行以下分類
級次 |
一級 |
二級 |
三級 |
四級 |
五級 |
本文命名 |
產品線 |
子系統 |
模塊 |
領域對象 |
實體 |
ERP產品線 |
建築施工企業軟件產品 |
子系統一 |
- |
- |
- |
子系統二 |
- |
- |
- |
||
子系統三 |
- |
- |
- |
||
... |
- |
- |
- |
||
ERP產品 |
供應鏈 |
採購 |
採購訂單 |
採購訂單頭 |
|
|
採購訂單行 |
||||
|
結算明細 |
||||
進貨單 |
- |
||||
採購發票 |
- |
||||
... |
- |
||||
銷售 |
- |
- |
|||
庫存 |
- |
- |
|||
財務 |
現金 |
- |
- |
||
往來 |
- |
- |
|||
出納 |
- |
- |
|||
生產 |
- |
- |
- |
||
分銷零售 |
- |
- |
- |
||
.... |
- |
- |
- |
上圖爲稍微複雜一些的系統分級結構,簡單的系統可能只有第3、4、五級。第五級別的實體爲研發人員視圖。客戶和銷售人員不會有此概念,或者概念比較模糊,即他們不會把實體做爲獨立的概念環境進行思惟。在命名上會有歧義的是第三級和第四級,即模塊和領域對象。「領域對象」是本文的一種叫法,目前尚未找到更好的進行第三級和第四級進行區分的命名。使用「領域對象」的初衷是領域指的是軟件給客戶(某一種崗位在某一個業務場景)提供完整業務的一種最小的場景,如錄入一張新的採購訂單,在這個場景中,用戶打開採購訂單界面,能夠作不少與採購訂單編輯相關的事情。(這個名稱感受也不是很好,由於用戶很難理解)模塊能夠簡單的理解爲是一個部門級別的應用,或者爲一個須要多個崗位來完成的場景,好比採購管理。
在Netsharp的資源節點對應的實體是Netsharp.Core.ResourceNode,ResourceNode有個屬性ResourceType,ResourceType是一個枚舉,有三個可選值:分類、插件、單據。ResourceType是資源節點的必輸字段。下面詳細介紹這三種資源節點類型。
1.插件
和第三級模塊對應,當資源節點類型爲插件是,必須在資源節點上設置對應的插件。由於平臺的資源是經過資源樹管理的,當插件進行導出操做時候,平臺會根據插件對應的資源節點把下屬的全部資源進行導出,插件的安裝、卸載也是這種邏輯。
2.單據
和第四級(領域對象)對應,當資源節點是一個領域對象時,如銷售訂單、採購入庫單等,資源節點類型選擇單據。當資源節點爲單據時,必須設置資源節點的EntityId。EntityId是Netsharp中經常使用的概念,他表示一個領域對象,技術上對應領域對象(或者叫實體)的Type.FullName,也能夠理解爲實體模型的類全名,參見下圖:
領域對象是實體的特例,當一個資源節點和一個實體對應時,類型均可以選擇單據。
3.分類
當資源節點類型不爲插件和單據時,均可以選擇分類。
Netsharp工做臺就是最終用戶看到的產品的主界面,工做臺有時也稱之爲門戶。用戶能夠自定義工做臺的佈局,下圖顯示了默認工做臺的佈局結構:
下面是這六個部分的概要描述
順序 |
名稱 |
說明 |
插件路徑 |
擴展說明 |
1 |
LOGO |
產品圖標 |
無 |
自動讀取應用程序配置的產品名稱 |
2 |
用戶信息區 |
|
Workbench/StatusBar/RightMenu |
|
3 |
MainMenu |
主菜單 |
Workbench/MainMenu |
Netsharp的原則是主菜單隻現實系統級別的菜單(如系統選項、經常使用工具、視圖、幫助等),不顯示業務相關的菜單 |
4 |
Pad |
面板 |
Workbench/Pad |
目前平臺提供了四個面板,導航欄、平臺工具、業務模型、做業管理;在這個路徑下能夠建立自定義的導航面板, |
5 |
Workspace |
工做區 |
無 |
工做區通常會經過面板和主菜單的出發打開,不在贅述。Netsharp支持擴展自定義的工做區。 |
6 |
StatusBar |
狀態欄 |
無 |
|
除了上面六個部分,還有不明顯體如今界面元素上的工做臺初始化相關工做項,他們分別:
順序 |
名稱 |
說明 |
插件路徑 |
擴展說明 |
1 |
Autorun |
工做臺初始化 |
Workbench/AutoRun/Client |
工做臺啓動後,會讀取此路徑,自動執行此路徑配置的邏輯 |
2 |
Icon |
圖標 |
Netsharp/Icons |
自定義的圖標在這裏初始化 |
3 |
Homepage |
起始頁 |
Workbench/Homepage/ZonePart |
Netsharp目前的起始頁是有多個Zone組成的,這裏能夠設置起始頁的Zone |
4 |
VersionCache |
版本緩存 |
無 |
爲了提升性能,把Netsharp的元數據緩存在本地,當元數據改變時自動更新緩存的機制 |
5 |
|
|
|
|
6 |
|
|
|
|
上文已經介紹了工做區(Workspace)的的概念,本節介紹一種特殊的工做區叫部件工做區(PartWorkspace),不管您是Netsharp的最終用戶,仍是開發人員,您時刻都會跟PartWorkspace有關。
本人認爲軟件的界面是一種樹狀的邏輯結構,在設計模式中對應着組合模式(Composite),以Netsharp的工做臺爲例,工做臺是頂級節點,工做臺由工做臺頁頭、Pad容器、工做區容器、主菜單、狀態欄等子組件組成,這幾個子級別又分別有本身的子級組件,如此類推就造成了一棵樹。樹的末級節點通常是Textbox、ComboBox等控件。因此通常基於元數據的界面描述都使用XML格式的語法,由於XML是樹狀結構的,好比HTML和XAMAL。
通常來講,開發人員封裝的界面組件,分紅兩個種,一種是技術性質的控件,好比Outlookbar,日曆等;另外一種是業務性質的控件,好比訂單表單,和單據控件,不一樣的研發團隊積累不同,封裝的角度也不一樣,若是封裝單據做爲控件的話,是平臺化的思路,抽象層次要高一些。Netsharp是平臺因此會對單據進行封裝,可是Netsharp封裝的力度比單據要細一個級別,本文稱之爲部件。一個工做區是由多個部件組成的,部件之間通常有父子關係。對於訂單的表單來講,其工做區通常由兩個部件組成:實體的表單部件(父)和實體明細列表部件(子)。對於訂單列表來講,界面能夠有三個部件:訂單列表(父)、訂單表單(子)、訂單子表(子或者孫,父親爲列表或者表單),子表部件和表單部件能夠被重用,作出更多靈活的界面。部件對於作界面設計和二次開發都提供了比較好的角度,能夠說是技術和業務上最理想的封裝粒度。
Netsharp提供了20種部件,用戶能夠繼承擴展這些部件,也能夠實現本身獨立的部件,Netsharp部件參考下圖:
序號 |
編碼 |
名稱 |
默認控制器 |
默認工具欄 |
說明 |
1 |
EntityList |
列表.主列表 |
Netsharp.Commerce.EntityListPart |
Netsharp/Commerce/EntityList/Toolbar |
|
2 |
Datagrid |
列表.只讀 |
Netsharp.Commerce.DatagridPart |
Netsharp/Commerce/Datagrid/Toolbar |
|
3 |
EntityDetail |
列表.單據列表 |
Netsharp.Commerce.EntityDetailPart |
Netsharp/Commerce/EntityDetail/Toolbar |
|
4 |
VoucherDetail |
列表.單據明細列表 |
Netsharp.Commerce.VoucherDetailPart |
Netsharp/Commerce/Voucher/DetailMenu |
|
5 |
Detail |
列表.細列表 |
Netsharp.Commerce.DetailPart |
Netsharp/Commerce/Voucher/DetailMenu |
|
6 |
DatagridSolution |
列表方案 |
Netsharp.Commerce.DatagridSoltionPart |
Netsharp/Commerce/QuerySolution/MainMenu |
|
7 |
ReportList |
列表.報表 |
Netsharp.Commerce.DatagridReportPart |
Netsharp/Commerce/Voucher/DatagridReportMenu |
|
8 |
VoucherForm |
表單.單據 |
Netsharp.Commerce.VoucherFormPart |
Netsharp/Commerce/Form/Navigation/Toolbar |
|
9 |
CustomerForm |
表單.可保存 |
Netsharp.Commerce.FormPart |
Netsharp/Commerce/Form/Edit/Toolbar |
|
10 |
FormPart |
表單.屬性 |
Netsharp.Commerce.FormPart |
Netsharp/Commerce/Form/Property/Toolbar |
|
11 |
ReferencePart |
表單.引用表單 |
Netsharp.Commerce.ReferencePart |
Netsharp/Commerce/Voucher/ReferenceMenu |
|
12 |
ReportStatistics |
報表.統計表 |
Netsharp.Grus.SummaryReportPart |
Netsharp/Commerce/Datagrid/Toolbar |
|
13 |
ReportRdlc |
報表.交叉表 |
Netsharp.Grus.RdlcReportPart |
Netsharp/Grus/RdlcReport/Toolbar |
|
14 |
ReportGrus |
報表.GRUS |
Netsharp.Grus.GrusPart |
|
|
15 |
ReportQueryFilter |
報表查詢條件 |
Netsharp.Commerce.RdlcQueryFilterPart |
Netsharp/Commerce/QueryFilter/MainMenu |
|
16 |
ReportSolution |
報表方案 |
Netsharp.Grus.ReportSolutionPart |
Netsharp/Grus/ReportSolution/Toolbar |
|
17 |
TreePart |
分類樹 |
Netsharp.Commerce.TreePart |
Netsharp/Commerce/CategoryTreePart/Toolbar |
|
18 |
QuerySolution |
查詢方案 |
Netsharp.Commerce.QuerySolutionPart |
Netsharp/Commerce/Solution/MainMenu |
|
19 |
QueryFilter |
查詢條件 |
Netsharp.Commerce.QueryFilterPart |
Netsharp/Commerce/QueryFilter/MainMenu |
|
20 |
Customer |
自定義 |
|
|
|
Netsharp有六駕馬車的概念,這六駕馬車都基於插件使用,能夠擁有很是強大的功能。六駕馬車是從技術角度對開發六種場景抽象,他們分別是:
編號 |
英文名 |
中文名 |
說明 |
場景 |
開發相關 |
1 |
Command |
命令 |
界面操做的一個觸發,經常使用的有Button、MenuItem、Toolbar的事件 |
系統點擊「退出」按鈕,執行Netsharp.Platform.ApplicationExitCommand |
界面層使用,通常和菜單、樹節點、工具欄項上配置 |
2 |
Trigger |
字段觸發器 |
某一個字段被修改以後,引發其餘字段的計算 |
修改單價和數量時,自動計算金額 |
重寫實體的OnPropertyChanged方法 實現IPropertyTrigger接口 界面層Controller中的On**Changed方法 |
3 |
Validation |
字段驗證 |
數據合法性驗證 |
保存時的郵件驗證 |
實體屬性Set調用時捕獲的異常信息實現接口IPropertyValidation |
4 |
Condition |
字段條件 |
某個字段在某種場景下不能夠編輯或者隱藏 |
審覈後數量不能修改 |
重寫實體的Condition方法 實現接口IPropertyCondition 界面層Controller的**Condition方法 |
5 |
OperationCondition |
操做條件 |
操做按鈕在某個場景下不可用或者隱藏 |
審覈後不能刪除 |
實現接口IOperationCondition 在插件中配置 |
6 |
Action |
(無) |
一個實體的操做分紅多個步驟執行,每一個步驟叫一個Action。 界面客戶端和服務端均可以使用Action |
客戶端和服務端均可以使用,參見下文 |
實現接口IAction 在插件中配置 服務端的路徑爲服務類型全名+方法名 客戶端的路徑爲控制器類型全名+方法名 |
本文是體系結構的介紹,關於每駕馬車在第三個系列Netsharp開發中都會有詳細的介紹,這裏只說明一下Action在界面端和服務端的兩個種:
1、客戶端Action場景:
例如,在Netsharp平臺的普通的一張表單界面上,用戶執行保存按鈕時,執行的是Controller的Save方法,按照順序執行的邏輯以下:
順序 |
功能 |
Action |
說明 |
1 |
調用前置方法OnSaving |
OwnerMethodAction |
|
2 |
調用前置事件Saving |
OwnerEventAction |
|
3 |
性能跟蹤開始 |
StopwatchStartAction |
|
4 |
顯示Loadingbar |
LoadingbarStartAction |
|
5 |
界面端錄入合法性校驗 |
FormpartSaveAssertAction |
|
6 |
調用保存服務 |
FormpartSaveAction |
|
7 |
調用保存後置事件Saved |
OwnerEventAction |
|
8 |
調用保存後置方法OnSaved |
OwnerMethodAction |
|
9 |
隱藏Loadingbar |
LoadingbarEndAction |
|
10 |
性能跟蹤中止 |
StopwatchEndAction |
|
2、服務端Action場景
例如,在訂單保存時服務方法中執行的邏輯,按照順序以下:
順序 |
功能 |
Action |
說明 |
1 |
信用控制 |
|
|
2 |
可用量控制 |
|
|
3 |
最低售價控制 |
|
|
4 |
訂單基本校驗 |
|
|
5 |
訂單持久化到數據庫 |
|
|
6 |
生成收款單 |
|
|
7 |
生成出庫單 |
|
|
8 |
生成加工單 |
|
|
9 |
記往來帳 |
|
|
10 |
記可用量賬 |
|
|
11 |
更新客戶信用 |
|
|
12 |
更新最低售價 |
|
|
分類 |
組件 |
功能特徵 |
客戶可見 |
工具支持 |
4.0版本已支持 |
元數據管理方式 |
1 |
實體模型 |
可持久化 可序列化 實體支持三駕馬車 平臺自定義數據類型 平臺提供常見的若干父類(可持久化實體、業務實體、分類實體) 支持字段擴展 可視化實體設計 |
否 |
UML建模工具 |
是 |
插件 |
2 |
插件機制 |
參考SharpDevelop插件機制(改形成適合管理軟件的插件模式) 數據庫格式 路徑支持繼承 插件項支持重寫 支持插件項與功能權限綁定 |
否 |
插件編輯工具 插件瀏覽工具 安裝卸載工具 |
是 |
插件 |
3 |
持久層 |
多數據庫 級聯對象增刪改查 OQL查詢 併發控制 引用檢查 基於Ado.net的事務 分佈式事務(暫不支持) 支持Sqlserver 部分支持Mysql 可擴展支持Oracle 可擴展支持其餘數據庫 |
否 |
OQL查詢分析器 |
是 |
無 |
4 |
分佈式 |
服務調用級別事務 多種訪問方式(HTTP\TCP) 高性能的序列化 客戶端動態代理 日誌跟蹤 根據父類的實體默認提供服務實現如:EntityService、BusinessEntityService、VoucherService |
否 |
性能跟蹤查看其 |
是 |
無 |
5 |
工做臺 |
支持自定義佈局 默認佈局支持Pad、Workspace、主菜單、狀態來自定義配置 支持產品名、公司版權、LOGO、版本等自定義設置 登陸界面支持自定義背景圖片 |
是 |
|
是 |
插件和配置文件 |
6 |
單點登陸 |
暫不支持 |
是 |
|
否 |
無 |
7 |
多國語言 |
基於數據庫配置 平臺提供多語言工具 |
是 |
多語言維護工具 |
是 |
資源樹 |
8 |
併發 |
基於Ts的併發控制 根據系統選項肯定是否併發控制 |
否 |
實體元數據上設置 |
是 |
實體模型 |
9 |
互斥 |
兩個業務場景不能同時發生 |
否 |
|
否 |
資源樹 |
10 |
表單 |
根據實體元數據快速生成表單 支持最終用戶的字段設置 支持常見的控件類型 數據的雙向綁定 字段顯示,必輸,可空,公式等設置 默認打印 |
是 |
表單管理工具 |
是 |
資源樹 |
11 |
列表 |
根據實體元數據快速生成列表 支持最終用戶的字段設置 支持常見的控件類型 數據的雙向綁定 支持分頁 支持懶加載 可設置字段:顯示,必輸,可空,排序,彙總等屬性 支持默認打印 |
是 |
列表管理工具 |
是 |
資源樹 |
12 |
查詢 |
根據實體元數據快速生成查詢 支持最終用戶的字段設置 支持常見的控件類型 多種查詢控件 自定義查詢方案 |
是 |
查詢工具 |
是 |
資源樹 |
13 |
打印 |
可視化打印模板設置 支持彙總表 支持交叉表 支持自定義報表 圖表(暫時不支持) |
是 |
報表設計器 報表工具 |
是 |
資源樹 |
14 |
權限控制 |
功能權限/字段權限 數據權限 權限約束/權限互斥 分級受權 |
是 |
操做管理工具 |
是 |
資源樹 |
15 |
編碼規則 |
支持流水號 支持編號包含普通文本 3. 支持編號包含當前實體字段 |
是 |
編碼規則設置工具 |
是 |
資源樹 |
16 |
AOP |
暫不支持 |
否 |
|
否 |
無 |
17 |
性能統計分析 |
自動 |
否 |
性能統計選項開關 性能分析器 |
是 |
無 |
18 |
自動化測試 |
暫不支持 |
否 |
|
否 |
無 |
19 |
腳本引擎 |
支持C#腳本功能 |
否 |
腳本測試工具 |
是 |
無 |
20 |
UI控件套件 |
使用Telerik控件庫 自定義若干控件 |
是 |
|
是 |
無 |
21 |
業務選項 |
基於插件的選項配置 默認提供多種數據類型的選項控件 |
是 |
插件工具 |
是 |
插件 |
22 |
嚮導 |
支持嚮導框架 |
是 |
|
是 |
無 |
23 |
組織機構 |
支持用戶/角色 支持多組織 支持總公司/子公司/部門/分類/項目/職務/崗位 |
是 |
|
是 |
無 |
24 |
界面三駕馬車 |
狀態控制 觸發器 編輯驗證 |
是 |
|
是 |
硬編碼 插件 界面元數據 |
25 |
工做流 |
|
是 |
|
否 |
資源樹 |
26 |
建立賬套 |
暫不支持 |
是 |
|
否 |
無 |
27 |
異常管理 |
異常框架 異常跟蹤 異常查看 |
否 |
異常列表查看 |
是 |
資源樹 |
28 |
枚舉 |
表單、列表、查詢對應的控件 自動生成枚舉代碼 |
是 |
枚舉管理工具 |
是 |
資源樹 |
29 |
參照 |
支持下拉列表 支持彈出參照 支持表單、列表、查詢動態建立默認參照 支持添加自定義的過濾條件 支持添加當前行的變量做爲條件 支持C#腳本生成條件 |
是 |
參照管理工具 |
是 |
資源樹 |
30 |
預警/提醒/通知 |
|
是 |
插件工具配置 |
是 |
資源樹 |
31 |
做業 |
基於Quartz.NET 支持可視化的觸發器設置 可視化建立做業 支持做業日誌跟蹤 |
否 |
做業管理工具 |
是 |
資源樹 |
32 |
日誌組件 |
|
否 |
生成日誌文件 |
是 |
無 |
33 |
客戶端自動升級 |
客戶端發現新版本時自動升級 |
|
|
|
無 |
34 |
數據庫腳本升級工具 |
低版本到高版本升級時,自動執行若干腳本 |
|
|
|
|
35 |
緩存 |
內存緩存 緩存服務器 單個對象緩存 SET緩存 |
|
|
|
|
36 |
Session管理 |
超時驗證 踢出管理 |
|
|
|
無 |
37 |
業務日誌 |
單據增刪改查自動記錄日誌 登陸等操做自動記錄日誌 日誌查看、跟蹤 |
|
|
|
無 |
38 |
導出SQL腳本 |
列表、表單支持導出當前數據位SQL腳本 支持導出當前數據及組合數據 支持根據ById導出 支持導出全表 支持任意SELECT語句的腳本導出 |
|
|
|
單據、列表的二次開發菜單 SQL查詢分析器 |
Netsharp路標規劃分紅五個階段,參見下圖,目前基本完成第二個階段,即平臺產品化階段。
本文特別感謝東莞許勝平的建議和校對工做。