On this page:


Summary: This section provides more detail about the support for specific .NET technologies and the way in which the they are supported.

ASP.NET web applications

Unused files inside of web site application folders are ignored during the analysis.

ASP.NET MVC Razor

ASP.NET LMVC Razor is supported through the HTML5 and JavaScript extension. Please see .NET - ASP.NET MVC Razor support for more information.

ASP classic

See ASP for more information.

.NET Core

.NET Core is supported when using CAST AIP ≥ 8.3.5 and the .NET Analyzer extension ≥ 1.1.0.

Silverlight

Silverlight is supported through a Silverlight extension, however, .NET projects are only recognized as Silverlight projects if their CSPROJ file contains the following XML tag:

<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>

If a project is a Silverlight project but it does not contain this tag, then during the packaging process with the CAST Delivery Manager Tool alerts may be generated indicating missing .NET libraries and assemblies. These alerts may persist even though the required files are present in one or more .NET packages. To avoid this issue, ensure that the required XML tag is present in the source code and then repackage your packages.

Language Integrated Query (LINQ)

Current support of LINQ is limited to: LINQ to ObjectsLINQ to DataSets and LINQ to SQL providers only. No other provider is supported.

LINQ to Objects

With regard to LINQ to Objects, in the following example:

var queryLondonCustomers = from cust in customers
	where cust.City == "London"
	select cust; 

Note that currently the following is NOT supported:

public static IEnumerable<TSource> Where<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

LINQ to DataSets

With regard to LINQ to DataSets, in the following example:

// Fill the DataSet.
public void myMethod()
{
	DataSet ds = new DataSet();
	ds.Locale = CultureInfo.InvariantCulture;
	FillDataSet(ds);
	DataTable products = ds.Tables["Product"];
	IEnumerable<string> query =
    	from product in products.AsEnumerable()
    	select product.Field<string>("Name");
	Console.WriteLine("Product Names:");
	foreach (string productName in query)
		{
    		Console.WriteLine(productName);
		}
}

LINQ to SQL

With regard to LINQ to SQL, in the following example:

void InsertStudent(string firstName, string lastName, SchoolDataContext db)
{
    Console.WriteLine("\nAdd a new student to the Person table");

    // Create a new Student.
    Student student = new Student
    {
	FirstName = firstName,
	LastName = lastName,
	EnrollmentDate = DateTime.Now
    };

    // Add the new object to Students.
    db.Students.InsertOnSubmit(student);

    // Submit the change to the database.
    db.SubmitChanges();
}

void RemoveStudent(string firstName, string lastName, SchoolDataContext db)
{
    Student student = new Student
    {
	FirstName = firstName,
	LastName = lastName
    };

    // Deletes the student
    db.Students.DeleteOnSubmit(student);

    // Submit the change to the database.
    db.SubmitChanges();
}

void ChangeTitle(int id, string newTitle, SchoolDataContext db)
{
    // Retrieve the course from database
    var course =
	(from c in db.Courses
	where c.CourseID == id
	select c).Single();

    // Change the title
    course.Title = newTitle;

    // Submit the change to the database.
    db.SubmitChanges();
}

.NET WebServices

Links from web front end > WebService > back-end database

If the entire transaction from a web front end > WebService > back-end database needs to be resolved, then further configuration is required to support this, as outlined below:

Please note that if the web front end is an ASP.NET "website" (i.e. no project file (.csproj or .vbproj) exists), then no links will be created from this website to the WebServices. This is a limitation in the .NET analyzer.

Scenario 1

If your web front end is written in ASP.NET and you use ASP.NET WebServices, then:

In this scenario, the following will be resolved:

Scenario 2

If your web front end is written in ASP.NET and you use WCF WebServices, then:

Scenario 3

If your web front end is written in some other language (such as HTML5/AngularJS) and you use ASP.NET WebServices, then:

Scenario 4

If your web front end is written in some other language (such as HTML5/AngularJS) and you use WCF WebServices, then:

.datasource files

Any .datasource files that are referenced in the parent .csproj/.vbproj file will be listed as "missing source files" when delivering source code with the CAST Delivery Manager Tool. .datasource files are ignored by the DMT and are never delivered. These missing source file messages can therefore be ignored.

Generated code

The .NET analyzer handles auto generated code like all other CAST AIP analyzers:

The .NET analyzer determines whether code is auto generated using a combination of the following factors:

Files that end with the following:

Note that to be considered "generated", files that end with "Reference.cs" and "Reference.vb" MUST ALSO be located in one of the following folders:

  • "Web References"
  • "Service References"

Symbols marked with one of the following attributes:

The following object types:

Files that contain top level comments that include the following:

COM objects

The CAST .NET analyzer does not support the resolution of COM objects (such as ADODB) referenced in .NET projects.

Miscellaneous