.NET Analyzer - 2.0

Extension ID

com.castsoftware.dotnet

What’s new?

See .NET Analyzer - 2.0 - Release Notes .

Description

This extension provides support for analyzing applications built with .NET, .NET Standard and .NET Core technologies: objects and links between these objects are identified and Automated Function Point values are calculated. A set of .NET specific structural rules are also available with the extension.

Isofunctionality

This release of the extension is based on the 1.5.0-funcrel release.

Technology support

Please also see .NET - Technical notes and limitations for additional information.

Visual Studio / .NET Framework support

Visual Studio version .NET Framework version .NET Core / .NET .NET Standard C# version VB.NET version Supported Notes
2003 1.1 1.2 7.1 ✔️
2005 All of the above and 2.0, 3.0 2.0 8.0 ✔️
2008 All of the above and 3.5 3.0 9.0 ✔️
2010 All of the above and 4.0 4.0 10.0 ✔️
2012/2013 All of the above and 4.5, 4.5.1, 4.5.2 5.0 12.0 ✔️
2015 All of the above and 4.6 6.0 14.0 ✔️
2017 All of the above and 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 7.2 15.5 ✔️
2019 All of the above and 4.8, 4.8.1 All of the above and 5.0, 6.0 Same as above 8.0 / 9.0 / 10.0 (.NET 6.0 only) 15.8 ✔️ C# 10 is only compatible with .NET 6.0.
2022 Same as above All of the above and 7.0 Same as above Same as above and 11.0 (.NET 7.0 only) 15.8 ✔️ C# 11 is only compatible with .NET 7.0

The following are implicitly supported:

  • ADO.NET
  • ASP.NET
  • ASP.NET Core
  • iFrame
  • Interop
  • WinForms
  • WPF 
  • LINQ
    • LINQ to Objects
    • LINQ to DataSets
    • LINQ to SQL

Function Point, Quality and Sizing support

Function Points (transactions) Quality and Sizing
✔️ ✔️

CAST Imaging Core compatibility

Release Operating System Supported
≥ 8.4.0 Microsoft Windows / Linux ✔️

Prerequisites

Required third-party software on node

No third-party software is required. Any requirements are provided by the com.castsoftware.dotnet.thirdparties dependent extension.

Source code delivery

  • Complete source code must be delivered for analysis after a DEBUG type build.
  • The source code must include all the generated files which are essential for a successful analysis, i.e. all files with the extensions .g.cs (C#) or .g.vb (VB.Net).
  • Note that it is not necessary to deliver .cs or .vb files from the obj folder (files like obj\Debug\net6.0\GlobalUsingDirectiveInCSharp.GlobalUsings.g.cs).

Location of the source code deployment folder

It is possible (and usually recommended) to configure the source code Deployment folder on a network share, however, in the case of .NET analyses, CAST recommends that the Deployment folder is located on the same server as the Node. If the Deployment folder is located on a remote network file share, there is a risk that assemblies may not be loaded correctly during the analysis, causing external objects to not be saved.

Location of extensions folder on Node

If you have altered the location where extensions are stored from %PROGRAMDATA%\CAST\CAST\Extensions to a network location remote to the node (for example changing the CAST_PLUGINS_ROOT_PATH in the CastGlobalSettings.ini file) then you will need to add the following lines to the .NET Framework machine.config file (located on the node). This is to ensure that the .NET Analyzer DLLs located in the remote network folder can be successfully run from a network location. The analysis will fail without this configuration.

Replace the following tag:

<runtime />

with:

<runtime>
    <loadFromRemoteSources enabled="true"/>
</runtime>

Dependent frameworks and third-party packages provided in the extension

Some dependent frameworks and third-party packages are provided in the extension and in com.castsoftware.dotnet.thirdparties . There is therefore no need to specifically package these items if your source code relies on them - note however, that CAST Imaging Console will generate missing library/assembly alerts for these items - these alerts can safely be ignored.

Frameworks

  • .NET Framework
  • .NET Core
  • .NET Standard

Third-party packages

  • Microsoft.AspNetCore.All (ASP.NET)
  • Microsoft.AspNetCore.App (ASP.NET)
  • log4net
  • NHibernate
  • NPersistence
  • NLog
  • Newtonsoft.Json
  • Newtonsoft.Json.Bson
  • MySql.Data
  • Iesi.Collections
  • EntityFramework
  • Microsoft.Practices.EnterpriseLibrary.2008
  • elmah.corelibrary
  • System.Data.SqlClient
  • Serilog
  • Remotion.Linq

Dependencies with other extensions

Some extensions require the presence of other extensions in order to function correctly. The .NET Analyzer extension requires that the following other extensions are also installed:

Note that when using CAST Imaging Console to install the extension, any dependent extensions are automatically downloaded and installed for you. You do not need to do anything.

Download and installation instructions

For .NET applications, the extension will be automatically installed by CAST Imaging Console:

What results can you expect?

Objects

Icon Name Parent
Project -
Application Project
Directory Application
C Source File Application, Directory
VB.NET Source File Application, Directory
ASA / Asax Source File Application, Directory
ASP Source File Application, Directory
Aspx Source File Application, Directory
Ascx Source File Application, Directory
Asmx Source File Application, Directory
Configuration Source File Application, Directory
Data Set Source File Application, Directory
Htc / Htm / Html Source File Application, Directory
Java Script Source File Application, Directory
Master Source File Application, Directory
Settings Source File Application, Directory
Skin Source File Application, Directory
Xaml Source File Application, Directory
Visual Basic Script File Application, Directory
Class Namespace, Interface, Class, Generic Class
Constant (field) Class, Generic Class
Delegate Class, Generic Class
Enumeration Class, Generic Class
Enumeration Item Enumeration
Event Class, Generic Class
Event Add On Event
Event Remove On Event
Interface Namespace, Interface, Class, Generic Class
Field (non constant) Interface, Class, Generic Class
- Finalizer Class, Generic Class
Generic Class Namespace, Interface, Class, Generic Class
Generic Method Generic Class
Generic Property Generic Class
Indexer Method, Generic Method
Indexer Getter Interface, Class, Generic Class
Indexer Setter Interface, Class, Generic Class
Method Interface, Class, Generic Class
Module (VB.NET only) -
Namespace Application, Namespace
Operator Interface, Class, Generic Class
Property Interface, Class, Generic Class
Property Getter Interface, Class, Generic Class
Property Setter Interface, Class, Generic Class
Structure Interface, Class, Generic Class, Method, Generic Method
Windows Forms Class
Windows Forms User Control Class

Structural rules

The following rules are provided in the extension:

Release Link
2.0.0-alpha5 https://technologies.castsoftware.com/rules?sec=srs_dotnet&ref=||2.0.0-alpha5

See also the following rules provided in the default CAST Assessment Model shipped with CAST Imaging Core:

Technology URL
C# https://technologies.castsoftware.com/rules?sec=t_138383&ref=||
VB.NET https://technologies.castsoftware.com/rules?sec=t_138635&ref=||
ASP.NET https://technologies.castsoftware.com/rules?sec=t_138636&ref=||

The following extensions also provide .NET specific rules: