.NET Analyzer - 2.1
Extension ID
com.castsoftware.dotnet
What’s new?
See .NET Analyzer - 2.1 - 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 previous 1.5.x releases. Please check the release notes for more information.
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, 8.0 | Same as above | All of the above above and 11.0, 12.0 (.NET 8.0 only) | 15.8 | ✅ | C# 12 is only compatible with .NET 8.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 |
---|---|
✅ | ✅ |
Compatibility
Release | Operating System | Supported |
---|---|---|
v3/8.4.x | Microsoft Windows / Linux | ✅ |
v2/8.3.x | Microsoft Windows | ❌ |
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 theobj
folder (files likeobj\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:
- com.castsoftware.wbslinker
- com.castsoftware.dotnet.thirdparties (only in Linux environment)
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.1.0-funcrel | https://technologies.castsoftware.com/rules?sec=srs_dotnet&ref=||2.1.0-funcrel |
See also the following rules provided in the default CAST Assessment Model shipped with CAST Imaging Core:
The following extensions also provide .NET specific rules:
- com.castsoftware.nosqldotnet
- com.castsoftware.dotnetweb
- com.castsoftware.securityanalyzer
- com.castsoftware.wcf
- com.castsoftware.securityanalyzer
- com.castsoftware.sqlanalyzer