- Extension ID
- What's new?
- Description
- Technology support
- Visual Studio / .NET Framework support
- Function Point, Quality and Sizing support
- CAST Core compatibility
- Prerequisites
- Dependent frameworks and third-party packages provided in the extension
- Dependencies with other extensions
- Download and installation instructions
- What results can you expect?
- Structural rules
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
Visual Studio / .NET Framework support
Visual Studio version | .NET Framework version | .NET Core / .NET | .NET Standard | C# version | VB.NET version | Supported |
---|---|---|---|---|---|---|
2003 | 1.1 | 1.2 | 7.1 | |||
2005 | 2.0, 3.0 | 2.0 | 8.0 | |||
2008 | 2.0, 3.0, 3.5 | 3.0 | 9.0 | |||
2010 | 2.0, 3.0, 3.5, 4.0 | 4.0 | 10.0 | |||
2012/2013 | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2 | 5.0 | 12.0 | |||
2015 | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6 | 6.0 | 14.0 | |||
2017 | 2.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.1 | 7.2 | 15.5 | |
2019 | 2.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, 5.0, 6.0 | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 | 8.0 / 9.0 / 10.0 | 15.8 | |
2022 | 2.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, 5.0, 6.0, 7.0 | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 | 8.0 / 9.0 / 10.0 / 11.0 | 15.8 |
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) | A green tick indicates that OMG Function Point counting and Transaction Risk Index are supported. | |
---|---|---|
Quality and Sizing | A green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist. |
Release | Supported |
---|---|
≥ 8.3.x |
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:
- com.castsoftware.wbslinker
- com.castsoftware.dotnet.thirdparties (only in Linux environment)
Download and installation instructions
For .NET applications, the extension will be automatically installed by CAST 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
See also the following rules provided in the default CAST Assessment Model shipped with CAST Core:
The following extensions also provide .NET specific rules: