當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > ERP系統(tǒng) > ERP設(shè)計(jì)運(yùn)用 > ERP系統(tǒng)設(shè)計(jì)
erp系統(tǒng)軟件設(shè)計(jì)
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
軟件架構(gòu)邏輯
框架從層次結(jié)構(gòu)上分主要分為:表示層、服務(wù)層、業(yè)務(wù)層、數(shù)據(jù)層
◆表示層
表示層由UI(User Interface)和UI控制邏輯組成。
c/s選用wpf+智能客戶端,b/s選用asp.net mvc
WPF的出現(xiàn)解決了三個(gè)問(wèn)題:
(1) 更快速的去開發(fā)更豐富的用戶體驗(yàn):使用WPF,可以在更加快速的時(shí)間內(nèi)開發(fā)出來(lái)更加豐富的界面,滿足用戶的需求。WPF 借助 XAML 來(lái)利用標(biāo)記而不是編程語(yǔ)言(如 C#)來(lái)構(gòu)造精美逼真的用戶界面 (UI), 只要稍微具備一些HTML基礎(chǔ)知識(shí),就可以快速地掌握XAML中的大部分內(nèi)容。
(2) 消除用戶界面差異:wpf可以以IE為宿主的?;騍ilverlight
(3) 軟件開發(fā)團(tuán)隊(duì)的協(xié)作問(wèn)題: 在軟件團(tuán)隊(duì)中,我們比較熟悉Developer、DBA、Tester、IT Pro、Architect等。Designer可能往往被我們忽視,但實(shí)際上,Designer的工作成果才是與客戶距離最近的。而且Designer與Developer如何配合工作,是很多團(tuán)隊(duì)所頭疼的,而WPF正可以解決此問(wèn)題。
智能客戶端的優(yōu)勢(shì)
1)充分利用終端設(shè)備的優(yōu)勢(shì)
2)能夠調(diào)用wcf
3)支持在線和離線兩種狀態(tài)
4)能夠如同Web應(yīng)用程序一般簡(jiǎn)單方便的部署
asp.net mvc內(nèi)置AJAX支持。
本身含的MVC(模型-視圖-控制器)和本系統(tǒng)MVVM(Model-View-ViewModel)就是雙胞胎,在demo里已經(jīng)有很好的集成
*注:因xaml和html是標(biāo)記語(yǔ)言,此層大部分可用代碼生成器生成。
◆服務(wù)層
采用微軟的WCF,Windows Communication Foundation (WCF)是Microsoft為構(gòu)建面向服務(wù)的應(yīng)用提供的分布式通信編程框架平臺(tái),是.NET Framework 3.5的重要組成部分。使用該框架,開發(fā)人員可以構(gòu)建跨平臺(tái)、安全、可靠和支持事務(wù)處理的企業(yè)級(jí)互聯(lián)應(yīng)用解決方案。WCF從一開始就是工程化的,能夠簡(jiǎn)化應(yīng)用程序的開發(fā)與部署,降低開發(fā)成本。用于構(gòu)建面向服務(wù)的應(yīng)用程序,不管這些程序是獨(dú)立的桌面應(yīng)用程序,還是Web應(yīng)用程序和服務(wù),還是高端的企業(yè)應(yīng)用程序。
◆邏輯、業(yè)務(wù)層
業(yè)務(wù)層封裝了實(shí)際業(yè)務(wù)邏輯,包含數(shù)據(jù)驗(yàn)證,事物處理,權(quán)限處理等業(yè)務(wù)相關(guān)操作,是整個(gè)應(yīng)用系統(tǒng)的核心。因此設(shè)計(jì)一個(gè)能夠真實(shí)反映實(shí)際需要的業(yè)務(wù)層是非常必要的,我們將實(shí)際業(yè)務(wù)具體分為業(yè)務(wù)數(shù)據(jù)與業(yè)務(wù)操作兩部分。
l 業(yè)務(wù)數(shù)據(jù)
Domain Model則是根據(jù)實(shí)際業(yè)務(wù)按照現(xiàn)實(shí)方式用OO思想建模,這樣很適合業(yè)務(wù)復(fù)雜的系統(tǒng)。通常采用自定義數(shù)據(jù)實(shí)體(Custom Data Entity)方式表達(dá)。自定義數(shù)據(jù)實(shí)體,有著良好的性能,編譯時(shí)的類型檢查,數(shù)據(jù)表現(xiàn)方式非常直觀符合實(shí)際業(yè)務(wù)的操作方式等優(yōu)點(diǎn),但需要自己定義維護(hù)類,在分布式環(huán)境下需要自己編寫序列化方法。
此階段負(fù)責(zé)數(shù)據(jù)交換(傳輸)的業(yè)務(wù)實(shí)體被稱之為DTO(Data Transfer Object)。
DTO要能夠支持:數(shù)據(jù)綁定、數(shù)據(jù)驗(yàn)證、歷史記錄、級(jí)聯(lián)觸發(fā)、合并集合、序列化與反序列化,要實(shí)現(xiàn)一個(gè)大的遞歸,從其中的任何一個(gè)對(duì)象開始,能夠找出整個(gè)傳遞的所有數(shù)據(jù)。
(1)、數(shù)據(jù)的綁定支持。要實(shí)現(xiàn)IEditableObject接口,對(duì)于狀態(tài)的變化要實(shí)現(xiàn)INotifyPropertyChanged接口,這樣才能夠?qū)崿F(xiàn)數(shù)據(jù)的觸發(fā),這樣就要實(shí)現(xiàn)一個(gè)對(duì)象能夠找到其所有的集合,一個(gè)集合要能夠其所有的對(duì)象,這樣一樣,就必須實(shí)現(xiàn)從對(duì)象、集合、對(duì)象的遞歸,再深入一點(diǎn),就實(shí)現(xiàn)了數(shù)據(jù)的級(jí)聯(lián)觸發(fā),實(shí)現(xiàn)了雙向數(shù)據(jù)觸發(fā)、綁定。數(shù)據(jù)源的每個(gè)屬性變更,要能夠在界面上反映出來(lái),綁定界面的改變,能夠記錄到后臺(tái)的數(shù)據(jù)源,并且要能夠支持回滾。對(duì)于容納這些數(shù)據(jù)的ObservableCollection集合也支持綁定處理。
(2)、數(shù)據(jù)驗(yàn)證。實(shí)現(xiàn)IDataErrorInfo接口
(3) 對(duì)于歷史記錄。當(dāng)實(shí)現(xiàn)IEditableObject這個(gè)接口,則必然實(shí)現(xiàn)了歷史記錄。能夠找到集合的所有更改的記錄,包括刪除的記錄。對(duì)于單個(gè)對(duì)象而言是能夠得到歷史記錄和當(dāng)前數(shù)據(jù),對(duì)于集合而言,則能夠找出差異集,同時(shí),集合也要具備集合回滾的功能。
(4) 級(jí)聯(lián)觸發(fā),則是在實(shí)現(xiàn)數(shù)據(jù)綁定的基礎(chǔ)上的,對(duì)于常見的主從結(jié)構(gòu),當(dāng)從對(duì)象的一個(gè)屬性改變了,要能夠自動(dòng)通知其所在的集合、集合再通知所在的對(duì)象數(shù)據(jù)改變了,如果是多層結(jié)構(gòu),則能夠自動(dòng)的從最底層開始一路通知到頂層。
(5)合并集合、集合的處理。集合的處理與數(shù)據(jù)綁定是直接相當(dāng)?shù)?。?shù)據(jù)源找出差異集之后,要對(duì)差異集進(jìn)行處理,處理完之后,要對(duì)原始集合進(jìn)行更進(jìn)一步的處理,要把兩個(gè)集合進(jìn)行合并處理,主要是為了同步引用。
(6)同時(shí),另外要實(shí)現(xiàn)的就是Data與SDO之間的轉(zhuǎn)換以及其他格式的數(shù)據(jù)與SDO、Data數(shù)據(jù)之間的數(shù)據(jù)轉(zhuǎn)換,比如Binary/Xml/Text/Key/文件/等,最基本的是SDO與Data之間的轉(zhuǎn)換,這些轉(zhuǎn)換根據(jù)需要,有時(shí)候是單向的,有時(shí)候是雙向的,根據(jù)業(yè)務(wù)需求而定。
(7)序列化與反序列化,主要是涉及到Binary和XML序列化。
l 業(yè)務(wù)操作
業(yè)務(wù)操作負(fù)責(zé)對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行各種業(yè)務(wù)相關(guān)的處理,例如驗(yàn)證,流向,整合,事物,權(quán)限等,但它不負(fù)責(zé)有關(guān)對(duì)數(shù)據(jù)源的操作。
采用整合業(yè)務(wù)數(shù)據(jù)與業(yè)務(wù)方式來(lái)操作,將業(yè)務(wù)數(shù)據(jù)與相關(guān)的業(yè)務(wù)操作封裝在一起稱為業(yè)務(wù)實(shí)體,業(yè)務(wù)實(shí)體作為統(tǒng)一的業(yè)務(wù)層為表示層提供服務(wù),同時(shí)也負(fù)責(zé)作為DTO在各個(gè)層次間傳輸,這樣完整的Domain Model設(shè)計(jì)方式,每個(gè)業(yè)務(wù)實(shí)體都可以做為一個(gè)單獨(dú)組件形式存在,對(duì)于組件化復(fù)用有著莫大的好處。
◆數(shù)據(jù)層
數(shù)據(jù)層的宗旨就是為數(shù)據(jù)源提供一個(gè)可供外界訪問(wèn)的接口,我們應(yīng)該選用一種能夠提供數(shù)據(jù)源無(wú)關(guān)的抽象數(shù)據(jù)訪問(wèn)接口并通過(guò)在其下掛接各種不同的DataProviador來(lái)訪問(wèn)數(shù)據(jù)源的數(shù)據(jù)層組件,這樣做便于移植到不同的數(shù)據(jù)源上。
從紛繁蕪雜的關(guān)系數(shù)據(jù)模型中抽象出概念模型。這樣開發(fā)人員可以只需著眼概念模型,而不必要去關(guān)心紛繁蕪雜的關(guān)系數(shù)據(jù)模型,從而提高開發(fā)效率。那么如何能夠做到這一點(diǎn)?
答案就是:Linq 和 ADO.NET Entity Framework
l LINQ幾乎支持你所期望的所有數(shù)據(jù)源:數(shù)據(jù)對(duì)象、SQL Server數(shù)據(jù)庫(kù)、XML和數(shù)據(jù)集,當(dāng)然也支持ADO.NET Entity(LINQ to Entities),LINQ有如下優(yōu)勢(shì):
1、 無(wú)需復(fù)雜學(xué)習(xí)過(guò)程即可上手
下面我給出一個(gè)簡(jiǎn)單的C#示例。
String[] QueryString =
{ "One", "Two", "Three", "Four", "Five" };
要想查找其中長(zhǎng)度大于3的字符串,你可以使用以下查詢語(yǔ)句:
var ThisQuery =
from StringValue
in QueryString
where StringValue.Length > 3
select StringValue;
2、 編寫更少代碼即可創(chuàng)建完整應(yīng)用。
3、 更快開發(fā)錯(cuò)誤更少的應(yīng)用程序。
4、 無(wú)需求助奇怪的編程技巧就可合并數(shù)據(jù)源。
5、 讓新開發(fā)者開發(fā)效率更高。
l ADO.NET Entity Framework包括
1. 實(shí)體數(shù)據(jù)模型(Entity Data Model),開發(fā)人員通過(guò)EDM抽象出非常合適的模型。
2. 非常強(qiáng)大的client-view/mappping引擎,用于映射數(shù)據(jù)關(guān)系
3. Entity SQL語(yǔ)言和LINQ查詢對(duì)EDM schemas的全面支持
4. ojbect services layer供您選擇以何種方式去處理查詢結(jié)果。比如(行,列或作為對(duì)象)。
5. 提供一個(gè)開放的模型使ADO.NET Entity Framework可以處理其他的數(shù)據(jù)存儲(chǔ)。
6. Entity Framework 實(shí)現(xiàn)了樂(lè)觀的并發(fā)模式(Optimistic Concurrency Model)
7. 事務(wù)處理
三、具體功能簡(jiǎn)述
3.1工作流解決方案
工作流引擎:該部分為工作流模型的核心部分,用于生成、管理、角度和監(jiān)控工作流的各個(gè)活動(dòng)執(zhí)行情況,并實(shí)現(xiàn)相應(yīng)的人機(jī)交互。由于采用XPDL等語(yǔ)言定義的工作流文件記載了相應(yīng)的業(yè)務(wù)邏輯,隱藏工作流引擎通過(guò)解析該文件來(lái)了解業(yè)務(wù)流轉(zhuǎn)的邏輯。然后依據(jù)某種運(yùn)行模式按照解析出來(lái)的業(yè)務(wù)邏輯進(jìn)行驅(qū)動(dòng),最終實(shí)現(xiàn)業(yè)務(wù)流程的流轉(zhuǎn)。
工作流定義接口:通過(guò)該接口可以進(jìn)行工作流程的分析、建模、描述和歸檔等工作,并將設(shè)計(jì)完畢的業(yè)務(wù)流程生成工作流引擎能夠識(shí)別的語(yǔ)言。
工作流客戶接口:處理工作流運(yùn)行過(guò)程中需要人為參與的操作。
工作流調(diào)用應(yīng)用程序接口:工作流引擎調(diào)用外部應(yīng)用程序的規(guī)范。
工作流引擎協(xié)作接口:不同工作流引擎之間的協(xié)作。
工作流管理監(jiān)控接口:監(jiān)控和管理工作流所有實(shí)例狀態(tài)。
3.2多語(yǔ)言&用戶自定義標(biāo)簽方案
數(shù)據(jù)庫(kù)結(jié)構(gòu)
3.3消息發(fā)布/訂閱系統(tǒng)方案
使用WCF創(chuàng)建發(fā)布/訂閱系統(tǒng)有多種不同的方式,
(1)使用回調(diào)契約的發(fā)布/訂閱系統(tǒng)
(2)使用MSMQ實(shí)際通用組播的發(fā)布/訂閱系統(tǒng)
(3)使用流的發(fā)布/訂閱系統(tǒng)
方法1,2適合通知數(shù)據(jù)量較大并且發(fā)布頻率比較低的應(yīng)用場(chǎng)景。
當(dāng)通知的數(shù)據(jù)量較小而且發(fā)布頻率又較高時(shí),應(yīng)該使用方法3。
3.4報(bào)表&打印方案
四、系統(tǒng)平臺(tái)&支撐組件
l Wpf (UI)
l Asp.net mvc(UI)
l ClickOnce(智能客戶端??勺詣?dòng)升級(jí),離線操作)
l Linq(借助于LINQ技術(shù),我們可以使用一種類似SQL的語(yǔ)法來(lái)查詢?nèi)魏涡问降臄?shù)據(jù),普通開發(fā)人員不必學(xué)習(xí)MsSql, mysql, orcale, access等數(shù)據(jù)庫(kù)語(yǔ)法,節(jié)省開發(fā)時(shí)間)
l ADO.NET Entity(讓應(yīng)用程序可以用完全對(duì)象化的方法連接與訪問(wèn)數(shù)據(jù)庫(kù), 修改Provider就可遷移到不同的數(shù)據(jù)庫(kù))
l IIS6或以上
l Windows server 2003或以上
l WCF(服務(wù)層)
l Unity(是微軟模式與實(shí)踐團(tuán)隊(duì)開發(fā)的一個(gè)輕量級(jí)、可擴(kuò)展的依賴注入&反轉(zhuǎn)控制容器)
l SQL Server Compact Edition(用作智能客戶端離線操作)
l WF(Microsoft Windows Workflow Foundation是一個(gè)可擴(kuò)展框架,用于在 Windows 平臺(tái)上開發(fā)工作流解決方案)
五、系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
- 1邯鄲erp系統(tǒng)開發(fā)費(fèi)用
- 2廣東廣州erp系統(tǒng)開發(fā)
- 3設(shè)計(jì)行業(yè)erp管理系統(tǒng)框架
- 4erp出貨銷賬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 5erp原理設(shè)計(jì)實(shí)施
- 6erp系統(tǒng)中物料庫(kù)存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 7erp管理系統(tǒng)優(yōu)先級(jí)設(shè)計(jì)矩陣
- 8海鹽erp系統(tǒng)開發(fā)招聘
- 9小型企業(yè)管理erp系統(tǒng)設(shè)計(jì)
- 10erp環(huán)境下的全面預(yù)算管理及其系統(tǒng)設(shè)計(jì)
- 11湖州erp系統(tǒng)開發(fā)管理
- 12哪家公司擅長(zhǎng)ERP系統(tǒng)定制開發(fā)?作用體現(xiàn)在哪些方面?
- 13重慶一體化erp系統(tǒng)的設(shè)計(jì)
- 14erp系統(tǒng)操作界面
- 15基于erp的電子商務(wù)系統(tǒng)設(shè)計(jì)
- 16杭州erp系統(tǒng)定制開發(fā)價(jià)格
- 17徐州服裝廠erp系統(tǒng)的設(shè)計(jì)
- 18erp軟件界面設(shè)計(jì)
- 19杭州專業(yè)的erp管理系統(tǒng)設(shè)計(jì)
- 20erp企業(yè)管理系統(tǒng)中計(jì)算機(jī)設(shè)計(jì)
- 21erp管理系統(tǒng)界面
- 22erp電商管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 23設(shè)計(jì)公司常用的erp項(xiàng)目管理系統(tǒng)
- 24公司怎么自己開發(fā)erp系統(tǒng)
- 25erp系統(tǒng)設(shè)計(jì)的目標(biāo)全過(guò)程全要素
- 26erp管理系統(tǒng)數(shù)據(jù)庫(kù)表格設(shè)計(jì)
- 27哪家ERP(OA)設(shè)計(jì)系統(tǒng)出色?探尋優(yōu)選與獲取途徑
- 28廣東電商erp系統(tǒng)開發(fā)
- 29江蘇erp管理系統(tǒng)開發(fā)
- 30小型ERP系統(tǒng)設(shè)計(jì)
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓