I get to work on a lot of SalesLogix web client projects. From time to time I get to take over a project that another developer has started. During that time I find places where the solution created is using methods that are less then optimal. One of the biggest issues I can see is when a developer decides that their needs for a smart part exceeds the capability of the designer and they need to go custom.
Now going custom in itself is not a bad thing and there are many reasons where it just makes sense from a delivery point of view. Where I get a bit disjointed is when the developer in going custom does not clean up after themselves.
What I mean about clean up comes with some of the artifacts that are generated out of application architect. When a smart part is generated a new form interface is created representing all of the controls on the form. This interface is then implemented at the control level and used in the C# code snippet form rules.
In deployment the AA based smart parts will be copied first across and then all the custom ones. If a developer inadvertently changes the AA smart part and not the custom smart part they will not see their changes and more so the interface definition that might be implemented in the custom smart part will become invalid and could effectively break the page loading.
Since it will be difficult to keep these smart parts in sync without adding work to the process one of 2 items should be done if possible.
1. Delete the base smart part (in AA) and do all future work in the custom smart part
2. In the custom smart part delete all of the form interface code and go it alone.
When you decide to go custom, you should really be ready to take complete ownership of the smart part and its up keep. Cleaning up in this way will ensure that you do not have conflicts that may be difficult to determine.
Happy Coding …