Sitecore 9 is the beginning of the end for WFFM, thank God. Unfortunately, I am not out of the woods with my upgrade task as a new version was released. A new forms solution called Sitecore Forms looks very promising, and my money is on WFFM moving into maintenance sooner rather than later.

IFieldItem assembly not imported

Issue:

The type 'IFieldItem' is defined in an assembly that is not referenced. You must add a reference to assembly 'Sitecore.WFFM.Abstractions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=null'

Solution:

Install Sitecore.WFFM.Abstractions.NoReferences NuGet package.

Cannot implicitly convert type IFieldItem to FieldItem

Issue:

Cannot implicitly convert type 'Sitecore.WFFM.Abstractions.Data.IFieldItem[]' to 'Sitecore.Forms.Core.Data.FieldItem[]'. An explicit conversion exists (are you missing a cast?)

Solution:

Use the var keyword or IFieldItem[] as the type.

Data does not exist

There was a significant change in how Sitecore stores form data as of version 8.1. I assume it was to bring the module in line with the xDB worldview. It changed again in Sitecore 8.2. The Sitecore.Forms.Core assembly no longer contains the Sitecore.Forms.Data namespace

Issue:

The type or namespace name 'Data' does not exist in the namespace 'Sitecore.Forms' (are you missing an assembly reference?)

Solution:

You must use analytics to get data from forms, installation Sitecore.WFFM.Abstractions.NoReferences NuGet package and a reworking of code is required.