Magicodes.IE 3.0重磅设计畅谈
总体设计

Magicodes.IE导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。
IE在去年年底重构一次之后,经过这么长时间的迭代,又迎来了瓶颈。根据本人和HueiFeng的交流,我们决定逐步暂缓小版本的研发,开始IE 3.0的研发和重构之旅。这一次3.0的设计,我们主要考虑了以下方面:
主要解决痛点
在之前的版本迭代中,我们遗留了一些痛点一直并没得到很好的解决,同时我们也有一些想法,也没来及处理:
更友好的本地化支持,以及统一的多语言配置。在之前的版本中,我们虽然可以通过筛选器实现,但是并不太友好。
进一步简化和加强动态导出。动态选择列导出在很多业务中比较常见,我们希望通过更简单的API给用户提供更强大的动态导出功能,而无需用户动态建立DTO并且转换数据类型。
合并列头。

单元格合并。目前主要考虑同一个值自动合并的功能。

重构并重新定义样式。支持用户能够非常便捷的定义表样式、列样式(包含列宽、固定列)、行样式(包含行高)以及单元格样式(包含高宽、背景)。
脱离特性类重构底层导入导出的最基础的API。以便支持除了特性类导入导出之外,还支持动态导出以及JSON、XML配置导出。
提供更多更简单的钩子函数,覆盖导入导出的各个处理环节,方便用户按需处理。
添加列模型封装,支持日期列、图片列、进度列、状态列、开关列、标签列、评星列、公式列等。
为什么要做IE?
其实在IE之前,我们有很多选择,OpenXML、NPOI、EPPlus,为什么我们选择做IE呢?
在日常的业务开发之中,导入导出是非常常见的业务,甚至渗漏到了每个列表功能之中,但是就是这么一个常见业务,我们往往需要花费一定精力,而且在很多时候都是重复开发。经验丰富的开发者都清楚,写一个导入导出并不难,但是写好一个导入导出业务并不简单,我们就拿一个普通的导入业务来说,往往我们要考虑到以下内容:
针对当前导入业务编写导入模板生成(写死不易于维护)
导入时需要先检查相关列和格式是否有效
数据校验。对于Excel这种放开了限制的输入方式,用户的输入内容会让你怀疑人生。稍有疏漏,程序都会产生各种意外。并且,如果验证不通过,我们还需要在UI界面上提示用户哪里有错误,甚至要在用户的导入文件中标注出来。
数据类型转换和适配。
看了以上流程,那么你还会觉得做一个导入简单么?正因为如此,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,希望有人能够抽空帮忙整理教程并且主导翻译工作。
Magicodes.IE 3.0重磅设计畅谈的更多相关文章
- julia,集Python、C++、R为一体!Julia 1.0重磅发布, MIT发布史上最强科学计算编程语言?创始人独家解答11个问题
这个编程语言的新版本之所以受到整个人工智能界的关注,最主要的原因正是其将 C 语言的速度.Ruby 的灵活.Python 的通用性前所未有地结合在一起,支持并行处理,易于学习和使用,尤其适合科学和工程 ...
- (转)OAuth 2.0的设计思路
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为R ...
- POLARDB 2.0 重磅升级,分别支持Oracle与PostgreSQL
点击订阅新品发布会! 新产品.新版本.新技术.新功能.价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 POLARDB 2.0 重磅升级 2019年6月19日15时,阿里云 POLAR ...
- 云数据库 MySQL 8.0 重磅发布,更适合企业使用场景的RDS数据库
点击订阅新品发布会! 新产品.新版本.新技术.新功能.价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 云数据库MySQL 8.0 升级发布会 2019年5月29日15时,阿里云云数据 ...
- Magicodes.IE 2.0发布
Magicodes.IE 2.0发布 Magicodes.IE是我们维护的开源的导入导出通用库,去年年底已加入NCC开源组织. Github地址:https://github.com/xin-lai/ ...
- 支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型 原创 杨翊(席翁) 阿里巴巴云原生 2020-12-28
- Magicodes.WeiChat——多租户的设计与实现
概要 多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:在一台服务器上运行单个应用实例,它为多个租户提供服务. 本框架使用的是共享数据库.共享 Schema.共享数据表的数据 ...
- 【老孟Flutter】Flutter 2.0 重磅更新
老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flut ...
- 120项改进:开源超级爬虫Hawk 2.0 重磅发布!
沙漠君在历时半年,修改无数bug,更新一票新功能后,在今天隆重推出最新改进的超级爬虫Hawk 2.0! 啥?你不知道Hawk干吗用的? 这是采集数据的挖掘机,网络猎杀的重狙!半年多以前,沙漠君写了一篇 ...
随机推荐
- Espruino似乎和Arduino一样
参考:https://baike.baidu.com/item/Espruino Espruino 编辑 锁定 讨论 Espruino 是一个微处理器的 JavaScript 解释器,我们用它来创 ...
- TTL和CMOS电平
参考: 1.https://baike.baidu.com/item/TTL%E7%94%B5%E5%B9%B3/5904345 2.https://baike.baidu.com/item/CMOS ...
- Redash 二开 - 后端环境搭建
Redash 二开 - 后端环境搭建 一.操作系统选择 官方文档有一句话:Windows users: while it should be possible to run Redash on a W ...
- Spring Boot入门系列(二十)快速打造Restful API 接口
spring boot入门系列文章已经写到第二十篇,前面我们讲了spring boot的基础入门的内容,也介绍了spring boot 整合mybatis,整合redis.整合Thymeleaf 模板 ...
- Oracle 和 MySQL 在显示数据库名和表名的区别
Oracle 显示数据库名和表名 Oracle 查看表名: select table_name from user_tables; select table_name from dba_tables; ...
- HTML CSS+JS想要做放大镜练习,如何获取同样的大图和小图?
1.进入某商城找到对应的图片: 步骤一: 步骤二: 步骤三: 2.检查源代码: 情况一:按F12 情况二:鼠标在网页内,直接右键-->"检查元素" 1.选中选择部分 2.点击 ...
- 唯品会Java开发手册》1.0.2版阅读
<唯品会Java开发手册>1.0.2版阅读 1. 概述 <阿里巴巴Java开发手册>,是首个对外公布的企业级Java开发手册,对整个业界都有重要的意义. 我们结合唯品会的内部经 ...
- 2017-18一《电子商务概论》本科作业-商A1551
第1次作业: 1 2017年双十一新营销方案 2 销售额达1682亿元分析组成及了解猫狗大战 3 破亿店铺举例. 第2次作业: 1.你如何来定义和理解电子商务?电子商务对社会经济带了怎样的影响,企业. ...
- 多测师讲解自动化selenium___定位元素002___高级讲师肖sir
高级自动化测试python+selenium教程手册 --高级讲师肖sir(Harm) 第 2 章8种定位方法 总结: selenium 的 webdriver 提供了八种基本的元素定位方法,前面六种 ...
- Celery---一个懂得异步任务,延时任务,周期任务的芹菜
Celery是什么? celey是芹菜 celery是基于Python实现的模块,用于执行异步延时周期任务的 其结构组成是由 1.用户任务 app 2.管道任务broker用于存储任务 官方推荐red ...