Attributes vs. Custom fields
Custom fields differ from page attributes in that they provide more extensibility in storing different types of data. They are easier to use for developers, because they mimic static properties better.
Use the following code sample to migrate attributes to custom fields:
NOTE: After the migration is completed you must change the configuration of the FieldControls in the backend. In the DataFieldName property, replace Attributes with CustomFields. For example, replace Attribtues.SampleText with CustomFields.SampleText.