In MAS 500 R&D we continually perform code reviews for internal as well as external developers. We ran across a few common themes recently that I thought would be helpful to share with those of you integrating or customizing MAS 500. Several of these topics are explained in more detail in our SDK documentation. Here are our recent top 10 best practices for well performing and well mannered, multi-user MAS 500 code:
1) Respect UpdateDate, UpdateUser, and UpdateCounter when updating MAS 500 tables. The UpdateCounter column is used for optimistic concurrency.
2) Respect application logical locks; for details see stored procedures like 'sp%logical%‘.
3) Do not use implicit transactions.
4) Connections from the client should support application roles and not use connection pooling.
5) Connections from a middle-tier do not need to support application roles.
6) Test your application for simple multi-user using optimistic concurrency.
7) Test your application using LUA/UAC.
8) Default connection isolation is read committed; consider using (nolock) query hint to avoid unnecessary shared locks when possible.
9) Crystal report performance is critical, it can affect the entire system not just the user running the report.
10) Test, Test, Test