Expand Minimize

Release notes

6.9.1.2001 (2017-01-30)

Added support for SharePoint Framework RC0 and fixes.

New Features

  • Support for SharePoint Framework (SPFx) RC0: Analysis of SPFx projects with over 50 rules, metrics and inventories

Fixes

  • Fixed false positive issue in rule SPC015302 AddMissingModuleFileToFeature: Referenced files in Module have not been resolved correctly.

6.8.1.2810 (2016-10-28)

Major release with support for the new SharePoint Framework (SPFx), SonarQube and Gulp, including some fixes.

New Features

  • Support for SharePoint Framework (SPFx): Analysis of SPFx projects with over 50 rules, metrics and inventories
  • Support for Analysis via Gulp: Ability to run analysis in Visual Studio Code via Gulp
  • Support for SonarQube: Ability to run SPCAF analysis in SonarQube

Fixes

  • Fixed issue in Visual Studio: build with SPCAF analysis failed if C# 6.0 language features are used.

New Rules for SharePoint Framework (SPFx)

Warning: Breaking change for custom rules: Due to major changes in the analysis engine custom developed rules must be recompiled with the latest SPCAF.Sdk. See "Upgrade of custom rules developed before v6.5". Also more files can be discovered and will be analyzed with the improved engine. Therefore you can find more errors and warnings in your code with this version.

New Features

Improvements

  • Added picture with dependency diagram to dependency reports
  • PowerShell cmdlet can be configured with a custom config file

Fixes

  • Fixed issues with integration of CSSLint
  • Fixed issues with printing of reports inside the client application
  • Fix in rule SPC055503 AvoidContentTypesInListDefinitions to allow suppression
  • Fixed issue in metric reports: sometimes numbers in charts where not displayed correctly
  • Fixed casing issue in PowerShell script of TFS 2015 build task
  • Fix in rule SPC055502 AddEnsureFolderContentTypeInListDefinition: Attribute "FolderCreation" was not correctly evaluated
  • Fix in rule SPC052201 CustomFieldTypesShouldNotBeUserCreatable: Value for "UserCreatable" was not correctly parsed
  • Fix in schema of ListDefinitions (error message "'ShowToolbar' is not a valid value for ToolbarType."), added 'ShowToolbar' manually to the schema of ListDefinitions
  • Fix in reading folders in WSP files that contains '%20'
  • Fix in ListInstances: Line number inside XML was not corectly evaluated
  • Hotfix 2016-06-29: Issue with empty reports after analysis fixed

6.0.5 (2015-11-02)

Major release with many improvements, new features, new CSOM rules, improved desktop UI and many more.

New Features

New Rules (Full Trust and CSOM)

Improvements

  • Ability to change installation folder during installation
  • Added Application Insights in analysis engine
  • Reports in trial mode show more information (every third notification is not displayed)

Fixes

  • Fix in dependencies for .ASPX and ASCX page to ignore HTML and ASP.NET comments code during analysis
  • Fixed rule 'SPC015705 DeployMissingRibbonImageOfCustomAction', rule was not mapping {SiteUrl} correctly
  • Fix in handling of ignored files: Some rules analyzed files which are part of "IgnoredFiles" list
  • Added more details to FxCop messages, e.g. method and type of violation
  • Hotfix 2015-11-02: Added handling for assemblies which cannot be loaded due to special obfuscation
  • Hotfix 2015-11-02: Update Razor engine to solve special issue with empty report

5.3.3 (2015-04-30)

Important improvements and fixes

New Features

  • SPCAF Benchmark Program: Submit anonymized results to get comparison of results to others in the same industry or country.

Fixes

  • Fix in CAT.NET integration (attribute "Statement" was not added to SPCAF reports)
  • Fixed fuzzy rendering of HTML reports caused by special screen resolutions and graphic cards
  • Fixed loading of PDB files for analysis in client application
  • Fixed rule "SPC110212 Dispose SPSite created by SPSiteCollection[] index operator" to prevent false positives

5.3.2 (2015-03-12)

Important improvements and fixes

New Features

  • Suppress Messages in XML
  • New section "Suppressed Messages" in reports
  • Added TFS Build Activity for 2013 to allow for TFS2013 build templates with Visual Studio 2013

New Rules

  • Rule SPC015511 DoNotDeployTaxonomyFieldsInListDefinition
  • Rule SPC010214 DoNotUseSPWebProperties
  • Rule SPC055502 AddEnsureFolderContentTypeInListDefinition
  • Rule SPC055503 AvoidContentTypesInListDefinitions
  • Rule SPC015109 DoNotDefineLowerCaseFieldId
  • Rule SPC055101 DefineSameStaticAndInternalNameInField
  • Rule SPC015213 AvoidCommentsInsideContentType
  • Rule SPC015112 DefineUniqueFieldName
  • Rule SPC015113 DefineUniqueFieldStaticName
  • Rule SPC050239 DoNotUseGetPublishingPages
  • Rule SPC055102 ConsiderAllowDeletionInField
  • Rule SPC055202 ConsiderSealedInContentType
  • Rule SPC055504 ConsiderAllowDeletionInListTemplate
  • Rule SPC056401 DeclareAllowCloseInWebPart

Improvements

  • Improved the exclusion of files for the analysis: if in a ruleset the list of "IgnoredFiles" is configured the input files that match this settings are globally ignored. This helps to completely exclude files from the analysis when files for the analysis are loaded from a folder (which is often the case in team builds).
  • Rule SPC015404 DeployMissingListTemplateForListInstance, added 116 (Master Page Gallery), 123 (Theme Gallery), 124 (Composed Looks)
  • Updated 'Good practice' in documentation for "SPC020202 AvoidCallToAllowUnsafeUpdatesOnSPWeb"

Fixes

  • Fix with PathTooLongException for certain rules
  • Rule RemoveUnusedFilesFromPackage (PathTooLongException)
  • Rule DoNotUseSPListItems fixed issue with wrong evaluation of SuppressMessage attributes
  • Hotfix 2015-03-12: Fix in SuppressMessage for XML, suppression not correctly applied in some situations

5.2.4 (2014-12-20)

Important improvements

Improvements

  • Added support for IE8 of the HTML reports.
  • Added configurable timeout for long running execution of rules.
  • Analysis of InfoPath code behind assemblies that are deployed as ElementFile.
  • Added Migration Assessment report to the default ruleset (Extended Recommended).
  • Added save buttons in client application to save additionally created reports (e.g. PDF, DOCX) easier.

New Rules

  • SPC062112 DoNotDeploySharePointAssembliesAsElementFile
  • SPC030206 DoNotStartProcessInReceiver
  • SPC030207 DoNotWriteToFileSystem
  • SPC030208 DoNotModifyRegistry
  • SPC015111 DeclareAttributeMultForMultipleValueFields

New Metric

  • SPM010411 NumberOfInfoPathForms

Fix

  • Fix in handling of SuppressMessage attribute when using delegates (hotfix 2015-02-05)

5.2.3 (2014-12-09)

Important fixes

Fixes

  • Fixed issue during extraction of malformed WSP (CAB) files (extraction occurs to the installation directory of SPCAF).
  • Fixed issue that some reports are not rendered correctly (CSS style sheets are missing).
  • Hotfix 2014-12-02: Fixed issue that PDBs have not been loaded correctly and path to .CS file with was not resolved in Visual Studio.
  • Fixed issue with not rendered dashboard in PDF and DOCX files.

Changes

5.2.2 (2014-11-22)

Critical fixes (app crash, PathTooLongException)

Fixes

  • Fixed application crash due to issue with automatic proxy settings on machine.
  • Fixed PathTooLongException during extraction of WSP if it contains folder whoses names exceed 255 characters.

Changes

  • Changed ruleset ExtendedRecommended and removed migration assessment rules. They are contained in a separate ruleset already.

5.2.1 (2014-11-15)

Important new functionality and important fixes for TFS analysis

New Features

  • New PowerShell commandlet: allows the integration of SPCAF into PowerShell scripts (only available for SERVER license).
  • New 'Summary Report' is created as analysis result. The report shows a graphical summary of all results (code quality, metrics, dependencies, inventory) in one report.
  • Free Usage of SPCAF client without license: without any license at least the new summary report is created.
  • New option to suppress error messages in an assembly rule.
  • New metrics and rules for IT-Pros counts modifications of SPFarm and SPWebApplication object, farm feature activiations in full trust code etc.
  • New 'Dependency Inspector' in dependency report to make it easier to browse incoming and outgoing dependencies of a single element in the code.

Changes

  • Small UI enhancements: Collapsable result view increased space for report view, new animation during analysis.
  • Change in default rulesets: Removed exclusion of 'Microsoft.SharePoint*.dll' (in property 'IgnoredFiles'). Now Microsoft assemblies are always excluded from analysis.
  • HTML reports are now listed in overview page of results and can be opened in an external browser.
  • HTML reports are listed in advanced view in the list of available report types and are activated by default.
  • Improved error message if analysis failes during file extraction.
  • New argument 'Filters' for Team Build and command line to filter the input files with regular expressions.
  • Change in the HTML rule report. Filtering by Severity does not update the numbers in the summary tiles (errors, warnings etc.) to avoid confusion.
  • Reduced the severity for rule "SPC017511 DeclareRequiredAttributesInListDefinition" from Error down to CriticalWarning. Missing required properties are not causing an error in SharePoint but are still critical enough to fix them.

Fixes

  • Fixed issue in TFS team build when an exception occured which contains non-printable characters in the exception message.
  • Fixed issue with not excluding Microsoft assemblies completely from analysis.
  • Fixed issue with errors during analysis because of custom rules which are compiled with an older version of SPCAF SDK.
  • Fixed issue in TFS team build when build result was not set to 'partially succeeded' and SPCAF executed with 'quiet' verbosity.
  • Fixed rule 'SPC050237 Do not request SPField from SPFieldCollection by index. Use SPFieldCollection.GetField() instead' to detect only usage of 'Item[System.String]'. Calls to 'Item[System.Guid]' and 'Item[System.Int32]' are ignored.
  • Fixed rule 'SPC080801: WebTemplate file in site definitions should start with 'WEBTEMP'' to case-insensitive check for 'webtemp'.
  • Fixed issue in Settings Editor while loading custom rules which are compiled with an older version of SPCAF SDK.

5.1.4 (2014-10-15)

1 important fix (settings editor) and minor fixes and updates

Fixes v5.1.4.9436

  • Fixed issue with incorrect ruleset files. New settings editor saved rulesets not correctly.
  • Fixed issue with empty reports in TFS TeamBuild.
  • Fixed exception while opening a project file and still busy background process.
  • Fixed issue with maximizing client application on different screen sizes.
  • SPCAF Client: Added more information to the list of licenses.

Hotfix v5.1.4.9447

  • Fixed issue in TFS Team Build: Message 'Method not found: TrackBuildWarning' stopped build.
  • Fixed issue in TFS Team Build: Message 'A generic error occurred in GDI+' during report creation.
  • Fixed rule 'SPC156101 Deploy missing control from attribute ControlSrc'. Folder '/15/' in path was not interpreted correctly.
  • Fixed rule 'SPC050250 Assign RowLimit for SPQuery in limited range'. Some assigned values to RowLimit were not interpreted as uint (e.g. value '50').
  • Fixed issue with large memory consumption due to .NET framework assemblies in Silverlight applications.

5.1.3 (2014-09-23)

Minor fixes

Fixes

  • Fixed issue with non excluded assemblies. Value "Microsoft.SharePoint.*.dll" in spruleset files updated.
  • Fixed issue with showing trial information in free Migration Assessment report
  • Fixed issue with international characters in HTML reports (wrong encoding)
  • Fixed limitation in spruleset file: now files can be globally excluded from analysis (before only on analyzer level exclusion was supported).

5.1.2 (2014-09-17)

Major release with lots of important improvements

New Features

  • Analyzers
    • New analyzer for JavaScript code applies ca. 150 rules to .JS files in WSPs and Apps
    • New analyzer for SharePoint Apps with lots of rules, metrics, dependencies and inventory checks
  • Client application
    • Completely new client application to improve usability and functionality
    • New client application "Result Viewer" (separate download) to view analysis results without license
    • New settings editor application
  • Migration Assessment
    • New analyzers and reports to analyze WSPs and give recommendations for a transition to the App model
    • Free limited version available
  • Reporting
    • New format of HTML reports with filters, charts, sorting, grouping and many more
    • Extensibility with custom reports and report section
    • New reporting engine based on Razor to ease the creation of custom reports
    • New report type PDF

Changes

  • JSLint Integration deactivated by default
  • New and consolidated default settings files
  • New option in settings file to only load enabled analyzers
  • New option in TFS build task to skip project file creation
  • Free tool SPCopCE Community Edition does not loads custom rules to circumvent recreation of commercial rules. It only loads SPCAF rules.

Fixes

  • During deinstallation of SPCAF the menu items in Visual Studio are not removed
  • Memory Issue when analyzing of large projects (saving of project at the end failed)
  • Smaller fixes in several rules

v4.5.3 (2014-05-08)

Fixes

  • Improvements in handling of external analysis tools (like CAT.NET) in case of crashes or hangs of these tools
  • Fix in cleaning procedure after analysis

v4.5.2 (2014-04-06)

New

  • Improved analysis in client application: Choose ruleset in quick analysis, ability to select custom ruleset and start rule set editor
  • Improved result view in client application: Ability to copy/paste error messages
  • Save all reports: Added function to save all generated reports in client application to a given folder
  • New separate tools SPCop, SPDepend, SPMetrics and SPInventory
  • New report type DOCX (Microsoft Word)
  • Added new output arguments to TFS build activity (e.g. number of critical errors, errors etc.) to react on occured issues during build workflow
  • New rule: SPC060113 DoNotDeployMSIFiles
  • New rule: SPC050237 DoNotUseFieldCollectionByIndex
  • New rule: SPC050238 DoNotUseSPWebGetListFromUrl
  • New rule: SPC062103 DoNotDeployFeatureMultipleTimes
  • New rule: SPC062104 DoNotDeployFeatureWithSameIDMultipleTimes
  • New rule: SPC016102 DeployMissingControlAssembly
  • New rule: SPC016103 DeployMissingControlTemplate
  • Updated list of SharePoint assemblies in check for deprecated types, members and interfaces

Fixes

  • Dependency SPD015403 fixed issue with NullPointerException
  • Rule SPC030202 DoNotUseReflectionToAccessSharePointAPI fixed issue with NullPointerException
  • Function "Show Error help" in Visual Studio works for custom rules
  • Dependency SPD015301 ModuleReferencedElementFiles, fixed issue when ElementFiles are deployed as TemplateFiles
  • Rule SPC060402 DeployOnlyImageToImagesFolder, Added BMP as allowed image file
  • Dependency SPD016102 ControlReferencesControlTemplate, fixed issue with missing '~' for ControlSrc
  • Fixed CheckIds for SPInventory to match the CheckId conventions
  • Rule SPC030101 DoNotOverrideSystemFiles. fixed to securely detect overwritten system files
  • Dependency SPD016102 ControlReferencesControlTemplate, fixed issue with ControlTemplates path
  • Rule SPC050233 UseRowLimitInQueries, ignores now created SPQuery with SPView as argument
  • WPF client crashed on RDP sessions when session window is closed and opened again
  • Integration of CAT.NET failed in certain situations: results did not show up in the reports
  • Rule SPC010221 DoNotCallDeprecatedMethods: improved check depending on method parameters

Changes

  • Removed JSHint analysis from rule set "Extended Recommended" due to performance issues. Use rule set "All Rules" to enable JSHint.
  • Client application: Reports are not displayed inline within the client app. Reports are opened directly in the browser or local application.
  • Changed sorting of violations in report (previously first criteria was severity, now it is the category to have same sorting in all reports).
  • Better exception handling: If an exception occurs during report generation the analysis is not stopped. Instead the analysis finishes and the failed report is excluded.
  • The max. number of elements listed in the inventory is now limited to 1000. Otherwise reports size may increase drastically and the reports cannot be handled anymore.
  • Removed rule SPC042105: Declare attribute 'SolutionId' in Feature (automatically set by SharePoint)
  • Removed rule SPC045202: Declare attribute 'FeatureId' in ContentTypes (automatically set by SharePoint)

v4.3.5 (2013-11-30)

Changes

  • Analysis runs now multi-threaded
  • Reduced memory consumption during analysis
  • Disabled FxCopMetrics by default in rulesets due to exception in FxCop metrics (missing assemblies)
  • Optimized speed with WPF application
  • Setup now provides retry function if Visual Studio is running
  • Send report form in client application contains text box for email address of the user (optional)
  • Replaced StructureMap with custom solution to load SPCAF assemblies

Fixes

  • Error during load of project file with hexadecimal characters
  • SPC050224 DoNotUseListItemsByIndex false positives and changed implementation of the rule
  • SPC010104 RemoveUnusedFilesFromPackage now also checks Assembly.ClassResources
  • SPC015701 DeclareRequiredAttributesInCustomAction Title is not required if Location is 'ScriptLink'
  • SPC026901 DoNotUseInlineCodeInASPXPage excluded files in _layouts folder from rule
  • SPC015702 DefineUniqueIDInCustomAction fixed error message to show correct name of feature

v4.1.1 (2013-10-20)

Fixes

  • SPC015404 DeployMissingListTemplateForListInstance failed for FeatureId with brackets
  • SPC046401 DeclareTitleAndDescriptionInWebPart failed for webparts without properties
  • SPC015108 DeclareAllRecommendedAttributesInFields will ignore Fields in ListDefinitions
  • SPCAF.Sdk.Model.FieldDefinition returned source code of parent Feature instead of ElementManifest
  • SPCAF.Sdk.Model.ModuleDefinition returned source code of parent Feature instead of ElementManifest
  • SPC015212 DefineInheritsToFalseInContentTypeWithForms detected false positive for imported ContentTypes with SharePoint forms
  • Evaluation of attribute SharePointVersion of rules failed
  • Disabled generation of serializion assembly in Visual Studio package during analysis build

Changes

  • CheckId of rule SPC106101 DoNotDeployControl (was SPC106701)
  • Path to license file changed to user AppData folder (instead of Program Files)
  • Updated severity of several rules, updated definition of severities CriticalError and Error

v4.1.0 (2013-10-04)

New Functionality

  • Syntax highlighting for source code in rule reports
  • New argument for command line tools: Verbosity to reduce content in output window and in build logs
  • New argument for command line tools: LogFile to provide a path to a log file
  • Added ability to exclude files from analysis (like 'jqery.js,Telerik*.dll'): configuration parameter 'IgnoredFiles' contains the list of excluded files
  • Name of created project file is configurable (via output argument)
  • Improved logging capabilities in custom rules

New Rules

  • Category Correctness
    • SPC010703: DoNotAddDependencyToWebAppFeatureInSiteDefinition
    • SPC017601: DeployMissingAssemblyInWCFWebService
    • SPC010212: DoNotCallSPSiteCatchAccessDeniedException
    • SPC010213: DoNotCallSPSiteReadLocked
    • SPC010223: DoNotImplementDeprecatedInterfaces
    • SPC010224: DoNotInheritFromDeprecatedTypes
    • SPC010225: DoNotUseDeprecatedTypes
  • Best Practices
    • SPC050250: AssignSPQueryRowLimitInLimitedRange
  • Deployment
    • SPC062111: DoNotDeployEmptyElementManifests
    • SPC060111: DoNotDeployBatchFiles
    • SPC060112: DoNotDeployPowerShellScripts

New Depedency Checks

  • SPD010705: SiteTemplateConfigurationReferencesVisibilityFeatureDependency
  • SPD037601: WCFWebServiceReferencesAssembly

Fixes

  • Improved error message and guidance to make it easier to solve issues
  • Fixed issues with message Unhandled exception: System.Exception: Exception ReFormatXmlDocument
  • Fixed AddTranslationForResourceKey not working for feature with DefaultResourceFile
  • Fixed DeployMissingImageOfListTemplate with schema.xml deployed as Resource file and not Elementfile
  • Fixed issues with calling SPCAF.exe via DOS path: providing error message in this case
  • Fixed issues when unloadable assemblies crashed SPCAF

v4.0.7 BETA (2013-09-04)

New Functionality

  • Custom rules created with older versions of SPCAF can now be loaded by newer SPCAF versions (no recompile needed)
  • Ability to save configuration properties in ruleset files (previous Dictonary.xml not required anymore)
  • Ability to add comments in the ruleset files (which will be added to the reports)
  • New Parameter "Help" in the custom rule metadata can be used to override the URL for help
  • Added analysis of ListDefinitions
  • Integration of CSSLint for analysis of CSS files
  • Integration of JSHint for analysis of JavaScript files
  • Reduced minimum .NET Framework version to 4.0
  • Support for Visual Studio 2013 Preview
  • Renamed default FxCop ruleset from SPCAF.ruleset to MSOCAF.ruleset
  • Aligned MSOCAF.ruleset with current MSOCAF rules
  • Inventory: Added ContentType Group to ContentType inventory
  • Client Application: New function to send error reports to SPCAF support

New Rules

  • Category Correctness
    • SPC015404: DeployMissingListTemplateForListInstance
    • SPC015405: RemoveCurlyBracketsFromFeatureIdInListInstance
    • SPC015406: DeployMissingCustomSchemaForListInstance
    • SPC015705: DeployMissingRibbonImageOfCustomAction
    • SPC015706: DeployMissingRibbonCommandUIHandlerOfCustomAction
    • SPC015212: DefineInheritsToFalseInContentTypeWithForms
    • SPC016503: DefineFieldRefInCorrectCasing
  • Category Design
    • SPC046902: AvoidInlineJavaScriptInASPXPage
    • SPC046903: AvoidInlineCSSInASPXPage
  • Category Best Practice
    • SPC052101: DoNotActivateFeaturesViaAPI
    • SPC050223: DoNotCallSPItemEventPropertiesOpenWeb
  • Category Deployment
    • SPC067601: DoNotDeployWCFWebServiceToLAYOUTS
    • SPC067602: DoNotDeployWCFAdministrationWebServiceToADMIN
  • Category Memory Disposal
    • SPC110201: Dispose created SPSite objects
    • SPC110203: Dispose SPWeb objects created with SPSite.OpenWeb
    • SPC110204: Dispose SPSite objects created with SPSite.SelfServiceCreateSite
    • SPC110205: Dispose SPWeb created by SPLimitedWebPartManager
    • SPC110211: Dispose SPSite created by SPSiteCollection.Add
    • SPC110212: Dispose SPSite created by SPSiteCollection[] index operator
    • SPC110213: Dispose SPWeb created by SPWebCollection.Add
    • SPC110214: Dispose SPWeb created by SPWebCollection[] index operator
    • SPC110231: Do not dispose SPListEventProperties.Web
    • SPC110232: Do not dispose SPWebEventProperties.Web
    • SPC110233: Do not dispose SPItemEventProperties.Web
    • SPC110234: Do not dispose SPItemEventProperties.ListItem.Web
    • SPC110235: Do not dispose SPItemEventProperties.Web.Site
    • SPC110236: Do not dispose SPItemEventProperties.ListItem.Web.Site
    • SPC110237: Do not dispose SPFeatureReceiverProperties.Feature.Parent
    • SPC110241: Do not dispose SPSite.RootWeb
    • SPC110242: Do not dispose SPWeb.ParentWeb
    • SPC110243: Do not dispose SPList.ParentWeb
    • SPC110244: Do not dispose SPSite returned by SPControl.GetContextSite
    • SPC110245: Do not dispose SPWeb returned by SPControl.GetContextWeb
    • SPC110246: Do not dispose SPSite returned by SPContext.Current.Site
    • SPC110247: Do not dispose SPWeb returned by SPContext.Current.Web
    • SPC110261: Close PublishingWeb created by PublishingWeb.GetPublishingWebs[] index operator
    • SPC110262: Close PublishingWeb created by PublishingWeb.GetVariation
    • SPC110263: Close PublishingWeb created by PublishingWebCollection.Add
    • SPC110281: Dispose SPSite created with UserProfiles.PersonalSite

New Depedency Checks

  • SPD015302: ModuleReferencedTemplateFiles
  • SPD027504: ListDefinitionContentTypeReferencesContentType

New ThirdParty Analyzer Rules

  • JSHint
    • JSH318901: Remove debugger statements
    • JSH318902: Do not use bitwise operators
    • JSH318903: Use correct comparison
    • JSH318904: Use camelCase in variables
    • JSH318905: Use curly braces around blocks
    • JSH318906: Use correct === and !==
    • JSH318907: Use correct null comparisons
    • JSH318908: Do not use eval
    • JSH318909: Do not use a single expression
    • JSH318910: Use filter in for in loops
    • JSH318911: Use parens for immediate function invocations
    • JSH318912: Use correct indent
    • JSH318913: Define variable before it is used
    • JSH318914: Use correct line breakings
    • JSH318915: Use correct line breakings around commas
    • JSH318916: Do not make functions within a loop
    • JSH318917: Avoid multi line strings
    • JSH318918: Do not use empty blocks
    • JSH318920: Do not use 'new' for side effects
    • JSH318921: Use consistent of quotation marks
    • JSH318922: Do not use single case switch
    • JSH318923: Use regular expressions correctly
    • JSH318924: Avoid . in regexp literals
    • JSH318925: Declare variable before it is used
    • JSH318926: Avoid JavaScript URLs
    • JSH318927: Remove unused variables
    • JSH318928: Avoid redeclaring a variable
    • JSH318929: Avoid correct construction of objects and function
    • JSH318930: Avoid this in non-constructor functions
    • JSH318931: Do not use arguments.caller and arguments.callee
    • JSH318941: Use semicolon correctly
    • JSH318942: Define uppercase constructors
    • JSH318943: Do not use unary increment and decrement operators
    • JSH318944: Use semicolon in last statement
    • JSH318945: Use dot notation instead of []
    • JSH318946: Avoid trailing whitespaces
    • JSH318961: Do not exceed max number of formal parameters per function
    • JSH318962: Do not exceed max number of nested blocks in a function
    • JSH318963: Do not exceed max number of statements per function
    • JSH318964: Do not exceed max allowed cyclomatic complexity
    • JSH318965: Do not exceed max length of a line in code
  • CSSHint
    • CSL308801: Avoid unwanted box model sizing issues in CSS
    • CSL308802: Avoid properties that don't work based with the display property being used in CSS
    • CSL308803: Avoid duplicate properties in CSS
    • CSL308804: Avoid un anchored hovers in CSS
    • CSL308805: Avoid empty rules in CSS
    • CSL308806: Use only known properties in CSS
    • CSL308807: Avoid adjoining classes in CSS
    • CSL308808: Avoid property box-sizing in CSS
    • CSL308809: Use compatible vendor prefixes in CSS
    • CSL308810: Use all gradient definitions in CSS
    • CSL308811: Avoid negative text indent in CSS
    • CSL308812: Use standard property with vendor prefix in CSS
    • CSL308813: Use fallback colors in CSS
    • CSL308814: Avoid star hack in CSS
    • CSL308815: Avoid underscore hack in CSS
    • CSL308816: Use bulletproof font face in CSS
    • CSL308817: Do not use too many web fonts in CSS
    • CSL308818: Do not use @import in CSS
    • CSL308819: Avoid selectors that look like regular expressions in CSS
    • CSL308820: Do not use universal selector in CSS
    • CSL308821: Do not use unqualified attribute selectors in CSS
    • CSL308822: Do not use units for zero values in CSS
    • CSL308823: Avoid overqualified elements in CSS
    • CSL308824: Use shorthand properties in CSS
    • CSL308825: Do not use duplicate background images in CSS
    • CSL308826: Avoid too many floats in CSS
    • CSL308827: Do not use too many font size declarations in CSS
    • CSL308828: Do not use IDs in selectors in CSS
    • CSL308829: Do not use !important in CSS
    • CSL308830: Do not use outline:none in CSS
    • CSL308831: Do not use qualified headings in CSS
    • CSL308832: Define headings only once in CSS

Fixes

  • Custom Rules without Metadata will not crash SPCAF
  • Fix in rule SPC030203 Do not read ConnectionString from SPContentDatabase
  • Fixed: endless loop during loading of imported WebTemplate project
  • Fixed: SPCAF menu not enabled in Visual Studio when a project is unloaded

Changes

  • SPC016501: DeclareRequiredAttributesInFieldRef Remove DisplayName
  • SPC015105: DeclareAllRequiredAttributesInFields Removed check for attribute 'Required'
  • Help: Changed root URL for documentation to http://docs.spcaf.com/v4
  • Changed rule categories: Not loaded from SDK anymore

v4.0.6.1005 BETA (2013-05-10)

New

  • Category Correctness
    • SPC010203: DeployReferencedAssemblyWithCorrectVersion
    • SPC015703: DeployMissingUrlActionFileOfCustomAction
  • Category Deployment
    • SPC060304: DoNotDeployRootFileMultipleTimes
    • SPC060404: DoNotDeployTemplateFileMultipleTimes
    • SPC062101: DeployMissingImageForFeature
    • SPC060303: DoNotDeployRootFileToTemplatesFolder

Fixes

  • Fix in SolutionDefinition: Handle schema errors in site definitions
  • Fix in Dependencies "FeatureReferencesImage" (SPD012112): Images not found if they contain slash
  • Fix in Dependencies "ASPXPageRegisterControlTemplate" (SPD036904): Controltemplates not referenced correctly

Changes

  • Change for Integration of third party analyzers like FxCop: Path to tools is now stored in Dictionary.xml (and not in app.config anymore). Reason: storing config values centrally for all components; app.config could not be read in Team Build Activity
  • Allow relative paths to third party analyzers (relative to SPCAF installation directory)
  • Disable FxCop and CAT.NET in all rulesets (due to large reports and negative impact on SPCAF performance). FxCop and CAT.NET need to be enabled manually in ruleset via RuleEditor.

v4.0.5.2504 BETA (2013-04-25)

New Functionality

  • Update notification for SPCAF new versions in Visual Studio (see Visual Studio Extension Manager)

Fixes

  • SPC015302 AddMissingModuleFileToFeature fixed issue that attribute 'Path' of Module was not included in search path
  • Fixed exception for missing webpart properties
  • SPC050225 DoNotUseListItemsCount fixed issue with wrongly detected violations

Changes

  • Setup: Check for required .NET Framework 4.5
  • General: Reduced strictness of default severity for several rules (e.g. we use CriticalError only for violations which are highly critical for SharePoint and may damage the farm)
  • SPC010102 DeclareSafeControlEntryForWebControls limited to non abstract types
  • Remove rules SPC050221 DoNotCallListItemsAddToAddItems (rule no present in MSDN anymore)

New

  • Category Correctness
    • SPC015506 DefineUniqueListTemplateType (Category Correctness)
    • SPC017401 DeclareRequiredAttributesInFeatureActivationDependency
    • SPC017402 DefineOptionalAttributesInFeatureActivationDependencyCorrectly
    • SPC017411 DoNotAddActivationDependencyToHiddenFeature
    • SPC017412 DoNotAddActivationDependencyToMoreRestrictiveScope
    • SPC017413 DoNotAddCrossScopeActivationDependencyToHiddenFeature
    • SPC017414 DoNotChainActivationDependencies
    • SPC017415 DoNotCreateCircularChaingOfActivationDependencies
    • SPC012121 AddMissingAssemblyForFeatureReceiverAssembly
    • SPC012122 DeployFeatureReceiverAssemblyToGAC
  • Category Design
    • SPC042107 DefineFeatureReceiverAssemblyAsFQN
  • Category Deployment
    • SPC060401 DoNotDeployImagesToLayouts
    • SPC060402 DeployOnlyImageToImagesFolder
    • SPC060403 DeployBinaryFilesToClientBin
  • Category Best Practices
    • SPC050230 DoNotUseSPFolderItemsCount
  • Category SharePoint 2013 Compatibility
    • SPC150102 DeclareSharePointVersionInSolution
    • SPC150207 BuildAssemblyForFramework45
    • SPC150208 ReplaceReferencesToOlderHivesInCode
    • SPC159901 Reference15HiveInPages
    • SPC159902 Reference15HiveInMasterPages
    • SPC159903 Reference15HiveInScripts
    • SPC159904 Reference15HiveInStyles
    • SPC159905 Reference15HiveInControls
    • SPC159906 Reference15HiveInXSLT
    • SPC155701 Reference15HiveInURLsInCustomAction
    • SPC155702 Reference15HiveInURLActionInCustomAction
    • SPC155703 Reference15HiveInScriptSrcInCustomAction
    • SPC156101 Reference15HiveInControlSrcInControl
    • SPC155501 Reference15HiveInImageInListTemplate

v4.0.4.1804 BETA (2013-04-17)

New

  • Client App: New function 'Check for Updates' which notifies the user if updates are available
  • Metrics: New Metric for BDCModel und ClientWebPart
  • Help: Added functionality for comments to online documentation
  • Rules: New rules DeclareFileElementInModule (Checkid: SPC015303)

Changes

  • Help: Changed root URL for documentation to http://docs.spcaf.com/spcaf
  • Rules: Changed severity for rule DeclareSafeControlEntryForWebControls from Error to CriticalWarning

Fixes

  • Rules: Changed CheckId for Rule MasterPageShouldReferenceSharePointVersion15 to SPC157303
  • Setup: Added registration as addin for VS 2010 to setup
  • Analysis Engine: Fixed problem with long paths (PathTooLongException during project save)
  • Analysis Engine: Fixed problem with special characters in method names of assemblies (e.g. obfuscated assemblies)

v4.0.3.1546 BETA (2013-04-11)

  • First public beta release.
Disclaimer: The views and opinions expressed in this documentation and in SPCAF do not necessarily reflect the opinions and recommendations of Microsoft or any member of Microsoft. SPCAF and RENCORE are registered trademarks of Rencore. All other trademarks, service marks, collective marks, copyrights, registered names, and marks used or cited by this documentation are the property of their respective owners.