Release Notes - SPCAF 7.5.0.0 (2017-09-21)

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 [email protected] 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.).
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.