# 2020 v2

## Content



### General

**Improvements**

*   Initial release of Zip .NET Standard library.
*   The Licensing model has been updated from 2020v2 release.

### CalcEngine

**Bug Fixes**

*   Fixed the issue of Code function from the ExcelEngine having wrong syntax name.
*   Fixed the issue of C1CalcEngine throwing an exception for some functions when custom engine was inherited from ExpressionEngine and used classes based on the IExpression interface.
*   Fixed the issue of The StartsWith function containing a typo in the name.

**Improvements**

*   Added the GetItemsCount method to the ExpressionEngine class. This method gets a count of data source items.
*   Added localization strings for the Japanese language.
*   Added the updated the C1.DataCollection from 1.0.20201.12 to 1.0.20201.23.
*   Removed the GetField and GetSourceItems methods from the ExpressionEngine class.
*   Added the VBASemanticDictionary class as public. You can use this class to declare VBA-like syntax for your custom engine.
*   Added the the Token class as public. You can use this class to develop your custom engine based on ExpressionEngine.
*   Added the Token property to the IExpression interface.
*   Added the AddVariable method. This method adds a variable that can be used when evaluating the expression.
*   Added the ISupportVariables interface. This interface defines methods for supporting variables. The IEngineExtended interface contains the to IEngineExpressionItems, ISupportAliases and ISupportCustomFunctions interfaces.

### Data Collection

**Bug Fixes**

*   Fixed the issue of C1FilterDataCollection not specifying index of Replace notifications.
*   Fixed the issue of Avoid executing query in C1FilterDataCollection if filter expression is null.
*   Fixed the issue of C1DelegateList returning cached Count incorrectly.
*   Fixed the issue of C1CollectionViewDataCollection throwing exception if inner collection view implemented IEditableCollectionView but returned false in CanAddNew.
*   Fixed the issue of C1CollectionViewDataCollection throwing exception if inner collection view implemented IItemProperties but returned null.

**Improvements**

*   Added C1SpanDataCollection.
*   Added support for ISupportEditing interface in C1CollectionViewDataCollection.
*   Added the conversion of NotifyCollectionChangedEventArgsJsonConverter to C1.DataCollection.Serialization.
*   Added C1.DataCollection.Serialization library.

### Data Connector

**Bug Fixes**

*   Change the function name "length" to "len", "substr" to "substring".

### C1.AdoNet.OData

**Bug Fixes**

*   Fixed the issue of convertion datetime in query.
*   Fixed the error occuring when using concurrent pooling and cache.
*   Fixed the Issue when filtering by string contains special characters.
*   Fixed the issue of Entity object not propagating after executing insert/update.
*   Fixed the issue of hiding C1ODataConnection from toolbox.
*   Fixed the issue of hiding C1ODataCommand from toolbox.
*   Fixed the issue of Database locked on cache mode.
*   Fixed the issue of Multi cache file created with only one remote server.
*   Fixed the issue of error when executing multi-statements query.

### C1.AdoNet.D365S

**Improvements**

*   Implement scaffoding for Dynamics 365 provider.

### C1.AdoNet.Salesforce

**Improvements**

*   Initial release of C1.AdoNet.Salesforce provider.
*   Initial release of C1.EntityFrameworkCore.Salesforce.

### C1.AdoNet.Kintone

**Improvements**

*   Initial release of C1.AdoNet.Kintone provider.
*   Initial release of C1.EntityFrameworkCore.Kintone

### Data Engine

**Bug Fixes**

*   [DataEngineDesigner sample\] Fixed the issue of error when adding multiple category fields to a chart.
*   [DataEngineDesigner sample\] Fixed the issue of error when modifying query bound to a chart with multiple category fields.
*   [DataEngineDesigner sample\] Fixed the issue of error executing query containing a field from a deleted table.
*   [DataEngineDesigner sample\] Fixed the issue of preventing the user from entering non-existent field names.
*   [DataEngineDesigner sample\] Fixed the issue of inconsistent behavior when the original design surface was deleted.
*   [DataEngineDesigner sample\] Fixed the error while binding a string field to a gauge control.
*   [DataEngineDesigner sample\] Fixed the issue of updating gauge label when the binding value is changed.
*   [DataEngineDesigner sample\] Fixed the issue of error when adding a field to multiple pivot grid collections.
*   Fixed the issue of errors in samples when new license applied.

**Improvements**

*   Added C1.Web.Api.DataEngine as an allowed caller.
*   Added the updated MVC package reference to 2020 v2.
*   Removed GCDTLicenses.xml files from samples.

### TextParser

**Bug Fixes**

*   Fixed the issue of C1.Win.TextParser not accepting old Eng/JPN SE license keys due to obfuscation.
*   Fixed the issue of License Exception occuring and application running properly although old and new license was not activated.
*   [WPF\] Fixed the issue of activating with WPF product key not getting licensed athough "ComponentOne WPF Edition" is added in gclm on building the project.
*   [WPF\] Fixed the issue of old license trial expired message shown and license exception occuring although new trial license is available or new product key is activated.

**Improvements**

*   Added enterprise license.
*   Added improved changelog generator.
*   Added support to both old and new license system.