关于葡萄城控件:专访低代码还是无代码葡萄城说的在理

近日,中国软件网对西安葡萄城软件有限公司总经理你爱军学生进行专访,深入探讨了葡萄城的企业级低代码策略与实际。在企业数智化畛域的年度业余盛会“洞见2021——中国企业服务年会”上,我国低代码畛域的先行者、刚在大会上取得“2020中国低代码领军企业奖”的西安葡萄城软件有限公司总经理倪爱军在其主题演讲的最初,向1000多名业界人士发表了本人的雄心壮志。 记者能感觉到,身为公司的负责人、北京大学计算机专业毕业的高材生,倪爱军这话不是轻易说的,他是有备而来的。 他在承受记者的独家专访时示意,葡萄城被称作“站在软件公司背地的软件公司”,成立于1980年,40年专一于软件开发工具和服务畛域,是寰球当先的开发技术提供商。葡萄城的软件开发技术广泛应用于SAP、百度、用友等软件公司,以及华为、中石油等企业的IT核心。2016年,葡萄城基于业余控件畛域的技术积攒,推出了活字格企业级低代码开发平台,深度服务于各行各业的数智化转型降级。 作为一个长期和开发者打交道的资深专家,他向记者论述了葡萄城对于低代码开发平台市场的独特认识,以及葡萄城活字格低代码开发平台的独特劣势。 不是表单驱动,是模型驱动倪爱军认为,以后的低代码/无代码开发平台,基本上能够分成两大类:一类是独立的低代码平台开发商,一类是综合性厂商。综合性厂商推出的低代码开发平台,次要定位于辅助厂商主营业务发展、比方大多用于自有产品的二次开发等辅助型场景。 以后市场上最沉闷的,产品最具备创新性的,是来自于独立厂商。倪爱军认为,独立的低代码开发平台在技术上,能够分为有两类,一类是表单驱动,一类是模型驱动。 “如果看国外市场依照维基百科的定义,齐全独立的低代码开发平台必须是模型驱动的。”倪爱军认为,表单驱动和模型驱动的最次要区别在于,表单驱动更多的强调从用户界面、从业务流程去构建应用程序。它的长处是比拟好了解,上手也比拟快,使用者第一次接触很快就能应用。 而模型驱动更业余一些,它有残缺的数据模型、软件架构模型。应用模型驱动开发进去的利用,是采纳业余软件架构的。它的开发模式、最终实现的零碎和支流的纯代码软件开发更靠近。 综合来看,表单驱动更适宜一些流程性、简略性的利用;模型驱动则能够适应范畴更广,还能适宜规模更大、性能更简单、扩展性要求更高、须要集成的软硬件更多的企业级利用。这是两者的次要区别。 倪爱军说,模型驱动是低代码开发的本质特征。它依附模型去解释世界,通过模型发明数字世界。目前,低代码开发平台还处于产业倒退初期,即使是在“模型驱动”的产品两头,也没有造成一个共识的模型规范。每家厂商都有本人的模型。因而,低代码平台厂商所提供产品的模型形象能力、模型架构能力十分重要,是其外围竞争力的起源。 不是无代码,是能够无代码有了模型驱动,除了简略、边缘性的利用,很多企业会将越来越多的简单与外围利用迁徙到这些模型驱动的低代码开发平台之上。因而,开发企业应用所需的编码量正在疾速缩小。甚至有人喊出了“无代码”的口号。 那么,低代码的“起点”是无代码吗? “解答这个问题之前,让咱们回归根源,回顾一下为什么会呈现低代码开发?”倪爱军通知记者,“低代码”是绝对于以前“多代码”开发的支流形式而言的。“从咱们在开发工具畛域几十年的技术积攒和教训积攒上看,低代码开发和之前支流的‘多代码开发’不是非黑即白的对抗关系。”它其实是渐进的过程,是代码开发过程的一直演变,从软件的可视化开发、组件化开发,以及开发框架的应用,都是在一直谋求代码开发量缩小的演进过程。明天,咱们将这些通过整合可视化、组件化、框架化等技术,在“多代码”的根底上,大幅升高代码开发量的软件开发工具统称为低代码。对于某些简略的场景来说,这些技术的确可能将代码开发量降到零,也就是所谓的“无代码”。 从这个意义上讲,低代码开发和无代码开发也不是齐全离开的,无代码开发更像是低代码平台的一种应用形式,或者说是低代码的一个子集,而不是另一类开发工具产品。 低代码的开发方式有着独特的劣势。比方,葡萄城有百余家合作伙伴,这些软件公司都在应用葡萄城活字格低代码开发平台为客户交付企业级我的项目。据理解,有的我的项目全程中齐全没有写任何代码。“葡萄城低代码平台的设计准则是通过提供更多、更业余的内置性能,尽可能让开发者不写代码。但为了不让开发工具限度开发者的想象力,咱们反对开发者在必要的时候植入代码。” 同时,倪爱军认为,在当初的各种各样的简单数字化利用中,不得不要写代码的场景是很多的,甚至从实践上就无奈彻底进行躲避。例如,葡萄城有很多客户须要将低代码平台开发的利用与SAP、用友、金蝶、泛微、管家婆等行业软件系统对接,思考到这些行业软件版本、模块、对接形式的多样性,任何一个开发平台都无奈通过内置性能满足全副需要,这时候就须要开发者有针对性的写一些代码量来实现无缝对接。又例如,当初有很多低代码平台开发的企业应用,都须要和各种物联网设施相连。“比方仓库中的智能托盘、自动化货架,生产车间里的智能加工核心、主动领料柜,汽车上的北斗定位、OBD数据采集等智能硬件,厂商泛滥,产品迭代迅速,开发工具如果没有编码扩大能力,那就很难满足开发者的需要了。” 低代码开发平台的确在一直升高编码量,但软件行业的诸多个性决定了,这并不意味着,所有的利用开发都不须要编码,开发平台依然须要保留通过编码方式进行扩大的能力,而且随着工业互联网、人工智能等技术的提高和遍及,开发者对这部分能力的要求反而会越来越强。如何帮忙更多开发者,尤其是来自软件公司的业余开发者用好这些编程接口?倪爱军示意,葡萄城提供了全面的赋能体系,以进阶技术培训、高级工程师认证等模式,充沛挖掘有技术能力和扩大开发需要的开发者的潜能。 所以,基于对软件开发行业的深刻理解,葡萄城在低代码开发平台畛域定位于不刻意追求无代码开发,而是采纳“能够无代码,也能够低代码”的策略。这样做能够为开发者带来更大的灵活性、开放性与适应性,让低代码技术在更多畛域大显神通。 不是简略API接口,是凋谢架构倪爱军向记者介绍说,开放性正成为代代码开发平台最重要的技术个性之一。 “以葡萄城为例,咱们简直每周都要接到三四个不同利用场景的对接。”有的是要和电子签章、电子合同对接,有的是要和车载定位传感器对接,有的是要和SAP、用友财务软件对接……客户和合作伙伴提出的各种对接需要,对于活字格低代码开发平台的连接性和开放性提出了越来越多、越来越高的要求。 低代码平台的连接性与开放性体现在两个方面。一方面是与不同的物联网、智能设施、现有利用零碎的连贯;一方面是它自身必须具备比拟灵便的扩大能力,可能适应将来我的项目的各种新需要。但归根结底,连接性和开放性还是要落实到零碎的编程扩大能力上。 在编程扩大方面,很多低代码开放平台仅提供了简略的前端API接口机制,没有放开服务端编程和数据库拜访性能。倪爱军认为,对于开发平台厂商而言,这种接口机制的实现比较简单,老本也比拟低。但它能应答的扩大场景十分无限,如果对外连贯的利用零碎或物联网设施有严格的认证要求、对性能要求比拟高,应用前端API进行对接则会十分麻烦,甚至难以实现,必须用到服务端编程甚至数据库直连拜访等性能。 充分考虑到企业级利用开发对开放性的要求,葡萄城活字格低代码开发平台的技术建设在凋谢架构的根底之上。这里的开放性体现在性能上,不单蕴含前端编程API,还有反对多源数据整合的外联数据库拜访能力和可能撑持简单业务的服务端编程接口。比方开发者能够在活字格中直连ERP零碎的数据库,就像操作活字格的数据一样基于ERP零碎的表实现建模和逻辑构建;再比方开发者能通过服务端编程接口,缓存第三方Web服务的拜访秘钥,满足对方的安全性要求等。凋谢的活字格可能帮忙开发者对接现有的软硬件,还能为开发者建立起应答各种未知扩展性的信念,与最终用户分享软硬件技术提高带来的新价值。 2013年之前,葡萄城凭借ActiveReports、Spread、ComponentOne等明星产品,在面向传统软件开发形式的业余控件畛域做到了寰球当先;而今,它又凭借活字格,在低代码开发平台的产品和市场中走在了同行的前列。倪爱军预判,2021年中国低代码/无代码开发平台市场将会吸引更多的资本追捧,也会有更多的新公司退出,尤其是互联网巨头、业内的大厂会对此更加器重。独立的低代码平台厂商必然会遇到更加强烈的竞争。但他置信,葡萄城专一于软件开发技术已有40年历史,在“多代码”时代,就曾经做到寰球当先的开发技术提供商;对于正在到来的低代码时代,葡萄城已先行一步,它也肯定能凭借本人的深厚积攒,以及产品的独特劣势,成为企业级低代码开发平台市场的第一品牌。 原文链接:http://www.soft6.com/news/202...

February 2, 2021 · 1 min · jiezi

关于葡萄城控件:纵观-ActiveX-平台的兴衰史看开发控件的技术演变

ActiveX的衰亡随着Internet/Intranet的遍及,人们对网络应用程序开发提出了更高的要求,如:Web页面须要更加丰盛活泼的多媒体内容;商业应用程序须要更牢靠、更加灵便的Web应用软件等。面对过后还不那么欠缺的HTML技术,开发者只能做些排版布局和简略的表格数据展现,即使刚刚呈现的JavaScript,也难以承当简单的网页动静出现。 为了解决上述问题,微软提出了ActiveX技术。而 ActiveX 的首次退场,便是在 IE3 中。相比于同期浏览器,IE3减少了不少亮点,包含CSS架构、ActiveX、Java小程序、微软NetMeeting和Internet Mail等。 正是凭借这一版本,微软开启了浏览器的称霸之路,并以此开展了与Netscape、Sun等软件厂商的强烈竞争: · 从Internet Explorer 3.0(1996)开始,微软反对了在HTML中托管ActiveX控件,尔后又通过 ActiveX Documents 容许在 IE 上间接加载office文件。 · 与此同时,Netscape在其导航者2.0版本中推出了NPAPI, 容许native代码运行,其余浏览器很快也跟进反对,促使NPAPI成为一个共通的插件规范,与微软的ActiveX造成竞争关系。 · Sun也推出了JavaApplet,这是一种用Java开发的浏览器嵌入式小利用平台,能够在 Java虚拟机里运行,解决了用户对平安的顾虑,然而性能个别。 在接下来的几年里,微软一直降级迭代 IE 浏览器,并通过打包散发、收费提供、商业条款、网页规范垄断等一系列商业伎俩,让 IE 的市场份额一直飙升,直到2002年,IE 浏览器的市场占有率一度达到了96%,而 ActiveX 这一微软推广的技术也随之倒退起来。 甚至在过后,国内各大银行的网上银行插件根本都是基于ActiveX开发,须要IE浏览器反对,以至于前面呈现的国产浏览器也都以双核心、反对网银作为产品卖点。 ActiveX的衰败Microsoft在Windows中内置了许多ActiveX,同时也为起初的安全性问题埋下伏笔,越来越多的恶意软件开始伪装成ActiveX,让 IE 浏览器成为了一个开在用户桌面上的后门,能够被任意利用。 即使微软陆续在IE上减少了屏蔽ActiveX运行的办法,如在2007年加上ActiveX兼容性旗标(Killbit)性能;在IE 9当前的版本加上ActiveX Filtering性能,让IE的浏览者可能自定义是否屏蔽特定的ActiveX组件,这些动作也无奈从根本上解决ActiveX的平安问题。 直到2008年,速度快、外观精简的 Google Chrome横空出世,突破并且减速了整个浏览器行业的倒退速度,IE的积弊使其在后退的步调上显得缓慢而有力,即使在随后的IE8~IE10有不少的改良,也未能挽回颓势。最终,微软打算不再更新IE,改而宠幸新一代的浏览器Edge。到了这里,浏览器对ActiveX的反对也曾经走向了终结。 葡萄城开发控件的技术演变从ActiveX平台诞生起,葡萄城控件产品就曾经对其提供了反对: Spread .NET ComComponentOne ActiveX上述两款产品满足了用户在ActiveX场景下对报表、电子表格、制图、数据处理、用户界面交互等性能的疾速开发需要,节约了开发成本。 随着ActiveX的闭幕以及 .NET的呈现,葡萄城也推出了更多基于 .NET框架的控件产品,包含 Spread .NET 和 ComponentOne Enterprise,这两款产品次要用于WinForm、ASP.NET、XAML 和 WinRT 等平台下表格数据处理和数据可视化开发需要。 着眼于将来智慧办公的倒退,以及前端 JS 框架的更新迭代,葡萄城基于ActiveX和 .NET 时代的教训积攒,推出了更实用于Web开发、跨平台利用和云端架构的纯前端控件 SpreadJS 和服务端组件 GrapeCity Documents for Excel。 ...

January 5, 2021 · 1 min · jiezi

关于葡萄城控件:2020中国-NET开发者大会精彩回顾葡萄城高性能表格技术解读

12月19日,2020中国 .NET开发者大会在苏州召开。本次会议以“开源、共享、翻新”为主题,联合线下、线上实时同步直播的形式,征集了来自微软、龙芯等知名企业的40余位技术大咖,为50 余万名开发者带来了近50场技术讲座和 .NET利用实际。 葡萄城的表格技术负责人王鸿学生,有幸作为本次大会的演讲嘉宾,向在场的 .NET 开发者分享了葡萄城高性能表格技术调优方面的教训积攒。 王鸿,作为葡萄城表格技术的负责人,自 2014年起,便始终聚焦于企业高性能表格技术畛域的钻研,为葡萄城设计了全新的表格组件架构,并率领研发团队推出了一款性能在业界当先的电子表格组件GcExcel, 积攒了大量高并发、高可用性表格组件的架构设计教训。 在本次分享中,王鸿从葡萄城研发电子表格组件的背景与初衷登程,具体比照了 Excel 与原生 C# 代码的读取性能差别,并总结了若干针对prototype 原型进行性能调优的伎俩,如缩小垃圾回收的影响、共享对象晋升性能、压缩数据升高内存、充分利用高速缓存等形式。 以下是王鸿老师的次要分享内容: 1\. 葡萄城研发电子表格组件的背景与初衷早在30 多年前,电子表格就曾经作为办公软件中的一个根底性能套件,首次呈现在个人电脑中。近些年,随着网络信息化的进一步增强,电子表格的利用越来越宽泛和深刻。 现在“表格”也曾经成为数据的一种重要表现形式,广泛应用于各类桌面软件、利用零碎和 SaaS 平台的存储构造、零碎形成中。人们曾经习惯应用表格工具来解决财税、金融、证券、保险、工业制作、物流仓储等行业的大规模数据,其中典型代表包含微软的 Excel、谷歌的 Spreadsheet,以及 WPS 等。 葡萄城,作为寰球当先的开发技术提供商,很早便投入了研发精力,开辟并摸索如何将电子表格以组件的形式嵌入到各类零碎中。通过近 30 年的钻研,葡萄城的表格技术曾经实现了在保留用户 Excel 应用习惯的同时,也能基于用户的教训和积攒在业务零碎中提供高效的数据处理和可视化能力。 2\. 通过 C# 代码,测试 Excel 文件读取的极限性能电子表格的利用场景个别都较为简单,开发实现它们会碰到很多技术难点,其中最为典型的便是性能问题。 葡萄城为实现高性能的表格组件,克服了很多性能挑战:如怎么疾速关上和保留一个电子表格文件、如何计算海量的公式函数、如何让用户疾速实现大量单元格的值和款式设置等。 为了测试 C# 代码对 Excel 文件的读取性能,王鸿老师选取了一个日常生活中很容易碰到的场景:当一个电子表格文件很大的时候(蕴含30列、1,000,000行、30,000,000 个单元格数据),用Excel关上它须要期待 34 秒。 如果用户想要用更短的工夫关上这样的大文件时,有没有方法实现呢?答案是有,通过测试,用葡萄城的表格组件 GcExcel 关上这样一份文件,仅需 12 秒。 3\. 葡萄城表格技术优化:缩小垃圾回收的影响从Office 2007 开始,Excel 文件就是一个规范的 Zip 文件,对其解压后,找到一个名为“Worksheets”的文件夹,在其中的“sheet1.xml”文件中,寄存了每个 Excel 文件单元格对应的地位和值。 ...

December 23, 2020 · 1 min · jiezi

关于葡萄城控件:葡萄城入选中国技术品牌影响力企业30强

12 月 22 日,SegmentFault 思否 中国技术先锋年度评比 | 2020 中国技术品牌影响力企业榜单公布,该榜单依靠数百万开发者用户的数据分析,通过科技企业和集体在国内技术畛域的行为、影响力指标等综合因素进行深度考查。 葡萄城,作为中国技术品牌影响力企业 30强入选。 葡萄城,是寰球当先的软件开发技术提供商,以“ 赋能开发者”为使命,致力于通过各类软件开发工具和服务,翻新开发模式,晋升开发效率,服务企业数智化转型。 在专一软件开发技术的四十年中,葡萄城造成了吸纳寰球顶尖技术人才的分布式研发架构,并依据技术环境和用户需要的变动,先后研发出各类开发控件和商业智能报表工具,引领控件技术和数据分析工具的倒退。2015 年以来,葡萄城基于业余控件的技术积攒公布低代码开发平台,进一步推动软件开发形式的革命性变动,驱动新一轮数字经济倒退。 葡萄城入选中国技术品牌影响力企业30强,是业界对公司技术品牌影响力的又一次认可。将来,葡萄城将通过更优质的技术、产品和服务,与开发者一起,独特推动产业改革和社会提高。 附:《2020 中国技术品牌影响力企业总榜》 葡萄城开发控件SpreadJS 纯前端表格控件,性能布局与 Excel 高度相似GcExcel 服务端表格组件,无需 Office 软件,高效实现类 Excel 的性能WijmoJS 前端开发工具包ComponentOne.NET 控件集

December 22, 2020 · 1 min · jiezi

关于葡萄城控件:NET-控件集-ComponentOne-V20200-Update3-发布正式支持-NET-5

ComponentOne 是一套专一于企业 .NET开发、反对 .NET Core 平台,并完满集成于 Visual Studio 的第三方控件集,蕴含 300 多种 .NET开发控件,可满足 WinForm、WPF、 UWP、ASP.NET MVC等七个 .NET平台的零碎开发需要,并提供表格数据管理、数据可视化、报表、输出和编辑等七大性能,被誉为“.NET开发的‘瑞士军刀’”。 与其余控件集相比,ComponentOne 更加轻捷、稳固,性能更加全面,产品也更加平安。 通过 20 多年的倒退,ComponentOne 已胜利利用于清华大学、中国黄金、中谷物流、用友、华为、金蝶、丰田、建软、中国农行、台达团体等国内外多家企业/机构的我的项目开发中。 日前,ComponentOne V2020.0 Update3版本正式公布。从该版本开始,ComponentOne正式反对 .NET5,开发人员能够借此取得更强的数据处理性能,优化单页面利用、Web和基于云的我的项目架构。 欢送点此下载 ComponentOne V2020.0 Update3,试用体验。ComponentOne V2020.0 Update3 的次要新个性包含: 1. ComponentOne 正式反对 .NET 5 .NET 5对立了所有开发平台的API和Runtime,开发者能够将其利用于Windows、Linux、Macos、iOS、Android、tvos、watchos以及web asm中,而不必再思考兼容性问题。 从该版本开始,ComponentOne的WinForms和WPF平台也将提供齐全基于 .NET 5的开发控件。借助这些控件,开发人员能够取得更强的数据处理性能,优化单页面利用、Web和基于云的我的项目架构。 特地阐明:对于ComponentOne中WinForms和WPF平台,葡萄城仍将持续提供对原 .NET Framework 4.5.2的产品和技术支持。 2. 全新!DataConnectors 控件 应用 DataConnectors,能够轻松的将在线CRM(如Salesforce和Microsoft Dynamics)中的业务数据集成到 .NET 应用程序中,应用 QuickBooks Online和Google Analytics(剖析)能够持续扩大其性能。 DataConnector 基于 .NET Standard 2.1,因而它们能够在任何平台上应用,如WinForms、WPF、.NET 5、Blazor 和 ASP.NET Core。 ...

December 16, 2020 · 1 min · jiezi

关于葡萄城控件:在-2020-年更受关注和追捧的-JS-框架

转载请注明出处:葡萄城官网,葡萄城为开发者提供业余的开发工具、解决方案和服务,赋能开发者。 原文出处:https://blog.bitsrc.io/top-5-...随着信息技术畛域的倒退,企业对于JavaScript的需要变得非常宽泛,为了让前端编码更快更高效,一系列前端JavaScript框架就此诞生。 前端框架的设计初衷是为脚本编程语言提供杰出的反对,让代码反复可用。简而言之,框架是由一组开发人员编写的代码块,可使整个开发过程变得简略且易于实现。从业务角度看,框架能使开发人员更容易满足客户的需要,解决客户我的项目开发阶段所面临的各种挑战。 那么,在泛滥前端框架中,哪些在2020年更受关注和追捧呢? 本文列举了几个当下最受欢迎的前端框架,排名只是依据作者本身的应用教训、日常钻研、框架的语法结构和易用性等个性进行排名。 以下是框架的排名根据参考: 是否放弃增长和更新。是否在大厂和开发者社群中受到举荐,如GitHub、NPM趋势、Google趋势等。是否具备一个规模宏大且沉闷的技术社区。5\. Svelte.js —— 麻雀虽小,五脏俱全 在React、Vue和Angular差不多占据了Web开发的大部分江山时,Svelte横空出世,并逐步开始吸引越来越多人的眼球。这是一个用TypeScript编写的基于组件的开源JavaScript框架,于2016年公布。 2020年以来,Svelte的使用量急剧减少。 尤雨溪曾评估道:Svelte 的核心思想在于“通过动态编译缩小框架运行时的代码量”,因而其非常适合开发小而疾速迭代的我的项目,而且能做到极致精简。 Svelte的劣势:与React不同,Svelte没有虚构DOM。其组件齐全用HTML、CSS和JavaScript编写。Svelte编译器可编译原始JavaScript模块,该模块不依赖于框架。因而,与React、Angular和Vue相比,Svelte应用程序的捆绑包尺寸十分小。Svelte不须要较高的浏览器解决能力,即可实现相似外科手术般的形式更新DOM。 4.Ember.js —— 明显提高开发人员工作效率的生产工具 Ember.js是一款用于构建古代Web应用程序且性能全面的JavaScript框架,基于双向数据绑定概念(如AngularJS和React等SSR)运行,容许开发人员将更多精力放在创立独特的业务性能上。 因为Ember不再须要编写繁琐的代码,因而,开发人员的开发效率可能显著失去晋升。目前,越来越多的一流公司开始在其产品中应用Ember,如Netflix、Microsoft和LinkedIn。 Ember自公布以来,在开发人员社区中的使用率逐步减少。 只管Ember次要用于Web开发,但应用Ember.js搭建的桌面和挪动应用程序也同样引人瞩目,而其中的代表作品就是Apple Music桌面应用程序。 3\. Angular —— 一个牢靠的框架 Google在2016年推出了Angular。然而,它的前身AngularJS能够追溯到2010年。在晚期,React的风行将Angular甩在前面。然而,事实证明Angular仍是开发一款牢靠的企业级利用的首选。 Angular受欢迎的起因:领有一个维持了十多年的大型生态系统。具备全套开发工具。容许高质量的代码生成,具备清晰的编码构造和代码一致性。领有杰出的文档,其库为开发人员提供了大量反对。日益减少的社区反对。如果将Angular与React进行比拟,咱们能够察看到Angular的下载量并没有减少太多,并在过来两年中简直达到饱和程度。 2 React —— 最受欢迎的框架 React是一个开源前端库,由Facebook开发团队的软件工程师于2011年创立,随后于2013年正式开源。通过9年的倒退,目前它被认为是最受欢迎的前端库之一。 React为前端开发引入了一种基于组件的、响应式的、函数式的编程格调,一举扭转了单页应用程序(SPA)的倒退方向。 为什么 React 如此受欢迎?React 引入了基于组件级的渲染机制。提供了弱小的服务端渲染(SSR),对SEO有良好的反对。提供了更好并发性的React Fiber,应用了更少模板代码来治理性能组件的React Hooks,以及用于取得更好渲染成果的React suspense等性能。一旦学会了React,能够在任何中央应用它,不仅能够用于Web应用程序,同时也能够在挪动应用程序中应用(React Native)。泛滥优良的性能使React成为当今最受欢迎的框架之一,而NPM的下载量也证实了这一点。 如图所示,在过来的5年里,React在下载量方面始终在前端框架中占据着主导地位。 就Stack Overflow技术问题总量趋势看,React也同样如此。 1 Vue.js —— 其受欢迎水平曾经不须要多说了 其余框架Meteor: 一度被认为是用于开发和部署Web应用程序的全栈解决方案。Mithril:用于开发SPA的UI JavaScript框架,提供了开箱即用的路由和XHR实用程序,并且疾速,易于实现。Aurelia: 被认为是JavaScript的最新版本,能够扩大HTML的多种用处,包含数据绑定。Polymer:一个由Google推出的开源代码库,能够为网站创立元素而无需进入简单的档次。反对单向和双向数据绑定。论断本文提及的所有JavaScript库和框架都具备微小的后劲,纯熟的把握它们,将为您的JavaScript开发带来更多益处。 如果您有趣味理解更多的JavaScript框架和库,能够浏览以下文章链接。 为什么 Vue 更合乎这个时代的大势所趋都 9102了,该抉择 Angular、React,还是Vue?Angular vs React 最全面深刻比照

November 2, 2020 · 1 min · jiezi

关于葡萄城控件:践行赋能开发者使命发掘表格技术最佳实践-葡萄城表格技术应用开发案例大赛正式开启

2020年7月15日,由葡萄城携手行业用户独特发动的“表格技术利用开发案例大赛”正式开启。 秉承“赋能开发者”使命,大赛面向开发者宽泛征集表格技术的典型利用案例,深刻展示表格技术在各畛域信息化零碎搭建中的突出劣势,以期挖掘表格技术在零碎开发时的最佳实际,为企业信息化倒退带来启迪。 表格技术利用开发案例大赛 表格,作为数据出现的一种根本形式,在各类软件系统都施展着重要的作用。在挪动互联时代,即使再简单的数据,通过“表格”的整顿,都能够清晰的出现给用户。且不论是应答文档、报告、凭证,还是票据,表格都可能附加存储更多的款式信息,尤其对离散式数据存储更加高效。 而基于“表格技术”研发的信息化零碎,能够帮忙企业更快更精确地解决数据,大幅提高经营管理效率,如: · 在线文档零碎:基于表格实现多人协同编辑,在线实时实现各部门对同一张数据表的录入 · 数据填报零碎:简化数据绑定和校验过程,疾速精确的解决打印报送、实时预览、多级上报等工作 · 表单和报表类零碎:帮忙企业以低成本的形式重用业务零碎原始 Excel 文件,利用已有资源搭建企业类 Excel 报表平台 为减速这类信息化零碎的开发, SpreadJS 等表格类开发工具应运而生,作为一款基于 HTML5 的纯前端表格控件,SpreadJS兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品个性,备受华为、苏宁易购、天弘基金、远光软件等各畛域龙头企业的青眼,并被中国软件行业协会认定为“中国优良软件产品”。 SpreadJS 纯前端表格控件 SpreadJS 一经推出,便广泛应用于工业制作、金融财税、能源电力等各畛域信息化零碎搭建中,为用户带来亲切、易用且高度相似Excel的应用体验,满足 Web Excel 组件开发、 表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景,极大升高企业研发老本和我的项目交付危险,无效帮忙企业进步开发效率,疾速上线和利用信息系统。 葡萄城局部行业用户 为了让更多开发者从表格技术中获益,克服Web我的项目中前端性能、内存耗费和系统可靠性的技术难点,葡萄城举办了本次“表格技术利用开发案例大赛”。所有从事表格类零碎开发的企业或集体,均可参赛。 大赛针对“表格文档协同编辑、 数据填报、 类 Excel 报表设计”三类利用场景,设置了最佳实际奖 3名,各处分价值 3000 元的华为 MatePad Pro 平板电脑一台。 “表格技术利用开发案例大赛”奖品 除了实物奖品,所有获奖者还可享受如下权利: 所有入围案例,将通过葡萄城官网、官微、20+家单干媒体、技术社群等渠道,向全网用户推送,作为标杆赋能更多开发者优良案例作者,将在葡萄城公开课上,面向更多开发者分享您的成功经验和利用案例所有优良案例将汇编成册,成为《企业“表格技术”利用典型案例集》(PDF版)推介给更多企业用户本次较量,来自北京长亮合度、用友政务、航天信息股份、苏宁易购团体等8位专家评委,将从参赛案例的技术先进性、行业拓展性和市场参考价值三方面综合考量,最终评比出三位荣获“最佳实际奖”。葡萄城心愿通过这种模式,向全行业展现表格技术的利用场景、技术劣势和企业信息化转型中的最佳实际,并将优良案例作为标杆赋能更多开发者。 如果您正从事企业表格零碎开发的相干工作,对前端开发和表格技术感兴趣,欢送锁定大赛官网( https://www.grapecity.com.cn/events/spjs-cases-competition/),提交参赛案例。如果您须要进一步理解纯前端表格控件SpreadJS的产品介绍和典型利用案例,欢送拜访 SpreadJS 产品官网。 本次大赛的后续停顿将通过微信公众号“葡萄城社区”推送,蕴含流动停顿、产品资讯和典型案例等重要信息,敬请关注。

July 22, 2020 · 1 min · jiezi

赋能-▪-智变葡萄城品牌战略发布会诚邀您参加

软件产业是支撑经济和社会发展的战略性、基础性和先导性的新兴产业。软件催生了云计算、大数据、人工智能等新技术、新业态、新模式,而开发者则是软件产业发展的核心要素。 随着技术环境的快速变化与发展,开发者如何以更快的速度和更高的敏捷性来响应需求?软件行业如何激发开发人员的创造性?这些都是当前急需探讨的热点问题。 作为全球领先的软件开发技术提供商,葡萄城已深耕软件行业40年,致力于通过各类软件开发工具和服务, 创新开发模式,提升开发效率,服务企业数智化转型。 面对新技术新形势,如何驱动企业数智化转型升级?如何带来新动能,赋能行业新发展? 诚邀您参加6月30日举办的“赋能▪智变,葡萄城品牌战略发布会”,了解葡萄城最新的品牌战略和技术应用,共同把握软件行业的发展机遇,推动新一轮数字经济发展。 立即报名,请扫描下方海报中二维码。

June 22, 2020 · 1 min · jiezi

厦门科云构建基于-SpreadJS-的管理会计综合实训平台

一、客户简介厦门科云信息科技有限公司(简称:厦门科云)位于鹭岛厦门软件园,是一家汇集注册会计师、高级工程师的实力研发团队和全国财会教育领域专家顾问团队的高新技术企业。 公司自成立起,始终聚焦院校服务(智慧财务教育)、科云学堂(在线教育培训网校)、牛会计(财务代理有限公司)三大领域,为全国大中专院校、在职会计人员、小微企业提供口碑服务。 二、项目背景21世纪以来,伴随着移动互联网的高速发展,企业经营逐渐呈现出集团化、信息化的发展趋势,这也意味着未来会计人才将会面临更高、更全面的专业要求。 如今,会计职业领域已从传统的记账、算账、报账为主,拓展到内部控制、投融资决策、企业并购、价值管理、战略规划、公司治理、会计信息化等高端领域。会计职业领域的拓展与会计人才需求市场的发展导致管理型会计人才结构性短缺,该问题的产生要求院校应加紧培养以核算型会计人才为基础,逐步转型成管理型会计人才。 为及时响应上述需求,厦门科云推出了一套完全自主研发的管理会计综合实训平台,该平台基于 SpreadJS 纯前端表格控件搭建,内嵌高度类似 Excel 的布局和操作模式,使用者无需学习,即可立即使用。 三、实际使用情况为落实“1+2+2”的培养方向,即1个培养目标(向管理会计人才转型的目标)、2个培养点(管理视角+核算技能)、2个培养模块(基础教学资源培养、企业案例应用培养),坚持以“向管理会计人才转型”为导向,以管理会计实务工作的范畴、基本方式和实务内容为开发依据,平台包含的系统设计模块与管理会计课程完全匹配,可以帮助学生快速成长为具有“管理视角+核算技能”的复合型人才。 如下是平台部分界面截图,其中所有“类 Excel”的表单布局均通过 SpreadJS 实现: 1.草稿纸页面 2.现金预算页面 3.成本预算页面 4.直接材料预算页面 5.直接材料耗用量预算页面 如下是平台演示视频: http://video1.grapecity.com.cn/SpreadJS/pulicclass/operate-video.mp4 四、选择表格控件 SpreadJS 的主要原因我司选择基于SpreadJS来搭建管理会计综合实训平台,主要考虑以下三方面原因: 1.完全兼容Excel文档格式,功能、UI 与 Excel 高度类似 SpreadJS无需后台代码和第三方组件,即可实现在线导入、导出 Excel 报表模板、导出 PDF 的功能,其高度类似 Excel 的布局和操作,让使用者无需投入精力学习,即可立即使用。 2.兼容 450 种以上的 Excel 公式函数 SpreadJS 内置了高效、可扩展的计算引擎,满足用户自定义公式、跨表格引用等多场景下的计算需求,轻松实现数据聚合,让有效数据不断完善。 3.可快速响应需求变化 通过 SpreadJS 提供的类似 Excel 的模板设计器,无需研发部门介入,系统管理员可自行设计表单模板并发布,满足业务系统的“短平快”交付需求。

June 22, 2020 · 1 min · jiezi

使用SpreadJS-开发在线问卷系统构筑CCP云数据采集平台

什么是CCP(云数据采集)平台? 图片来自于网络 CCP(云数据采集)平台诞生于大数据时代的背景下,通过实时数据挖掘,在海量的云端数据中发现隐藏其中的价值。 在线问卷系统,作为CCP(云数据采集)平台的信息采集接口,通过网络信息收集,帮助问卷设计者和数据分析师分析消费者在线上的行为特征和态度,批量而精确地抽取目标网页中的任何数据及任何信息,快速实现实时的信息获取。 CCP(云数据采集)平台的数据采集工作能否更简洁、更方便、更精准的执行,取决于在线问卷系统的基本功能和架构。 因此,在线问卷系统一般需包含以下四个功能模块:在线设计问卷、数据收集、数据分析和导出。 在线问卷系统的基本功能模块在线设计问卷需具备: 问卷设计方式简单、易操作可自由地修改问卷外观、可制作带有公司Logo的问卷模板项目类型丰富, 内置选择题、填空题、打分、排序、个人信息收集等应用场景广泛,可设计问卷调查、投票、满意度、表单、测评等模板数据收集需具备: 独有的自定义数据收集渠道支持手机端填写支持无缝嵌入网站、APP和小程序可通过第三方社交平台完成填写数据分析需具备: 调查数据可实时查看支持表格、图表等多样化的数据展示提供数据筛选、交叉分析和原始数据下载提高数据来源追溯,趋势一目了然导出需具备: 支持导出为xlsx、CSV等格式提供更安全的数据存储不限发布数量,支持多并发在线问卷系统的实现思路因为需要对收集到的问卷数据进行数据分析,并导出分析结果,所以系统需要支持图表、计算公式和在线导入导出功能。 在充分评估后,发现使用 SpreadJS控件,可以满足上述需求,原因如下: 可生成交叉图表:SpreadJS 提供了双向数据绑定的功能,可以将收集的数据绑定至表格中,可以方便的实现数据分析及展示。 图1 生成交叉图表分析页面 在线导入导出 Excel 文件:SpreadJS无需借助任何后台代码和第三方组件,可直接在浏览器中完成 Excel文件的导入导出、PDF 导出、打印及预览操作,解决了前端导出Excel、CSV文件的需求,方便用户将问卷统计分析结果导出至本地,导出的文件对比效果如下图所示: 图2  导出Excel文件对比 数据可视化:SpreadJS 支持 Excel 的 450 种公式和 32 种图表,可以帮助用户更全面的分析采集到的数据。 图3  SpreadJS内置多种图表 数据筛选:从后台返回的数据,通过SpreadJS 在前端进行展示,并提供数据筛选、排序、分组、批注、切片器等操作,方便用户对统计结果进一步分析。 图4  数据筛选 将 SpreadJS 的组件功能嵌入在线问卷系统,我们可以专注于业务逻辑,而不用分散关注点于基本的功能模块如何实现。借助 SpreadJS 将问卷系统以组件化的方式重构,既降低了后期测试成本,明显缩短了项目交付周期,也为项目二期奠定了良好的基础。 如果您也有此类系统开发的需求,请访问SpreadJS产品官网,查看应用场景和各类技术资源,可以为您的系统搭建提供帮助。

May 28, 2020 · 1 min · jiezi

葡萄城首席架构师前端开发与Web表格控件技术解读

讲师:__Issam Elbaytam,葡萄城集团全球首席架构师(Chief Software Architect of GrapeCity Global)。曾任 Data Dynamics.Inc 创始人兼资深产品经理,个人研究方向主要为 MS.NET语言及平台、动态化系统构建,以及高性能大型分布式Web系统架构,主导了葡萄城多款畅销控件产品的系统架构与性能优化。 “25年来每天只休息4小时,除了日常作息时间,Issam不是在研究技术和产品,就是在去研究技术发展趋势的路上”这就是葡萄城同事对他的一致评价。 为何他如此痴迷于前端开发技术?在他的眼中,前端开发未来将走向何方?面对当今大热的HTML5、JavaScript,以及区块链等新兴技术,他又有哪些不同的看法和观点?他倡导的用前端开发技术,实现“在线Excel”系统的捷径又是什么?本期葡萄城公开课,我们就来一探究竟。 观看地址:https://live.vhall.com/347833693直播时间:2019-11-20(星期三) 下午14:00直播大纲: Web表格控件的处理性能,与哪些因素相关?SpreadJS 的技术架构和设计理念如何?兼容450余种Excel公式,SpreadJS是如何做到的?前端开发技术日新月异,未来将走向何方?课程摘要本期公开课,Issam将就企业信息化系统如何通过先进的前端开发技术和开发工具,在浏览器或Web应用中嵌入类Excel 模块,快速实现数据填报、在线文档、类 Excel UI 设计等业务场景,并详细介绍SpreadJS 的HTML5 Canvas界面绘制方式和稀疏数组(Sparse Array)模型。 与此同时,还会为大家深入解读“面对不断变化的业务需求,开发者如何保持并不断提升Web应用的开发迭代速度”。 最后,作为一名技术狂热爱好者, Issam还会就当今最热的前端技术发展趋势发表看法。 下面,是本期公开课的核心内容,更多精彩分享,请点击此处观看。 企业Web应用中“Excel”的重要性Excel 作为一款深受用户喜爱的电子表格工具,借助其直观的界面、出色的计算性能、数据分析和图表,已经成为数据统计领域不可或缺的软件之一。Excel对于企业来说: “用Excel的数据说话”是企业走向自动化、信息化的第一步Excel 操作简单,但却隐藏巨大的力量和灵活性许多Web应用程序都是从一张“电子表格”开始的也许难以置信,Excel脚本的确是最流行的功能(性)语言之一 Excel函数和公式无处不在完整的图灵机系统Excel甚至可以来画画和制作游戏(摸鱼必备)不过,企业真正看重的是Excel软件本身吗? Excel对于企业应用的短板: Excel的管理模式混乱且低效依赖Excel完成数据交互,将会大幅降低应用系统的运行效率Excel文件和企业已有应用接驳困难用Excel保存文件简单、通用性强 但数据易遭篡改Excel非常适合基于文件的分析 但难以同时整合、分析和汇总多个文件在企业应用项目中,高度类似Excel,但不依赖于Excel实现的数据排序、筛选、分类汇总等各项功能,才是企业真正所需,亦是信息化系统必不可少的功能模块。比如: LoB 应用降低安全风险并防止敏感数据的临时拷贝权限管控下的应用集中的数据库存储,以及可用于更深入的分析和报告因此,对于企业应用系统来说,如果有一款开发工具能够克服Excel的短板,将Excel的功能,嵌入到Web系统中,实现Web Excel 组件开发、数据填报、在线文档、图表公式联动、类 Excel UI 设计等业务场景,并完全兼容Excel 公式和文档类型,无疑会为企业带来巨大的价值。 而这些,不过是纯前端表格控件SpreadJS的基本功能之一。 Web表格控件 —— SpreadJS诞生记SpreadJS 的诞生即在意料之外,又在情理之中。 自1996年中国全功能接入互联网起, 人们对Web产品的期望愈发殷切。如今,Web开发者不仅需要面对来自PC端单方面的压力,接到更多移动端、PWA(小程序)、app hybird等平台的需求也成了家常便饭。 迫于业务不断变化的压力,导致了开发者需要不断提升Web应用开发迭代的速度,在最大程度缩短项目交付周期的同时,也需时刻保持产品的易用性和稳定性。 有挑战,便存在机遇。 美国一位名叫Issam Elbaytam的工程师在开发过程中发现:大部分用户在处理数据、统计数据时,更习惯使用Excel来做。然而,对于企业Web项目来说, Excel的短板也非常明显,例如:和企业已有应用接驳困难、无法完全脱离Office套件、高昂的授权价格、无法分布式修改数据等。 在了解到这些短板后,一个绝佳的想法就此诞生:如果用纯JavaScript开发一套功能和UI 都与Excel高度类似的电子表格控件供开发者使用,这样既可以满足应用系统当下流行的B/S架构需求,让用户进一步把应用迁移B/S端,也可以完全脱离Office套件使用。 然而,实现这样一个纯前端类Excel的开发工具到底有多难?除了要投入大量的研发成本和时间外,即便如葡萄城一般积累了多年 .NET控件开发经验的集团公司,在没有深入研究过前端数据渲染、框架集成、前后端Excel数据交互逻辑的情况下,空有人力物力也无法成功。别的不说,光是用JavaScript 实现Excel数量庞大的公式和函数,就足够耗费数倍的精力。。。 葡萄城的Spread.NET表格控件 换做其他人也许已经放弃,但Issam没有。连续20年,在每天只休息4小时的情况下,Issam基于葡萄城Spread.NET表格控件的基础,终于在2015年,研发出了一款真正的纯前端电子表格控件——SpreadJS。 ...

November 5, 2019 · 1 min · jiezi

计量检测行业业务系统如何实现信息化

计量检测行业业务系统如何实现信息化?SpreadJS在模板管理、证书管理模块的实践与应用 聂荣臻元帅曾指出:科技要发展,计量须先行。计量检测行业始终是具有生命力和发展前景的高科技行业。 计量检测行业看似陌生,其实它与我们的生活息息相关。小到出租车计价器、水表、燃气表,大到医院血压计、透析机、温度计,以及工厂所用的压力表等设备,都必须通过计量检测行业严格的检测标准并开具检测证书,才可投产上市。 计量检测行业历史悠久,作为一个传统行业,如何保持其旺盛的生命力和发展前景呢?除了灵活运用信息化管理手段外,更离不开现代化计量检测系统的支持。而一套先进计量检测系统的开发,需要借助开发工具的辅助,这样的开发工具有很多,纯前端表格控件SpreadJS不外乎是最适合的一个。 那么,企业如何使用SpreadJS开发一套完善、先进的计量检测系统,进而实现其信息化发展呢?本期葡萄城公开课《计量检测行业业务系统如何实现信息化》,将由吉林科图软件实施部经理——付志国先生,就此问题,与您深入交流,为您提供答案。 计量检测的历史计量在历史上称之为“度量衡”,但随着生产和科学技术的发展,现代计量已远远超出“度量衡”的范围。它涉及到工农业生产、国防建设、科学试验、国内外贸易、生活等各方面。简单地说,统一准确的测量就是计量。 我国计量检测行业现状我国目前计量检测行业处于快速发展阶段,国家对计量检测市场的整顿标准逐步规范化、流程化,其主要体现在:机构认证认可更加严格,门槛明显提高不断加大对机构的监督检查,对违规机构施以停业整顿的严厉处罚各地陆续出台规范计量检测市场的行政法规我国计量检测行业机构众多,但管理体制仍相对落后,信息化水平、技术水平参差不齐,重复建设严重。目前计量检测行业正处在由原计划体制向国际接轨的变革阶段,国有、外资、民营等不同体制和机制的机构共存,市场处于多元混战的无序竞争状态,同时具备很大的市场机遇与风险。基于此,计量检测行业亟需一款同时具备多个智能检测模块和数据分析处理能力的现代化计量检测系统。 计量检测系统的项目背景及迭代本系统的主要应用场景是:解决检测证书的智能生成及模板自动化管理需求。 传统的模板管理方式无法自定义函数,以及灵活调用表格数据,而使用本系统可以调用自己编写的函数、修改现有函数规则,并灵活运用图表表现数据。 本系统的【模板管理】模块一共历经三次升级迭代,V1.0主要通过嵌入HTML管理模板,但无法满足复杂表格的设计需求和自适应列宽行高的业务场景。基于此,我们升级为V2.0版本,通过直接嵌入Excel管理数据模板,但嵌入系统的Excel无法满足自定义宏、自定义公式的需求,因此,我们又对系统进行了全面升级:使用SpreadJS开发一套功能与Excel完全一致,但具备更高扩展性、灵活性和高度自定义能力的Web Excel系统——模板管理V3.0。 计量检测系统的功能架构PC端主要功能: 主要功能: 计量检测系统 - 模板管理模块模板管理模块主要用于:出具通过国家检测依据的客户证书以及绘制表格。 模板管理模块工作流程:绘制模板——>在模板制作完毕后,根据文件要求,完成三级审核——>获取批准——>投入使用。 下方的表格就是在 SpreadJS 中进行绘制的,除了可无损导入导出Excel外,还可直接编写函数公式及调用自定义函数。 本系统严格按照模板管理模块的工作流程设计菜单: 【模板管理】工作流截图: 1 绘制模板:科员根据文件内容、算法,编制模板,并提交审核。 2 核验阶段:核验与批准模板功能一致,选择所要核验、批准的数据,查看科员编制格式是否与文件中的格式符合。如符合选择通过,则该模板正常使用;如不符合驳回模板,科员继续修改,修改完毕重新提交审核。 计量检测系统 – 证书管理模块模板制作完成后,可以在证书管理模块中调用所做的模板: 编制证书时,科室人员输入检测数据,并生成证书,根据文件要求,编制的证书需要三级审核。 系统菜单和证书管理页面如下: 核验与批准人员检查数据是否正确,核验、批准通过即可开始打印证书。 【证书管理】工作流截图: 1 检定科室接到任务,开始检测设备。 2 选择数据,编制实际检测设备的数据添加到已经做好的模板当中,模板自动通过函数计算结果,用户不需要重复计算,可大大减少客户录入数据所耗时间。科员编制完成提交核验。 3 核验人员接到任务,对记录与证书进行核对,查看数据、计算是否填写正确,如填写正确核验人员提交到批准人员账号下,如填写有误,则返回检定人员账号下重新编制并保留修改痕迹。 注:批准同上,批准通过流程结束。 为什么使用SpreadJS?本系统使用SpreadJS开发【模板管理】和【证书管理】两大模块。在使用SpreadJS之前,主要通过HTML和Excel管理数据模板,面临以下难点: HTML:在页面上修改值需要有一定的编码基础,表格来回推拽会导致变形,无法编制图表。Excel:适用于大部分群体,但无法自定义函数及修改现有函数的规则。使用SpreadJS后,与此前使用HTML、Excel相比,优势如下: 实现了Excel 90%以上的功能用户可自定义函数调用编制表格、图表更加方便编制的文件在走流程时不会出现数据、表格改变无损导入导出至Excel中重复使用SpreadJS对最终用户和系统开发者的意义: 用户可自行编制函数、绘制表格,与Excel的使用方式几乎一致代码简洁,调用方法方便、高效售后及时,有问必答SpreadJS对本系统的价值使用 SpreadJS 设计的Excel模版,即可兼容excel的常用公式,也可自定义行业专属公式。使用 SpreadJS 的拷贝粘贴功能,可直接插入证书首页,因此首页不必在模板中维护、设计,用户可任意修改信息。使用 SpreadJS 中的条件表达式,可以使制作模版功能更加灵活。使用 SpreadJS 的富文本编辑功能,使得特殊符号设置更加灵活。使用 SpreadJS 在后端转pdf,可减轻浏览器压力,转换速度更快,方便存储备份证书文件。使用 SpreadJS 的图表功能,满足特殊客户的自动生成图表需求。使用 SpreadJS 的数据验证功能,可提醒客户输入值是否有误。使用 SpreadJS 的任意取值和任意赋值功能,实现自动化设备对接需求。以上就是本期公开课的主要内容,更多系统界面展示及功能演示,欢迎点击此处,预约葡萄城公开课,在线观看学习。 ...

October 9, 2019 · 1 min · jiezi

WijmoJS-V20190-Update2发布再度增强-React-和-Vue-框架的组件功能

前端开发工具包 WijmoJS 在2019年的第二个主要版本 V2019.0 Update2 已经发布,本次发布涵盖了React 和 Vue 框架下 WijmoJS 前端组件的功能增强,并加入更为易用且灵活的撤消/重做功能和模板字符串支持。 WijmoJS 前端开发工具包由多款灵活高效、零依赖、轻量级的纯前端控件组成,如表格控件 FlexGrid、图表控件 FlexChart、数据分析 OLAP 等,完美支持原生 JavaScript,以及 Angular、React、Vue、TypeScript、Knockout 和 Ionic 等框架,可用于企业快速构建桌面、移动 Web 应用程序。 在列举前端开发工具包 WijmoJS V2019.0 Update2 的全部功能之前,请下载最新安装程序,以便同步体验!>>前端开发工具包 WijmoJS 最新下载地址 前端开发工具包 WijmoJS V2019.0 Update2 的主要新特性有: React 框架下组件功能增强Vue 框架下组件功能增强仪表盘的自定义能力增强新增模板字符串常量Undo / Redo(撤销/重做)全新的分页控件FlexGrid 中的多区域选择FlexGrid 中性能调优 API全球化中更多语言支持React 框架下 WijmoJS 组件功能增强React 框架已经大受欢迎,WijmoJS 也一直在增强其在 React 框架下的各组件的功能。在新版本中,WijmoJS 提供了一些不错的方法来定义自定义模板,如在脚本中绑定具有 Items 标记的控件。 使用代码,即可在WijmoJS 中添加 MenuItem 和 MenuSeparator 组件。 而之所以这么做,是为了解决纯javascript菜单控件不能通过JSX标记定义所带来的不便之处。WijmoJS在与 React 框架深度结合后,在 JSX 标记中使用 React 组件及其属性绑定将会更加方便,实现以声明方式定义项目内容。 ...

September 19, 2019 · 1 min · jiezi

GrapeCity-Documents-for-Excel-文档API组件-V22-新特性介绍

GrapeCity Documents for Excel 文档API组件 V2.2 正式发布,本次新版本包含诸多重量级产品功能,如:将带有形状的电子表格导出为 PDF、控制分页和电子表格内容、将Excel电子表格的特定页面打印为PDF、在工作簿之间剪切和复制工作表等。 作为一款适用于 .NET 和 Java 6.0+ 标准的文档API组件,GrapeCity Documents for Excel 通过编码的方式,无需依赖 Microsoft Excel ,即可超快批量操作 Excel 文件,与纯前端表格控件 SpreadJS 结合使用,可同时在 Web 端实现 Excel 类数据展示、Excel 功能和布局样式,以及后端 Excel 导入导出等业务场景,使您开发的应用程序具备快速创建、加载、编辑、导入/导出大型 Excel 文档的功能模块。 点击此处,下载最新版 GrapeCity Documents for Excel (Java) 点击此处,下载最新版 GrapeCity Documents for Excel (.NET) 将带有形状的电子表格导出为 PDF使用 GrapeCity Documents for Excel,您可以将带有形状的电子表格导出为 PDF,这些形状包括箭头、线条、图片和一般默认形状(包括 MS Excel 的内置形状)。利用这一特性,开发人员可以创建更为有趣且丰富的 Excel 工作表。 导出的 PDF 中支持的形状属性包括: 填充样式线条样式形状与文本形状与图片旋转的形状翻转的形状分组的形状 .NET 平台帮助文档 | .NET 平台示例 | Java 平台帮助文档 | Java 平台示例 ...

July 16, 2019 · 5 min · jiezi

十分钟教你理解TypeScript中的泛型

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 你将在本文中学到什么本文介绍TypeScript中泛型(Generics)的概念和用法,它为什么重要,及其使用场景。我们会以一些清晰的例子,介绍其语法,类型和如何构建参数。你可以在你的集成开发环境中跟着实践。 准备工作要从本文中跟着学习的话,你需要在电脑上准备以下东西: 安装Node.js:你可以运行命令行检查Node是否安装好了。 node -v安装Node Package Manager: 通常安装Node时,它会顺带安装好所需版本的NPM。安装TypeScript:如果你安装好了Node Package Manager,你可以用以下命令在本机的全局环境安装TypeScript。 npm install -g typescript集成开发环境:本文将使用微软团队开发的Visual Studio Code。可以在这里下载。进入其下载的目录,并按照提示进行安装。记得选择“添加打开代码”(Add open with code)选项,这样你就可以在本机从任何位置轻松打开VS Code了。本文是写给各层次的TypeScript开发人员的,包括但并不只是初学者。 这里给出了设置工作环境的步骤,是为了照顾那些TypeScript和Visual Studio Code的新手们。 TypeScript里的泛型是个啥在TypeScript中,泛型是一种创建可复用代码组件的工具。这种组件不只能被一种类型使用,而是能被多种类型复用。类似于参数的作用,泛型是一种用以增强类(classes)、类型(types)和接口(interfaces)能力的非常可靠的手段。这样,我们开发者,就可以轻松地将那些可复用的代码组件,适用于各种输入。然而,不要把TypeScript中的泛型错当成any类型来使用——你会在后面看到这两者的不同。 类似C#和Java这种语言,在它们的工具箱里,泛型是创建可复用代码组件的主要手段之一。即,用于创建一个适用于多种类型的代码组件。这允许用户以他们自己的类使用该泛型组件。 在VS Code中配置TypeScript在计算机中创建一个新文件夹,然后使用VS Code 打开它(如果你跟着从头开始操作,那你已经安装好了)。 在VS Code中,创建一个app.ts文件。我的TypeScript代码都会放在这里面。 把下面打日志的代码拷贝到编辑器中: console.log("hello TypeScript");按下F5键,你会看到一个像这样的launch.json文件: { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "TypeScript", "program": "${workspaceFolder}\\app.ts", "outFiles": [ "${workspaceFolder}/**/*.js" ] } ]}里面的name字段的值,本来是Launch Program,我把它改成了TypeScript。你可以把它改成其他值。 ...

July 11, 2019 · 2 min · jiezi

GrapeCity-Documents-for-Excel-与-Apache-POI-功能对比

GrapeCity Documents for Excel 是什么?GrapeCity Documents for Excel (简称为:GcExcel)是葡萄城推出的一款文档API组件,同时适用于 Java 和所有支持 .NET Standard 2.0 及以上标准的平台,以编码的方式,无需依赖任何 Microsoft Excel 组件,即可快速批量操作 Excel 文件,轻松满足您关于 Excel 电子表格的一切需求。 超快速、低占用率、更轻量,使用 GrapeCity Documents 可极大节省应用程序在生成、加载、编辑和保存大型文档时所占用的内存和时间,帮助企业以更高效的方式处理各种文档,实现更多定制化选项。 下载试用GrapeCity Documents for Excel (Java平台)下载试用GrapeCity Documents for Excel (.NET平台)Apache POI是什么?Apache POI 是由Java编写的一款免费开源的跨平台Java API,主要用于实现对Microsoft Office文档进行读、写的功能。POI为“Poor Obfuscation Implementation”首字母的缩写,意为“简单的模糊实现”。 GrapeCity Documents for Excel相对于Apache POI的主要优势1.公式数量支持GcExcel支持452种Excel公式,而在Apache POI中,支持的公式数量很少(虽然Apache POI网站罗列了280多种可评估的公式,但在API中仅显示为157种)。 2.导出PDFGcExcel支持导出为PDF格式,以及控制页面设置选项。 Apache POI不支持导出为PDF。 3.条件格式GcExcel支持更多条件格式规则,如自定义图标集、高于平均值(AboveAverage)、发生日期、Top 10和重复项,且这些条件格式规则与VSTO保持一致。但在Apache POI中,使用高级API支持条件格式会受到限制,例如,需要使用标记为内部用途的低级类来处理Top10、高于平均值(AboveAverage)等格式化。 4.图表类型支持GcExcel的图表界面与VSTO一致,支持约53种图表类型。 Apache POI对图表的支持非常有限,仅支持Line、Bar、Column、Scatter和Radar图表类型。 5.迷你图GcExcel完全支持添加和配置迷你图(Sparklines)。 Apache POI目前不支持Sparklines。 6.剪切、复制、粘贴形状GcExcel支持剪切、复制、粘贴形状,Apache POI不支持。 7.过滤器数据类型GcExcel广泛支持文本、数字、日期、颜色和图标等过滤器。 Apache POI仅支持基本的AutoFilter,需要使用低级类来实现应用过滤或创建任何其他高级过滤器。 ...

July 9, 2019 · 1 min · jiezi

使用-SpreadJS-实现-JavaScript-中导入和导出Excel文件

JavaScript是一个涵盖多种框架、直译式、可以轻松自定义客户端的脚本语言,在 Web 应用程序中,更加易于编码和维护。而Excel 作为一款深受用户喜爱的电子表格工具,借助其直观的界面、出色的计算性能和图表工具,已经成为数据统计领域不可或缺的软件之一。 如果有一款产品,能够将二者完美融合,将在前端表格数据处理、数据填报、数据可视化、在线文档等领域大放异彩。SpreadJS,正是这样一款功能布局与Excel高度类似,无需大量代码开发和测试即可实现数据展示、前端 Excel 导入导出、图表面板、数据绑定等业务场景的纯前端表格控件。 使用JavaScript实现 Excel 的导入和导出通过纯JavaScript,您完全可以实现导入和导出Excel文件功能,并为最终用户提供与这些文件进行I/O交互的界面。在本篇教程中,我将向您展示如何借助SpreadJS,在JavaScript中轻松实现导入和导出Excel文件的操作,以及将SpreadJS组件添加到HTML页面是多么的容易。 工欲善其事,必先利其器请下载SpreadJS 纯前端表格控件,以便同步体验设置JavaScript的电子表格项目创建一个新的HTML页面并添加对SpreadJS下载包中Spread.Sheets脚本和CSS文件的引用: <!DOCTYPE html> <html> <head> <title>SpreadJS ExcelIO</title> <script src="http://code.jquery.com/jquery-2.1.3.min.js" type="text/javascript"></script> <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.min.js" type="text/javascript"></script> <link href="http://cdn.grapecity.com/spreadjs/hosted/css/gc.spread.sheets.excel2013white.10.1.0.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="http://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.all.10.1.0.min.js"></script> <script type="text/javascript" src="http://cdn.grapecity.com/spreadjs/hosted/scripts/interop/gc.spread.excelio.10.1.0.min.js"></script> </head> <body> <div id="ss" style="height:600px ; width :100%; "></div> </body> </html> 然后在初始化Spread.Sheets组件的页面中添加一个脚本,并使用div元素来包含它(因为SpreadJS电子表格组件使用了Canvas 绘制界面,所以这是初始化组件所必需的一步): <script type="text/javascript"> $(document).ready(function () { var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss")); }); </script> </head> <body> <div id="ss" style="height:600px ; width :100%; "></div> </body> 添加Excel导入代码我们需要创建一个客户端ExcelIO组件的实例,并用它来实际打开 Excel 文件: var excelIO = new GC.Spread.Excel.IO(); 然后我们需要添加一个导入文件的函数。在此示例中,我们导入本地文件,但您可以对服务器上的文件执行相同的操作。如果要从服务器端导入文件,则需要引用该位置。以下是输入元素的示例,用户可以在其中输入文件的位置: <input type="text" id="importUrl" value="http://www.testwebsite.com/files/TestExcel.xlsx" style="width:300px" /> 完成上述步骤后,您可以直接在脚本代码中访问该值: ...

July 5, 2019 · 2 min · jiezi

案例分享在-React-框架中使用-SpreadJS-纯前端表格控件

本期葡萄城公开课,将由国电联合动力技术有限公司,资深前端开发工程师——李林慧女士,与大家在线分享“在 React 框架中使用 SpreadJS 纯前端表格控件”的实战开发经验。 直播地址:http://live.vhall.com/723418543 直播时间:2019-07-03(星期三)下午 14:00 国电联合动力技术有限公司于2007年6月成立,注册资本3.13亿元,拥有五个全资子公司及五个控股公司,总部位于北京,在全国设有多家生产基地。作为中国国电集团为发展中国绿色能源事业需要,解决风电关键、重大设备国产化问题而组建的高新技术公司,国电联合动力技术有限公司为构建低碳和谐社会、铸造值得信赖的国产风机品牌提供了强大的技术支持,公司主营业务包括风电机组设计、生产制造、研究开发、销售服务等。 以下是本期公开课部分精彩内容: 项目背景: 公司采购SpreadJS 纯前端表格控件,其主要应用场景是开发一套完善的日常业务流程管理系统,该系统以部门为单位划分,每周由各部门填报人员,根据系统运行情况、日常运营数据等在系统中进行填报,后交由部门进行数据汇总,并在移动端/PC端系统页面进行数据展示。 在采购SpreadJS 纯前端表格控件之前,公司使用excel进行数据汇总,无法保证各部门的数据流通及时、共享。在经过技术调研后,决定使用SpreadJS(该控件的功能、布局和操作均接近原生Excel)开发业务流程管理系统。通过该系统,部门领导可以实时查看业务运行状况并给予反馈意见,保证数据流通实时、有效。 选择SpreadJS的主要原因:功能、布局与Excel高度一致,数据操作、使用习惯均接近原生Excel可在前端导入、导出 Excel 文件,且保持文件的最大完整性支持所有常见的Excel公式函数本期公开课大纲:SpreadJS常用组件及其属性 SpreadSheetsWorksheet渲染过程自定义数据验证及Demo演示课程答疑SpreadJS常用组件及其属性<SpreadSheets> <SpreadSheets backColor="aliceblue" hostStyle={{ width: `${tableWidth}px`, height: '600px' }} rowChanged={(_, sheet) => this.handleRowChanged(sheet)} valueChanged={(_, sheet) => this.handleValueChanged(sheet)} rangeChanged={(_, sheet) => this.handleRangeChanged(sheet)} workbookInitialized={spread => this.init(spread)} >rowChanged:主要用于删除整行触发,需要判断 propertyName 属性 handleRowChanged(content) {// 整行删除触发 const {sheet, propertyName} = content if (propertyName === 'deleteRows') { const {originalItem: {reportId}} = sheet.getDeletedRows()[0] if (reportId) { this.setState({loading: true}) setTimeout(() => { alert('删除成功!') }, 2000) } } }valueChanged:改变单元格值触发 ...

July 2, 2019 · 2 min · jiezi

WebApp-安全风险与防护系列一

WebApp 安全风险与防护(系列一)讲师资料:Carl(陈庆),葡萄城高级架构师、葡萄城技术公开课讲师。拥有15年项目开发经验,专注于产品架构、编程技术等领域,对网络安全有着独到见解,曾担任微软TechEd讲师,乐于研究各种前沿技术并分享。 2018 网络安全事故频发,从数据泄露、信息窃取,到 DDOS 攻击、勒索病毒,不仅威胁的总数在增加,威胁态势也变得更加多样化,攻击者在不断开发新的攻击途径的同时,也尽力在攻击过程中掩盖其踪迹,使网络安全防护变得越发棘手。未来是万物互联的时代,唯有把握住网络信息安全,才能避免被降维打击。本场Chat,我们特邀Carl作为分享嘉宾,于葡萄城技术公开课上,以 WebApp 安全防护为出发点,带你了解更多意想不到的安全防护措施与黑客攻击手段,助你提高网络安全意识,最终学会如何规避风险隐患,避免遭受网络安全攻击。欢迎大家扫描下图二维码,预约报名参加。 直播地址:http://live.vhall.com/137416596 下面开始展开正文。 第一节:开阔眼界 – 提升安全意识提升网络安全意识对项目团队中的每一个角色、每一个流程都至关重要。同时,也只有具备了网络安全意识,才愿意为数据安全投入更多的时间和精力。下面,我将为您展示部分2018年发生的网络安全事故,这些事故造成的损失,也许远远超出你的想象。 2018 网络安全事故回顾Facebook数据泄露事件:2018年9月,Facebook因安全系统漏洞而遭受黑客攻击,导致约5000万用户信息泄露。 上市公司数据堂,涉嫌侵犯数百亿条公民个人信息:大数据行业知名企业数据堂在短短8个月的时间内,日均泄露公民个人信息1.3亿余条,累计传输数据压缩后约为4000GB。 圆通10亿快递信息泄露: 10亿条用户数据遭公开售卖,这些数据包括寄(收)件人姓名、电话、地址等隐私信息。 万豪酒店5亿用户开房信息泄露:万豪酒店客房预订数据库遭黑客入侵,约5亿名客户的信息可能被泄露。 更多数据泄露事件国泰航空数据泄露,940万乘客受影响MongoDB 数据库被入侵, 1100 万份邮件记录遭泄露SHEIN 数据泄露影响 642 万用户GovPayNet凭证系统存在漏洞,1400万交易记录被曝光小米有品平台泄露个人隐私 约2000万用户数据遭泄露…勒索病毒事件美国亚特兰大市政府受到勒索软件攻击美国巴尔的摩市遭遇勒索软件攻击,导致911紧急调度服务的计算机辅助调度(CAD)功能掉线台积电勒索病毒事件,约造成17.6 亿元的营收损失,股票市值下跌78亿很多个人电脑和中小网站都曾遭受攻击DDoS 攻击平昌冬奥会开幕式服务器遭到身份不明的黑客入侵GitHub遭1.35T级流量攻击年度重大漏洞盘点CPU数据缓存机制漏洞iOS 平台WebView组件漏洞(UIWebView/ WKWebView)跨域访问漏洞(CNNVD-201801-515)Oracle WebLogic Server WLS核心组件远程代码执行漏洞微信支付SDKXXE漏洞Apache Struts2 S2-057安全漏洞第二节:知己知彼 – 黑客如何攻击系统一名黑客攻击网站的典型步骤,主要分为以下5步: 信息收集和漏洞扫描漏洞利用上传木马获取服务器的控制权清理痕迹总结:黑客不是手动测试系统漏洞的,而是有很多强大的工具可以自动化完成 黑客不是利用系统中的一个漏洞,而是要利用一系列,不同层次的漏洞 黑客经常批量攻击一系列网站,选取其中漏洞较多,较好利用的重点突破 第三节:十大安全风险(OWASP Top 10)不安全的软件正在破坏着我们的金融、医疗、国防、能源和其他重要的基础设施。随着我们的软件变得愈加庞大、复杂且相互关联,实现应用程序安全的难度也呈指数级增长。而现代软件开发过程的飞速发展,使得快速、准确地识别软件安全风险变得愈发的重要,OWASP 组织也因此诞生。 OWASP,即开放式Web应用程序安全项目(Open Web Application Security Project),作为一个开源的、非盈利的全球性安全组织,它提供了有关计算机和互联网应用程序的公正、实际、有成本效益的信息,其目的是协助个人、企业和机构来发现并使用可信赖的软件。 OWASP Top 10是由OWASP组织公布,最具权威性的“10项最严重的Web应用程序安全风险预警”,其就安全问题从威胁性和脆弱性两方面进行可能性分析,并结合技术和商业影响的分析结果,输出公认的、最严重的十类Web应用安全风险排名。OWASP Top 10旨在针对上述风险,提出解决方案,帮助IT公司和开发团队规范应用程序开发流程和测试流程,提高Web产品的安全性。 OWASP敦促所有公司在其组织内采用OWASP Top 10文档,并确保其Web应用程序最大限度地降低这些风险,采用OWASP Top 10可能是将企业内的软件开发文化转变为生成安全代码文化最行之有效的一步。 OWASP Top 10包括:注入失效的身份认证敏感信息泄露XML外部实体(XXE)失效的访问控制安全配置错误跨站脚本(XSS)不安全的反序列化使用含有已知漏洞的组件不足的日志记录和监控以上便是从本次Chat——“WebApp 安全风险与防护(系列一)”中截取的部分内容,下一期将详细介绍OWASP Top 10及其应对策略。更多关于 WebApp 安全风险防护手段及葡萄城安全架构中的实践分享,将在葡萄城系列公开课“WebApp 安全风险与防护”中,由Carl亲自讲解,诚邀您学习观看。公开课地址:http://live.vhall.com/137416596 公开课时间:2019/6/26 (周三)16:00 PM ...

June 25, 2019 · 1 min · jiezi

中国高考志愿填报与职业趋势分析-ActiveReports-大数据分析报告

1977年中国高考制度恢复,重新开启了人才成长之门。40多年来,高考累积录取人数增长了27倍, 2.28亿人报名,9900万名高素质人才先后通过了中国高等教育的培养,高考已成为推动中国经济社会巨变的关键动力。 高考的重要性无须赘述,然而高考终究是一场考试,志愿填报才是人生真正的转折点。随着2019中国高考的落幕,对于十二年寒窗苦读的莘莘学子来说,高考志愿填报不仅仅是一张简单的表格,更像一份机遇与风险并存的判决书。 本期 ActiveReports 大数据分析报告,将借助权威数据,为您带来中国高考志愿填报与职业趋势分析,助您在进行高考志愿填报时,获取更加真实、有效的数据参考。 以下为报告主要内容: 2019年高考大军数量创近六年新高2019年高考人数达到1031万,净增56万,创近六年增长人数新高。2018年中国普通本科、专科招生人数达到790.9万,招生人数逐年上升。 本图表由葡萄城 ActiveReports报表工具制作 高考志愿填报付费咨询的用户持续增长,但增速趋于平缓近几年,很多机构开始推出自己的高考志愿填报服务,甚至以举办免费讲座的形式,向家长和考生推广咨询收费服务。数据显示, 从2010年到2018年,高考志愿填报付费咨询的用户规模持续增长,2018年付费咨询用户已达到29.7万人。 本图表由葡萄城 ActiveReports报表工具制作 其实就志愿填报的付费咨询而言,建议家长不要等到高考结束后才开始关注。如今,升学途径愈发多元化,志愿填报作为学业规划的一个方面,家长应尽早开始引导孩子未来的发展方向,并选择合适的升学路径,这样后续的志愿填报工作才会水到渠成。 软件工程、能源与动力工程等专业,毕业半年就业率超过95%作为近些年就业热门行业,软件工程专业本科毕业半年的就业率高达96.7%,位列各专业之首。能源与动力工程、电气工程及其自动化专业毕业半年的就业率分别为95.8%和95.6%。从数据分析得出,高就业率的专业更适合追求稳定和低风险的考生报考。当然,最终选择还需结合就业潜力、薪酬待遇等多方面进行综合考虑。 本图表由葡萄城 ActiveReports报表工具制作 十大高薪行业——金融业居首从数据报告得出,目前中国高薪行业占主导地位的仍是金融业。不过,未来随着高新技术的发展,IT/互联网、医疗等行业的发展潜力巨大,考生在未来若想追求更高薪酬的行业,可在这些行业里选择。 本图表由葡萄城 ActiveReports报表工具制作 人工智能、大数据成为未来最具潜力的行业数据显示,人工智能、大数据、生物制药等高新技术行业的未来发展值得期待,甚至有望在几年内成为热门行业。如今,时代越来越向自动化、智能化方向发展,考生在志愿填报时着重选择具备这些高新技术的学校和专业,未来或有更好的发展空间。 中国500强企业区域分布,北京占据20%作为首都,北京是中国500强企业分布最多的城市,大部分企业都选择把总部定在这里。除了北京,江浙沪、广东等沿海城市的500强企业及双一流大学的数量较其他区域也有更广泛的分布。 本图表由葡萄城 ActiveReports报表工具制作 从数据报告得出,北上广依旧是毕业生理想的求职地。因此,报考这些地区的学校会有更高的优势,同时也会获得更多名企实习的机会。 毕业第二选择之留学:商科类专业出国留学人数最多从数据分析报告可见,对外经济贸易大学以38.3% 的出国深造率位居榜首。在出国留学的专业选择方面,大部分学生选择的是商科和工科。普遍认为,国外高校对这两类专业的教学质量和研究水平相对较高,而且这两类专业具备大量的职位需求和良好的就业前景,因此,毕业生在选择留学时可重点考虑以上两类专业。 本图表由葡萄城 ActiveReports报表工具制作 留学,作为高考毕业生的第二选择,具备三大优势:增长见闻,开拓视野;掌握一门外语,受益终身;磨练生存能力,培养吃苦精神。 如今,越来越多的人开始将出国作为一种投资,但是,只有在良好的学习环境中,才能学到真正的知识,如果仅抱着体验生活或者移民的目的,还请慎重决定。 本期 ActiveReports 大数据分析报告观点总结1. 考生志愿填报问题突出在大学品牌、地理位置、专业学科、就业前景、分数线的把控上,考生往往面临艰难选择,在做出最终决定前,需要搜集大量相关信息。 2. 高考志愿填报受重视程度越来越高出于对个人发展方向的考虑,越来越多的考生会在志愿填报时听取父母、老师的指导建议,并关注媒体就志愿填报展开的问题讨论,志愿填报已成为考生高考成绩出炉后不得不面临的首要问题。 3. 高新技术行业或成为未来考生报考的重点方向随着高新技术的发展与普及,人类社会朝着自动化、智能化的方向不断发展,高新技术人才的缺口正逐步扩大,企业对高新技术人才的需求也日益增长。大数据、人工智能、生物制药、区块链等高新技术行业发展前景可期,这些行业未来或将成为考生新的选择。 4. 志愿填报付费咨询的价格水涨船高,部分家长已经开始预约明年的有偿咨询服务目前志愿填报咨询机构的服务费在上千至上万元不等,但目前该行业门槛较低,整个志愿填报付费咨询的市场处于一种鱼龙混杂的状态,家长需要提前做足功课才能避免上当。 5. 中国内陆地区高校创业氛围不逊沿海发达地区考生在毕业后选择自主创业方面,在中国内陆地区,如湖北、陕西、四川等地氛围浓厚,不逊于沿海发达地区。因此,有自主创业计划的考生,可以在志愿填报时考虑湖北、四川、陕西等内陆地区的高等院校。 6. 双一流大学对考生未来的发展帮助极大双一流大学能提供给考生更多的机会和平台,同时世界500企业趋于分布在双一流大学密集的地区,因此考生想在未来得到更好的发展和提升空间,选择双一流大学是最佳方案。 本文数据来源:iiMedia Research(艾媒咨询) 报表制作工具:葡萄城 ActiveReports .NET报表控件 *本文中所有报表模板,后续会加入葡萄城报表模板库中,供大家免费使用。>>报表模板库下载地址 关于ActiveReports报表控件 ActiveReports 是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForm / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和报表开发的需求,作为专业的报表工具为全球超过 300,000 名开发者提供全面的报表解决方案。 ...

June 21, 2019 · 1 min · jiezi

Vue-2019开发者图谱

作为 Vue 的初学者,您或许已经听过很多关于它的专业术语了,例如:单页面应用程序、异步组件、服务器端呈现等,您可能还听过和Vue经常一起被提到的工具和库,如Vuex、Webpack、Vue CLI和Nuxt。 面对这些海量、未知的专业术语和工具,您很可能会感到无助和绝望,没关系,这是所有新手在初次接触Vue时都会有的感受。 Vue庞大的体系和生态,很可能会让您无所适从。为了便于您更清晰的理解Vue的体系架构,在这里我将为您展示 “2019年Vue开发者知识图谱”,它包含了所有 Vue 开发过程中的关键部分。您可以参考这个图谱,为您在未来学习Vue的框架指引方向。 0.JavaScript和Web开发基础如果我让你去阅读纯英文书籍,那么你应该先学习英文,对吗? 同样,Vue是一个用于构建Web用户界面的JavaScript框架。在开始使用Vue之前,您至少必须先掌握JavaScript和Web开发的基础知识。 1.Vue的基本概念如果您是一名Vue的萌新开发者,您应该更专注于Vue.js 生态系统的核心,它包括Vue核心库、Vue Router和Vuex。因为这些工具将会在绝大部分的Vue应用程序中出现。 Vue核心功能在一般情况下,Vue将网页和JavaScript保持同步,实现这一目标的特性是响应式数据指令和插值等模板功能,这些都是第一天需要学习的内容。 在构建你的第一个Vue应用之前,你还必须要去了解如何在网页中安装/使用Vue,以及了解Vue引用实例的生命周期。 组件Vue的组件是可重复使用、且相互独立的UI元素。您首先需要学习,如何声明组件,及如何通过属性和事件使组件间达成通信。同时,学会组合组件也同样重要,这决定了你能否使用Vue构建出一个健壮、可扩展的Web应用程序。 单页面应用程序单页面应用程序(SPA)架构,决定了你创建的Web页面能够展示和多页面网站一样丰富的内容,且不会发生在用户点击链接后重新加载整个页面这样低效的行为。 一旦您将您的“页面”创建成了一个Vue组件,您可以为每一个组件使用Vue Router,将每个请求映射到一个唯一的访问路径上,Vue Router是一个由Vue团队维护的用于构建单页面应用程序(SPA)的工具。 状态管理随着项目规模越来越庞大, SPA的页面上将会有越来越多的组件,管理全局状态也将变得愈发棘手,组件因为大量的属性和事件监听器而变得臃肿。 为应对上述情况,你的需要开始了解Vue的状态管理:一种被称为“Flux”的特殊模式,可将您的数据保存在稳定的中央存储中。Flux可通过Vuex库来实现,该库由Vue团队维护。 2.生产环境中的Vue您从第一部分获取的知识理论上可用于构建高性能的Vue应用程序。那么,如何确保他们能够在实际生产环境下运行呢? 如果您要把基于Vue.js 的产品推向用户,您还需要了解更多内容,以下将为您介绍。 项目脚手架如果您需要经常构建Vue应用程序,您会发现几乎每个项目都会提供配置、设置和开发人员工具。 Vue团队维护了一个名为Vue CLI的工具,它可以让您在几分钟内构建一个强大的Vue开发环境。 全栈 / 认证应用程序Vue应用是数据驱动型的用户界面,数据通常由Node、Laravel、Rails、Django 或其他服务器框架编写的安全API作为来源,大部分数据是由传统的REST API或GraphQL提供,再或者是Web Socket提供的实时数据。 您应该熟悉这些用于将Vue集成到全堆栈配置中的设计模式,以及在Vue应用程序中保护用户数据安全的各种注意事项。 如果您正在评估什么后端产品是您开发Vue应用时的最好选择,那么这篇文章中应该有您的答案。(后续会翻译)测试如果您想确保您的Vue应用程序在生产环境中表现的既可维护又稳定,您需要对您的应用提供完整的测试。 在Vue应用程序中,单元测试可确保您的组件始终为给定的输入(属性或用户输入的内容)提供相同的输出(渲染好的HTML或事件)。 Vue团队维护着一个名为Vue Test Utils的工具,它允许您对组件单独创建和执行测试过程。 优化手段当您将应用程序部署到远程服务器后,这个应用的访问速度和执行效率很可能不会像在开发阶段表现的那样迅速,很可能当用户访问时速度会变得很慢。 为了提升效率,我们需要优化Vue应用,优化过程可以采用多种技术,如服务端渲染。在服务端渲染中,Vue程序将在服务端执行,在用户访问时,将渲染完成的HTML呈现给用户,从而达到提升访问速度的目的。 当然,优化手段不局限于这一种,还包括:异步组件和渲染功能。 3.关键工具到目前为止,我们所掌握的知识皆来自于Vue.js核心和生态系统中的工具。但Vue并不是孤立存在的,它只是前端技术栈的一部分。 在高级开发领域不应该仅仅熟悉Vue,还要熟悉一些其他关键工具,因为它可能将成为未来Vue应用的重要组成部分。 现代JavaScript和BabelES5可以有效构建的Vue应用程序,也几乎是所有浏览器都支持的JavaScript标准。 为了增强Vue的开发体验,使用最新的浏览器功能,您可以借助最新的JavaScript 标准(ES2015的特性或ES2016及更高版本的全新功能)来构建您的Vue应用程序。 注意:如果您选择使用了最新的JavaScript,那么旧版浏览器将会出现兼容问题,这很可能会造成您的产品损失掉一部分用户。 如何对旧浏览器做兼容呢? Babel 可以实现这个目的,它的职责就是在应用程序发布前将您应用程序中现代的特性“转换”(翻译和编译)为标准功能。 WebpackWebpack是一个模块打包工具,意思是如果您的代码是由跨不同模块编写的(例如,不同的JavaScript文件),Webpack也可以将这些内容“打包”到同一浏览器可读的单个文件中。 Webpack 还可以构建流水线,它允许您在构建代码前进行转换。例如,使用前面提到的Babel、Sass或TypeScript,还可以使用一系列插件来优化您的Web应用程序。 许多开发者认为Webpack很难理解,也很难配置,但如果没有它,Vue的一些特性功能(如:单页面组件)将无法实现。我们有关于WebPack的系列教程,助您快速掌握Webpack的使用和配置。 TypeScriptTypeScript是JavaScript语言的超集,它包含了(String、Boolean、Number等)。有了这样的定义,能保证您在开发期间就能编写出健壮且稳定的代码,并尽早发现错误。 即将于2019年推出的Vue.js 3将完全用TypeScript编写,这并不意味着您必须在Vue项目中使用它。但假如您需要通过阅读Vue的内部代码并加入Vue的开源组织为其贡献力量,您至少也应提前了解TypeScript。 4.Vue框架基于Vue创建的框架,使您无需从头开始实现服务端渲染,就可创建自己的组件库以及其他类似的工作。 目前有许多优秀的Vue框架,这里,我们只列出了应用在不同领域最为广泛的三个框架。 Nuxt.js如果你想要构建一个高性能的Vue应用程序,基于路由、服务端呈现、代码分离和其他前沿特性,同时还需要一些更高级的功能,例如:SEO标记等。您可以使用Nuxt.js框架。 Nuxt.js框架通过其丰富的社区插件提供了所有这些开箱即用的特性,甚至更多,如PWA等。 ...

June 21, 2019 · 1 min · jiezi

每个程序员都该学习的5种开发语言

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 我曾在某处读到过(可能在《代码大全》,但我不敢确定),程序员应该每年学习一门新的编程语言。但如果做不到,我建议,你至少学习以下5种开发语言,以便你在职业生涯有很好的表现。 每个公司都喜爱精通多种编程语言并且多才多艺的程序员。一个既能很麻利地写脚本,也能编写复杂的Java程序的程序员,确实相当有价值。所以实际上,对于高级开发者来说,学习不止一种编程语言,几乎就是必然的要求。 目前而言,面试官越来越看重那些拥有多种编程语言经验的工程师。比如,同时有C++ 和Java的经验就很不错,Python和Java也是。我个人喜欢那些在C++ 或者Java方面有着丰富经验,而且能用Groovy、Perl或Python写脚本的软件工程师。 很多时候,写一个小脚本就足以快速搞定一些专有任务。我不想我的程序员们花上一整天用Java去写一个读取CSV文件的程序,或者在TCP/UDP端口抓取信息的程序,这是很浪费时间的一件事情。 为什么我在文章中选择这5种语言呢?我的理由简单且实际。我是基于这些语言的用途、编程范式和流行度及代表性来选择的。 例如,如果你想找一份应用开发的工作,就不能忽视Java。同样,做与web相关的事情,就得知道无处不在的JavaScript。 在开发者职业生涯的早期,我强烈建议学习C语言。它能帮助开发者贴近系统底层,知晓那些编程的关键概念,这是隐藏在JVM或CLR底下的东西。 对于脚本语言,我的选择是Python,尽管你也可用Perl或Groovy代替。但在扩展支持方面来看,Python的表现无疑是最棒的。有很多Python模块可供选择,帮你能分分种搞定各种任务。 学习一种面向对象的语言的同时,也学习一种像Haskell或Scala这样的函数式编程语言,这能拓展你的思维和编程认知。你可以在本文找到学习这5种语言的更多理由。 言归正传,下面就是我列出的5种每个程序员或软件开发者都该尝试学习的编程语言。 它包含了语言的大杂烩,比如[面向对象的]语言(http://javarevisited.blogspot... -object.html),函数式的语言,脚本语言,提供了对底层的控制,也涵盖了广泛用于服务端开发的语言。 JavaJava是近二十年来最流行的语言之一。它统治着全球的服务端应用开发,同时在基于Anroid开发的移动应用和游戏市场,以及企业web开发领域,也占有相当一部分比重。 Java最初的构想是一次编写各种平台均能运行(write once run anywhere)。随着时间的推移,它确实做到了运行在各个平台的各个角落。 你应该学习使用Java构建健壮的、可扩展的服务端应用。你可以用Java构建多种复杂度的工程。与之相伴的,有很棒的工具、技术和社区支持。 为什么你应该学Java呢?你会学到如果专注于应用层面和代码结构的设计,而不用关心特定系统的细节和内存管理。JVM帮你搞定了后面这些。 如果你已经决定开始学习Java了,那么Udemy上的 The Complete Java Master Class 教程就很棒,用它作为入门教程很好,它包含了Java的所有核心概念,很详细。 顺便一提,如果你想要更多选择,而且不介意使用免费的课程学习,那可以看看这上面给新手提供的课程。 Java被许多世界上的大型组织所使用。而且能够向众多用户展示你用Java开发的Android应用。如果你仍然还在动摇,我建议你去这看看10个学习Java的理由。 Python在全球范围的学校和院系,Python是教授最多的语言之一。在美国,许多学术课程中,Python已经取代了Java成为接触编程的首选语言。你将从学习Python中得到什么呢?——那将非常多。 Python既能用于写脚本,也能作为一种面向对象的语言编写大型工程。 许多流行的网站,比如Reddit,就使用基于Python的框架来构建,比如Django。近段时间,许多大型组织也转向使用基于Python的框架了。 Python也越来越多地用于像机器学习、人工智能、数据科学这样的新一代技术中。这也难怪,因为有基于Python的非常棒的机器学习库,比如TensorFlow、Scikit-Learn以及其他。 我个人倒是在用Python写脚本。这能很快地完成一些有用的事情,比如,你可以用Python花5分钟写一个UDP消息的监听器,相比较,用Java可能就要花20分钟。忘掉“编译、打包,然后才能使用”这些步骤。你可以直接为特定任务编写Python脚本。如果你有兴趣学习Python,那么The Complete Python BootCamp就是个很好的开始。 如果你需要更多选择,而且不介意使用免费的课程学习,那也可看看这上面给新手的课程。 并且,如果你困惑于不知道该从Java还是Python开始,看看这个,它比较了两者。 另外,如果你仍然没有被我说服,那就可以看看我的关于10个学习Python理由的文章。 JavaScript你可以用Java替代C++,用Pythont替代Ruby,但是,坦率地讲,当前没有JavaScript的替代品。在最近5年,JavaScript完全统治了世界。 它不再仅仅是客户端脚本语言。有了Node.js这样的库,和Angular、React这样的框架,你可以在服务端做用户界面的开发。 JavaScript的巨大成功,有一部分要归功于jQuery。它真正改变了人们在客户端使用JavaScript的方式。 作为一个在工作中使用JSP和开发基于Servlet的应用的程序员,我有许多机会同时使用jQuery和JavaScript。 有了此语言的知识,可以帮助我们决定哪些功能应该在服务端实现,哪些该在客户端实现。比如,许多服务端的校验逻辑,就被我们迁移到了客户端。 如果你想从头开始深入学习JavaScript,那Udemy上的The Complete JavaScriot就是你可加入的最佳在线课程。 如果你想要更多选择,且不介意跟着免费的课程学习,那么可以看看这里为web开发者提供的课程。 C 和/或 C++如果不知道C或C++,你就不能成为真正的程序员。这听起来有点苛刻,但是我的经验之谈。 了解C的工程师或者开发者,就是比不了解C的程序员要优秀。这可不是简单的巧合。 这是你必须要了解的编程语言之一。我在求学期间学习的C语言,并在那时学到了关于编程的许多关键概念,比如结构体、数组、指针、内存管理等等。 C仍然是操作系统编程方面最受欢迎的语言,并且在这两年,给排名榜首的Java带来了强劲地冲击。如果你想学习这门美妙的语言,那C Programming for Beginners就是个很好的开始。 它同样是最古老的主流语言之一,已经存在了四十多年。 C++ 和C很像,都允许你为系统和驱动编写底层代码。如果你想学习C++ 而不是C,可看看我为新手列出的免费C++课程。 ...

June 14, 2019 · 1 min · jiezi

每个Web开发者都该了解的12条命令行

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。原文出处:https://tutorialzine.com/2017... 在开发者的弹药箱里,命令行是最具生产力的工具之一。掌握它们可以给你的工作流程带来非常积极的影响。因为,许多日常任务都可以用一条命令然后按回车来解决。 在本文中,我们为你准备了一系列常用命令,帮你充分利用你的终端。这其中有些命令是系统内置的,另外的一些则是需要另外安装的免费工具,不过这些免费工具是经历了时间的考验,所以你可以分分钟将他们安装完成。 curlcurl是一个发送请求的命令行工具。可使用HTTP(s)、FTP,以及一些你可能从未听过的协议发送请求。它可以下载文件,检查响应头,自由地访问远程数据。 在web开发中,curl常用于测试连接和RESTful APIs。 # 获取一个URL的HTTP HEADERcurl -I http://google.comHTTP/1.1 302 FoundCache-Control: privateContent-Type: text/html; charset=UTF-8Referrer-Policy: no-referrerLocation: http://www.google.com/?gfe_rd=cr&ei=0fCKWe6HCZTd8AfCoIWYBQContent-Length: 258Date: Wed, 09 Aug 2017 11:24:01 GMT # 向远程API发出GET请求curl http://numbersapi.com/random/trivia29 is the number of days it takes Saturn to orbit the Sun.curl命令可以远比上面的情况复杂。它有一大堆的选项来控制请求头、cookies、权限验证等等。你可以在这本相当棒的免费书Everything curl中读到更多。 treetree是一个小巧的命令行,用于可视化地展示目录里的文件结构。它递归地执行,检查嵌套的每一个层级,为所有内容绘制出格式化的树形结构。你可以用它快速浏览文件结构,定位到所需的文件。 tree.├── css│ ├── bootstrap.css│ ├── bootstrap.min.css├── fonts│ ├── glyphicons-halflings-regular.eot│ ├── glyphicons-halflings-regular.svg│ ├── glyphicons-halflings-regular.ttf│ ├── glyphicons-halflings-regular.woff│ └── glyphicons-halflings-regular.woff2└── js ├── bootstrap.js └── bootstrap.min.js也有类似正则匹配的选项,用于过滤结果。 tree -P '*.min.*'.├── css│ ├── bootstrap.min.css├── fonts└── js └── bootstrap.min.jstmux根据维基百科所说,tmux是一个终端复用器,翻译为人话就是说,它是一个把多给终端连接为一个终端会话的工具。 ...

June 4, 2019 · 1 min · jiezi

用这款免费工具即可解决-90-的报表设计难题

用这款免费工具,即可解决 90% 的报表设计难题大数据时代,数据价值愈发彰显,数据分析正在成为影响业务决策的关键因素。其中,数据分析的结果以报表的形式呈现给用户,究竟什么样的报表设计才能真正让用户满意,如何保证用户在复杂的数据字段中快速查询到想要的结果,用怎样的数据分析方式才能为企业带来价值?这些疑问伴随着企业报表开发的整个生命周期,在不断消耗报表开发者精力的同时,也让不少项目团队产生怀疑。 那么,在报表开发和设计过程中,您是否也遇到过如下难题: 了解报表需求,但不知如何实现了解业务需求,但不知如何进行数据分析能够设计报表,但样式布局无法达到专业要求静态报表无法满足业务需要,不知如何实现数据交互 葡萄城报表模板库,基于为全球 300 万报表用户提供工具和服务的基础,能有效降低报表开发的门槛和难度,使您一步成为报表设计专家。 报表模板库是一款完全免费的报表制作、学习和参考工具,凝聚了超过20个行业的经典报表模板,您无需安装任何报表开发软件,即可浏览、设计并下载 200余套行业报表,以“所见即所得”的方式实时预览修改结果,并将所设计的报表直接应用到实际项目中。报表模版库与开发者的关系,如同教案于教师,处方于医生。 报表模板库 = 报表设计/报表开发者不可或缺的工具提供高品质报表模板合辑 报表模板库中包含了超过 200 张高质量行业报表模板,从报表类型、报表样式、外观 UI、操作功能、专业领域等方面,为您提供全方位的参考价值。模板库的出现,很好的解决了以下问题: 网络上充斥着各类低质量、重复的报表模板,难以有效利用缺少 Dashboard、图表类报表类型没有成体系的财务、销售、项目管理等行业报表不提供交互式数据分析功能,无法进行二次开发无法导出、编辑报表,距离实际使用还有很大距离内置独立的报表设计器 报表模板库内置 ActiveReports 报表设计器,您可根据需要编辑、修改、导出报表模板,还可以直接修改原有数据源链接,以上操作均可实时预览。所有报表模板可自定义的选项包含: 报表样式、布局、风格、配色测试数据、脚本、SQL 语句数据源文件,如 SQLite、Access、SQLServer、JSON 等图表、图片、文字描述等具备数据交互分析能力 报表模板库中罗列了多种可交互分析的报表模板,具备多样化的数据交互分析能力,您不仅能够清楚地查看业务发展趋势,还能直接操作报表数据,进行更深入、更透彻的数据分析,如: 数据钻取、深化、排序URL 参数化跳转图表表格联动、动态表格创建文档目录寻找真正的报表大师,提反馈,赢P30!报表模板库使用反馈有奖征集 作为一个专业、涵盖全行业报表模板的共享平台,模板库的成长离不开共建伙伴们的支持,目前已有石化盈科、北京华油信通、裕林医药、达创网络、格林蓝德、飞迪科技、久益环球等数十家知名企业,与葡萄城一起,以“共建共享,共同赋能”为口号,加入到葡萄城报表模板库的共建行动中。 现在,我们也诚邀您对模板库提出反馈,共同打磨各行业经典报表,与我们共建模板库,寻找真正的报表大师,赢取华为P30。了解活动详情,请点击此处。

May 27, 2019 · 1 min · jiezi

你需要的物流运输类报表都在这里

你需要的物流运输类报表,都在这里葡萄城报表模板库是一款免费的报表制作、学习和参考工具,包含了超过 200 张高质量报表模板,涵盖了 16 大行业和 50 多种报表类型,为 30 余万报表开发者提供价值参考。 近期,葡萄城推出了“寻找真正的报表大师”活动,征集用户对模板库的反馈,希望能与您共建共享、共同赋能。参与活动还有丰厚的奖品等您拿! 为帮助您更直观的了解模板库中的报表类型,小编将遴选部分典型报表模板,供大家参考并提出反馈。 本期分享:物流运输类报表物流行业是物流资源产业化而形成的一种复合型或聚合型产业。物流资源包括运输、仓储、装卸、搬运、包装、流通加工、配送、信息平台等。它是一种复合型产业,因为所有产业的物流资源不是简单的垒加,而是一种整合。 报表模板库中包含了数十张订单物流追踪、运输计划、任务监控、物流信息报表、发运单、报关单等物流行业典型的数据报表模板,供您参考。 订单管理 回单管理 订单状态跟踪 货物跟踪报表 运输计划列表 物流订单合同 任务监控中心 物流发货运单 以上就是模板库中部分物流运输类报表,你觉得如何? 欢迎您参加“寻找真正的报表大师”活动,从报表功能、配色、样式等方面对这些报表提出反馈,优胜者将有机会获得华为P30手机一台。了解活动详情,请点击此处。

May 22, 2019 · 1 min · jiezi

都 9012了,该选择 Angular、React,还是Vue?

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。尽管 Web开发的典型应用场景除了将服务器用作平台、浏览器用作客户端之外,几乎很少活跃于其他业务领域,但不可否认JavaScript 语言和框架的使用已经成为了主流。Angular、React 和 Vue,作为 JavaScript 的三大框架已逐步发展成熟,三者的差异性也越发明显,假设JavaScript还会继续流行十年左右,未来十年,你将会作何选择?AngularAngularJS 自2009年诞生,至今已有十年历史。在这短短十年中,其对 Web 社区的发展产生了十分深远的影响。作为一款优秀的 JavaScript 框架,在其推出一年后,便在全球引起了广泛关注,如今更是在Google的 600 多款产品中得以成功运用,如Firebase控制台、谷歌分析、谷歌快车、谷歌云等。AngularJS有着诸多核心特性,包含:MVC(Model–view–controller)、模块化、自动化双向数据绑定、语义化标签、依赖注入等。Angular 最新版 7.0.0 已于2018年10月发布,下一版本预计将于今年第二季度正式上线。以下是Angular 7 针对性能、命令行工具和Material Design组件的优化项:性能方面:Angular 7 新增的虚拟滚动优化了单页面的呈现方式,对于那些吸引访问者继续向下滚动的clickbait网站来说,这将派上大用场。Angular 7 的另一个性能亮点被称为Bundle Budgets,它用于预警开发人员当前使用的JavaScript包的大小,当JavaScript 包超过 2MB 时开始预警,在达到 5MB 后直接中断生成。命令行提示:当在CLI中键入某些命令,如 ng new 或者 ng add @angular/material 时,Angular 7 会提示用户,让你找到像路由或SCSS支持之类的内置特性,从而简化编码体验,帮助开发者发现新功能或提供灵感。视觉风格:谷歌在Angular 7之前已于2018年更新了Material.io,用户更新后会出现细微的视觉差异:如,UI结构层次更为大胆、形状的边角更加圆滑,五种全新的 Icon 样式,以及一个非常时尚且现代化的拖放模块。Angular 7 拖放效果ReactAngular的出现,在Web社区引发了强烈轰动。两年后,Facebook 也推出了一款同样具备丰富功能的JavaScript UI组件库——React。使用React,意味着您将用一种更简约的方式开始前端开发,这也是大部分开发人员所期待的:没有依赖注入使用JSX(一种基于JavaScript构建的类似XML的语言),而非经典模板,创建虚拟DOM使用状态管理setState和Context APIXSS保护用于单元测试组件的实用程序不多,却正好够用,您完全可以根据自己的需要,自由添加任何组件库,它们包括:路由:React-router获取 HTTP请求:Fetch(或axios)各种各样的CSS封装技术用于单元测试的EnzymeGoogle 和 Facebook 作为 Web 社区开源项目的主要发起者,彼此之间从未停止过竞争,尤其是关于 Angular 和 React 之间的辩论已经持续了四年之久。但严格来说,将Angular与React进行比较并不完全公平,因为Angular是一个功能齐全、组件丰富的框架,而React只是一个UI组件库。为了解决这个问题,我们将就 Angular 框架中的一些常用组件库与 React 进行对比。组件功能:React VS AngularAngular提供了比React更多开箱即用的功能,如:依赖注入基于HTML的扩展模板由 @angular / router 提供的路由使用 @angular / common / http 的Ajax请求用于构建 @angular /forms 的表单组件CSS封装XSS保护用于单元测试组件的实用程序其中,依赖注入等功能作为 Angular 的核心,您无法选择不使用它们,这好像一把双刃剑,在带来强大功能模块的同时,也使得Angular 变得越来越笨重。当然,Google工程师已经意识到了这个问题,也在一定程度上致力于简化Angular框架的复杂性,希望在 Angular 8 中能让人耳目一新。Vue在React 与 Angular孰优孰劣的讨论逐步升温的时候,另一个JavaScript框架Vue抵达了现场,使得这场最优Web开发框架的角逐变得更加白热化。Vue.js 是由Google的核心开发工程师——尤雨溪(Evan You)所创建的框架,作为一个比 React 和 Angular 都更年轻的框架,Vue 从它们那里借鉴了好的部分,即函数式和面向对象编程的混合体。2014年2月(在微软收购GitHub平台四年之前),Evan You在GitHub上发布了第一个稳定版本的Vue,标志着一个构建数据驱动的 Web UI的渐进式框架就此诞生。尽管没有得到谷歌和Facebook等科技巨头的支持,但自2018 年以来,Vue一直受到开发者的广泛关注。从去年几大主流前端开发框架的热度来看,大多数知晓 Vue 的开发者都表示有兴趣学习它。也许,那些已经熟练掌握Angular和React前端框架的开发人员也应该花些时间去了解一下这个简单、小巧、省心的前端框架,希望下面的内容能对你有所帮助。学习曲线:React VS Vue如果前端框架的学习不包含TypeScript(即便 TypeScript 通常被认为是JavaScript的增集,但要完全掌握仍需要学习额外的类处理过程),那么 React和Vue的学习速率都高于Angular。相对于 React,许多初学者认为Vue的学习成本更低,因为它提供了更加丰富的资源文档和中文支持。事实上,Vue和React学习速率的实际情况是大致相同的,由于大部分Vue的学习资料直接以单个Web应用程序的开发实践开始,直观且清晰的代码逻辑的确可以帮助初学者更快入门,但是,随着学习内容的深入,当您需要开发复杂的Web应用程序时,花哨灵活的指令和逻辑反而会让人觉得Vue比React更难掌控。技术社区:React VS VueReact是一个已经存在近十年的Facebook开源项目,因此它拥有更加成熟的技术社区支持。尽管 Vue 已经成功地在短短几年间吸引了相当多的追随者,但在它真正建立出一整套完善且丰富的生态系统之前,仍需要更多人和时间的打磨。当你看到许多使用Vue完成的项目时,你会注意到,其整体的设计理念更趋向现代化,这是因为 Vue 仍是一个相对较新的框架,比如,这个示例。众多周知,React所包含的工具、组件库和代码包的数量更多,但Vue灵巧、精致和简单却更加令人印象深刻。安全性:React VS Vue前端几乎无安全可言!当然,这里所指的安全性,仅仅是 React 和 Vue 这两个框架之间的对比,相对于React,Vue更为小众且不同,因此在面对大规模黑客攻击的时候,React更容易成为目标。Vue和React同样都容易受到跨站点脚本(XSS)攻击,这也是Web应用程序中最为常见的安全漏洞。XSS攻击允许攻击者将客户端脚本注入到其他用户查看的网页中,以影响其关联的任何JavaScript Web应用程序。PS:缓解此问题的最佳方法是将数据保存在脚本之外,加入黑名单机制并从白名单中进行数据验证。灵活性:React VS Vue这也是争议最大的地方。React 专注于 UI,所以在构建 UI 组件时可以从它那里获得很好的支持。Vue作为一个渐进式框架,只允许使用最基本的功能来构建应用程序,但同时也提供了一些开箱即用的东西:如,用于状态管理的 Vuex、用于应用程序 URL 管理的 Vue Router、Vue 服务器端渲染。Vue剥离了许多元素,相比之下React更加全面。但如果您正在寻找一种精简、新颖、简单易学、样板代码少、高性能、灵活且完整的前端框架,Vue更加适合;当然,如果您打算使用低版本jQuery代码,Vue也同样支持。React的灵活性则更多依赖于其背后强大的技术社区,在 Facebook 的强力支撑下(Facebook 的 React 团队包括了 10 名专职开发人员),提供了更多工具、UI库和教程。如果您的开发理念更趋向全栈文化、跨平台、保持独特、引领潮流而不是跟随,那么您一定会喜欢Vue;但如果您的项目需要大量熟练使用该框架的前端开发者、大量的工具及第三方库,那么您最好使用React。不过小孩子才做选择,您最需要的应该是一个全面兼容 Angular、React和Vue的前端开发工具包——WijmoJS。Vue的未来截至2019年初,Angular、React和Vue之间的竞争持续升温,越来越多的开发人员开始抛弃Google项目,就商业开发工具的提供者而言,Vue的未来一片光明。为开发速度更快的 Web 应用程序而选择了Vue的人有明显的增长,Vue 很有趣,开发起来也很简单。虽然,React依托于其庞大的生态圈,在目前为止,处理更复杂的 Web 项目时占据优势,但随着前端社区内大量 Vue 追随者的出现、Vue 社区稳定增长的良好氛围,都在暗示着 Vue 很快就会变得像 React 一样受欢迎。Angular、React,还是Vue?作者尽量保持着公正的态度,客观地分析了上述三个前端框架,而作为前端开发者,面对 Angular、React 和 Vue,你会作何选择?为什么?如果您有任何问题或意见,欢迎在文末回复讨论。 ...

April 18, 2019 · 1 min · jiezi

在 Angular 8 中,我们可以期待些什么

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。本文由葡萄城翻译并发布Angular 作为一款优秀的前端框架,自诞生之日起,就致力于面向前端开发者提供一整套全功能解决方案。与其他流行框架所追求的理念不同,Angular并非作为一款可以并入 Web 应用程序的轻量级框架而生,而是设计为:包含了一个完整的工作流,用于从项目创建开始,持续地维护并更新你的应用程序。2019对于 Angular来说意义非凡,因为其包含了Ivy 等功能的全新版Angular 8 将于本年内正式发布。尽管 Angular 技术团队仍没有对外公布 Angular 8 正式版发布日期,但其beta版在本月上线已几乎没有悬念。Angular 8的发布近在咫尺!那么,在 Angular 8 中,我们可以期待些什么?Angular 8 中有什么新功能尽管大多数开发者都在关注Ivy,但其实 Angular 8 中还是有很多值得称道的亮点:JavaScript中的差异化加载作为构建过程的一部分,Angular CLI生成的新应用程序现在将包含用于旧版JavaScript(ES5)和现代JavaScript(ES2015 +)的单独软件包。该包在客户端中实现差异化加载,以提高浏览器的加载速度和传输间隔时间(TTI)。这是一个好消息,意味着支持ES2015的浏览器将能够下载更小、更高效的应用程序包,而这些应用程序包的加载速度和渲染速度都比以往更快。Ivy (预览版)视图引擎抢先试用您可在应用程序中开始使用Ivy渲染器,并向Angular团队提供使用反馈,以便其及时做出优化和修复。Angular Router的向后兼容模式Angular 添加了向后兼容模式,以降低大型项目的升级成本。Angular Router将可以使用 $ route APIs 在现有的Angular应用程序中,选择延迟加载部分 Angular 1.x应用程序。在理想的情况下,我们甚至可以立即将Angular 1.x应用程序升级到Angular 2+。然而,现实并非如此。直到今天,还有大量传统的Angular应用程序仍在为企业提供服务。而这些企业没有选择升级的原因很简单:它们运行良好,并且在完成重写时无需太多投入。Angular 1.x的时代已经结束,之后不会有任何新的更新,直到2021年6月30日。因此,对于从事大型Angular 1.x应用程序开发的团队,现在正是选择升级的最佳时间。改良的Web Worker绑定方式Web Worker是编写主线程运行代码的好方法,可用于提高应用程序的速度和并发性。为了达到这一目标,Angular团队在 CLI 中添加了改良的 Web Worker绑定支持。可选的信息共享机制为了有效收集您的反馈,更好地建设 Angular社区,Angular团队在CLI中添加了可选的信息共享机制。在您同意的情况下,将开始收集您的命令行和构建速度等匿名信息。依赖关系更新与往常一样,Angular团队正在更新对TypeScript、RxJS和Node等工具的依赖关系,以便与 Angular 生态系统的其余部分保持同步。Angular Ivy 是什么?作为下一代 Angular 的视图引擎,Ivy的出现旨在彻底缩减代码尺寸并增强系统灵活性。与目前的Angular View Engine相比,Ivy具有以下优势:通过 Angular 编译器生成的代码现在将更容易让开发者阅读和理解项目重建时间将明显加快有效减少了负载大小,浏览器用于下载和解析应用程序的时间将更短更好的模板类型检查,以便您在项目构建初期,就可捕获更多BUG,以防止用户在运行时遇到它们除此之外,Angular Ivy与现有的Angular应用程序广泛兼容。因此,在理想的情况下,您将无需更改应用程序即可获得Ivy的全部支持。这也是为什么使用Angular 8和Ivy构建当前的Angular应用程序会更加便利。Ivy(预览版)可能存在的问题目前已知的是,Ivy 的国际版和Angular Universal版尚未完全兼容。当然,如果您在开发过程中遇到任何使用BUG,请立即向Angular技术团队反馈,以便他们能够及时解决问题并将您的建议作为 Ivy 正式版的一部分。如果您的Angular应用程序支持多语言或使用服务器端呈现数据,请不要指望它能与Ivy完美结合。除此之外,用户可能遇到的另一个问题就是Angular Material,目前来看,使用Angular Material的应用似乎与即将发布的Angular 8预览版Ivy不太匹配。Angular 8 对 Web Worker 的支持对于那些对Web Worker 还不熟悉的开发者来说,Web Worker标志着前端开发中的一项重要创新,在此之前,所有 Web 应用程序仅限于使用单线程。而随着 Web Worker 的出现,可以将CPU分配到单独的硬件线程中,使浏览器环境拥有多线程,从而提升项目开发效率。在Angular 8更新之前,使用 Web Worker需要注意的问题是:在worker中运行的代码不能与应用程序的其余部分位于同一JavaScript脚本文件中。它必须是分开的。因此,对于曾经希望借助Angular CLI等工具,自动将JavaScript文件拆分、绑定到更少文件夹下的效果往往不佳。而Angular 8的新特性之一便是改进了使用Angular CLI捆绑WebWorker的支持,这项改进意味着您将走向多并发、自动化的Web Worker之路。Angular 8 对 TypeScript 的支持关于 Angular 8 中的依赖更新,包括了对Angular依赖项和最新版本的更新,如RxJS和TypeScript等框架。这看起来似乎是一个微小的改进,但却同样受欢迎,特别是TypeScript部分。Angular 8 的性能提升虽然 Angular 8 带来了很多令人称赞的功能,但是真正促使我们升级的很大一部分原因取决于其性能的提升!为证实这一点,我们将对 Angular 7.2 和Angular 8.0.0-beta.7 进行全面对比。该性能测试是基于ng new创建的新应用程序运行,并使用ng build –prod构建的。测试本身使用了Chrome的审核标签完成,通过 “Applied Fast 3G,4X CPU Slowdown” 的设置来模拟在移动设备上运行。Angular 7.2使用Angular 7.2的正式版本生成main.js的大小为240KB。具体数据如下图:Angular 8.0.0-beta.7Angular 8 beta版本的main.js文件大小与Angular 7.2相同:240KB。由此可见,文件大小没有任何改变,但让我们对比一下性能数据:Angular 8 看起来更棒!相对于Angular 7.2,获得了相当不错的性能提升。于是,在 Angular 8 中,我们可以得到些什么正如我们所看到的,Angular 8的新增特性除 Ivy 之外并不是很亮眼,尽管这些特性非常好用,但对于大多数应用程序来说并不重要。基于这一点,您应该将应用程序升级到Angular 8,还是坚持使用Angular 7?毫无疑问,你应该升级它们。即便功能上没有任何大的重大更新,但通过 Angular 8 新增的差异化加载,您将获得显著的性能提升。更重要的是,升级到Angular 8将确保您的应用程序为Ivy做好准备,即便目前 Ivy只是Angular 8提供的一个可选预览。如果您的应用程序需要兼容 Ivy,那么最好从现在开始尝试。或者,您也可以选择一条更加快捷且简便的方式,比如使用一款相当成熟的商业化开发工具——WijmoJS。这样,您就不必考虑项目中前端框架的兼容性和版本更新问题,因为它不但同时兼容了Angular、React、Vue、TypeScript和Ionic 等框架,还时刻紧随技术潮流,第一时间保持对框架最新版本的全面支持。本文是由葡萄城技术开发团队发布,转载请注明出处:葡萄城官网了解可嵌入您系统的在线 Excel,请前往SpreadJS纯前端表格控件与开发人员分享前端技术趋势、交流心得技巧,请加入葡萄城“前端技术交流群”(QQ群:720389894) ...

April 15, 2019 · 1 min · jiezi

10 个不常用但你有必要知道的 html 标签

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。概述HTML 也被称为超文本记语言( hyper text markup language )是为网页创建和其他可在网页浏览器中看到的信息设计的一种标记语言。HTML 被用来结构化信息,如标题、段落和列表等,也可用来在一定程度上描述文档的外观和语义。今天我们将介绍您可能不知道的十个 HTML 标签。虽然不常用,但是一旦遇到使用场景使用起来将是非常方便的。如果您想了解有关 HTML 的更多信息,可以访问 W3Schools 获取更多 HTML 信息。audio:<audio> 标签定义声音,比如音乐或其他音频流。目前支持三种文件格式:MP3,WAV 和 OGG。<audio src="/i/horse.ogg" controls=“controls”>Your browser does not support the audio element.</audio>点击此处查看结果blockquote<blockquote> 标签定义块引用。 <blockquote> 与 </blockquote> 之间的所有文本都会从常规文本中分离出来,经常会在左、右两边进行缩进(增加外边距),而且有时会使用斜体。也就是说,块引用拥有它们自己的空间。Here comes a long quotation:<blockquote>This is a long quotation. This is a long quotation. This is a long quotation. This is a long quotation. This is a long quotation.</blockquote>请注意,浏览器在 blockquote 元素前后添加了换行,并增加了外边距。点击此处查看结果output<output> 标签定义不同类型的输出,比如脚本的输出。标签包含以下属性 for 规定一个或多个元素的 id 列表,以空格分隔。这些元素描述了计算中使用的元素与计算结果之间的关系。 form 规定 <output> 元素所属的一个或多个表单的 id 列表,以空格分隔。 name 规定 <output> 元素的名称。 Internet Explorer 不支持 <output> 标签。<form oninput=“x.value=parseInt(a.value)+parseInt(b.value)">0<input type=“range” id=“a” value=“50”>100+<input type=“number” id=“b” value=“50”>=<output name=“x” for=“a b”></output></form>点击此处查看结果picture<picture> 元素通过包含零或多个 <source> 元素和一个 <img> 元素来为不同的显示 /设备场景提供图像版本。浏览器会选择最匹配的子 <source> 元素,如果没有匹配的,就选择 <img> 元素的 src 属性中的 URL。然后,所选图像呈现在<img>元素占据的空间中。picture 标签的属性如下:srcset (必需) - 定义要显示的图像的 URLmedia - 接受通常在 CSS 中定义的任何有效媒体查询( media queries )例如下面所示<picture><source media="(min-width: 650px)” srcset=“img_pink_flowers.jpg”><source media="(min-width: 465px)" srcset=“img_white_flower.jpg”><img src=“img_orange_flowers.jpg” alt=“Flowers” style=“width:auto;"></picture>根据浏览器的最小宽度的变化,picture 将显示不同的图片点击此处查看结果progress<progress> 标签标示任务的进度(进程)。用于进度条显示<progress value=“22” max=“100”></progress>点击此处查看结果meter<meter> 标签定义已知范围或分数值内的标量测量。也被称为 gauge (尺度)。也可以用于进度条的显示<meter value=“3” min=“0” max=“10”>3/10</meter><br><meter value=“0.6”>60%</meter>点击此处查看结果template<template>标记内的内容本身是对用户隐藏的,通过 JS 可以将其用于重复实例化显示。相当有定义了一个模板,该模板可以通过 JS 重复被调用展示。例如下面定义模板:<template> <img src=” icon.jpg ”></template>在 JS 中可以通过 cloneNode() 方法,来重复实例化显示该模板中的内容:const template = document.querySelecor(‘ template ’);const templateClone = myTemplate.content.cloneNode(true);document.body.appendChild(templateClone);time<time> 标签定义公历的时间( 24 小时制)或日期,时间和时区偏移是可选的。time 主要作用在于可以方便的被爬虫抓取,从而获得相应的数据。time 本身对页面布局没有任何影响例如:<p>我们在每天早上 <time>9:00</time> 开始营业。</p>video与<audio>相对应,<video> 标签定义视频,比如电影片段或其他视频流。<video src="/i/movie.ogg” controls=“controls”>your browser does not support the video tag</video>点击此处查看结果wbrwbr 是 Word Break Opportunity 的简写,规定在文本中的何处适合添加换行符。例如下面的对于较长的单词 XMLHttpRequest 希望在换行时候能够截断换行而不是整个换行的情况下可以使用,下面的代码在换行的时候截断成 XML Http Request 分别进行换行,而不是 XMLHttpRequest 整个进行换行。<p>如果想学习 AJAX,那么您必须熟悉 XML<wbr>Http<wbr>Request 对象。</p>点击此处查看结果本文是由葡萄城技术开发团队发布,转载请注明出处:葡萄城官网了解可嵌入您系统的在线 Excel,请前往SpreadJS 纯前端表格控件 ...

April 3, 2019 · 1 min · jiezi

“宇宙最强” IDE,Visual Studio 2019 正式发布

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。本文由葡萄城翻译并发布今天凌晨Visual Studio 2019已经正式发布,现在已经可以下载了。使用Visual Studio 2019,您和您的团队将在构建当前和未来项目时将变得更有效率,因为您可以从IDE中的新加入的创新功能中获益。正如之前我们分享的那样,Visual Studio 2019在某些领域将会比Visual Studio 2017更加先进。它可以通过简化克隆Git仓库或打开现有项目或文件夹使您开发节奏更有效率。同时改进了项目启动页,使你启动新项目更容易。当在编写代码时,你会注意到Visual Studio 2019改进了代码导航并添加了许多重构选项,包括了文档运行状况指示器和一键式代码清理以应用多个重构规则。Live Share功能也已包含在新版本中,那么Live Share是什么?它是一个团队协作工具,可以通过这个工具与您的团队成员进行实时协作开发,通过一张图可以很好说明这个功能是什么。现在Visual Studio 2019已经默认包含了此功能。Mac系统也迎来了Visual Studio 2019该版本引入了全新的C#编辑器,该编辑器基于Windows平台上的Visual Studio内核构建,提供了更平滑的编辑体验和更强大的代码自动完成和快速修复建议。更多功能,请点击此处了解。全新更好用的启动窗口允许同时启动多个实例移动App和游戏开发者也在Mac平台迎来了全新的Xamarin工具和Unity工具。新发布的IDE能够使你打开及创建不同类型的常见项目:从跨平台C ++应用程序,到使用Xamarin编写的Android和iOS的.NET移动应用程序,再到使用Azure服务的云原生应用程序。Visual Studio 2019的目标是从开发,测试,调试甚至部署支持这些项目,同时最大限度地减少您在不同应用程序,门户和网站之间切换付出的成本。如果您在下载及使用Visual Studio过程中有任何心得和分享,欢迎在下方评论框中分享。Windows下载:https://visualstudio.microsof…Mac下载:https://visualstudio.microsof…注:ComponentOne Enterprise 在即将发布的全新版本中,已经全面支持了Visual Studio 2019,请大家下载试用本文是由葡萄城技术开发团队发布,转载请注明出处:葡萄城官网了解可嵌入您系统的在线 Excel,请前往SpreadJS纯前端表格控件

April 3, 2019 · 1 min · jiezi

使用 SpreadJS制作票据金额输入框

前言 | 问题背景本例是由一位用户提出的实际需求。在类似金额的票据中,一个单元格仅允许填写一位数字,每一个单元格都对应着一个数字位,例如千位、万位、百位等。据此需求进行分析,可知需要实现以下几点基本操作:需要把对应表格区域保护并锁定,不能直接允许用户编辑单元格内容,否则不能保证用户仅输入一位数字;需要针对键盘事件进行监听,通过事件代码为单元格赋值,过滤掉除数字外的其它字符;在一个单元格填写完毕后,活动单元格自动后移到下一个单元格上,不需要鼠标点选或键盘切换。本文基于SpreadJS V12版本,下载请点击。示例代码分析由以上分析可知,首先需要对表单进行保护设置,同时设置一下样式和表头,如下所示:var spread = new GC.Spread.Sheets.Workbook(document.getElementById(“ss”), { sheetCount : 1 });var sheet = spread.getActiveSheet();// 设置表单保护sheet.options.isProtected = true;sheet.setRowCount(5);sheet.setColumnCount(9);sheet.defaults.rowHeight = 60;sheet.defaults.colWidth = 40;var style = sheet.getDefaultStyle();// 设置默认样式的边框style.borderLeft =new GC.Spread.Sheets.LineBorder(“black”,GC.Spread.Sheets.LineStyle.thin);style.borderTop = new GC.Spread.Sheets.LineBorder(“black”,GC.Spread.Sheets.LineStyle.thin);style.borderRight = new GC.Spread.Sheets.LineBorder(“black”,GC.Spread.Sheets.LineStyle.thin);style.borderBottom = new GC.Spread.Sheets.LineBorder(“black”,GC.Spread.Sheets.LineStyle.thin);// 设置对齐方式style.hAlign = GC.Spread.Sheets.HorizontalAlign.center;style.vAlign = GC.Spread.Sheets.VerticalAlign.center;sheet.setDefaultStyle(style);var arr = [“百”,“十”,“万”,“千”,“百”,“十”, “元”, “角”, “分”];for(let i=0; i<arr.length; i++){ sheet.setValue(0, i, arr[i], GC.Spread.Sheets.SheetArea.colHeader);}sheet.setRowHeight(0, 60, GC.Spread.Sheets.SheetArea.colHeader);键盘事件需要绑定到div上,先进行字符过滤,再执行填值和移动单元格操作。如下所示:$("#ss").keydown(function (event) { // 判断是否是键盘数字键 var kc = event.keyCode; console.log(kc); var keyValue = -1; if(kc >= 48 && kc <= 57){ keyValue = kc - 48; }else if(kc >= 96 && kc <= 105){ keyValue = kc - 96; } if(keyValue >= 0){ var sel = sheet.getSelections(); if(sel && sel.length > 0){ var row = sel[0].row; var col = sel[0].col; sheet.setValue(row, col, keyValue); // 调用命令向后移动一个单元格 spread.commandManager().execute({ cmd: “moveToNextCell”, sheetName: sheet.name() }); } }});需要完整示例,请点击此处下载。补充讨论本例仅仅展示了最基础的实现思路,仍有很多没有完善的地方,由于篇幅因素,仅在此处进行讨论补充一下。例如:在用户填写错误时,如何撤销或删除?当页面上还有其他数据区域时,如何做到自动后移单元格不会超出金额区域?这些问题大家可以思考补充。SpreadJS | 下载试用纯前端表格控件SpreadJS,是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于.NET、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。 ...

March 29, 2019 · 1 min · jiezi

在线Excel开发之新人学习笔记 - 工作簿2

Spread JSON 导入导出在SpreadJS表单控件中可以导入导出JSON数据,收集界面的录入数据,数据源序列化若要将表单中的数据源序列化到JSON对象中,可以设置参数includeBindingSource: true,若未设置默认为false.如下图,点击数据源序列化,将上表中的数据源数据导出,在下表中读入:自定义特性序列化一些自定义的特性也支持序列化与反序列化,如下图,点击加样式按钮,为表格的视图及标签区域加入自定义样式,点击自定义特性序列化可将自定义样式也序列化。SpreadJS支持以下自定义特性的序列化与反序列化: 自定义单元格类型, 自定义函数,自定义格式, 自定义函数迷你图, 自定义标签, 以及自定义行筛选。hitTest点击工作表的任何地方,hitTest方法可以返回特定区域》》点击下载本文Demo示例SpreadJS | 下载试用纯前端表格控件SpreadJS,是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于.NET、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。

March 29, 2019 · 1 min · jiezi

使用 SpreadJS 中的图表和公式创建贝尔曲线(Bell Curve)

前言 | 问题背景贝尔曲线(也称为正态分布、Bell Curve)是变量的常见分布类型。贝尔曲线有很多用例,在统计学中,钟形曲线用于模拟各种各样的真实数据。在金融行业,分析师和投资者在分析证券的回报或整体市场敏感度时使用正态概率分布。在这篇文章中,我将讨论如何在Spread.Sheets中设计钟形曲线。我们将使用散点图和内置公式绘制曲线。具体实现让我们用一些公司员工评级的假设数据填写Spread.Sheets。在Spread.Sheets中填充数据的代码如下:spread = new GC.Spread.Sheets.Workbook(document.getElementById(“ss”), { sheetCount: 2 });var dataSheet = spread.sheets[0];dataSheet.setValue(0, 0, ‘Employee Name’, GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0, 1, ‘Employee Ratings’, GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0, 2, ‘Normal Distribution’, GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0, 3, ‘Mean’, GC.Spread.Sheets.SheetArea.colHeader);dataSheet.setValue(0, 4, ‘Standard Deviation’, GC.Spread.Sheets.SheetArea.colHeader);for (var i = 0; i <= 99; i++){ dataSheet.setValue(i, 0, “Employee” +" “+ i);}for (var i = 0; i <= 99; i++) { dataSheet.setValue(i, 1, Math.floor(Math.random() * (50 - 10 + 1)) + 10);}由于钟形曲线显示正态分布,我们将使用SpreadJS的Norm.Dist()来计算数据点。但是,正态分布需要均值和标准差来计算分布值。因此,让我们首先得到这些值的均值和标准差。请注意,需要按递增顺序对值进行排序,以找到正确的均值。spread.getActiveSheet().sortRange(-1, -1, -1, -1, true, [{ index: 1, ascending: true }]);让我们计算平均值和标准差:dataSheet.setFormula(0, 3, “=AVERAGE(B1:B100)”, GC.Spread.Sheets.SheetArea.viewport);dataSheet.setFormula(0, 4, “=STDEV(B1:B100)”, GC.Spread.Sheets.SheetArea.viewport);让我们将这些值放在Norm.Dist公式中以获得分布:for (var i = 0; i <= 99; i++) { var j = i + 1; dataSheet.setFormula(i, 2, “=NORM.DIST(B” + j + “,D1,E1,FALSE) “, GC.Spread.Sheets.SheetArea.viewport);}现在最重要的部分是使用计算的分布来绘制钟形曲线图。在SpreadJS中,我们将Scatter图表的数据范围设置为这些分布值:var chartType = GC.Spread.Sheets.Charts.ChartType.xyScatter;var chart = dataSheet.charts.add(‘Bell Curve’, chartType, 280, 30, 700, 390, “B1:C100”);钟形曲线显示的正态分布结果如下所示:SpreadJS | 下载试用纯前端表格控件SpreadJS,是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于.NET、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。 ...

March 29, 2019 · 1 min · jiezi

在线excel开发之新人学习笔记——工作簿

前端页面中经常需要使用到表格控件,为方便表单的设计填报,今天尝试使用一款纯前端表格控件。控件下载地址:https://www.grapecity.com.cn/…首先初始化Spreadvar spread = new GC.Spread.Sheets.Workbook(document.getElementById(‘ss’), { sheetCount: 2 });此时,页面中表格已经出现。通过以下方法可以增加,清空,删除表单:/——————Spread表单————————–/ spread.addSheet(0); console.log(spread.getSheetCount()); // 3 spread.setSheetCount(1); console.log(spread.getSheetCount()); // 3 初始化时创建了两个 var sheet = spread.getSheet(0); var sheet1 = spread.getSheetFromName(‘Sheet3’); console.log (sheet == sheet1); // 结果:True,此时我页面的 索引为0 的sheet 名字叫 Sheet3 // spread.removeSheet(0); // spread.clearSheets(); // 清空了,一片空白 spread.setSheetCount(4); console.log(spread.getActiveSheetIndex()); // 获取活动表单索引spread.setActiveSheetIndex(3); // 设置活动表单通过一下方法可以控制 表单,标签的一些显示,标签名称背景色等/——————表单名称标签————————–/ // spread.options.tabStripVisible = false; // 标签条 显示控制 // spread.options.newTabVisible = false; var curSheet = spread.getActiveSheet(); //curSheet.options.sheetTabColor = ‘blue’; // 设置当前sheetTab 背景颜色, spread.options.tabEditable = true; // 双击是否可修改表单名称 spread.options.allowSheetReorder = false; // 是否可通过拖拽调整表单顺序 // spread.startSheetIndex(1); // 设置起始的sheet的索引 spread.options.tabStripRatio = 0.8; // 设置TabStrip的宽度,取值0-1滚动条的相关设置//horizontal,vertical;both;none 拖动滚动条给出提示,默认none spread.options.showScrollTip = GC.Spread.Sheets.ShowScrollTip.horizontal; spread.options.showVerticalScrollbar = true; // 控制水平或竖直滚动条是否显示 showVerticalScrollbar,showHorizontalScrollbar spread.options.scrollbarShowMax = true; // 是否基于表单全部的行列总数显示滚动条 spread.options.scrollbarMaxAlign = true; //滚动条末尾是否对齐视图中表单的最后一行或一列背景// spread.options.backColor = ‘red’; //spread.options.backgroundImage = ‘img/bag.jpg’; //同时设置,图片优先 //spread.options.backgroundImageLayout = GC.Spread.Sheets.ImageLayout.stretch; //stretch,center,zoom,none spread.options.grayAreaBackColor = ‘red’;// 配合spread.options.scrollbarMaxAlign = false 使用Spread事件var activeSheetChanged = GC.Spread.Sheets.Events.ActiveSheetChanged; spread.bind(activeSheetChanged,function(){ console.log(‘activeSheetChanged’); }) // spread.suspendEvent(); // 暂停触发事件 // spread.resumeEvent(); // 恢复触发事件 var SelectionChanging = GC.Spread.Sheets.Events.SelectionChanging; spread.bind(SelectionChanging,function(){ console.log(‘SelectionChanging’); }) var CellClick = GC.Spread.Sheets.Events.CellClick; spread.bind(CellClick,function(){ console.log(‘CellClick’); }) var SelectionChanged = GC.Spread.Sheets.Events.SelectionChanged; spread.bind(SelectionChanged,function(){ console.log(‘SelectionChanged’); }) var EditStarting = GC.Spread.Sheets.Events.EditStarting; spread.bind(EditStarting,function(){ console.log(‘EditStarting’); }) var EditEnded = GC.Spread.Sheets.Events.EditEnded; spread.bind(EditEnded,function(){ console.log(‘EditEnded’); })事件触发时控制台打印出相应提示:免费在线版Excel:https://demo.grapecity.com.cn… ...

March 26, 2019 · 1 min · jiezi

如何在WSL下使用VS Code

自微软开始宣布拥抱开源以来,我认为微软发布的最棒的两大功能是:Visual Studio Code(VS Code)和Windows子系统Linux(WSL),有了这两者的结合,它为软件开发人员开辟了一条新的编写代码的途径。WSL使开发人员能够在Windows 10上运行Linux环境,而无需付出更多使用虚拟机时的开销。使用WSL,我们可以从Windows应用商店上安装大多数Linux正式版,我们甚至还能在其GUI上运行Bash shell脚本和Linux应用程序。本文提供了详细的WSL配置分步说明,便于我们能够通过WSL在Linux上运行VS Code。虽然本文的标题是《 在WSL下使用VS Code》,但也同样适用于其他GUI应用程序。本文中使用的软件包括:Windows 10 1809Ubuntu 18.04Visual Studio Code 1.30.2MebaXTerm 11.1本文目录:启用WSL安装Linux下载并安装MobaXterm启动MobaXterm并打开X Server在已安装的Linux上安装X Client启动VS Code除了Windows 10和VS Code之外,我们还需要X Server和X Client来使VS Code与WSL协同工作。在Linux的世界中, X Window System扮演着为构建GUI环境必要的基本框架角色。 X Window System使用客户端 - 服务器模型,已实现与远程计算机以图形界面连接。 因此,要使用我们的本地计算机(例如笔记本电脑)连接到远程Linux计算机,我们需要:在远程Linux机器上运行X Client应用程序在本地计算机上运行X Server应用程序远程X客户端与本地X服务器建立连接并提供该应用程序的图形界面。所以使用此技术,就可以使用WSL运行VS Code。X Server为我们提供了我们要运行的图形环境,由于WSL的Bash不支持X Server,因此通过选型在这里我选择了配置更为简单的MobaXterm。打开WSL功能在我们安装Linux发行版之前,我们需要启用WSL。 为此,首先在搜索栏上输入“打开或关闭Windows功能”。然后在打开的窗口勾选 “WSL”单击“确定”按钮后,我们可能需要重启机器。现在,我们在Windows 10上启用了WSL。(有关WSL的更多详细信息,请访问https://docs.microsoft.com/en…)安装Linux(Ubuntu)如果启用了WSL功能,那么我们就可以将Linux安装到Windows 10上了。在Windows应用商店搜索Ubuntu。安装完成后启动启动Ubuntu后,请按照说明创建用户帐户。Ubuntu全部配置完成后,我们继续安装MobaXterm安装并设置MobaXterm首选我们从官网下载MobaXterm,他们官网提供了绿色版和安装版两种版本。选哪个看个人喜好,实际使用上区别不大,我这里使用的是绿色版。解压完成后启动程序,点击启动X Server(如下图)而后,X Server就启动了。配置X Client如开头所述,X Client是我们想要远程访问的应用程序。在本文里,这个应用程序是VS Code。 为此,请按照以下步骤操作:启动命令提示符在命令提示符下,键入bash以进入Ubuntu bash。输入命令 $ export DISPLAY=localhost:0.0. 我们也可以在 ~/.bashrc添加这个命令, 这样我们每次登录时就都不需要再重复这样的工作了<g class=“gr_ gr_9 gr-alert gr_tiny gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace” id=“9” data-gr-id=“9”>in.export DISPLAY=localhost:0.0 告诉X Client应用程序的具体IP信息,因为我们在本机执行该命令,所以使用的是localhost,如果你使用的是远程计算机,请改掉localhost部分安装VS Code现在,我们可以下载VS Code并安装到Ubuntu上。在这我们使用Firefox下VS Code,这能再之后减少很多麻烦。命令如下:$ sudo apt update$ sudo apt install firefox启动Firefox以下载VS Code下载的VS Code Debian软件包应该位于 ~/Download.目录内$ cd ~/Download$ sudo dpkg -i code_1.30.2-1546901646_amd64.deb注:如果因为一些依赖问题而导致安装失败,请先安装依赖库,如下:$ sudo dpkg -i code_1.30.2-1546901646_amd64.debSelecting previously unselected package code.(Reading database … 42604 files and directories currently installed.)Preparing to unpack code_1.30.2-1546901646_amd64.deb …Unpacking code (1.30.2-1546901646) …dpkg: dependency problems prevent configuration of code: code depends on libnotify4; however: Package libnotify4 is not installed. code depends on libnss3 (>= 2:3.26); however: Package libnss3 is not installed. code depends on libxkbfile1; however: Package libxkbfile1 is not installed. code depends on libgconf-2-4; however: Package libgconf-2-4 is not installed. code depends on libsecret-1-0; however: Package libsecret-1-0 is not installed. code depends on libxss1; however: Package libxss1 is not installed. dpkg: error processing package code (–install): dependency problems - leaving unconfiguredProcessing triggers for mime-support (3.60ubuntu1) …Errors were encountered while processing: code安装依赖库sudo apt install libnotify4 libnss3 libxkbfile1 libgconf-2-4 libsecret-1-0 libgtk-3-0 libxss1如果出现如下错误,请尝试sudo apt -fix-broken install命令重新安装Reading package lists… DoneBuilding dependency treeReading state information… Donelibgtk-3-0 is already the newest version (3.22.30-1ubuntu1).libgtk-3-0 set to manually installed.You might want to run ‘apt –fix-broken install’ to correct these.The following packages have unmet dependencies: libgconf-2-4 : Depends: gconf2-common (= 3.2.6-4ubuntu1) but it is not going to be installed Recommends: gconf-service but it is not going to be installed libnss3 : Depends: libnspr4 (>= 2:4.12) but it is not going to be installed libsecret-1-0 : Depends: libsecret-common but it is not going to be installedE: Unmet dependencies. Try ‘apt –fix-broken install’ with no packages (or specify a solution).安装完成后,启动VS Code。$ code注意:一旦我们启动了VS Code,我们可能会无法移动或调整VS Code的窗口。这是因为自VS Code 1.30以来默认启用了Linux上的自定义磁贴和菜单栏。 为了能够避免这一问题,我们需要将设置更改为native。首先,打开VS Code设置。[文件 - >首选项 - >设置]其次,在搜索栏上键入title bar,然后选择native。重启VS Code,现在我们应该已经可以移动和调整VS Code窗口和大小了。结论使用WSL和X Server,我们可以在Windows 10上安装Linux并使用图形界面运行Linux上的应用程序。 但是,这时候可能有人会问,我们为什么要这样做? 为什么不直接在Windows上使用VirtualBox或VMware等虚拟机或者使用其他Linux机器?当然,大多数情况下这些方式没有问题,但在某些个别情况下,这样的方式并不适用。 例如:没有强大的工作站,运行虚拟机会导致机器很慢。没有预算购买另一台机器来运行Linux。由于网络的延迟,在云上运行带有图形界面的应用程序可能会很慢。WSL提供了一种简单而廉价的解决方案,我们可以在我们更熟悉的Windows 10环境中运行Linux和Linux应用程序。本文是由葡萄城技术开发团队发布,转载请注明出处:葡萄城官网了解葡萄城开发工具了解葡萄城开发者解决方案 ...

January 30, 2019 · 2 min · jiezi

ActiveReports报表控件 V13 正式发布,提供在线报表设计和自适应报表布局

重磅消息, ActiveReports V13 正式发布!本次更新 ActiveReports 将给您带来全新的报表设计体验:提供在线报表设计器、提供响应式布局和屏幕尺寸自适应能力、提供全新的图表……在列举 ActiveReports 新功能之前,请下载安装程序,以便尽快体验立即试用 ActiveReports V13以下是ActiveReports V13中主要更新特性:在线报表设计器:用拖拽的方式,在 Web 应用程序和浏览器中在线设计报表!JSViewer:基于 JavaScript,为用户提供响应式布局和屏幕尺寸自适应能力。全新图表:用于 RDL 和页面报表的新图表,提供更强的交互体验和性能增强报表导入工具:区域报表可以随意转换为RDL报表和页面报表单元格自动合并:后一列的单元格会根据前一列的合并情况来判断是否进行合并富文本框增强:支持更多的HTML标记和属性,可以在设计界面立即看到文本在运行时的结果VSDesigner增强:在Visual Studio集成的报表设计器中扩展Visual Studio主题ActiveReports在线报表设计器此前,ActiveReports提供了多种用于设计报表的工具,如VSDesigner,Visual Studio加载项和独立的桌面端设计器。与此同时,ActiveReports 报表设计器组件也可以嵌入到您的应用系统中,方便您的最终用户进行报表设计。如今,在 ActiveReports V13 中,又推出了一款轻量级但功能强大的 Web 端在线报表设计器。只需几行代码,您就可以轻松地将其嵌入到您的网站和应用程序中,从而使您的用户能够设计、创建和修改报表。ActiveReports 在线报表设计器的出现,意味着您能够在 ActiveReports 设计界面中打开现有报表,并可以在其中操作布局样式、创建新报表,以及在富文本编辑器(WYSIWYG)中预览它们。ActiveReports 在线报表设计器具有熟悉、直观、设计感十足的UI,通过简单的操作,就可以实现:将控件从工具箱拖放到设计界面更改控件的位置和大小修改控件属性,如数据绑定,格式或表达式使用内置预览功能可快速了解运行时结果与桌面设计器一样,ActiveReports 在线报表设计器可完全自定义,以便实现:在最终用户使用设计器时,控制可用功能项,如预览、导出、图表功能等。JSViewer: 基于 JavaScript,为用户提供响应式布局和屏幕尺寸自适应能力ActiveReports 拥有一个快速且强大的报表引擎,在 ActiveReports V13 中又创造了一个全新的报表查看器,以进一步增强 ActiveReports 产品的功能。JSViewer 基于纯 JavaScript 编写,可以在任何现代浏览器上运行,为用户提供快速的报表渲染体验。JSViewer 支持主要的Web应用程序框架,包括 Angular、Vue、ASP.NET Core、ASP.NET MVC 和 HTML。JSViewer 包含在 ActiveReports 中,为企业级报表解决方案增加了更多应用价值。JSViewer 具有许多现有 ActiveReports 和 .NET 用户熟悉的功能。通过使用类似 .NET 的语法来嵌入和自定义 JSViewer,从而最大限度地减少了用户学习曲线。除此之外,JSViewer 还具有以下功能:一键式打印导出为常用格式(PDF,Excel等)控件上的交互式排序CSS主题使用 ActiveReports V13 中的图表,增强报表数据交互和渲染性能除了在线报表设计器和 JSViewer 之外,ActiveReports V13 中还对图表进行了改进。这是 ActiveReports V13 中实现的又一个功能和主要特性!这些图表专门为Web上的RDL和Page报表创建,它们提供更强的交互性和全面改进的性能。(RDL和页面报表的增强图表)注:ActiveReports V13 兼容了此前版本的报表设计器和经典图表,您可以在最新版 ActiveReports 中继续使用他们。使用 FormattedText 控件在报表中嵌入更多HTML(在报表中呈现HTML)FormattedText是 ActiveReports 中流行的控件之一,用于在报表中呈现HTML文本。在 ActiveReports V13 中,又增强了 FormattedText 以支持更多HTML标记和属性。此外,用户现在可以在设计时看到控件中的渲染文本,以确保在 WYSIWYG 显示正确结果。新的HTML标记和属性包括表格、文本对齐和样式。VSDesigner 加载项增强:使用 Visual Studio 主题(VSDesigner中的扩展Visual Studio主题)ActiveReports 是将报表设计器直接集成到 Visual Studio 中的少数几家报表工具供应商之一。通过将 Visual Studio 主题扩展到 ActiveReports 设计器及其支持窗口,以扩展这种集成的深度。这为报表设计人员提供了一个很好的UI样式支持。以上就是 ActiveReports V13 中的主要新特性介绍,想了解更多产品信息和新功能,请登陆 ActiveReports 官网。针对本次新版本发布,我们还推出了 ActiveReports V13新版本发布公开课,欢迎大家预约收看观看地址:http://live.vhall.com/552006188 ...

January 25, 2019 · 1 min · jiezi

“别更新了,学不动了” 之:全栈开发者 2019 应该学些什么?

对于什么是全栈开发者并没有一个明确的定义。但是,有一件事是肯定的:2019 年对全栈开发者的需求量很大。在本文中,我将向你概述一些趋势,你可以尝试根据这些趋势来确定你可能要投入的时间。简单地说,全栈开发者就是可以构建完整应用程序的人。他们了解前端和后端技术、工具和服务,并结合所有这些技能开发出可以在生产环境中运行的东西。这是美国全栈开发者在 2019 年的工资走势:人生苦短,所以尽量少做无用功。如果你希望保持最新状态并成为全栈开发者,以下是你需要了解并考虑列入学习计划的 2019 年技术趋势。前端基础HTML、CSS 和 JavaScript 是必须掌握的,你还需要学习 React、Vue 或 Angular 等前端框架或库。但是,你应该选择哪一个?对于一个真正的全栈开发者,你可以在 2019 年选择这三个框架中的任何一个。来自React 16 的更新你需要了解 React 的基础知识及其基于单向数据流架构的组件。今年我们看到了 React 16 的大量更新和 2019 年即将发布的一些小版本更新。新的生命周期方法;React 16.6 中的 Suspense for Code Splitting(已发布);带有 React Hooks 的 16.x 版本(2019 年第一季度);带有并发模式的 16.x 版本(2019 年第二季度);带有 Suspense for Data Fetching 的 16.x 版本(2019 年中)。这意味着你需要知道如何使用 React.lazy() 和 < React.Suspense> 进行代码拆分,使用 React.memo 进行优化,并时刻关注新功能,如 React Hooks,它可能会给 React 生态系统带来重大改变。我们现在还有标准化的 React Context API,你应该对它有一个基本的了解。React 生态系统将在 2019 年继续发展和演化。它这不仅限于 Web,在移动、物联网和 AR/VR 等不同平台上移植和使用 React 的能力将使其变得越来越重要,并在 2019 年领先于其他 2 个库。Vue 3.02018 年,Vue 持续获得开发者的青睐,2019 年将会继续增长……但它是否足以超越其他两大玩家?我们拭目以待。Vue 生态系统正在不断发展,而且,随着 Vue 3.0 的发布极其改进的 Vue CLI,2019 年的开发者体验将比以往更好。开发者可以使用 Vue Native 进行跨平台开发(就像 React Native 那样),我们已经很接近 React 那样的大型生态系统,但还是有一大段距离。Vue 有一个非常有趣的趋势,它将在 2019 年继续增长:阿里巴巴、百度、腾讯、小米和 DJI 等中国科技巨头更喜欢 Vue。预计中国市场将继续保持快速增长,因为 Vue 是一个独立的开源库,与西方的大型科技巨头无关。Angular Ivy 和 Angular Elements新的渲染引擎 Ivy 即将推出,性能将会得到大幅提升。Ivy 将成为 Angular 渲染引擎的第三个化身,它的目标是成为更小、更快、更简单的编译器。Angular Elements 将使我们能够在 Angular 以外的其他环境中使用 Angular 组件。简单地说就是你可以构建可以被添加到不使用 Angular 的 HTML 页面中的组件,有点像 Web 组件。现在,我可以使用 Angular 创建世界上最好的组件,并将它交给我的朋友,她将它用在她的 React 应用程序中!2019 年,Angular 将继续做他们擅长的事情:提供一个功能齐全的框架,用于构建丰富的 Web 应用程序。Angular、Vue、React——更小更快总的来说,2019 年将看到这 3 个前端库的发展。如前所述,你只要掌握其中一个,就已经为进入新的一年做好了准备。预计在 2019 年,这些库都会发生微小的变化,提高渲染速度并缩小库的体积……但它们都不会带来任何重大改进来压倒其他库。CLI 将会风靡你必须使用 babel、webpack、eslint、测试库和其他工具搭建项目脚手架的日子已经一去不复返了。我的意思是,我们仍然可以这么做,但 CLI 确实让这种体验变得更好了。Angular CLI;Create React App 2;Vue CLI。2019 年,我们将在 CLI 中看到越来越多的改进体验。状态管理Vue 将继续使用 Vuex 进行状态管理。Angular 将继续主要使用 RxJS。随着新的 Context API 的问世和 GraphQL + Apollo 的普及,React 今年则遭遇了一点危机。很长一段时间以来,Redux 第一次被认为不是状态管理的明智选择。你仍然需要学习 Redux,因为你可以从 Redux 中学到一些有用的计算机科学原理,如事件溯源和 CQRS。新的 Context API、Redux 和 GraphQLApollo 内置的离线客户端缓存将使 Apollo + GraphQL 在 2019 年成为 Redux 的一个重要替代品(当然,从技术上讲,可以同时使用它们)。新的 Context API 问世了,很多人称它为 Redux 终结者。2019 年,你需要了解它们三者,了解它们的工作原理,以及它们可以用来解决哪些问题。但如果从就业方面来看,学习 Redux 仍然是一个很好的选择。服务器端渲染服务器端渲染在 JavaScript 领域仍然是一个待解决的问题。我们知道,单页应用程序和客户端渲染很容易让项目出现代码膨胀,而且需要向客户端发送太多的 JavaScript 代码,而且可能会影响你的 SEO(但可能没有你想象的那么多)。有一些方法可以解决这个问题,例如:PRPL 模式、prerender.io,或者你可以这么想,其实谷歌机器人在抓取单页应用程序时没有那么糟糕。目前,如果要进行服务器端渲染,可以使用:用于 React 的 Next.js;用于 Vue 的 Nuxt.js;用于 Angular 的 Angular Universal。静态页面正在重新刮起一阵流行风,你可以看看 JAM Stack:https://www.netlify.com/blog/…它的主要思想是:预构建标记(静态页面),通过利用服务器的 API 在客户端成为动态单页面应用程序。这将在 2019 年真正改变服务器端渲染,我预测会有更多人使用像 GatsbyJS 这样的工具,而不是自己构建复杂的服务器端渲染逻辑。Web组件浏览器采用的 Web 组件终于离我们想要的标准越来越近了。2019 年,我们将看到更多关于 Web 组件的讨论,但它仍然不会在 2019 年达到临界点。你可以密切地关注它们,但不需要花费大量时间在掌握如何构建 Web 组件上。你可以了解 React、Angular、Vue 和普通 HTML 的组件,但很难说 Web 组件会在什么时候得到大规模采用并为我们带来主要的好处。性能每个人都喜欢谈论性能。2019 年,代码拆分可能会成为标准实践,更多新的优化图像格式(如 WebP)将会发挥越来越重要的作用。人们仍然会讨厌谷歌的 AMP。你应该学习并为 2019 年做好准备的是:针对 Angular、React、Vue 的特定优化;代码拆分;Tree Shanking;只传输必要的 JavaScript 代码;更加关注你正在使用的 NPM 库,并最大限度地减少库的大小;制定性能预算;通过使用 CDN 和浏览器优先级工具更好地确定资源优先级。PWA渐进式 Web 应用程序在 2019 年仍然会很热门,但它最复杂的功能可能不会流行起来(即推送通知)。大多数情况下,你将使用 HTTPS、App Shell 和 Service Worker 来获得一些额外的脱机功能、安全性和性能。你应该学习如何构建 PWA,并使用像 Lighthouse 这样的工具来测试它。Safari 最终为 PWA 添加了一些支持,实现渐进式 Web 应用程序功能可能会更容易一些。但说到底,你需要先学会使用 manifest.json 文件和 Service Worker。谷歌正在这方面努力推进,但不要指望在 2019 年会看到任何突破。后端别担心!2019 年的后端世界并不会像前端世界那样疯狂。HTTPS 无处不在需要将用户输入的数据发送到服务器的网站必须使用 HTTPS。如果你没有使用 HTTPS,谷歌将会惩罚你。幸运的是,HTTPS Everywhere 或 Gaddy 让迁移到 HTTPS 变得更容易。REST 与 GraphQLRESTful API 在 2019 年还会存在,你需要学习如何实现和设计这些 API。你应该学会使用 Node.js 和 Express.js 来创建 API 服务器,在 2019 年,这两个框架的组合仍然会占主导地位。现在出现了很多有关 GraphQL 的炒作,但它还不是可以赢得所有市场的大赢家。了解 GraphQL 可以解决哪些问题,以及如何在 RESTful API 中用它来进行路由优化。这将是 2019 年最重要的趋势:不是如何单独使用 GraphQL,而是如何在极少数情况下使用 GraphQL 优化一些 RESTful API 路由。HTTP2HTTP2 变得越来越普遍,你需要知道如何使用这个协议来优化内容的传输。此外,HTTP3 正在开发当中,你可以关注它,但它并不是你在 2019 年需要过分关注的东西。基础设施即服务需要自己构建和管理服务器的场景越来越少,以下是 2019 年的主要选择。Digital Ocean——用于简单的服务器。Heroku——用于简单和集成的服务器和部署。Now——用于超级简单的部署。Firebase——用于托管基础设施和数据库。AWS——几乎任何你想要的东西,你可以永远不需要考虑自己管理服务器。你需要学习 SQLFirebase、AWS 等托管数据库将继续增长,但你还是需要学习 SQL。2019 年,像 PostgreSQL 这样的数据库将继续发展,而像 MongoDB 这样的 NoSQL 数据库似乎会有所下降。你可能需要了解每种方案的优点和缺点,因为在数据库领域并没有可以解决所有问题的完美解决方案。不要把搜索给忘了搜索可能不是绝对必要的,但它是 Web 的重要组成部分。2019 年,全栈开发者可以试着了解下面两个平台:Elasticsearch;Algolia Search;你可能需要学习 Redis了解使用 Redis 作为缓存以及内存存储的工作原理。缓存和内存存储是 2019 年需要学习的重要概念,可以用它们来优化你的系统。Redis 是理解这些概念的一个很好的起点。测试学习三种测试类型很多人都在讨论这个话题,但为了简单问题,可以将测试分解为三种类型:单元测试:给定输入,测试输出,用于测试单个函数或类。集成测试:测试流程或组件是否按预期运行(包括副作用)。端到端测试:测试用户的实际行为,不仅仅是测试一个简单的功能。保持简单测试框架有很多选择,但下面是 2019 年最好的两个组合:Jest(https://jestjs.io/)Mocha + Chai + Sinon + Istanbul将 Jest 视为一体化的测试框架,就不需要像第二个选项那样添加其他工具和库。如果你想要简单些,只需使用 Jest。如果你想要更多可定制性和模块化,请选择 Mocha。如果你还了解这些,那是锦上添花:Mock、Spy、存根和快照测试。适当的端到端测试就可以了进行端到端测试需要公司投入大量的成本,所以在你的职业生涯中有可能会也有可能不会遇到这种测试。但不管怎样,在 2019 年,你最好可以学习这些框架,或至少可以了解一下:Cypress;Nightwatch;Protractor,适合 Angular 爱好者。移动开发跟移动开发说再见?移动开发在 2019 年的日子可能会有点难过。应用程序的下载量不像过去那么多,而且最热门的下载要么是游戏,要么是大型科技公司的应用程序。2019 年,移动端 Web 浏览量将超过原生移动应用程序。因此,对于全栈开发者和移动开发者而言,他们应该将更多的关注点放在移动设备 Web 应用程序上(例如使用 PWA)。iOS 和 Android 仍然是企业所需要的重要开发技能,但在过去几年中对它们的需求一直在下降,似乎出现了从原生移动开发到 React Native 引领的混合开发(或接近原生)的重大转变。如果你看一下上面的图表,React Native 已经取代了 Swift,它是原生 iOS 开发的主要编程语言。以下是你需要关注的开发技术:React Native 在 2018 年遭遇了一些挫折,一些大公司在博文说他们正在放弃它。但这些公司都曾经尝试将 React Native 添加到他们现有的 iOS 或 Android 代码库中。如果你是这方面的新手,对于你来说,它仍然是 2019 年的一个很好的选择。它将会继续增长下去。Flutter 在 2018 年非常火爆,但现在判断它在 2019 年将会怎样发展还为时过早。你需要关注它,但到目前为止,它并没有带来比 React Native 更显著的优势。Ionic 和 NativeScript 的使用将在 2019 年逐渐减少,除非你正在使用 Angular,否则你不应该关注它们。所以,在 2019 年,请继续关注 React Native。工具你应该使用的 NPM 包Prettier——让你可以专注于你正在写的代码,而不是去关心代码的格式;https://prettier.io/eslint——保持代码整洁;https://eslint.org/date-fns——moment.js 的轻量级替代品;https://date-fns.org/lodash——主要用于 throttle() 和 debounce() 函数;https://lodash.com/rambda——如果你真的喜欢函数式编程。https://ramdajs.com/JavaScriptJavaScript 是饱受争议的编程语言之一。2018 年,静态类型在 JavaScript 的动态类型领域变得越来越受欢迎。那么竞争者有哪些?TypeScript:可以编译为 JavaScript 的 JavaScript 超集。Flow:JavaScript 的静态类型检查器。Reason:利用了 JavaScript 和 OCaml 生态系统的类型语言。PureScript:一种强类型语言,可以编译为 JavaScript,使用 Haskell 开发。Elm:纯粹的函数式编程语言,可以编译成 JavaScript。关于静态与动态类型语言的讨论由来已久,不会很快就得出结论。以上这些都不会取代 JavaScript 作为 Web 主要编程语言的主导地位。但是,Angular 和 Vue 都采用了 TypeScript,并将其作为开发者社区的标准,因此,TypeScript 可能会继续增长,并超越上述其他语言。你需要学习 TypeScript 的基础知识及其原理(以及静态类型的好处),但要注意,它并非写出好代码的唯一方法。要写出好代码,可以先关注如何写出好的单元测试。模块捆绑器Webpack 4 和 Parcel 是 2019 年的主要工具。它们都朝着降低复杂性和更多“为用户着想”的方向发展,很多前端库都提供了 CLI。学习这两个工具,但请记住,CLI 在项目开始时帮你消除掉最初 80%的复杂性。如果要发布 NPM 包,请使用 Rollup。计算机科学基础数据结构 + 算法讨论技术趋势的文章很少会提到计算机科学基础知识。但这可能是最重要的主题,而且我可以非常自信地说,这个趋势具有 99.99999%的准确率:如果你想在 2019 年和未来几年成为一个全栈开发者,计算机科学基础是非常重要的。计算机科学基本原理不怎么会发生变化,并且已经存在了很长时间,不会像开发库那样,一旦有新东西出来就变得过时了。容器和 serverless容器为我们提供了与几年前完全不同的架构,其中的一个主要的想法是 serverless。serverless 并不是说不需要服务器了,而是说有人为你管理服务器(基础设施),你可以专注于自己的应用程序逻辑,无需担心扩展性等问题。serverless 的流行始于 2017 年,并持续到了 2018 年。2019 年,我们将看到一些相同的常见用例,比如 AWS API Gateway 与 AWS Lambda 的结合,供前端应用程序代码调用。在降低成本的同时提高性能是一个好主意,如果冷启动问题在 2019 年可以得到解决,那么它将变得越来越流行。平台即服务 / 后端即服务亚马逊、谷歌和 Azure 将在 2019 年争夺服务器市场,它们当中的每一个都提供了全托管的服务。AppSync、Amplify、App Services、App Engine 等服务将继续发展,但由于程序员很难放弃如此多的控制权(除非是小型的个人项目),所以它们并不会真正有大起色。2019 年,Azure 将主导企业市场,AWS 将主导一般的开发者市场,而谷歌将主导机器学习市场。机器学习2019 年,你需要学习并了解如何通过以下 API 使用机器学习模型:Google Cloud AI;亚马逊机器学习;Azure 机器学习;除了之前列出的平台即服务和后端即服务,还会有更多的服务出现,这些大公司提供的机器学习 API 和模型将在 2019 年成为一个更重要的趋势。你应该学会在未来的项目中使用其中一些(不用担心,它们使用起来没有那么难,就像使用大多数其他 API 一样)。2019 年,我们将可以看到机器学习 API 在 Web 上的应用,而不是从头开始构建自己的机器学习模型。因为与上述大型科技巨头不同,大多数人或公司无法为机器学习提供足够的资源或数据。WebAssemblyWebAssembly 集将继续缓慢改进,但仍然只有一小部分开发者会使用它(主要用于游戏、图像处理)。你可以先了解它,在几年后等它成为主流时你就是这方面的专家了。以上是我的个人意见,不管怎样,学习新东西绝不是一个坏主意。但不论技术风向如何变化,葡萄城一直都秉承着为开发者着想,赋能开发者的企业理念,同时为开发者提供技术领先、功能可靠的一站式开发工具、解决方案及技术服务。本文是由葡萄城技术开发团队发布,转载请注明出处:葡萄城官网 ...

January 18, 2019 · 3 min · jiezi

新的尝试!ComponentOne WinForm 和 .NET Core 3.0

在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持Windows桌面应用程序,包括Windows Form、Windows Presentation Framework(WPF)和UWP XAML。届时在 .NET Core 3上将能运行Windows桌面应用程序,在享受 .NET Core新架构优势便利的同时,兼容老的 .net应用。目前为止,.Net Core 3.0 的首个预览版已正式发布,而正式版本也将在今年全面推出。作为经典的全功能 .NET控件集,ComponentOne技术团队一直专注于行业未来的发展方向,2019年 ComponentOne 将继续增强产品功能、增加新的控件并全面兼容 .Net Core 3.0。在此之前,ComponentOne 技术团队一直致力于研究框架和库的变化和兼容性。因此,在 .Net Core 3.0正式版中使用任何 ComponentOne 控件将不需要进行任何更改(由于某些类缺少,有些控件当前在 .Net Core 3.0 预览版中不起作用。要了解未解决的问题,请跳至本博客的最后一部分)。现在,我们将以 ComponentOne 其中一个Demo为例,看看如何将它移植到 .NET Core 3.0 中,此步骤与GitHub上的步骤类似。先决条件安装 .NET Core 3.0 SDK。选择适当您的平台下载安装程序(如果您使用的是64位操作系统,请使用x64;如果您使用的是32位操作系统,请选择x86)。本Demo是使用VS2019运行的,您可以在此处下载预览版。安装ComponentOne WinForms Edition(在此处获取免费试用版)。如果已安装本程序,则可以跳过此步骤。运行步骤第1步考虑到VS2019预览版中的工具有限,缺少WinForms的项目模板,我们将使用命令提示符创建一个新项目。打开命令提示符并运行以下命令:dotnet new winform -o TestWFCore上述代码会创建一个名为TestWFCore的新项目。该项目位于c: Users(YourAccount)下通过命令提示符导航到项目目录cd TestWFCore第2步通过命令提示符添加Windows兼容包,如下所示:dotnet add package Microsoft.Windows.Compatibility第3步使用dotnet run运行应用程序以确保项目正常工作。dotnet run你将看到:Hello .NET Core!现在我们可以在Visual Studio中打开它。Visual Studio中的项目第4步我们将在.Net Core 3.0中运行现有示例,我们将在此位置进行移植“ComboBoxItemModes”输入示例:〜 Documents ComponentOne Samples WinForms C1Input CS ComboBoxItemModes将上述示例中的所有csharp文件链接到此项目。同时包含licences.licx,它位于Properties文件夹下。将licenses.licx文件标记为嵌入资源。大多数现有项目都包含Properties文件夹中的AssemblyInfo.cs文件。新项目样式使用不同的方法,并在构建过程中生成相同的程序集属性。要禁用该行为,可以添加属性GenerateAssemblyInfo:<PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWindowsForms>true</UseWindowsForms> <generateassemblyinfo>false</generateassemblyinfo></PropertyGroup>第5步添加C1.Win.Input程序集的参考。第6步修改program.cs文件以创建Form1的实例并运行该应用程序。这类似于任何WinForms应用程序。 class Program { static void Main() { Application.Run(new Form1()); } }第7步构建并运行应用程序:Demo 示例下载按照上述步骤,我们创建了一个简单的示例,用于在 .NET Core 3.0 中运行不同的 ComponentOne 控件,段尾提供了 Demo 的下载示例。在运行示例之前,请查看自述文件。您将在以下位置找到 .NET Core 3.0 项目文件:〜 DotNetCore3Sample WinForms CS DotNetCore3 DotNetCore3.NET Core 3示例.NET Core 3.0预览中的问题目前,由于 .NET Core 3.0 预览版尚未移植 WinForms 类,FlexGrid、TrueDbGrid、ThemeController和Command在 .NET Core 3.0 预览版中运行时会出现bug。这些bug会在下一个预览版中得到修复:https://github.com/dotnet/cor…最后伴随着 .NET Core 3.0的到来,以及 WinForm 和 WPF 的开源,ComponentOne 也将迎来更多改变,针对桌面应用程序、.NET Core Web API,ComponentOne将推出一系列全新控件和增强功能。期待 ComponentOne 2019 将带给您更多惊喜!ComponentOne EnterpriseComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。 ...

January 17, 2019 · 1 min · jiezi

“被狗啃”的按钮引发的开源社区信任危机

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。本文由葡萄城技术团队于博客园原创并首发昨天,在国外民众还在欢度圣诞期间,开发者社区却对 Antd 开发团队发起了连番的炮轰。一觉醒来,他们发现由自己参与设计的、公司内网、办事系统等网页上,有一些按钮的上面多了一团白色的“积雪”,在白背景下,看着有点像是被“咬掉”了一块似的,不仅如此,将鼠标指向变化了的按钮时,原本设定好的文字说明也统一变成了“Ho ho ho”,这是“圣诞老人”标志性的笑声。原因是库中暗藏了一个未事先告知的圣诞彩蛋、而且也没法手动禁用,导致许多项目方遭遇了客户投诉。从评论来看,网友们的情绪普遍比较激动,不少人表示“老板问我按钮为什么被狗啃了”、“今天的工作就是给客户们解释我们代码没有被注入”。软件彩蛋的本意是指常用软件当中隐藏了一些小东东,这些小东东我们称之为复活节彩蛋。复活节彩蛋的内容包含的很广,从单纯的列出开发人员名单到各类小游戏都有,但它们都有一个共同的特点就是用户是可控的。我们常用的软件如Windows、Office以及我们用来上网的浏览器IE中都有这样的彩蛋。但号称专注于企业级应用的一个UI库,那么不严肃。敢问哪个老板喜欢这样的“惊喜”?随意调侃节日的UI库,除了这次的圣诞,后面还会不会有元旦、春节、劳动节?事件出现后,在代码托管网站 GitHub 和社交媒体上,开发者们及吃瓜群众表现出了一边倒批评的态度 ——“我留意到按钮组件的上方出现了一块雪花?这是圣诞节彩蛋吧?为什么不经过开发者的允许就擅自加上了?”有人说虽然自己觉的很可爱,但这样的彩蛋不可取有说自己是XX委的,没丢工作还得多亏了自己的小姨子有人说自己看到彩蛋很惊吓,有种失控的感觉也有吐槽英文拼写错误的… AntD这套框架是由支付宝母公司蚂蚁金服设计团队制作的一套开源的前端框架。据蚂蚁金服设计团队今年9月的数据,Ant Design 1.0在发布之后的8个月中,就已经在 GitHub 上收获了 11686 个”星标“。这意味着至少有这些数量的程序员关注,并使用了AntD到自己的项目上。就是这一得到业界广泛关注和使用的基础组件,突然在毫无预警,也没有功能开关的前提下,给所有使用者的按钮控件”下了一场雪“——而且还是在”生产环境“中,不出意外,今天这个彩蛋自己就能自行消失,如果仍然没有消失,请查看作者提供的修复方式:https://github.com/ant-design…AntD是一个采用了 MIT 许可协议的开源项目,所以开发者并不需要为受到损失的开发者承担任何责任。既然做开源项目放到 GitHub 上就是赚个吆喝,不为盈利,也不承担法律责任,那么很显然,“信任”就是一个项目最为金贵的核心价值。开源软件的每一个细节,都暴露在“阳光之下”,只要有心,人们都可以发现。所以理论上任何一点想拿开源产品“图谋不轨”的做法都不会得逞。但是,今天这起事件的发生,又反映了什么?为什么理应有人看到并监督的问题,却安静地躺了两个月都没人发现?开源社区持续出现类似的问题,信任危机也许也只是刚刚开始。后续也许会再次发生此类事件,开发者除了需要认真检查每次的更新外,自己造轮子也可以杜绝这样的问题,但幸亏在这个时代葡萄城有着众多真正出色的企业级商业软件,相信选择使用葡萄城成熟的商业软件:SpreadJS、WijmoJS 是一个更不错的选择,毕竟一家优秀的厂商会为开发者承担所有可能出现的风险这点很重要。最后,让我们祝福他们做的更好。【作者推荐】前端开发工具包 - WijmoJSWijmoJS 前端开发工具包由多款高效、灵活的纯前端控件组成,全面支持 Angular、React、Vue、TypeScript、Knockout 和 Ionic 框架,用于快速搭建企业级桌面/移动 Web 应用程序。WijmoJS 可灵活应对客户需求变化,缩短新项目研发周期,高效处理海量用户数据,提升产品核心竞争力。借助葡萄城深厚的技术底蕴,WijmoJS 为各领域用户提供更稳定、更高效的前端开发工具,帮助中国招商银行、微软、思科、特斯拉、富士通等知名企业快速搭建其 Web 应用程序。WijmoJS 凭借先进的触控设计、全面的框架支持、顶级的控件性能、零依赖的产品特性和易用、轻松的操作体验,全面满足前端开发所需,已成为构建企业 Web 应用程序最高效的纯前端开发工具包。

December 26, 2018 · 1 min · jiezi

【Visual Studio 扩展工具】如何在ComponentOne的DataTree中实现RightToLeft布局

概述C1FlexGrid提供了创建轮廓树的功能,其中可以显示缩进结构,每个节点行旁边都有折叠/展开图标。 然后,用户可以展开和折叠轮廓以查看所需的细节级别。 为此,C1FlexGrid允许您使用其Tree属性和Subtotal方法。现在,如果有任何关于:如何将网格绑定到分层数据源并在子网格中显示细节的想法,ComponentOne已经提供了一个“DataTree”演示,用来实现相同的效果。这个Demo默认存放在这个位置中:Documents ComponentOne Samples WinForms C1FlexGrid CS DataTree。这是通过从C1FlexGrid控件派生控件(C1FlexDataTree)来实现的。 绑定时,控件会检测从属数据源并创建其附加实例以显示子表。但是,如果需要在此分层显示中设置RightToLeft布局,则需要通过代码处理此问题。以下就是具体实现步骤:实现从右到左的布局本文将介绍通过代码处理这些子网格的呈现来实现从右到左布局的步骤。 按照下面提到的两个步骤这将很容易实现:首先,我们将父网格的RightToLeft属性设置为RightToLeft.Yes值。this._flex.RightToLeft = System.Windows.Forms.RightToLeft.Yes;接下来,在C1FlexDataTree.cs的UpdatePosition方法中,子位置和客户端大小计算如下:rc.X = rc.Left - parent.ScrollableRectangle.Width;rc.Y = rc.Bottom;rc.Width = Cols[Cols.Count - 1].Left;rc.Width = Math.Max(Cols[Cols.Count - 1].Left, parent.ScrollableRectangle.Width);点击此处,下载示例DemoComponentOne Enterprise | 下载试用ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛

December 19, 2018 · 1 min · jiezi

【Visual Studio 扩展工具】如何在ComponentOneFlexGrid树中显示RadioButton

概述在ComponentOne Enterprise .NET控件集中,FlexGrid表格控件是用户使用频率最高的控件之一。它是一个功能强大的数据管理工具,轻盈且灵动,以分层的形式展示数据(数据呈现更加直观)。FlexGrid 简介FlexGrid 是业界推崇的 .NET 数据表格,集成于 ComponentOne Enterprise .NET控件集中,可灵活、轻量、快速用于 WPF、WinForm、UWP、MVC、Silverlight、ActiveX平台。分层数据展示在分层数据展示中,FlexGrid 可以使用Node.Checked属性在任何节点行之前显示CheckBox。 然后,父节点之前的这些复选框可用于添加功能,例如启用/禁用或选择/取消选择树中的所有子节点。假设用户想要利用RadioButton来代替这些复选框,并且,需要在对子节点进行“选择/取消”按钮操作时,同时影响父节点状态的功能,利用 FlexGrid 数该如何实现?是否有可能在树中显示单选按钮?答案是肯定的。 诀窍是使用 FlexGrid网格中子节点的Node.Image属性显示RadioButton图像。Node child = c1FlexGrid1.Rows.AddNode(1);child.Image = Image.FromFile("../../Resources/Img_Unchecked.png");我们刚刚展示了效果图。 现在,我们需要在改变“选中/取消”父节点时同时影响子节点状态。 为了满足这一要求,FlexGrid 网格的CellChecked事件将是一个不错的选择。当用户改变父节点当前状态时,它会被触发。private void C1FlexGrid1_CellChecked(object sender, RowColEventArgs e){ //Get the checked/unchecked node row Node node = c1FlexGrid1.Rows[e.Row].Node; //If node row is itself a parent if (node.Parent == null) { //If checked if (node.Checked == CheckEnum.Checked) { //For each child row foreach(Node childNode in node.Nodes) { //Enabled childNode.Row.AllowEditing = true; childNode.Row.StyleNew.BackColor = Color.White; } } //If unchecked else if(node.Checked == CheckEnum.Unchecked) { //For each child row foreach (Node childNode in node.Nodes) { //Disabled childNode.Row.AllowEditing = false; childNode.Row.StyleNew.BackColor = Color.LightGray; } } }}接下来,如果通过网格的MouseDown事件中的代码启用了子节点,它将处理单选按钮的切换。private void C1FlexGrid1_MouseDown(object sender, MouseEventArgs e){ HitTestInfo hti = c1FlexGrid1.HitTest(e.Location); //Get node row corresponding to clicked row Node node = c1FlexGrid1.Rows[hti.Row].Node; Rectangle cellBounds = c1FlexGrid1.GetCellRect(hti.Row, hti.Column); //If it is a child row if(node.Parent != null) { //Only for RadioButton if (hti.Column == 1 && node.Level == 1 && (hti.X >= cellBounds.X + 33) && (hti.X <= cellBounds.X + 43)) { //Check if enabled if(node.Row.AllowEditing) { //Currently unchecked if (Convert.ToInt32(node.Key) == 0) { //Checked state node.Image = Image.FromFile("../../Resources/Img_Checked.png"); node.Key = 1; } //Currently checked else { //Unchecked state node.Image = Image.FromFile("../../Resources/Img_Unchecked.png"); node.Key = 0; } } } }}在上面的代码中,我们在Node.Key属性中存储二进制状态:0表示未检查状态,1表示已检查状态。以上就是关于:如何在ComponentOne FlexGrid树中显示RadioButton的具体做法。与此同时,如果需要显示RadioButton以外的控件,ComponentOne 也同样支持!ComponentOne Enterprise | 下载试用ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛 ...

December 19, 2018 · 1 min · jiezi

关于ComponentOne For WinForm 的全新控件 – DataFilter数据切片器(Beta)

概述数据切片器在电子商务网站上很常见 - 它们可以帮助用户快速过滤所选商品,并且所有过滤选项都可以在一个地方使用,通常包含核心控件类型为:清单,范围栏和单选按钮等。在ComponentOne For WinForm 最新版 2018V3 中,我们推出了数据过滤器的测试版,可以附加到任何数据感知控件中。滤镜布局由手风琴面板组成,它为过滤条件提供了扩展/折叠选项:以下就是ComponentOne For WinForm DataFilter控件的一些用法。使用DataFilter过滤仪表板中的多个控件仪表板是DataFilters的最佳实践,因为屏幕上的所有信息都可以在一个地方以交互方式进行过滤,从而使用户可以通过选择从数据中获取更多信息。 此外,每个视觉所触及之处都可以连接到DataFilter以进一步向下钻取。当产品目录涉及大量有关产品的信息时,数据切片器将会派上用场:将DataFilter控件集成到FlexGrid中在处理Grid或TreeView等数据控件时,切片器可以是一个有用的交互式过滤工具。 当用户需要在多个列上进行过滤时,可以更轻松地将它们全部设置在一个位置:WinForm DataFilter的体系结构DataFilter使用C1CollectionView进行过滤。 C1CollectionView 功能类似于 .NET CollectionView,它支持对集合进行过滤、分组和排序。在系统内部,当数据过滤器根据用户选择创建过滤器表达式时,表达式将传递给C1CollectionView。 C1CollectionView创建数据源的视图,并根据此表达式应用过滤器。WinForm DataFilter的用户界面数据过滤器控件使用的基本布局是“抽屉效果”。 即,每个过滤器项目一个接一个地堆叠,其中每个过滤器项目都可以折叠和展开。在DataFilter中自动选择过滤器类型该控件为不同类型的数据生成不同的过滤器控件:对于布尔数据字段,DataFilter控件生成一个BoolFilter,由复选框表示。对于数字数据字段,控件将生成RangeFilter,它提供范围编辑器和范围滑块以过滤指定范围内的值。对于文本/字符串数据字段,控件生成ChecklistFilter,允许用户从清单中选择和过滤项目。对于DateTime数据字段,控件生成DateRangeFilter,它提供范围编辑器和范围滑块以过滤指定日期范围内的值。异步过滤异步过滤最常见的使用场景是处理大数据时避免阻塞UI。 DataFilter控件中有一个名为ApplyFilterAsync的内置方法,就可以实现异步过滤。保存并加载过滤器DataFilter控件支持通过C1DataFilter类的SaveFilterExpression和LoadFilterExpression方法进行序列化。SaveFilterExpression方法将当前过滤器表达式从C1.Win.DataFilter.C1DataFilter.Filters集合保存到XML文件。 LoadFilterExpression方法从XML文件加载保存的过滤器表达式。设置WinForm DataFilter控件的样式C1DataFilter类提供了一个Styles属性,可用于自定义DataFilter控件及其元素的外观。 在这里,您可以看到如何编辑按钮、过滤器、复选框、编辑器、标题、过滤器标题和滚动条:将 ComponentOne 主题应用于DataFilterDataFilter支持ComponentOne For WinForm中包含的所有主题,包括最近添加的Material和Office 2016主题。 使用C1ThemeController即可在应用程序范围内应用主题:DataFilter在许多应用程序中非常有用。请下载试用最新版 ComponentOne Enterprise .NET控件集,体验产品并分享您的建议和反馈,以帮助我们改进产品体验,并添加在2019年v1即将发布的 ComponentOne 新版本上!ComponentOne Enterprise | 下载试用ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛

December 19, 2018 · 1 min · jiezi

“Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!

概述Material Design设计规范的受欢迎程度和实用性已经引起了 ComponentOne 技术团队的重视。ComponentOne Enterprise 2018V3 版本将全面支持Material specs的功能集。 在此之前,我们已经在ASP.NET MVC和JavaScript控件中添加了 Material 支持。 随着Material Design的日益普及,我们的桌面用户也将可以使用, ComponentOne For WinForm在2018V3中针对材料设计规范增加了全新的主题设计。将材料主题添加到 WinForm 应用程序ComponentOne For WinForm Edition中添加了全新的Material和Material Dark主题。 这些主题即可作为 ComponentOne 主题,也可应用于 WinForm 平台以及大多数常用的Microsoft 框架中。 这两个主题提供两种不同的配色方案,但遵循相同的材料原则和颜色规格,甚至可以作为未来材料主题的基本元素。 与Material Dark相比,Material主题是一个更为轻松的主题。以下是 ComponentOne 控件在默认主题和Material主题中的外观比较:使用WinForm Material Theme Designer创建新主题Material Design颜色系统由主要颜色和次要颜色组成。 这些颜色反映了您的应用程序的主题和样式。 ComponentOne中提供的 Material Designer是一个交互式设计器,可让您为Material主题选择主要和次要风格样式。您可以保存主题并在以后直接将其应用于WinForm应用程序。WinForms Material Designer要更改主题的配色方案,请按照以下简单步骤操作:运行Material Theme Designer示例。单击“设置”选项卡,然后根据您的品牌/主题选择模板和强调颜色。使用C1控件预览主题的外观。单击cog图标以打开应用程序菜单。单击“保存主题”将主题保存在首选位置。请参阅材料主题设计器:将Material Themes应用于WinForm 应用程序材料主题设计器可以在 WinForm 应用程序的设计阶段和运行阶段启动。 您可以在设计时使用“主题控制器”对话框或通过修改“App.config”文件来应用主题。 要在运行时启动,请使用C1ThemeController静态类来应用主题。使用主题控制器对话框在Visual Studio的表单设计器中打开应用程序中的表单。从设计器的工具箱中,拖动C1ThemeController并将其放在表单上。将出现ThemeController对话框。这使您可以选择:应用程序范围的默认主题,当前控制器的默认主题,所有支持控件的主题已经在表单上。在弹出的对话框中,主题最初被指定为“(none)”,适用于表单上已有的控件。这样做可以防止无意中更改这些控件上的属性设置。单击对话框中的全部(默认)按钮,以便在所有控件上设置默认主题。注意:如果您已经自定义了一些控件,则会忽略此控件,并且不会还原默认主题。从可用内置主题列表中选择“材质”。您还可以选择使用Material Theme Designer创建的材质主题。单击上面提到的全部(默认)按钮,在窗体上的所有支持控件上设置默认主题。单击确定按钮以关闭对话框并将指定的主题应用于窗体上的控件。使用App.config文件确保您的产品路径下包含C1.Win.C1Themes.dll。 您可以在App.Config中添加以下应用程序设置以应用基本主题:<configuration> <appSettings> <add key=“C1ApplicationTheme” value=“Material”/> </appSettings></configuration>使用代码确保您的产品路径下包含C1.Win.C1Themes.dll。在加载前在您的应用程序中添加以下代码。C1Theme theme = C1.Win.C1Themes.C1ThemeController.GetThemeByName(“Material”,false);C1ThemeController.ApplyThemeToControlTree(control, theme);自定义材质主题(高级)C1Theme Designer应用程序允许为WinForm Edition中的任何控件轻松设计新主题。 它还允许您编辑/修改现有主题以实现您选择的外观,或与应用程序主题匹配。 您可以进一步使用此应用程序将Material主题调整到控件允许的最精细级别。主题是一个带有.c1theme扩展名的XML文件,它由一组属性及其值组成(它决定了控件的外观)。 主题在内部划分为对应于不同控件的不同部分。 所有其他控件都可以访问“基本主题属性”部分。 此部分包含子部分“材质”,该部分存储可以更改为创建不同材质主题的“材质”属性。例如,下面让我们尝试更改FlexGrid的材质主题,其中标题是主要颜色。如何使用WinForms Material Theme Designer1、 从ComponentOne开始菜单打开ComponentOne主题设计器。 按Ctrl + N或文件>新建。 选择“材质”作为新主题的基本主题。2、 单击BTP编辑器按钮(1)。 这将打开一个新的基本主题属性编辑器。 选择“材料”属性(2)。 在这里,您可以看到材质中使用的不同颜色:3、 转到主题树并展开C1FlexGrid节点。4、 展开C1FlexGrid>样式>固定节点。 此节点将保存固定(标题)单元格的样式。5、 选择ForeColo下拉列表以打开颜色选择器。6、 您可以在选择器下拉列表中选择“参考”选项卡以选择主要颜色。7、 您可以保存此主题并按照“在应用程序中应用材料主题”部分中的说明使用它。 您的FlexGrid现在应该具有基于主要颜色设置的标题颜色。欢迎您下载体验 ComponentOne Enterprise,并与我们分享您是如何设计桌面应用程序以及Material主题如何与您的应用程序协同工作的宝贵经验。ComponentOne Enterprise | 下载试用ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛 ...

December 18, 2018 · 1 min · jiezi

【Visual Studio 扩展工具】使用ComponentOne中的属性保存和还原布局

概述在此前的ComponentOne中,我们为C1FlexGrid(最快,最灵活的.Net数据网格控件)添加了一个非常强大的动态分组功能,这篇技术博客《将动态分组添加到.NET表格控件FlexGrid中》是通过GroupDescriptions属性为我们演示了此功能。 随着ComponentOne Enterprise 2018v3版本的正式发布,ComponentOne For WinForm 中的C1Flexgrid又向前推进了两个新属性:GroupDefinition和SortDefinition。GroupDefinition和SortDefinition的用例目前,C1FlexGrid允许您在GroupPanel上拖动列,实现在运行时执行分组。 但是,如果您希望将网格再次恢复到相同的分组状态,该怎么办? 例如,如果您需要按区域分析销售信息,则可以将Country和City列拖到GroupPanel,对数据进行分类并分析信息。 但是,如果其他人必须执行相同的分析,或者您需要在下次访问时继续从同一状态继续,则您希望C1Flexgrid以特定间隔保存您的分类,然后将网格恢复为相同状态。这就是GroupDefinition属性派上用场的地方。同样,如果需要以动态预定义排序状态设置网格,则SortDefinition是您应该查找的属性。如何使用这两个新属性1.GroupDefinition:获取/设置包含C1FlexGrid分组状态的XML格式的字符串。Save:使用GroupDescriptions属性对网格进行分组或通过在C1FlexGridGroupPanel上拖动列后,可以使用GroupDefinition属性保存C1FlexGrid的分组状态,如下所示:Properties.Settings.Default.GroupInfo = _flexgrid.GroupDefinition;此属性以XML格式保存组信息,如下所示: <GroupDescriptions> < GroupDescription PropertyName = “ShipCountry” SortDirection = “Ascending” Group = “True” /> < GroupDescription PropertyName = “ShipCity” SortDirection = “Ascending” Group = “True” /> < GroupDescription PropertyName = “ShipName” SortDirection = “Ascending” Group = “False” /> </GroupDescriptions>Load:在用户设置等某个位置保存状态后,您可以通过分配“组定义”属性来使用此信息加载相同的组状态,如下所示: _flexgrid.GroupDefinition = Properties.Settings.Default.GroupInfo;2.SortDefinition:获取/设置包含C1FlexGrid排序状态的XML字符串。Save:在对单个/范围的网格列进行排序后,通过设置列的Sort属性或单击列标题,可以使用SortDefinition属性保存C1FlexGrid的排序状态,如下所示:Properties.Settings.Default.SortInfo = _flexGrid.SortDefinition;此属性以XML格式保存组信息,如下所示:<ColumnsSort> < ColumnSort ColumnIndex = “0” ColumnName = “ShipCountry” Sort = “Ascending” /> < ColumnSort ColumnIndex = “1” ColumnName = “ShipCity” Sort = “Ascending” /> < ColumnSort ColumnIndex = “2” ColumnName = “ShipName” Sort = “Ascending” /></ColumnsSort>Load :保存排序信息后,可以使用它将网格恢复为相同的排序状态,如下所示:_flexgrid.SortDefinition = Properties.Settings.Default.SortInfo;我们希望 ComponentOne 中增加的新属性使您更方便地保存和加载组/排序状态,也同样希望 ComponentOne 能为您带来更敏捷的开发体验。ComponentOne Enterprise | 下载试用ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛 ...

December 17, 2018 · 1 min · jiezi

【Visual Studio 扩展工具】使用 ComponentOne迷你图控件,进行可视化数据趋势分析

概述迷你图 —— Sparklines是迷你的轻量级图表,有助于快速可视化数据。 它们是由数据可视化传奇人物Edward Tufte发明的,他将其描述为“数据密集,设计简单,字节大小的图形。”虽然迷你图不包含传统图表中的许多元素(如轴和坐标), 基于它们的简单性,它们可以比其他图表类型更具信息性。 由于其紧凑的尺寸,迷你图可以轻松嵌入数据网格或仪表板中,以显示一系列价值观的趋势,例如销售数据、天气或股票市场。Sparklines in FlexGrid将迷你图用于数据网格是很常见的,因为它们为表格数据添加了丰富的可视化功能,而不会占用太多空间。 随着ComponentOne 2018 v3的到来,FlexGrid控件提供了在网格列中显示迷你图的功能。 让我们通过一个非常常见的用例来理解这个功能 —— 分析特定月份不同公司的股票趋势。使用迷你图可视化分析股市趋势迷你图提供即时趋势信息。 这正是股市分析师所需要的 —— 即时趋势的金融数据。在上面的示例中,该网格数据显示了2018年10月份不同公司的股票信息,包含最近一周的交易量(过去7天的交易量)、前一周交易量(前7天的交易量)、超过一周的交易量(原始和百分比)以及整个月的交易量趋势。现在,我们来看看如何在FlexGrid中实现它。创建迷你图表绑定到数据源将FlexGrid绑定到包含表示数字集合的字段的数据源。 例如,实现IEnumerable或INotifyCollectionChanged接口的字段,如Array,List或ObservableCollection。我们将网格绑定到一个包含以下内容的数据源:有关最新周交易量、前一周交易量、两者之间的变化和百分比变化的信息,以及10月份不同公司的交易量数字集合。一旦绑定了数据网格,就可以深入探索我们需要使用的属性,以便在FlexGrid中显示迷你图。使用ShowSparkline和Sparkline属性引入了Column类的ShowSparkline和Sparkline属性,以便在集合所代表的数据的相应单元格中显示迷你图。 因此,为了可视化一个月交易量的趋势,只需将列的ShowSparkline属性设置为true,如图所示。Column volumeTrendCol = c1FlexGrid1.Cols[“VolumeValues”];volumeTrendCol.Caption = “Volume Trend Last 31 days\n as of 31-10-2018”;//Set the Column’s ShowSparkline property to true to show sparklines in that columnvolumeTrendCol.ShowSparkline = true;您可以选择三种不同类型的迷你图,即Column,Line和WinLoss,以便在不同的上下文中可视化数据。线条迷你图、列迷你图和WinLoss迷你图例如,线条迷你图适用于可视化连续数据,例如销售数据。 列迷你图用于涉及数据比较的场景,例如,比较特定年份的月利润。同样,WinLoss迷你图最好用于可视化真假判断(即取得胜利)场景,例如,跟踪体育赛季。在这里,由于我们有连续数据(一个月的交易量),因此我们将使用线型迷你线。 为了设置sparkline类型,您需要使用Column类的Sparkline属性检索Sparkline对象。然后,将检索到的对象的SparklineType属性设置为SparklineType.Line。 您还可以使用标记突出显示迷你图上的各个数据点,以使其更具可读性。 例如,要突出显示迷你图中的最高和最低交易量值,请将Sparkline类的ShowHigh和ShowLow属性设置为true,如下所示://Sets the type of SparklinevolumeTrendCol.Sparkline.SparklineType = SparklineType.Line;//Highlight the highest and the lowest data pointsvolumeTrendCol.Sparkline.ShowHigh = true;volumeTrendCol.Sparkline.ShowLow = true;您还可以使用不同的样式选项更改迷你图的外观。Sparklines的样式FlexGrid控件的命名空间[C1.Win.C1FlexGrid]提供了一个名为SparklineStyles的类,它可以自定义Sparkline的外观,例如轴的颜色、数据点的颜色、迷你图主题颜色等。 此外,还可以更改迷你图轴距、不同系列图距、 winloss迷你图中两条线之间的距离,以及迷你图中线条的粗细。点击此处,下载示例Demo,您可以亲自尝试一下 ComponentOne 迷你图。ComponentOne Enterprise | 下载试用ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛 ...

December 17, 2018 · 1 min · jiezi

ComponentOne 产品经理:为什么要从C1Report迁移到FlexReport

概述如果你正在使用ComponentOne Enterprise 的Reports for WinForm 报表控件(C1Report),你一定会喜欢更为强大的FlexReport!FlexReport是一个改进的C1Report,使.NET开发人员能够根据应用程序的业务需求解决复杂问题。 借助ComponentOne的2018v2版本,FlexReport提供了创建复杂报表的能力。 FlexReport的架构建立在C1Report之上,因此您将快速掌握C1Report以及其他一些用法。 FlexReport代码是从头开始编写的; 因此,在从C1Report迁移到FlexReport时,您会发现API中的以下重大更改。ComponentOne技术团队现在鼓励C1Report用户将他们的报表迁移到FlexReport,这样就可以获得更快的数据处理能力和更轻量的产品架构。从C1Report迁移到FlexReport的五大理由FlexReport比C1Report快两倍。FlexReport的新架构和后续更新架构有助于支持常见的布局功能,例如并排分页两个子报表等。FlexReport对象模型类似于C1Report,因此针对C1Report的大多数简单代码都可以在FlexReport中使用。FlexReport提供了段落字段、排序、计算字段和添加多个数据源等新功能。 参数更容易添加和编辑。 使用捕捉线、标题、部分轻松添加字段和设计报表 - 这些都在设计器中,因此您无需对其进行任何编码。FlexReport是一种跨平台解决方案。 它不依赖于WinForms / GDI +。 相反,新引擎的渲染基于DirectX / DirectWrite,并且应该相对容易移植到XAML / UWP平台并在这些平台上呈现更好。 FlexReport可在Winform,WPF和UWP平台中使用。FlexReport性能改进我们在许多标准用例上测试了FlexReport和C1Report,以证明性能的提升。 了解有关FlexReport的更多信息,并将其性能与C1Report进行比较。此表提供FlexReport和C1Report功能比较:准备从C1Report迁移到FlexReport?按照这个步骤将基于C1Report的报表迁移到FlexReport吧!ComponentOne Enterprise | 下载试用ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛

December 17, 2018 · 1 min · jiezi