Release Notes - SPCAF 7.5.0.0

This article lists the changes to SPCAF 7.5.0.0.

In this release we introduce AngularJS analysis, added support selecting folders for analysis in the client application, improve on the rule list for SharePoint Framework (SPFx) and SPCAF.

New Features

  • Added support for selecting folders for analysis in the SPCAF client application.
  • Added support for analyzing AngularJS projects.
  • Update the user interface.
  • Add the facility to utilized the "ignoregeneratedcode" parameter in FxCop.

Fixes

  • Fixed bug in the SPC059108 rule where it would result in a false positive in specific cases.
  • Fixed bug that disallowed certain JavaScript rules to be suppressed.
  • Fixed bug in recursive analysis in the VSTS SPCAF task.
  • Improved the wording of the notification message for rule JM060101.
  • Changed wildcards in the IgnoredFiles setting to apply only to the file name instead of the whole path.
  • Expanded the 'SPF050103 npm-shrinkwrap.json file missing' rule to check for lock files from npm@5 and Yarn.
  • Adjusted the 'SPF020802 Don't use web part properties without escaping' rule to only check for escaping of string properties.
  • Adjusted the 'SPF050801 Validate web part properties' values' rule to only check for validation of text properties managed using the PropertyPaneTextField control

New Rules for SharePoint Framework (SPFx)

  • Best Practice
    • SPF050802 : Don't manipulate DOM elements outside the component.

New AngularJS Rules

  • Reliability Rules
    • NG1010402 : Don't inject invalid dependencies in controllers.
    • NG1010403 : Number of injected dependencies matches the number of function parameters in controllers.
    • NG1010404 : Use explicit dependency injection annotation in controllers with strict DI enabled.
    • NG1010501 : Don't inject invalid dependencies in directives.
    • NG1010502 : Number of injected dependencies matches the number of function parameters in directives.
    • NG1010503 : Use explicit dependency injection annotation in directives with strict DI enabled.
    • NG1010601 : Don't inject invalid dependencies in filters.
    • NG1010602 : Number of injected dependencies matches the number of function parameters in filters.
    • NG1010603 : Use explicit dependency injection annotation in filters with strict DI enabled.
    • NG1010701 : Don't inject invalid dependencies in services.
    • NG1010702 : Number of injected dependencies matches the number of function parameters in services.
    • NG1010703 : Use explicit dependency injection annotation in services with strict DI enabled.
    • NG1010704 : Use explicit dependency injection annotation in factories with strict DI enabled.
    • NG1010801 : Route refers to a known controller.
    • NG1011001 : Use built-in AngularJS directives whenever possible.
    • NG1011002 : Always have . in ngModel.
    • NG1011003 : Binding refers to a known property.

  • Security Rules

  • Maintainability Rules
    • NG1050201 : Inject built-in AngularJS dependencies before custom ones in module configs.
    • NG1050401 : Inject built-in AngularJS dependencies before custom ones in controllers.
    • NG1050501 : Use bindToController in directives with controllers and two-way bindings.
    • NG1050502 : Inject built-in AngularJS dependencies before custom ones in directives.
    • NG1050601 : Inject built-in AngularJS dependencies before custom ones in filters.
    • NG1050701 : Avoid accessing $rootScope in services.
    • NG1050702 : Inject built-in AngularJS dependencies before custom ones in services.
    • NG1050801 : Use controllerAs in $routeProvider.
    • NG1051001 : Use 'controller as' in ngController directives.

  • Performance Rules
    • NG1120101 : Disable debug data.
    • NG1120102 : Disable comment directives.
    • NG1120103 : Disable CSS class directives.
    • NG1120201 : Use inline array annotation for dependency injection in module configs.
    • NG1120401 : Use inline array annotation for dependency injection in controllers.
    • NG1120501 : Use inline array annotation for dependency injection in directives.
    • NG1120601 : Use inline array annotation for dependency injection in filters.
    • NG1120701 : Use inline array annotation for dependency injection in services.
    • NG1120702 : Use inline array annotation for dependency injection in factories.
    • NG1121001 : Use 'track by' in ngRepeat directives.
    • NG1121001 : Enable strict DI mode.

PnP Rules

  • Suggestion to use PnP instead of CSOM
    • SPC02900 : Use the AddFieldToContentType method to add field to content type.
    • SPC029001 : Use the AddWebPartToWikiPage method to add a web part to a wiki page.
    • SPC029003 : Use the ContentTypeExists method to check if content type exists.
    • SPC029004 : Use the CreateContentType method to create content type.
    • SPC029005 : Use the CreateField method to create field.
    • SPC029006 : Use the CreateList method to create lists.
    • SPC029007 : Use the CreateView method to create list views.
    • SPC029008 : Use the GetListByUrl method to get list by URL.
    • SPC029009 : Use the GetWebParts method to get web parts.
    • SPC029010 : Use the SetDefaultContentType method to set the default content type.
    • SPC029011 : Use the UploadFile method to upload a file.
    • SPC029012 : Use the UploadFileWebDav method to upload a file using webdav.
    • SPC029013 : Use the AddJsLink method to set and add a JSLink File.
    • SPC029014 : Use the AddJsBlock method to set and add a JS block.
    • SPC029015 : Use the SetDefaultColumnValues method to set default column values.
    • SPC029016 : Use the EnsureProperty/EnsureProperties method to ensure a property is loaded.
    • SPC029017 : Use the ExecuteQueryRertry method to issue requests to SharePoint.

New JavaScript Rules

  • Inventory Rules
    • JSI010101 : JavaScript file references AngularJS.
    • JSI010102 : JavaScript file references jQuery.
    • JSI010103 : JavaScript file references Knockout.
    • JSI010104 : JavaScript file references React.
    • JSI010105 : JavaScript file references ReactDOM.
    • JSI010106 : JavaScript file references Handlebars.

  • Security Rules
    • SPC058914 : Use the latest versions of JavaScript libraries (applies to JavaScript files).
    • SPC058701 : Use the latest versions of JavaScript libraries (applies to web files, eg. .master, .aspx, .html, etc.).

Tags

SPCAF | Release Notes | 7.5.0.0.