J
Jordan S.
So I'm trying to help a client determine if they should rewrite an existing
problemmatic system using an MS Access client (the database is already SQL
Server) or use something else. The decision has become a big political
football, so I'm trying to get down to some "as objective as possible"
heuristics or "rules of thumb" I have come up with over the past few days
that can be used to help make the decision. The decision will not be mine,
but I can substantially influence it. I'd hate to be totally wrong about
anything I claim.
Please note that I am not at all "Anti-Access" (I did over 5 years of non
trivial Access programming - so I understand that it is far more capable
than it often gets credit for being), and this post is not intended in any
way to cast MS Access in any negative light. I believe that MS Access has
strengths and weaknesses. Consequently, it frequently IS THE BEST solution
for some problems, while it is not the best solution for every problem (just
like every other technology we've ever had).
So I would appreciate your honest non flaming feedback on my list of
heuristics below.
FAVOR THE USE OF MS ACCESS *client* APPLICATIONS WHEN.
1. the use of bound controls will suffice (e.g., minimal or no processing
between the UI and the database is required).
2. realtime communication or integration with external systems is not
required.
3. relatively straight-forward user interfaces will suffice - with no
specialized 3rd party COM controls required, and with minimal or no MDI
requirements.
4. while lengthy or complex business logic may be present, the purpose of
the application is largely to maintain data in a database; insert, update,
delete, read data, and generate reports.
FAVOR THE USE OF SOMETHING OTHER THAN MS ACCESS as a *client* WHEN..
1. the use of bound controls would be difficult or impossible (e.g., when
any logical or physical middle tier components are *required*).
2. communication, interoperability, or integration with external systems is
required.
3. non trivial user interfaces are required, necessitating the use of
specialized 3rd party controls, and/or with full MDI capabilities required.
4. complicated business logic, data processing rules, or workflow
orchestration is required.
5. non trivial user services are required (perhaps involving the caching of
complex data structures designed to improve overall system performance).
6. the purpose of the application far exceeds simple data maintenance and
retrieval tasks.
7. users of the application will be geographically dispursed (i.e., not all
on the same LAN... some on a slow WAN link).
8. multiple application types are required to interface with the database
and/or middle tiers (e.g., Windows Forms application, Web Forms application,
Smart Client Application, Web Services, etc).
9. Substantial extensions to core system functionalities are foreseeable -
AND such extensions would not be satisfactorily met in an MS Access client
application (even if the short-term needs could be met entirely with an MS
Access client).
Please note that we're interested in Access *client applications* - NOT
Access as a database (so no contention or scalability issues addressed).
Thanks for your thoughtful feedback.
-Jordan
problemmatic system using an MS Access client (the database is already SQL
Server) or use something else. The decision has become a big political
football, so I'm trying to get down to some "as objective as possible"
heuristics or "rules of thumb" I have come up with over the past few days
that can be used to help make the decision. The decision will not be mine,
but I can substantially influence it. I'd hate to be totally wrong about
anything I claim.
Please note that I am not at all "Anti-Access" (I did over 5 years of non
trivial Access programming - so I understand that it is far more capable
than it often gets credit for being), and this post is not intended in any
way to cast MS Access in any negative light. I believe that MS Access has
strengths and weaknesses. Consequently, it frequently IS THE BEST solution
for some problems, while it is not the best solution for every problem (just
like every other technology we've ever had).
So I would appreciate your honest non flaming feedback on my list of
heuristics below.
FAVOR THE USE OF MS ACCESS *client* APPLICATIONS WHEN.
1. the use of bound controls will suffice (e.g., minimal or no processing
between the UI and the database is required).
2. realtime communication or integration with external systems is not
required.
3. relatively straight-forward user interfaces will suffice - with no
specialized 3rd party COM controls required, and with minimal or no MDI
requirements.
4. while lengthy or complex business logic may be present, the purpose of
the application is largely to maintain data in a database; insert, update,
delete, read data, and generate reports.
FAVOR THE USE OF SOMETHING OTHER THAN MS ACCESS as a *client* WHEN..
1. the use of bound controls would be difficult or impossible (e.g., when
any logical or physical middle tier components are *required*).
2. communication, interoperability, or integration with external systems is
required.
3. non trivial user interfaces are required, necessitating the use of
specialized 3rd party controls, and/or with full MDI capabilities required.
4. complicated business logic, data processing rules, or workflow
orchestration is required.
5. non trivial user services are required (perhaps involving the caching of
complex data structures designed to improve overall system performance).
6. the purpose of the application far exceeds simple data maintenance and
retrieval tasks.
7. users of the application will be geographically dispursed (i.e., not all
on the same LAN... some on a slow WAN link).
8. multiple application types are required to interface with the database
and/or middle tiers (e.g., Windows Forms application, Web Forms application,
Smart Client Application, Web Services, etc).
9. Substantial extensions to core system functionalities are foreseeable -
AND such extensions would not be satisfactorily met in an MS Access client
application (even if the short-term needs could be met entirely with an MS
Access client).
Please note that we're interested in Access *client applications* - NOT
Access as a database (so no contention or scalability issues addressed).
Thanks for your thoughtful feedback.
-Jordan