Je suis à la recherche de commentaires sur la direction à prendre pour créer une application de comptabilité. L'application doit permettre une personnalisation élevée, parfois des processus entiers devront être modifiés.Architecture d'application pour faciliter la personnalisation des applications
Je veux un moyen d'apporter des modifications sans recompiler l'ensemble de l'application lorsqu'un client a une demande de modification spécifique. Le back-end sera une base de données SQL de quelque sorte. Probablement SQL Server Express pour des raisons de coût. L'interface sera C#.
Je pense à un système basé sur les événements qui aura des événements pour quand différents types d'actions, telles que les entrées, sont faites. J'aurais alors un système de plugin qui gère l'événement. Il se peut que plusieurs processus doivent s'appliquer dans un ordre spécifique aux données avant qu'elles ne soient définitivement enregistrées. Il devra également déclencher d'autres processus. Je souhaite que mon application de base reste la même, ce qui fonctionne pour la plupart des clients, mais permet de charger les processus personnalisés d'autres clients spécifiques.
Je suis ouvert à toutes les suggestions. Même s'ils pensent à des manières complètement différentes d'aborder le problème. Notre talent actuel de développement interne est .NET et MS SQL Server. Je ne suis pas au courant d'un modèle de logiciel qui pourrait correspondre à cette situation.
Informations supplémentaires: Ce système d'ardoise n'est pas complètement vierge, il aura des fonctionnalités qui fonctionnent pour un grand nombre de clients. Pour diverses raisons, les exigences changent selon les états et même au niveau de la région et de la ville où la personnalisation peut être nécessaire. Je voudrais être en mesure de brancher des modules précompilés supplémentaires. Quand j'ai commencé à chercher des options possibles, j'imaginais un gestionnaire vide dans lequel je pouvais insérer du code via un plugin. Ainsi, par exemple, une nouvelle entrée est faite au grand livre qui soulève un événement. Le gestionnaire est appelé, mais le code du gestionnaire provient d'un plugin, ce qui peut être mon processus d'origine qui correspond à 80% des clients. Si un client veut une opération personnalisée, je pourrais ajouter un plugin qui remplace complètement l'original ou lui faire ajouter une étape de post-traitement supplémentaire via un autre plugin après l'exécution d'origine. Une sorte de processus de superposition je suppose.
Pouvez-vous expliquer pourquoi vous ne voulez pas compiler? Êtes-vous en train de dire que vous voulez pouvoir brancher des modules précompilés supplémentaires, ou que tout soit piloté par une sorte de configuration? – Ian