Upgrading to 6.2 - Recompiling Configurations

What's needed?

If you are updating your website to 6.2 Aptify you must recompile your configurations against the 6.2 assemblies.  No code changes are needed in most scenarios.  The most common action needed is to add additional references to your projects.

Why is recompilation needed? 

As part of our internal development process to improve the product, the 6.2 release required Aptify to move some types to different assemblies.  .NET supports this as a non-breaking change with Type Forwarding attributes.  Unfortunately, in our testing we found that type forwarding attributes do not work in every scenario.  There were many instances where configurations would not locate the new type at run time and the application would error during type resolution.  Recompiling against the new type locations always resolves these errors.

6.2 also updates Aptify to .NET Framework 4.8.  When we previously made the move to .NET Framework 4.5, some configurations had problems that were only resolved with a recompile.  Since we know this has caused issues in the past, we're recommending it here as well. 

When do I need to add additional references?

This section lists out the types that moved from one assembly to another.  If you recompile against the new assemblies and do not receive any type of resolution errors, you should not need to take any additional action.  If you do receive compilation errors, consult the table below to determine what types were impacted and the new assembly it resides in.  

 

Original Assembly Type

New Assembly

AptifyProductCostAdjustmentWizard.dll ProductCostAdjustmentWizardException AptifyInventoryManagement.dll
AptifyWindowControls.dll AptifyFormTemplateContext IAptifyWindowControls.dll
AptifyWindowControls.dll BoundControlCollection IAptifyWindowControls.dll
AptifyWindowControls.dll FieldHelp IAptifyWindowControls.dll
AptifyWindowControls.dll IAptifyDataFieldControlBase IAptifyWindowControls.dll
AptifyWindowControls.dll IAptifyControlBase IAptifyWindowControls.dll
AptifyWindowControls.dll IDataControl IAptifyWindowControls.dll
AptifyWindowControls.dll IFormComponent IAptifyWindowControls.dll
AptifyRecordTemplate.dll TemplateObject AptifyRecordTemplateObject.dll
AptifyViewPlugin.dll IAptifyViewPlugIn IAptifyViewPlugin.dll
AptifyViewPlugin.dll IAptifyViewExtension IAptifyViewPlugin.dll
AptifyViewPlugin.dll IAptifyViewPropertiesPlugIn IAptifyViewPlugin.dll
AptifyViewPlugin.dll AptifyViewPropertiesPlugInType IAptifyViewPlugin.dll
AptifyViewPlugin.dll IAptifyViewExecuteNonUI IAptifyViewPlugin.dll
AptifyViewPlugin.dll ViewExecutionException IAptifyViewPlugin.dll
AptifyViewPlugin.dll AptifyViewUtility IAptifyViewPlugin.dll
AptifyViewPlugin.dll ViewTypeScope IAptifyViewPlugin.dll
AptifyViewPlugin.dll ViewTypeInfo

IAptifyViewPlugin.dll

AptifyExceptionManagement.dll BaseApplicationException AptifyExceptionManagementInterfaces.dll
AptifyFormTemplateGUI.dll IFormComponentPropPage IAptifyFormTemplateControls.dll
AptifyLicensingManager.dll LicensingManagerConstants ILicensingManager.dll
AptifyLicensingManager.dll LicensingManagerException ILicensingManager.dll
AptifyLicensingManager.dll LicensingManagerInactiveAptifyUserLicenseAssignmentException ILicensingManager.dll
AptifyLicensingManager.dll LicensingManagerInactiveAptifyUserLicenseException ILicensingManager.dll
AptifyLicensingManager.dll LicensingManagerNoUserLicenseException ILicensingManager.dll
AptifyLicensingManager.dll LicensingManagerException ILicensingManager.dll
TypeResolution.dll ITypeResolver ITypeResolution.dll
AptifyGenericEntity.dll AptifyGEConflictWizard* AptifyGenericEntityForms.dll
AptifyGenericEntity.dll DuplicateMessageForm* AptifyGenericEntityForms.dll
AptifyGenericEntity.dll FindSubTypeRecordForm* AptifyGenericEntityForms.dll
AptifyGenericEntity.dll VersionCommentsForm* AptifyGenericEntityForms.dll

*  It was not possible to add type forwarding attributes for these changes

In general, if your project references an assembly in the 'Original Assembly' column, add a reference to the assembly in the 'New Assembly' column.  The most common assembly you will need to add is AptifyExceptionManagementInterfaces.dll.  Customers with custom smart client form templates will likely need IAptifyWindowControls.dll.  Most customers should not be affected by the other types listed in the table.  

When would I need to change code?

The only time you should need to change code as a result of Aptify moving types is if you are resolving the type through reflection.  This should be rare for the types affected.  

What about deployed applications?

Applications that are updating their bin directory to the 6.2 assemblies will need these new assemblies too.  The 6.2 core installer updates all Sync Repository Objects records to account for these changes.  If there is a Sync record referencing an assembly in the first column, an additional entry is added for the assembly in the 3rd column during the upgrade.  The Related Objects subtype on the Object Repository Objects records were not updated.  This is because of a bug in the sync process that does not account for circular references within these records.  Fixing this bug before we made the type moves was difficult, so we decided to move the types now and handle the Related Objects problem in a future update.  

 

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.