https://extend.castsoftware.com/api/delta/export/release-notes/format/markdown?id=com.castsoftware.dotnet&major=1&minor=2

1.2.7-funcrel

Resolved Issues

Following issues are resolved in this release of the analyzer.

Internal IDCall IDDescriptionImpact?
DOTNET-986-Non Regression Tests setup for .NetAfter the fix, Non Regression Tests runs fine, irrespective of the number of times it is run.
DOTNET-997-Random failures of Non Regression Tests for .Net due to random projects execution

Random order of projects during execution is fixed.

DOTNET-1005-NRT Failures when xaml files are present in Test app

The fix handles the differences between the multiple analysis' on same version caused due to generated Files of .Net.

DOTNET-1094-NullReferenceException during devirtualizationException is fixed.

1.2.6-funcrel

Resolved Issues

Following issues are resolved in this release of the analyzer.

Internal IDCall IDDescriptionImpact?
DOTNET-91320646Massive increase in warnings mainly of the type GUID duplicate found : CAST_DotNet_ClassExternal after upgrading extension.

Regression fixed, but few GUID duplicate warnings are remaining.

DOTNET-965-Uncaught exception while processing target EntryPoint

Exception does not occur anymore.

DOTNET-969-SSL in .Net extensionA change has been implemented in preparation for the future support of encrypted SSL connections to CAST Storage Service/PostgreSQL.
DOTNET-97122353DOTNET.0156: An unexpected exception occurred while loading project

The exception was occurring when the .NET analyzer was installed in a folder containing spaces characters. The issue is fixed.

DOTNET-98122535Analysis of XXX.csproj has failed. An unexpected error happened leaving the analysis in an unknown stateException does not occur anymore.
DOTNET-988-CS0433 errors related to extractions

These errors were related to two conflicting extraction, errors removed.

DOTNET-990-On local functions we get the warning: DOTNET.0020: Error while processing visitor: MethodBodyVisitor

This error was occurring on local functions with the arrow syntax. We do not generate any more CASTIL code for these local function until some other fixes on lambdas.

DOTNET-99522791DOTNET.0156: An unexpected exception occurred while loading projectException does not occur anymore.
DOTNET-99622793.NET analysis is failing with warning: System.ArgumentException: Illegal characters in pathException does not occur anymore.

1.2.5-funcrel

Updates

New technology support

This extension now supports:

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-974-create_link call crashing with entity 1.4.4 extensionThe analyzer no longer crashes
DOTNET-984-get_inherited_types() method is broken

In Python extensions the method get_inherited_types() was not working for some base types, depending on the analysis configuration. This is now fixed.

1.2.4-funcrel

Updates

Packages.config file support

This extension now supports 'packages.config files' which gives more accurate analysis (less messages in DOTNET.0150 and DOTNET.0151).

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-899 -SQL injection target methods for C/S links is not aligned with User Input Security requirement and needsImproved accuracy for User Security Input analyses.
DOTNET-937-Support of conditional member access syntaxThe analyzer no longer crashes.
DOTNET-940 -.Net 1.0/1.1 analysis fail with warning DOTNET.0155: Unrecognized format of project file .NET 1.x projects may be analyzed again.
DOTNET-947 21787 .NET analysis is failing with several warnings in the analysis log and hence links not created between the artifactsA NullReferenceException was occurring in an attempt to draw a devirtualization link in a lambda as a field initializer. The link is now created from all constructors of the class.
DOTNET-948 -DOTNET.0020: Error while processing visitor: AvoidStreamResourceLeaks, AlwaysRevertImpersonationNo more crash with message DOTNET.0020.

1.2.3-funcrel

Updates

.NET Core and ASP.NET Core support

This extension now supports:

QR name of the rule '8108' is revised

Earlier name of '8108': Close outermost stream ASAP
Current name of 8108': Avoid missing release of stream connection after an effective lifetime

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-86519708 False positive for .net rule "Close outermost stream ASAP" , now "Avoid missing release of stream connection after an effective lifetime"

Before the 'null conditional operator' was not recognized and false violations were displayed. After the fix, 'null conditional operator' is handled hence no false violations displayed.


DOTNET-92521127.Net analysis is frozenAn infinite loop was occurring during the analysis. After the fix, the analysis completes successfully.
DOTNET-92621198 .NET Analyzer 1.2.2 funcrel - Unable to analyze complete code

While loading projects, analysis was crashing. After the fix, analysis does not crash. 

In the future if any exception is raised during the load of project, only projects failing to load will be excluded from analysis.

DOTNET-92921245 AIP_CONSOLE OnBoarding : All C# classes are not analyzed.

A crash was occurring when the target framework of a project was an empty string. The crash is fixed.

After the fix, incase of an empty string we select the default framework version (which is the highest framework version supported).

1.2.2-funcrel

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-296-Support of C#7 and VB :: tuple syntax

New links are created and the user input security will go through the instructions using tuples.

DOTNET-902 -Fix required for 4 DOTNET.0020 warnings in analysis log file

Under specific conditions, a crash could occur during the analysis of the web services. Due to this some methods were not recognized as web methods. After the fix, the crash does not occur. 

DOTNET-907-Some recursive package dependencies are not found

Some recursive dependencies were not found and interoperability between system frameworks were not taken into account resulting in missed package dependencies.

Missing package dependencies may have impact as: missing links toward external objects and less accurate user input security.

The issue is fixed after the upgrade. 

DOTNET-909-Missing objects expected from Edmx files

Edmx files are now saved as additional documents of a project, allowing extensions to leverage that information.

DOTNET-917 -Crash during computation of diag Avoid weak encryption key size

After the fix, crash does not happen hence no missing violations.

1.2.1-funcrel

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-611-Invalid CASTIL generation for ASP.NET pages

After upgrading, intermediate CastIL code related to web forms (.aspx) and web controls (.ascx) is now generated correctly for the User Security Input. Therefore after an upgrade to this version of the extension and the generation of a post upgrade consistency snapshot, results may change: more User Input Security related violations may be identified.

DOTNET-612-Missing devirtualization links when type instantiations are involvedDevirtualization links are now created properly in the context of type instantiations. Therefore after an upgrade to this version of the extension and the generation of a post upgrade consistency snapshot, results may change: more accurate transaction information will be produced.
DOTNET-869-Missing type conversion calls for the CastIL generation via RoslynImplicit calls to ToString() methods were not generated in CASTIL (for dataflow). Therefore after an upgrade to this version of the extension and the generation of a post upgrade consistency snapshot, results may change: more User Input Security related violations may be identified.
DOTNET-887-Violations are missing in AED when compared with 1.0.14 extensionViolations were not reported on Page_Load methods in a web application. Therefore after an upgrade to this version of the extension and the generation of a post upgrade consistency snapshot, results may change: increased number of violations producing greater accuracy.
DOTNET-896 -Missing dependency toward netstandard.dll facade may cause name resolution errorsName resolution errors are fixed. 
DOTNET-897 -Resolution errors because of dependencies added twiceName resolution errors are fixed. 

1.2.0-funcrel

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-784-"C# Property" objects are "synthetic", but their children (setters and getters) are internalA change has been made to the status of certain objects resulting from .NET analyses. The following objects are all now considered as "generated code" when required:
  • accessors of generated files
  • event fields

Previously, these objects were not considered as "generated code" and therefore violations found in them were included in grade and violation counts. After an upgrade to 1.2.0-funcrel and the generation of a post upgrade consistency snapshot on unchanged source code, results may be impacted due to this change: grades may change due the non-inclusion of violations caused by these objects. In addition, other metrics may change such as the total number of violations and Line of Code count (generated objects do not contribute to these).

Finally, the Engineering Dashboard will now report identical values for the total number of all violations in the Risk Model tile and in the Application Components tile.

DOTNET-855
Error while processing visitor: MethodBodyVisitorIn 1.2.0-funcrel a change has been made to display a warning message instead of an error message:
  • Previously: "Error while processing visitor: MethodBodyVisitor"
  • In 1.2.0-funcrel: "DOTNET.0103: An exception occurred while generating code for method {method mangling}"

The consequence of this change is that previously the generated code for the entire file was lost (skipped due to the error), however, now the generated code is lost only for the specific method mentioned in the warning message.

DOTNET-856
Error while processing visitor: LinqToSQLVisitorAfter upgrading to 1.2.0-funcrel, warning message is not displayed.

1.2.0-beta5

Updates

Support added for DbDataAdapter in CAST Transaction Configuration Center

The .TCCSetup file provided in the extension has been configured to recognize End points for DbDataAdapter.

Dependencies in nupkg files not taken into account

Nuget package may have some dependencies toward other packages (specified in the nupec file). We should take these dependencies into account to include them as dependent packages.

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-83319400Crash in .Net analyzerAfter upgrading to 1.2.0-beta5, .Net analyzer does not crash due to duplicate Keys in dictionaries.
DOTNET-78018569Analysis warning: DOTNET.0020:Error while processing visitor: NumberOfBreaksInForLoopsAfter upgrading to 1.2.0-beta5, you will not get false warning message related to NumberOfBreaksForLoops
DOTNET-82519152Receiving false positives reporting dead code for code that is in use

This issue has been fixed by disabling the rules listed below. These rules often produce a significant number of false violations thereby reducing their usefulness. These rules are multi-techno and are embedded in AIP Core, therefore they are only disabled specifically and only for .NET technologies when using CAST AIP ≥ 8.3.16. As a result of this change, results may be impacted - no violations will be triggered for any of these rules, therefore potentially impacting grades and existing results:

DOTNET-843
 Devirtualization should create a link to all overrides at leastAfter upgrading to 1.2.0-beta5, .Net analyzer creates a link to all overrides when devirtualization of a call do not find a single link.

1.2.0-beta4

Updates

Support for Xamarin.Forms in CAST Transaction Configuration Center

The .TCCSetup file provided in the extension has been configured to recognize Entry points for Xamarin.Forms and End points for SQLite. And thus Transaction can now be seen in CAST Transaction Configuration Center.

Single warning for each unresolved type

A single warning is now displayed in the log file for each unresolved type.

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-80819086,19229Snapshot error - ‘Error while executing Procedure’After upgrading to 1.2.0-beta4, no error is displayed. 
DOTNET-789
There should be fatal error instead Warning message "Analysis failure, could not load a type. The following assemblies could not be loaded as well:"After upgrading to 1.2.0-beta4, fatal error message is displayed instead of warning message.
DOTNET-820
DOTNET.0020:Error while processing visitor: WebServiceVisitorAfter upgrading to 1.2.0-beta4, no error while processing "WebServiceVisitor"
DOTNET-742
FALSE VIOLATION FOR RULE- "Close the outermost stream ASAP"Methods returning streams will not be considered for violation. After an upgrade to the current version of the extension and the generation of a post-upgrade consistency snapshot, results may changed for this rule - less false violations providing more accuracy.
DOTNET-805
Workaround for "Nupkg files exclusion in Nuget packaging"

Xamarin.Forms libraries were not getting referenced as while packaging Files and folders starting with '.' or ending with '.nupkg' are excluded by default. This problem is solved by shipping the '.nupkg' as '.castpkg'.

DOTNET-819 17666 FALSE VIOLATIONS FOR "Avoid improper processing of the execution status of data handling operations"

The current rule is not violated in the below cases:
Either empty catch blocks, catch blocks with comments only, or only write to a stream are violating the rule. Appropriate logging or other treatment of exception are said to be valid. 

1.2.0-beta3

Updates

The MAV2 metric "Length of the longest line" has been removed for .NET related analyses as a consequence it will no longer appear in the object properties list in CAST Enlighten.

Resolved Issues

Internal IDCall IDDescriptionImpact?
DOTNET-779-CASTONCAST: snapshot fails with ERROR: duplicate key value violates unique constraint "dss_objects_pk"

The snapshot failed due to a duplicate checksum for certain objects (when shared projects were present in the sources). This has now been fixed and the snapshot will complete correctly.

DOTNET-708-When both the iOS and android and UWP application are present in the same solution not finding the Xamarin referenceMissing links to framework dependencies for Xamarin projects will now be created
DOTNET-577-DOTNET.0048:Error while loading XML documentDocumentation updated to clarify scenario of an empty configuration file in project
DOTNET-709-Not finding the Xamarin reference for the WatchOS App, can find the Xamarin WatchOS reference in web configMissing links to framework dependencies for Xamarin projects will now be created
DOTNET-783-EOF counted as line of codeThe EOF is no longer counted as a line of code, therefore a change in the number of lines of code is to be expected after upgrade to this release.


1.2.0-beta2

Updates

New feature

New rule

The following rule has been added in this release - see:  https://technologies.castsoftware.com/rules?sec=srs_dotnet&ref=||1.2.0-beta2

1027012

Avoid storing Non-Serializable Object as HttpSessionState attributes

Resolved issues

Internal IDCall IDDescriptionImpact?
DOTNET-621-Bug in the quality rule "avoid instantiations inside loops"

No false violation message

The creation of an object to be added to a collection that has a life cycle longer than the loop should be not considered as a violation.

DOTNET-745-Regression: Snapshot failed with ERROR: duplicate key value violates unique constraint "dss_objects_pk"There were 2 CRCs saved on some objects, now there is only 1 CRC.
DOTNET-763 18245LOC increase post migration

The analyzer was previously including empty lines in the lines of code (LOC) value therefore producing an erroneous value for this metric. This bug has been fixed (blank lines are no longer included in the LOC value) and therefore after an upgrade to the current version of the extension and the generation of a post-upgrade consistency snapshot on unchanged source code, the LOC value will reduce.

1.2.0-beta1

Resolved issues

Internal IDCall IDDescriptionImpact?
DOTNET-71817275FALSE VIOLATION FOR RULE- Close the outermost stream ASAPAfter upgrading to 1.2.0-beta1: No false violation for the rule - Close the outermost stream ASAP. Upgrading to 1.2.0-beta1 will affect the analysis results.

1.2.0-alpha2

Updates

New rules

The following rules have been added in this release - see https://technologies.castsoftware.com/rules?sec=srs_dotnet&ref=||1.2.0-alpha2:

1027004Avoid using deprecated XmlTextReader .NET API
1027008Always Revert After Impersonation
1027010Avoid weak encryption providing sufficient key size (.NET)

DOTNET-682 - Adopt Roslyn 3.0

The .NET Analyzer now uses the Roslyn 3.0 compiler/analyzer which brings a first level of support for:

DOTNET-724 - PostgreSQL connectivity

A change has been implemented to introduce a connectivity layer compatible with PostgreSQL 10 and 11.

1.2.0-alpha1

Prerequisites

In order to use the .NET Analyzer extension for analysis purposes, the .NET Framework ≥ 4.7.2 must be installed in order for the analysis to function. A check will be done when the analysis starts and a message will produced if the minimum .NET Framework cannot be found. See also Required third-party software in .NET Analyzer - 1.2.

Updates

Xamarin support

First level of support for Xamarin (links to Xamarin API objects will be resolved) for:

New rules

The following rules have been added in the this release - see https://technologies.castsoftware.com/rules?sec=srs_dotnet&ref=||1.2.0-alpha1:

1027000Avoid Managed type declaration for Win32 API using Overlapped IO
1027002Avoid exposing methods that use Platform Invocation Services to access unmanaged code

New icons for CAST Enlighten

A new set of icons has been provided for display in CAST Enlighten.

Resolved issues

Internal IDCall IDDescriptionImpact?
DOTNET-67316172False positive for rule 'Avoid using Keywords' for 'C# Property Set' and 'C# Property Get'After an upgrade to 1.2.0 and then generation of a new snapshot on unchanaged source code, results of the rule Avoid using Keywords' for 'C# Property Set' and 'C# Property Get' may be impacted: less false violations providing greater accuracy.