Magicodes.IE 3.0重磅设计畅谈
Magicodes.IE 3.0重磅设计畅谈
总体设计图
Magicodes.IE导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。
IE在去年年底重构一次之后,经过这么长时间的迭代,又迎来了瓶颈。根据本人和HueiFeng的交流,我们决定逐步暂缓小版本的研发,开始IE 3.0的研发和重构之旅。这一次3.0的设计,我们主要考虑了以下方面:
主要解决痛点
在之前的版本迭代中,我们遗留了一些痛点一直并没得到很好的解决,同时我们也有一些想法,也没来及处理:
1.更友好的本地化支持,以及统一的多语言配置。在之前的版本中,我们虽然可以通过筛选器实现,但是并不太友好。
2.进一步简化和加强动态导出。动态选择列导出在很多业务中比较常见,我们希望通过更简单的API给用户提供更强大的动态导出功能,而无需用户动态建立DTO并且转换数据类型。
3.合并列头。
4.单元格合并。目前主要考虑同一个值自动合并的功能。
5.重构并重新定义样式。支持用户能够非常便捷的定义表样式、列样式(包含列宽、固定列)、行样式(包含行高)以及单元格样式(包含高宽、背景)。
6.脱离特性类重构底层导入导出的最基础的API。以便支持除了特性类导入导出之外,还支持动态导出以及JSON、XML配置导出。
7.提供更多更简单的钩子函数,覆盖导入导出的各个处理环节,方便用户按需处理。
8.添加列模型封装,支持日期列、图片列、进度列、状态列、开关列、标签列、评星列、公式列等。
为什么要做IE?
其实在IE之前,我们有很多选择,OpenXML、NPOI、EPPlus,为什么我们选择做IE呢?
在日常的业务开发之中,导入导出是非常常见的业务,甚至渗漏到了每个列表功能之中,但是就是这么一个常见业务,我们往往需要花费一定精力,而且在很多时候都是重复开发。经验丰富的开发者都清楚,写一个导入导出并不难,但是写好一个导入导出业务并不简单,我们就拿一个普通的导入业务来说,往往我们要考虑到以下内容:
1. 针对当前导入业务编写导入模板生成(写死不易于维护)
2. 导入时需要先检查相关列和格式是否有效
3. 数据校验。对于Excel这种放开了限制的输入方式,用户的输入内容会让你怀疑人生。稍有疏漏,程序都会产生各种意外。并且,如果验证不通过,我们还需要在UI界面上提示用户哪里有错误,甚至要在用户的导入文件中标注出来。
4. 数据类型转换和适配。
看了以上流程,那么你还会觉得做一个导入简单么?正因为如此,Magicodes.IE应运而生,我们希望通过IE来帮助大家简化导入、导出业务,并且代码更简洁、更友好以及更易于维护和扩展。
需求是无止境的,IE经过长久的迭代,目前最新版本为2.5版本。功能已经够多了,但是还是不够满意。经过我们的再三思考,我们决定暂缓小版本迭代,直接开始3.0的设计和研发。我们希望在3.0进一步重构,打好基础,一方面彻底解决一些之前未实现的功能,另一方面,让部分API更友好,同时极大的提升IE的扩展性。
贡献邀请
对于3.0版本目前我们还处于设计和思考阶段,当然3.0也是IE里程碑中的一项重大的更新,是值得记录的,我们很期待3.0版本的发布,但是由于该版本我们要做一个历史性的大更新,我们开发团队人数也不足,目前缺少贡献者的参与,我们发自内心的希望大家能够加入我们,一起来建设IE,没有时间不要紧,只要每周抽出来几个小时。能力达不到不要紧,一方面我们可以先实现功能,再优化代码;另一方便,我们开发团队以及群里的小伙伴均可提供思路以及一对一的支持。
最后
3.0版本我们目前还在设计和思考阶段,欢迎大家多多提供宝贵意见和建议,如果合理我们会一并纳入。不过,由于我们精力实在有限,也非常发自内心的希望大家能够加入我们,一起来建设IE。没有时间不要紧,只要每周抽出几个小时。能力达不到不要紧,一方面我们可以先实现功能,再优化代码;另一方面,我和HueiFeng以及群里的小伙伴均可提供思路以及一对一的支持。
针对IE,我们是认真的,也希望认真的你能够加入我们!
最后,发起一个求助:
https://github.com/dotnetcore/Magicodes.IE/issues/171
【翻译求助】教程翻译求助。Tutorial translation help #171,希望有人能够抽空帮忙整理教程并且主导翻译工作。
转载是一种动力 分享是一种美德
如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
文档官网:docs.xin-lai.com
QQ群:
编程交流群<85318032>
产品交流群<897857351>
Magicodes.IE 3.0重磅设计畅谈相关推荐
- 《预训练周刊》第11期:全球最大智能模型“悟道2.0”重磅发布、谷歌KELM:将知识图与语言模型预训练语料库集成...
No.11 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第11期&l ...
- 袋鼠云“飞跃计划2.0”重磅发布:全面升级伙伴权益,共话数字生态
4月20日,袋鼠云成功举行了以"数实融合,韧性生长"为主题的2023春季生长大会.会上重磅发布了袋鼠云生态伙伴计划--"飞跃计划2.0",从商机.产品.联合方案 ...
- OpenYurt v0.3.0 重磅发布:全面提升边缘场景下应用部署效率
作者 | 张杰(冰羽) 来源|阿里巴巴云原生公众号 简介 OpenYurt 是由阿里云开源的基于原生 Kubernetes 构建的.业内首个对于 Kubernetes 非侵入式的边缘计算项目,目标是扩 ...
- Magicodes.IE 2.0发布
Magicodes.IE是我们维护的开源的导入导出通用库,去年年底已加入NCC开源组织. Github地址:https://github.com/xin-lai/Magicodes.IE Magico ...
- 解析云原生2.0架构设计的8大关键趋势
摘要:在云原生2.0阶段,我们到底需要构建一个什么样的架构?华为云首席架构师为你一一解答. 本文分享自华为云社区<华为云首席架构师独家分享:云原生2.0架构设计的8大关键趋势>,作者:技术 ...
- (转)OAuth 2.0的设计思路
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ...
- USB 3.0硬件设计
USB 3.0硬件设计 概述 USB3.0相比2.0在硬件物理连接上有较大的改变,采用的是RX/TX全双工链路设计,由2对差分信号组成,同时向下兼容USB2.0,所以整个接口有3对差分信号,分别为US ...
- 企企通采购网“企销通2.0”重磅上线 助力中小企业打通数字化生态
随着国内数字化进程的加速加深,实体生产企业已经成为了数字化转型的主阵地,而中小企业作为实体生产的主力军,是数字化转型的先锋队.尤其是近两年受疫情影响,外部市场环境形势多变,中小企业更加需要数字化新能力 ...
- Elastic:Elastic Stack 7.6.0 重磅发布
我们非常兴奋地宣布 Elastic Stack 7.6 正式发布了.此版本借助新推出的 SIEM 检测引擎和与 MITRE ATT&CK™ 知识库相相匹配的精选检测规则集,简化了自动威胁检测过 ...
最新文章
- FPGA从Xilinx 的7系列学起(5)
- DebugView使用笔记
- mysql 联合索引 性能_mysql:联合索引及优化
- mysql转openldap_用mysql作openldap的后台数据库
- salesforce 零基础学习(十八)WorkFlow介绍及用法
- C++程序设计基础(1)程序的编译和执行
- 如何学会阅读源码,看这篇就够了!
- 中专计算机应用基础知识点归纳,《计算机应用基础》各章知识点归纳大全
- 神策分析 Android SDK 网络模块解析 | 数据采集
- 创建React脚手架项目
- 阿里研究员吴翰清:世界需要什么样的智能系统?
- 虚拟机VMware中Linux联网
- 最大子序列之和(C语言)
- 数据库:数据的独立性
- 利用腾讯云函数服务进行每日wps签到打卡(部分失效)
- 正则表达式 匹配美元等多种货币符号的超简单方法
- ubuntu添加用户
- 【已解决】java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class or
- 网络安全基础知识笔记-1
- mete20可以升级鸿蒙,从微信小程序到鸿蒙js开发【12】——storage缓存自动登录
热门文章
- 利用java实现excel转pdf文件
- (转)yi_meng linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
- 【t057】任务分配
- SQLServer2008-镜像数据库实施手册(双机)SQL-Server2014同样适用
- 【MongoDB】递归获取字段更新表达式,更新复杂数据类型对象
- [leetcode]347. Top K Frequent Elements
- BDB (Berkeley DB)简要数据库(转载)
- Linux下Tomcat设置自动启动
- JS:1.3,函数(function)
- ProSolid下的遍历访问封装代码