本文由葡萄城技术团队原创并首发

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

2020年是不平凡的一年,虽然疫情为整个社会都带来了巨大的冲击,但IT技术人们却从未停止过创新和发展的步伐。

葡萄城是全球领先的软件开发技术提供商。在专注软件开发技术的40年中,葡萄城逐渐形成了吸纳全球顶尖技术人才的分布式研发架构,并先后研发出各类开发控件、商业智能报表工具、低代码开发平台等,引领开发技术的发展。

在2020年,葡萄城仍然秉承着“赋能开发者”使命,用技术至上的工匠精神在前后端技术方面都有着一些创新。下面,就让我们一同来回顾一下吧。

前端(JavaScript、TypeScript):

(图片来源于网络)

1.      Canvas绘制模型:使用 HTML5 Canvas 绘制引擎,而非DOM拼接的方式展示表格数据,避免了重复创建和销毁DOM元素时的性能损耗,在画布的绘制过程中,打破了DOM元素渲染对UI的诸多限制,可以绘制种类更为丰富的UI元素,如线形、特殊图形等,通过画法逻辑,还可以实现更加精准的UI界面渲染,解决了浏览器差异造成的样式误差。

2.      双缓存绘制技术:将不易改变的主体图层绘制在缓存的Canvas中,在发生改变需要更新图层时,只需要将缓存Canvas中的主体图层直接通过图像克隆的方式绘制在主Canvas上,大幅优化了页面绘制性能。

3.      稀疏矩阵存储策略:相较于传统的链式存储或数组存储,稀疏矩阵存储构建了基于行索引的数据字典,在松散布局的表格数据中,稀疏矩阵只会对非空数据进行存储,而不需要对空数据开辟额外的内存空间。

4.  前端技术的前瞻性研究:技术团队自WebAssembly发布就开始了投入研究工作,面对可能对前端类似高负载运算等场景带来极大性能提升的全新开放技术,开发团队对其做了大量的性能分析和适配性研究。

以上技术应用于葡萄城纯前端表格控件SpreadJS,纯前端在线报表控件ActiveReportsJS等产品。

后端(.NET、.NET Core、Java):

(图片来源于网络)

1.      减少垃圾回收:消除了单元格的概念,使用double 存储数字、文本、布尔和错误类型,将行存储改成列存储,并结合 C# 的泛型,用字典存储值类型的数据,以此克服垃圾回收的影响,提升处理性能。

2.      共享存储及样式压缩:所谓共享存储,就是把整个软件中重复的数据对象只生成一份,放在一个全局的地方,每个对象用一个数字做ID,其它地方只存这个ID,这样做可以用来降低内存消耗。进一步减少触发GC回收的次数,从而提高程序执行效率。

3.      充分利用高速缓存: CPU在读取数据的时候,会先从最近的缓存中读,如果没命中,才从下一级缓存中读,然而,越高速的存储介质离CPU越近,速度越快,因此,提升CPU的缓存命中率对改善性能意义重大。

4.      框架整体迁移:在过去的2020年,全面将服务端技术栈从.NET Framework迁移到.Net Core。大规模的重构和迁移,为了使得更多开发者能够基于国产化操作系统使用。

5.     微服务架构及自研运算引擎:借助Akka实现 Server + N Workers之间的通信,达到集群和分布式部署的能力;其中自主研发的高性能大数据运算引擎(COT),更可将分析亿级数据达到秒级。

以上技术应用于葡萄城服务端高性能表格组件GcExcel、企业级低代码开发平台活字格、嵌入式商业智能和报表软件Wyn Enterprise等多个产品。

在过去的2020年,葡萄城相继通过十数次的版本发布迭代,将上述创新的前后端技术反映在产品中与广大用户见面,为开发者大大提升了开发效率。

铭记初心,持续为开发者赋能

开发者是各项软件技术的创造者,是软件产业发展的核心力量。葡萄城以“赋能开发者”为使命,就是希望能够全面的支持和赋能一切具有创新精神的开发者,帮助大家创新开发模式,提升开发效率。

因此,除了在产品和技术方面精心打磨,2020年葡萄城也在服务和社群方面做了大量建设。

面向开发者推出的葡萄城公开课,完全免费,课程内容涵盖实战开发经验、未来技术发展、软件项目落地等话题,讲师由葡萄城用户、研发团队和产品经理等担纲;葡萄城新手训练营,针对初次了解产品和技术的客户推出,通过三到五天的集中学习,采用直播授课、互动答疑、动手练习等多种方式,帮助用户快速体验产品,构建技术整体概念,为后续工作的开展打下坚实的基础。

而在技术社区方面,我们持续耕耘博客园等社区的技术博客,参加中国.NET开发者峰会等技术会议。2020年我们相继获得了“最佳技术团队”、“中国技术品牌影响力企业”、“中国低代码领军企业”等社区荣誉奖项,同时有超过200w的用户阅读过葡萄城的社区技术文章。

2020年,克难求进;2021年,未来可期。

这里也打个小广告吧,葡萄城正在招聘开发和技术人员:

了解职位信息请点击https://www.grapecity.com.cn/career/socialrecruitment,欢迎你加入我们,一起为开发者赋能,简历直送:career.xa@grapecity.com,会有HR小姐姐和您取得联系。

2020年度总结 | 葡萄城软件开发技术回顾相关推荐

  1. 2021年度总结 | 葡萄城软件开发技术回顾(下)

    2021年度总结 | 葡萄城软件开发技术回顾(下) 在上节中,我们介绍了在过去一年中葡萄城在控件领域中的一些新探索,新尝试. (详细内容:https://www.cnblogs.com/powerto ...

  2. 2021年度总结 | 葡萄城软件开发技术回顾(上)

    2021年度总结 | 葡萄城软件开发技术回顾(上) 随着冬奥会各项精彩比赛的进行,2022年的序幕逐渐被拉开. 这一年,云原生领域风起云涌,容器大规模应用,k8s可称为炙手可热的话题:这一年,大数据技 ...

  3. 2020中国 .NET开发者大会精彩回顾:葡萄城高性能表格技术解读

    12月19日,2020中国 .NET开发者大会在苏州召开.本次会议以"开源.共享.创新"为主题,结合线下.线上实时同步直播的方式,征集了来自微软.龙芯等知名企业的40余位技术大咖, ...

  4. 从今天开始,我就要潜心研究软件开发技术了,不在被名利所困

    参加工作六年来,我一直被虚名所困,想要通过努力得到单位的认可,但是由于我是小副科,学校领导根本不放在心上,我反而为此浪费了很多宝贵的时间. 从今天开始,我就要潜心研究软件开发技术,不再在单位争名夺利了 ...

  5. 点评主流软件开发技术

    为什么80%的码农都做不了架构师?>>>    点评主流软件开发技术 http://soft.chinabyte.com/297/8698297.shtml ■ 河北秦皇岛 谷俭政 ...

  6. java 新区 老区_优学院《土地资源学》答案在线查题2020高校邦《Java核心开发技术【实境编程】》章测试答案...

    优学院<土地资源学>答案在线查题2020高校邦<Java核心开发技术[实境编程]>章测试答案 更多相关问题 [问答题] 老区的汽油分馏塔(DA-101)原设计结构如何? [问答 ...

  7. 软件开发技术联盟 - 图书系列资源

    软件开发技术联盟编著,清华大学出版社出版. 资料来源官方授权许可,详情见链接 资源出处 另外推荐学习资源网站: 清华出版社图书资源 以下为软件开发技术联盟所提供的图书配套资源,多为图书所带光盘资料,为 ...

  8. html5脑图_基于HTML5的三维思维导图软件开发技术研究

    龙源期刊网 http://www.qikan.com.cn 基于 HTML5 的三维思维导图软件开发技术 研究 作者:汪升华 唐国纯 来源:<软件工程> 2017 年第 10 期 摘 要: ...

  9. 软件开发技术常用术语英中对照

    软件开发技术常用术语英中对照 A.I. 人工智能 A2A integration A2A整合 abstract 抽象的 abstract base class (ABC)抽象基类 abstract c ...

最新文章

  1. 物理学家发现粒子是如何自我组装的
  2. 学python需要记笔记吗_自学python需要做什么笔记
  3. python把列表样式的字符串重新转换为列表
  4. EOS 智能合约源代码解读 (4)symbol.hpp
  5. MySQL 8.0索引合并
  6. 2022的第一天,立个目标
  7. 使用Maven运行Solr
  8. python3-numpy np.nditer 迭代数组、np.nditer修改数组、np.nditer广播迭代
  9. 【spring】spring的事务传播性 hibernate/jpa等的事务隔离性
  10. Linux查看、处理文件方法
  11. ISO-国际标准化组织
  12. ANSYS ICEM CFD 网格划分步骤简要总结
  13. 最详细的vue安装教程
  14. Hessian Matrix(海森矩阵)
  15. android 源代码 毛笔,Android-毛笔的探索与开发
  16. pdf线条粗细设置_pdf线条很模糊怎么办 如何调整pdf线条粗细
  17. 请教税控开票数据aardio如何连接
  18. 智能感知与学习(六):识别系统
  19. 将 Cpar 文件导入 2019 版的 Carsim 后,无法打开 video+plot 是什么问题?
  20. 企业搭建APP怎么正确选择云服务器配置?

热门文章

  1. 02 stata入门【计量经济学及stata应用】
  2. 力扣(13.278)补8.23
  3. 给你一台服务器,你能把你写的代码部署到线上吗?
  4. 2.基于ITIL的IT服务管理基础篇 --- IT服务管理的背景
  5. html背景图片带边框,css 使用background背景实现border边框效果
  6. 颜色RGB对照表(颜色大全)
  7. 计算机科学与技术统考专业代码,考试类别和级别及专业及科目代码表.doc
  8. [精选]万能节日国庆头像小程序(可引流,开通流量主,带pc后台管理)
  9. 几道特别难搞的数据库面试题
  10. 【Chrome】解决浏览器萤幕画面模糊字体不清楚方法