This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.

Summary: This document provides information about the extension providing .NET analysis support.

Extension ID

com.castsoftware.dotnet

What's new?

See .NET Analyzer - 1.5 - 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.

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 StandardC# versionVB.NET versionSupported

2003

1.1



1.27.1(tick)

2005

2.0, 3.0



2.08.0(tick)

2008

2.0, 3.0, 3.5



3.09.0(tick)

2010

2.0, 3.0, 3.5, 4.0



4.010.0(tick)
2012/20132.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2

5.012.0(tick)
20152.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6

6.014.0(tick)
20172.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 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.17.215.5(tick)
20192.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.21.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.01.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.18.0 / 9.0 / 10.015.8(tick)
20222.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.21.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.01.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.18.0 / 9.0 / 10.0 / 11.015.8(tick)

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

Xamarin support

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

  • Android
  • iOS
  • TvOS
  • WatchOS
  • UWP

Function Point, Quality and Sizing support

Function Points
(transactions)
(tick)A green tick indicates that OMG Function Point counting and Transaction Risk Index are supported.
Quality and Sizing(tick)A green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist.

CAST Core compatibility

ReleaseSupported
8.3.x(tick)

Prerequisites

Required third-party software on CAST Node

.NET Framework ≥ 4.7.2 must be installed on the CAST Node server 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.

Note that a .NET Framework is installed via the CAST Core installer, however this may not be the required version. Please check.

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 CAST 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 CAST Node

If you have altered the location where extensions are stored from %PROGRAMDATA%\CAST\CAST\Extensions to a network location remote to the CAST 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 CAST 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 itself. There is therefore no need to specifically package these items if your source code relies on them - note however, that the AIP COnsole will generate missing library/assembly alerts for these items - these alerts can safely be ignored.

Frameworks

  • .NET framework
  • .NET Core
  • .NET standard
  • Silverlight
  • Universal Windows Platform
  • Mono Android
  • Xamarin iOS
  • Xamarin TvOS
  • Xamarin WatchOS

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
  • Xamarin.Android.Support.v7.AppCompat
  • Xamarin.Android.Support.v7.CardView
  • Xamarin.Android.Support.v7.MediaRouter
  • Xamarin.Android.Support.v4
  • Xamarin.Android.Support.Media.Compat
  • Xamarin.Android.Support.Fragment
  • Xamarin.Android.Support.Design
  • Xamarin.Android.Support.Core.Utils
  • Xamarin.Android.Support.Core.UI
  • Xamarin.Android.Support.Wear
  • Xamarin.Android.Wear
  • Xamarin.Forms

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 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 Console:

What results can you expect?

Objects

IconNameParent

Project

-

Application

Project

Directory

Application

C# Source FileApplication, Directory

VB.NET Source FileApplication, Directory

ASA  / Asax Source FileApplication, Directory

ASP Source FileApplication, Directory

Aspx Source FileApplication, Directory

Ascx Source FileApplication, Directory

Asmx Source FileApplication, Directory

Configuration Source FileApplication, Directory

Data Set Source FileApplication, Directory

Htc / Htm / Html Source File

Application, Directory

Java Script Source FileApplication, Directory

Master Source FileApplication, Directory

Settings Source FileApplication, Directory

Skin Source FileApplication, Directory

Xaml Source FileApplication, Directory

Visual Basic Script FileApplication, 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 FormsClass

Windows Forms User Control

Class

Structural rules

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

The following extensions also provide .NET specific rules: