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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php引用类,thinkphp引用类的使用

比如发送邮件类phpmailer1.将核心文件放入ORG目录下2.在使用的地方&#xff0c;引入这个类文件如何引入呢&#xff1f;import(.ORG.phpmailer);这个表示引入当前项目中的ORG中的phpmailer.class.php文件3.引入之后就可以使用文件中的类了public function sendEmail() {import(.…

Net5 已经来临,让我来送你一个成功

没错&#xff0c;那就是“下载成功”。现在&#xff0c;已经可以急速下载.Net5 docker 镜像 .Net 5 进行今天已经正式发布&#xff0c;想必各位已经通过各种渠道了解到了此次发布的所有内容。并且也都体会到了这次凑成三连的金 scott 是什么效果&#xff08;啊哈&#xff0c;三…

推荐几款强大流行的BI系统

高级架构师俱乐部 读完需要2分钟速读仅需 1 分钟企业在日常运营过程中&#xff0c;需要根据公司实时经营数据来做未来决测或者发现经营中的问题&#xff0c;在此过程中离不开对数据的分析&#xff0c;而平常利用 excel 等方式极大的提高了领导层快速做出决测的成本&#xff0c…

php 4位数字不足补零,php实现数字不足补0的方法

php实现数字不足补0的方法发布时间&#xff1a;2020-08-28 09:51:06来源&#xff1a;亿速云阅读&#xff1a;100作者&#xff1a;小新这篇文章将为大家详细讲解有关php实现数字不足补0的方法&#xff0c;小编觉得挺实用的&#xff0c;因此分享给大家做个参考&#xff0c;希望大…

起点低,怎么破?

职场&认知洞察 丨 作者 / findyi这是findyi公众号分享的第91篇原创文章洋友问&#xff1a;“洋哥&#xff0c;我北漂多年&#xff0c;专科毕业从农村出来&#xff0c;感觉做什么都不顺&#xff0c;我该怎么办”。和他聊了聊&#xff0c;他毕业后就来北京打工&#xff0c;尝…

C# Span 源码解读和应用实践

一&#xff1a;背景 1. 讲故事这两天工作上太忙没有及时持续的文章产出&#xff0c;和大家说声抱歉&#xff0c;前几天群里一个朋友在问什么时候可以产出 Span 的下一篇&#xff0c;哈哈&#xff0c;这就来啦&#xff01;读过上一篇的朋友应该都知道 Span 统一了 .NET 程序 栈 …

[C#.NET 拾遗补漏]12:死锁和活锁的发生及避免

多线程编程时&#xff0c;如果涉及同时读写共享数据&#xff0c;就要格外小心。如果共享数据是独占资源&#xff0c;则要对共享数据的读写进行排它访问&#xff0c;最简单的方式就是加锁。锁也不能随便用&#xff0c;否则可能会造成死锁和活锁。本文将通过示例详细讲解死锁和活…

64岁Python之父加入微软 | 谁说大龄程序员无出路

喜欢就关注我们吧&#xff01;现年 64 岁的 Python 创始人 Guido van Rossum 退休一年后再度复出&#xff0c;今天宣布已加入微软开发者部门 (Developer Division).我觉得退休生活乏味又无趣&#xff0c;因此已加入微软开发者部门。做什么工作&#xff1f;选择太多了&#xff0…

JAVA中的GridView每一个赋值,在ASP.NET 2.0中操作数据之六十二:GridView批量更新数据...

导言&#xff1a;在前面的教程&#xff0c;我们对数据访问层进行扩展以支持数据库事务.数据库事务确保一系列的操作要么都成功&#xff0c;要么都失败。本文我们将注意力转到创建一个批更新数据界面.在本文&#xff0c;我们将创建一个GridView控件&#xff0c;里面的每一行记录…

微软发布VS Code Jupyter插件!不止Python!多语言的Jupyter Notebook支持来了!

北京时间 2020 年 11 月 12 日&#xff0c;微软发布了全新的 VS Code Jupyter 插件&#xff01;Jupyter 插件将 Jupyter Notebook 的功能引入 VS Code&#xff0c;并且将会支持更多语言和使用场景。Jupyter Notebook 支持创建和共享包含代码、方程式、文本和可视化内容的文档&a…

windows安全模式_鲁大师正式挂牌上市,使用鲁大师如何开启笔记本电脑全面节能模式...

10月10日消息&#xff0c;今天360旗下的鲁大师正式挂牌上市。上市之后&#xff0c;鲁大师的盘中涨幅一度扩大至100%&#xff0c;鲁大师的市值也一度达到了14亿港元。过去三个财年&#xff0c;鲁大师的营业收入分别为6981.2万、1.23亿和3.20亿人民币。简单介绍360&#xff0c;36…

跟我一起学Redis之Redis事务简单了解一下

前言关系数据库中的事务&#xff0c;小伙伴们应该是不陌生了&#xff0c;不管是在开发还是在面试过程中&#xff0c;总有两个问题逃不掉&#xff1a;•说说事务的特性&#xff1b;•事务隔离级别是怎么一回事&#xff1f;事务处理不好&#xff0c;数据就可能不准确&#xff0c;…

groovy 字符串截取最后一个_Python入门高级教程--Python 字符串

Python 字符串字符串是 Python 中最常用的数据类型。我们可以使用引号(或")来创建字符串。创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a;var1 Hello World!var2 "Python Runoob"Python 访问字符串中的值Python 不支持单字符类型&a…

java面试题_阿里大厂流出的数百道 Java 经典面试题

BAT 常问的 Java基础39道常见面试题1.八种基本数据类型的大小&#xff0c;以及他们的封装类2.引用数据类型3.Switch能否用string做参数4.equals与的区别5.自动装箱&#xff0c;常量池6.Object有哪些公用方法7.Java的四种引用&#xff0c;强弱软虚&#xff0c;用到的场景8.Hashc…

​被冷落的运算符重载

基本类型可以使用运算符进行运算、比较、取反等操作。如果想使用运算符操作两个对象&#xff0c;我们就需要用到运算符重载。我们先看个例子&#xff0c;假如有个房子类&#xff0c;有长和宽两个属性。代码如下&#xff1a;接下来我们使用House类实例化两个对象&#xff1a;hou…

neo4j 查询同一节点的两个上级_WhatRoute for Mac(互联网流量诊断查询工具)

如果您想在不使用命令行的情况下执行流量诊断查询&#xff0c;那么WhatRoute是一个不错的选择。WhatRoute提供了一个干净且有条理的界面&#xff0c;主要提供Traceroute功能&#xff0c;但也可以执行Ping&#xff0c;域名服务查询&#xff0c;Whois查询以及监控进出计算机的流量…

快来参加学习.NET 挑战赛

今天访问dot.net 网站看到了一个学习.NET 挑战赛&#xff0c;发现已经赛程过半了&#xff0c;这是一个为那些想更多地了解 C# 和 .NET 的人举办的一个完全免费的课程活动&#xff0c;这些模块必须在 11 月底前完成。参加这个挑战赛&#xff0c;你必须从 .NET 学习挑战页面进入进…

excel怎么设置打印区域_别再浪费打印纸了!这样设置,Excel表格再大都能打印成一页!...

在打印Excel表格时&#xff0c;你是不是经常碰到过这种情况&#xff1a;明明排版好的表格&#xff0c;结果打印完却发现只显示一半......表格太宽导致无法打印在A4纸上......今天叨叨君就来分享几个有效的解决方法&#xff0c;教你轻轻松松将表格打印在一页纸上&#xff0c;一起…

xcode 修改 infodictionary_安卓系统修改复位键生效时间

文档说明本文档以SC806-CN-00(msm8909平台&#xff0c;Android 7)为例&#xff0c;说明如何修改复位键生效时间。应用背景默认情况下&#xff0c;按复位键&#xff0c;系统马上直接关机。在实际应用中&#xff0c;有可能由于干扰造成的抖动导致误关机行为。 为避免发生这种情况…

为什么曾经优秀的人突然变得平庸?

职场&认知洞察 丨 作者 / findyi这是findyi公众号分享的第95篇原创文章一个读者的提问&#xff1a;洋哥&#xff0c;我从小都是学霸&#xff0c;本硕都是985&#xff0c;计算机科班出身&#xff0c;但进入职场后却始终无法取得突破。工作5年还是基层员工&#xff0c;我该怎…