Magicodes.IE 3.0重磅设计畅谈
Magicodes.IE 3.0重磅設(shè)計(jì)暢談
總體設(shè)計(jì)圖
Magicodes.IE導(dǎo)入導(dǎo)出通用庫,支持Dto導(dǎo)入導(dǎo)出、模板導(dǎo)出、花式導(dǎo)出以及動(dòng)態(tài)導(dǎo)出,支持Excel、Csv、Word、Pdf和Html。
IE在去年年底重構(gòu)一次之后,經(jīng)過這么長時(shí)間的迭代,又迎來了瓶頸。根據(jù)本人和HueiFeng的交流,我們決定逐步暫緩小版本的研發(fā),開始IE 3.0的研發(fā)和重構(gòu)之旅。這一次3.0的設(shè)計(jì),我們主要考慮了以下方面:
主要解決痛點(diǎn)
在之前的版本迭代中,我們遺留了一些痛點(diǎn)一直并沒得到很好的解決,同時(shí)我們也有一些想法,也沒來及處理:
1.更友好的本地化支持,以及統(tǒng)一的多語言配置。在之前的版本中,我們雖然可以通過篩選器實(shí)現(xiàn),但是并不太友好。
2.進(jìn)一步簡化和加強(qiáng)動(dòng)態(tài)導(dǎo)出。動(dòng)態(tài)選擇列導(dǎo)出在很多業(yè)務(wù)中比較常見,我們希望通過更簡單的API給用戶提供更強(qiáng)大的動(dòng)態(tài)導(dǎo)出功能,而無需用戶動(dòng)態(tài)建立DTO并且轉(zhuǎn)換數(shù)據(jù)類型。
3.合并列頭。
4.單元格合并。目前主要考慮同一個(gè)值自動(dòng)合并的功能。
5.重構(gòu)并重新定義樣式。支持用戶能夠非常便捷的定義表樣式、列樣式(包含列寬、固定列)、行樣式(包含行高)以及單元格樣式(包含高寬、背景)。
6.脫離特性類重構(gòu)底層導(dǎo)入導(dǎo)出的最基礎(chǔ)的API。以便支持除了特性類導(dǎo)入導(dǎo)出之外,還支持動(dòng)態(tài)導(dǎo)出以及JSON、XML配置導(dǎo)出。
7.提供更多更簡單的鉤子函數(shù),覆蓋導(dǎo)入導(dǎo)出的各個(gè)處理環(huán)節(jié),方便用戶按需處理。
8.添加列模型封裝,支持日期列、圖片列、進(jìn)度列、狀態(tài)列、開關(guān)列、標(biāo)簽列、評星列、公式列等。
為什么要做IE?
其實(shí)在IE之前,我們有很多選擇,OpenXML、NPOI、EPPlus,為什么我們選擇做IE呢?
在日常的業(yè)務(wù)開發(fā)之中,導(dǎo)入導(dǎo)出是非常常見的業(yè)務(wù),甚至滲漏到了每個(gè)列表功能之中,但是就是這么一個(gè)常見業(yè)務(wù),我們往往需要花費(fèi)一定精力,而且在很多時(shí)候都是重復(fù)開發(fā)。經(jīng)驗(yàn)豐富的開發(fā)者都清楚,寫一個(gè)導(dǎo)入導(dǎo)出并不難,但是寫好一個(gè)導(dǎo)入導(dǎo)出業(yè)務(wù)并不簡單,我們就拿一個(gè)普通的導(dǎo)入業(yè)務(wù)來說,往往我們要考慮到以下內(nèi)容:
1.??? 針對當(dāng)前導(dǎo)入業(yè)務(wù)編寫導(dǎo)入模板生成(寫死不易于維護(hù))
2.??? 導(dǎo)入時(shí)需要先檢查相關(guān)列和格式是否有效
3. ?? 數(shù)據(jù)校驗(yàn)。對于Excel這種放開了限制的輸入方式,用戶的輸入內(nèi)容會(huì)讓你懷疑人生。稍有疏漏,程序都會(huì)產(chǎn)生各種意外。并且,如果驗(yàn)證不通過,我們還需要在UI界面上提示用戶哪里有錯(cuò)誤,甚至要在用戶的導(dǎo)入文件中標(biāo)注出來。
4. ?? 數(shù)據(jù)類型轉(zhuǎn)換和適配。
看了以上流程,那么你還會(huì)覺得做一個(gè)導(dǎo)入簡單么?正因?yàn)槿绱?#xff0c;Magicodes.IE應(yīng)運(yùn)而生,我們希望通過IE來幫助大家簡化導(dǎo)入、導(dǎo)出業(yè)務(wù),并且代碼更簡潔、更友好以及更易于維護(hù)和擴(kuò)展。
需求是無止境的,IE經(jīng)過長久的迭代,目前最新版本為2.5版本。功能已經(jīng)夠多了,但是還是不夠滿意。經(jīng)過我們的再三思考,我們決定暫緩小版本迭代,直接開始3.0的設(shè)計(jì)和研發(fā)。我們希望在3.0進(jìn)一步重構(gòu),打好基礎(chǔ),一方面徹底解決一些之前未實(shí)現(xiàn)的功能,另一方面,讓部分API更友好,同時(shí)極大的提升IE的擴(kuò)展性。
貢獻(xiàn)邀請
對于3.0版本目前我們還處于設(shè)計(jì)和思考階段,當(dāng)然3.0也是IE里程碑中的一項(xiàng)重大的更新,是值得記錄的,我們很期待3.0版本的發(fā)布,但是由于該版本我們要做一個(gè)歷史性的大更新,我們開發(fā)團(tuán)隊(duì)人數(shù)也不足,目前缺少貢獻(xiàn)者的參與,我們發(fā)自內(nèi)心的希望大家能夠加入我們,一起來建設(shè)IE,沒有時(shí)間不要緊,只要每周抽出來幾個(gè)小時(shí)。能力達(dá)不到不要緊,一方面我們可以先實(shí)現(xiàn)功能,再優(yōu)化代碼;另一方便,我們開發(fā)團(tuán)隊(duì)以及群里的小伙伴均可提供思路以及一對一的支持。
最后
3.0版本我們目前還在設(shè)計(jì)和思考階段,歡迎大家多多提供寶貴意見和建議,如果合理我們會(huì)一并納入。不過,由于我們精力實(shí)在有限,也非常發(fā)自內(nèi)心的希望大家能夠加入我們,一起來建設(shè)IE。沒有時(shí)間不要緊,只要每周抽出幾個(gè)小時(shí)。能力達(dá)不到不要緊,一方面我們可以先實(shí)現(xiàn)功能,再優(yōu)化代碼;另一方面,我和HueiFeng以及群里的小伙伴均可提供思路以及一對一的支持。
針對IE,我們是認(rèn)真的,也希望認(rèn)真的你能夠加入我們!
最后,發(fā)起一個(gè)求助:
https://github.com/dotnetcore/Magicodes.IE/issues/171
【翻譯求助】教程翻譯求助。Tutorial translation help #171,希望有人能夠抽空幫忙整理教程并且主導(dǎo)翻譯工作。
轉(zhuǎn)載是一種動(dòng)力 分享是一種美德
如果喜歡作者的文章,請關(guān)注【麥扣聊技術(shù)】訂閱號以便第一時(shí)間獲得最新內(nèi)容。本文版權(quán)歸作者和湖南心萊信息科技有限公司共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
文檔官網(wǎng):docs.xin-lai.com
QQ群:
編程交流群<85318032>?
產(chǎn)品交流群<897857351>
總結(jié)
以上是生活随笔為你收集整理的Magicodes.IE 3.0重磅设计畅谈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个 Task 不够,又来一个 Valu
- 下一篇: Net5 已经来临,让我来送你一个成功