Les inconvénients d'une application client-serveur incluent le manque de fiabilité, d'outils matures et d'évolutivité. Les applications client-serveur, ou les logiciels qui s'exécutent sur un ordinateur client, présentent également les inconvénients de coûts et de risques plus élevés de congestion du réseau.
Étant donné que les applications client-serveur envoient des requêtes à un serveur distant à partir d'un ordinateur client, lorsque le serveur tombe en panne, les opérations s'arrêtent. En outre, les systèmes d'exploitation réseau tels que Windows NT Server manquent d'évolutivité. Un autre inconvénient des applications client-serveur est qu'elles doivent être installées sur l'ordinateur de chaque utilisateur. Dans certains cas, cela peut être aussi simple que d'utiliser un lecteur réseau partagé. Cependant, cela peut être aussi difficile que de passer des heures à installer et à configurer des logiciels d'exécution et des composants sur l'ordinateur de chaque utilisateur.
Les coûts associés à une application client-serveur dépendent du type. Les applications client-serveur à deux niveaux divisent la présentation, le traitement et les données en deux unités, tandis que les applications à trois niveaux divisent l'interface utilisateur, les fonctionnalités et les données en trois unités. Les applications à trois niveaux ont des coûts de test et de migration plus élevés lorsqu'une modification de règle métier nécessite une modification des paramètres d'appel. Les coûts de codage, de test et de migration sont toujours plus élevés dans les systèmes à deux niveaux lorsque l'on compare le coût de passage d'un outil de développement client propriétaire à un autre. Les autres coûts incluent les coûts de mise en réseau, de matériel et de temps de réponse.