溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

發(fā)布時(shí)間:2021-10-29 16:46:41 來(lái)源:億速云 閱讀:126 作者:柒染 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

在做Winform項(xiàng)目的時(shí)候,一直有一個(gè)夢(mèng)想,就是希望把所有的組件模塊組合即可組裝成一個(gè)完整的項(xiàng)目系統(tǒng)(或者至少可以大部分完成)。這即使是夢(mèng)想,我也一直為之奮斗,每前進(jìn)一步,我們離夢(mèng)想就靠近一步。因此,本著這個(gè)夢(mèng)想,我一路走來(lái),開(kāi)發(fā)整理了一系列的組件模塊,包括底層的公用類庫(kù)、Winform分頁(yè)控件、通用的適應(yīng)多數(shù)據(jù)庫(kù)的查詢組件,以及相對(duì)高層次一點(diǎn)的組件模塊:通用權(quán)限管理系統(tǒng)、通用字典管理模塊、通用程序自動(dòng)更新模塊、通用附件管理模塊,當(dāng)然還會(huì)有更多的組件模塊會(huì)吸引我繼續(xù)朝著夢(mèng)想前進(jìn)。除了這些,為了提高開(kāi)發(fā)效率,從設(shè)計(jì)好的數(shù)據(jù)庫(kù),直接生成項(xiàng)目代碼,從05年開(kāi)始至今,一直完善我的代碼自動(dòng)生成工具 Database2Sharp。下面的附圖,是我對(duì)于目前Winform開(kāi)發(fā)框架以及將來(lái)的發(fā)展規(guī)劃,朝著夢(mèng)想前進(jìn),用博客園記錄我的前進(jìn)軌跡以及感想。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

本片隨筆,還是落地生根,繼續(xù)介紹我的Winform開(kāi)發(fā)框架中的一環(huán),通用附件管理模塊。該模塊其實(shí)是很通用的一個(gè)模塊,例如我們的一些日常記錄,可能會(huì)伴隨著有圖片、文檔等的附件管理,如果為每個(gè)業(yè)務(wù)對(duì)象都做一個(gè)附件管理,或者每次開(kāi)發(fā)系統(tǒng)都重新做,那么效率肯定沒(méi)有直接采用通用的附件管理那么方便快捷了。而且在日益增多的項(xiàng)目管理中,我們不需要維護(hù)一大堆相同或者類似的代碼,而且我的組件都是內(nèi)置支持多數(shù)據(jù)庫(kù)的,對(duì)不同的數(shù)據(jù)庫(kù),只需要適當(dāng)配置即可正常使用,對(duì)于組件化的基礎(chǔ)性平臺(tái)以及支持多數(shù)據(jù)庫(kù)等方面,特別是項(xiàng)目管理等方面,頗具爭(zhēng)議及傳奇色彩的園友,吉日嘎拉在文章《分享從帶頭拼死拼活開(kāi)發(fā)軟件項(xiàng)目到不去現(xiàn)場(chǎng)異地坐鎮(zhèn)遠(yuǎn)程遙控照樣可以把上海的軟件項(xiàng)目管理好》就有很好的闡述,其實(shí)他這些總結(jié)很實(shí)在,有著很好的基礎(chǔ)基類(自己構(gòu)建的或者購(gòu)買的)總比從頭來(lái)過(guò)的強(qiáng),術(shù)業(yè)有專攻,更是厚積薄發(fā)積累的體現(xiàn)。

1、多數(shù)據(jù)庫(kù)支持模塊

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

我的一貫做法,就是所有的模塊,為了應(yīng)付未知的項(xiàng)目需求,都做成多數(shù)據(jù)庫(kù)支持的,雖然看似麻煩了一點(diǎn),但是由于我提煉的框架,數(shù)據(jù)庫(kù)訪問(wèn)類都高度抽象化及完好的封裝,因此即使增加多種數(shù)據(jù)庫(kù)的支持,其實(shí)需要調(diào)整的地方極少。

對(duì)于上面幾種數(shù)據(jù)庫(kù)的支持,一般來(lái)說(shuō),需要增加不同數(shù)據(jù)庫(kù)類型的BaseDAL,由于每個(gè)不同數(shù)據(jù)庫(kù)都需要擁有一個(gè)BaseDAL,那么很多相同的操作代碼就會(huì)發(fā)生冗余,因?yàn)榇蠖鄶?shù)數(shù)據(jù)庫(kù)的基礎(chǔ)操作是一樣的,只有一部分比較特別,需要進(jìn)行個(gè)性化處理,因此對(duì)數(shù)據(jù)訪問(wèn)層進(jìn)行優(yōu)化設(shè)計(jì),得到下面的設(shè)計(jì)圖,如下所示。

經(jīng)過(guò)框架抽象,這個(gè)BaseDAL類代碼很少,基本上通用的數(shù)據(jù)庫(kù)操作,已經(jīng)放到了AbStractBaseDAL超級(jí)基類進(jìn)行封裝,即使對(duì)于一些不同數(shù)據(jù)庫(kù)操作不同,我們也盡可能抽象放到上面基類了,BaseDAL只需要實(shí)現(xiàn)一些特殊的操作即可。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

2、模塊控件化,***化降低開(kāi)發(fā)工作

為了減少重復(fù)開(kāi)發(fā),要求控件盡可能考慮實(shí)際的需求情景。一般來(lái)說(shuō),我們?cè)跀?shù)據(jù)編輯界面,會(huì)有兩個(gè)需求,一個(gè)是管理與數(shù)據(jù)記錄對(duì)應(yīng)的附件列表,一個(gè)是維護(hù)自己的附件信息,下面對(duì)這兩個(gè)需求進(jìn)行描述和講解。

1)管理與數(shù)據(jù)記錄對(duì)應(yīng)的附件列表

首先我們創(chuàng)建一個(gè)獨(dú)立的控件,用于放到編輯數(shù)據(jù)記錄窗口里面,如下所示。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

這樣在項(xiàng)目中集成(如數(shù)據(jù)編輯窗口),直接拖動(dòng)這個(gè)控件到界面中,運(yùn)行就可以看到下面的效果了。

由于一般創(chuàng)建記錄的時(shí)候,給他指定一個(gè)GUID的附件組ID,這樣我們?cè)跀?shù)據(jù)記錄保存前,我們就可以上傳附件了,如下所示。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

而且在這個(gè)過(guò)程中,可以隨時(shí)查看自己在該記錄中已經(jīng)上傳的附件。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

如果附件不夠,可以隨時(shí)啟動(dòng)上傳操作,附件支持多選文件,然后一次性,啟動(dòng)后臺(tái)線程操作方式,把文件上傳及附件記錄保存到數(shù)據(jù)庫(kù),界面如下所示。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

2)維護(hù)自己的附件信息

有時(shí)候,我們需要管理自己的個(gè)人附件,還需要知道自己在業(yè)務(wù)模塊中上傳過(guò)哪些附件,這兩個(gè)是比較常見(jiàn)的場(chǎng)景,這樣我們開(kāi)發(fā)一個(gè)界面來(lái)管理查看這兩類附件,就可以滿足大多數(shù)的要求了,如下所示。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

因?yàn)閭€(gè)人附件或者業(yè)務(wù)附件都可能比較多,甚至隨著業(yè)務(wù)的增長(zhǎng),數(shù)量可能激增,那么分頁(yè)就很有必要,如上圖下發(fā)就是利用我的分頁(yè)控件模塊(純分頁(yè)控件模塊,不含列表),這個(gè)分頁(yè)控件集合是我博客介紹得比較多的一個(gè)控件來(lái)的,而且這個(gè)是其中之一的純分頁(yè)控件,可以適用于所有分頁(yè)的場(chǎng)景,而不僅僅是用來(lái)顯示二維表這么簡(jiǎn)單。當(dāng)然,這個(gè)純分頁(yè)控件的使用也是簡(jiǎn)單易用的,可以用在各種需要分頁(yè)顯示的場(chǎng)合中,這個(gè)ListView就是其中之一,還可以用在圖片展示等更多場(chǎng)景。

3、集成圖片查看控件

由于是附件管理,因此有可能上傳各種文件,包括Word文檔、Excel文檔、壓縮文件,以及各種類型的圖片,因此為了方便對(duì)圖片的查看,這個(gè)控件集成了圖片查看控件,可以非常方便直接讀取圖片附件的數(shù)據(jù)流作為對(duì)象展示,該圖片控件支持對(duì)圖片的滾動(dòng)放大縮小、左右翻轉(zhuǎn)、選擇放大、圖片移動(dòng)、保存圖片等功能,不需要查看,直接使用ESC退出即可。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

當(dāng)然對(duì)于其他不是圖片的格式附件,由于不知道或者很難直接查看,因此提示用戶保存到本地然后提示打開(kāi)查看即可,如下所示。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

4、集成到WCF開(kāi)發(fā)框架中

為了最可能、***程度的體現(xiàn)系統(tǒng)界面的一致性和應(yīng)用完備性,我也開(kāi)發(fā)了適用于WCF開(kāi)發(fā)框架的附件上傳模塊,這樣就可以在更多的開(kāi)發(fā)場(chǎng)合上使用,而且由于附件管理模塊的集中化,更加方便維護(hù)代碼了。

Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么

其實(shí)WCF開(kāi)發(fā)框架模式下的附件管理更有意義,因?yàn)槿绻羌兇獾谋镜匚募芾恚赡荏w現(xiàn)不出網(wǎng)絡(luò)化的附件管理優(yōu)勢(shì),這樣通過(guò)WCF的架構(gòu),所有的附件數(shù)據(jù)都可以在各個(gè)不同的地方、各個(gè)不同的網(wǎng)絡(luò)環(huán)境下進(jìn)行訪問(wèn),分布式的優(yōu)勢(shì)更加明顯,這也是WCF開(kāi)發(fā)框架的相同優(yōu)勢(shì)。

以上就是我對(duì)附件管理模塊的封裝,希望朝著WInform業(yè)務(wù)模塊組件化、最終產(chǎn)品高度定制化的理想前進(jìn),以最快的速度搭建好最終產(chǎn)品,以高穩(wěn)定性和統(tǒng)一性的組件界面或者客戶的信賴和贊許。

進(jìn)一步來(lái)說(shuō),我的模塊化的Winform開(kāi)發(fā)框架,對(duì)開(kāi)發(fā)業(yè)務(wù)系統(tǒng)的企業(yè)來(lái)說(shuō),甚至只需要個(gè)別人掌握組件代碼的維護(hù)和更新,讓更多的開(kāi)發(fā)人員投入到實(shí)際的業(yè)務(wù)開(kāi)發(fā)或者控件使用的陣營(yíng)中去即可,既可有效保護(hù)產(chǎn)品的安全性和統(tǒng)一性,也可以更高效率的開(kāi)發(fā)一個(gè)新系統(tǒng),而不需要企業(yè)什么基礎(chǔ)性模塊都需要開(kāi)發(fā)人員參與,重新弄出一堆很難統(tǒng)一化的基礎(chǔ)性產(chǎn)品來(lái)?;貞?yīng)開(kāi)頭的一句話,就是術(shù)業(yè)有專攻,更是厚積薄發(fā)的積累的體現(xiàn)。

關(guān)于Winform開(kāi)發(fā)框架中的通用附件管理模塊是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI