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重磅设计畅谈相关推荐

  1. 《预训练周刊》第11期:全球最大智能模型“悟道2.0”重磅发布、谷歌KELM:将知识图与语言模型预训练语料库集成...

    No.11 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第11期&l ...

  2. 袋鼠云“飞跃计划2.0”重磅发布:全面升级伙伴权益,共话数字生态

    4月20日,袋鼠云成功举行了以"数实融合,韧性生长"为主题的2023春季生长大会.会上重磅发布了袋鼠云生态伙伴计划--"飞跃计划2.0",从商机.产品.联合方案 ...

  3. OpenYurt v0.3.0 重磅发布:全面提升边缘场景下应用部署效率

    作者 | 张杰(冰羽) 来源|阿里巴巴云原生公众号 简介 OpenYurt 是由阿里云开源的基于原生 Kubernetes 构建的.业内首个对于 Kubernetes 非侵入式的边缘计算项目,目标是扩 ...

  4. Magicodes.IE 2.0发布

    Magicodes.IE是我们维护的开源的导入导出通用库,去年年底已加入NCC开源组织. Github地址:https://github.com/xin-lai/Magicodes.IE Magico ...

  5. 解析云原生2.0架构设计的8大关键趋势

    摘要:在云原生2.0阶段,我们到底需要构建一个什么样的架构?华为云首席架构师为你一一解答. 本文分享自华为云社区<华为云首席架构师独家分享:云原生2.0架构设计的8大关键趋势>,作者:技术 ...

  6. (转)OAuth 2.0的设计思路

    OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ...

  7. USB 3.0硬件设计

    USB 3.0硬件设计 概述 USB3.0相比2.0在硬件物理连接上有较大的改变,采用的是RX/TX全双工链路设计,由2对差分信号组成,同时向下兼容USB2.0,所以整个接口有3对差分信号,分别为US ...

  8. 企企通采购网“企销通2.0”重磅上线 助力中小企业打通数字化生态

    随着国内数字化进程的加速加深,实体生产企业已经成为了数字化转型的主阵地,而中小企业作为实体生产的主力军,是数字化转型的先锋队.尤其是近两年受疫情影响,外部市场环境形势多变,中小企业更加需要数字化新能力 ...

  9. Elastic:Elastic Stack 7.6.0 重磅发布

    我们非常兴奋地宣布 Elastic Stack 7.6 正式发布了.此版本借助新推出的 SIEM 检测引擎和与 MITRE ATT&CK™ 知识库相相匹配的精选检测规则集,简化了自动威胁检测过 ...

最新文章

  1. FPGA从Xilinx 的7系列学起(5)
  2. DebugView使用笔记
  3. mysql 联合索引 性能_mysql:联合索引及优化
  4. mysql转openldap_用mysql作openldap的后台数据库
  5. salesforce 零基础学习(十八)WorkFlow介绍及用法
  6. C++程序设计基础(1)程序的编译和执行
  7. 如何学会阅读源码,看这篇就够了!
  8. 中专计算机应用基础知识点归纳,《计算机应用基础》各章知识点归纳大全
  9. 神策分析 Android SDK 网络模块解析 | 数据采集
  10. 创建React脚手架项目
  11. 阿里研究员吴翰清:世界需要什么样的智能系统?
  12. 虚拟机VMware中Linux联网
  13. 最大子序列之和(C语言)
  14. 数据库:数据的独立性
  15. 利用腾讯云函数服务进行每日wps签到打卡(部分失效)
  16. 正则表达式 匹配美元等多种货币符号的超简单方法
  17. ubuntu添加用户
  18. 【已解决】java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class or
  19. 网络安全基础知识笔记-1
  20. mete20可以升级鸿蒙,从微信小程序到鸿蒙js开发【12】——storage缓存自动登录

热门文章

  1. 利用java实现excel转pdf文件
  2. (转)yi_meng linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
  3. 【t057】任务分配
  4. SQLServer2008-镜像数据库实施手册(双机)SQL-Server2014同样适用
  5. 【MongoDB】递归获取字段更新表达式,更新复杂数据类型对象
  6. [leetcode]347. Top K Frequent Elements
  7. BDB (Berkeley DB)简要数据库(转载)
  8. Linux下Tomcat设置自动启动
  9. JS:1.3,函数(function)
  10. ProSolid下的遍历访问封装代码