Je n'ai pas de question précise à poser ici, mais je cherche plutôt à obtenir des conseils concernant un nouveau projet de logiciel que je lance au travail.
Voici une description du projet :
Je suis en train de remanier un logiciel Windows qui a été écrit en Visual Basic 6 et qui utilise MS SQL Server comme base de données. Le code est étroitement couplé à des requêtes SQL et fait référence à d'anciens contrôles actifs X.
Le logiciel peut fonctionner en mode autonome, c'est-à-dire avec une seule instance sur un ordinateur, ou en mode distribué, c'est-à-dire sur plusieurs machines simultanément, toutes connectées à une source de données partagée.
Les utilisateurs du logiciel doivent utiliser une large gamme de périphériques USB qui sont intégrés au logiciel du côté client. (Je suppose que cela signifie que la nouvelle version du logiciel doit être une application de bureau et ne peut pas être une application web basée sur un navigateur).
La nouvelle version du logiciel va être mise à jour pour utiliser les nouvelles technologies dans le but de moderniser le code et d'améliorer les performances.
J'aimerais que l'architecture du nouveau logiciel soit à la fois logique et à trois niveaux et qu'elle utilise des modèles de conception si nécessaire. Bien que je sois novice en matière de design patterns, il semble qu'il y ait une opportunité d'utiliser les patterns abstract factory, observer, et singleton ensemble dans la nouvelle version du logiciel.
Dans une explication très générique, le logiciel dispose d'une table de base de données "employé" qui stocke des informations sur les employés. Le client dispose d'une vue en grille qui permet à l'utilisateur de visualiser les informations sur les employés stockées dans la base de données et d'apporter des modifications aux données via la vue en grille. Les données peuvent être ajoutées à la base de données des employés par le client à l'aide de formulaires comportant des champs de texte et des menus déroulants. Les données relatives aux employés peuvent également être capturées par des dispositifs USB du côté du client, puis ajoutées à la base de données des employés.
Pour ce qui est du lien avec l'architecture, je suppose qu'il pourrait y avoir un objet employé singleton observable qui est observé par des objets d'affichage de données comme un objet de vue de grille et que ces objets d'affichage de données sont créés par une méthode d'usine abstraite. (Est-ce que cela a un sens ?)
Le nouveau logiciel sera écrit en Visual Basic à l'aide de Visual Studio 2010. En dehors de cela, aucune autre technologie n'a été décidée.
Je pense que nous utiliserons les formulaires Windows par opposition à la fondation de présentation Windows, bien que je ne sois pas sûr car il pourrait y avoir une certaine fonctionnalité de manipulation d'image que nous voulons qui est mieux faite avec WPF.
D'après ce que j'ai lu, j'aime bien l'Entity Framework et Linq, mais je ne suis pas sûr de savoir comment cela fonctionne en conjonction avec la couche de logique d'entreprise avec les modèles de conception que j'ai mentionnés ci-dessus.
En outre, j'essaie de comprendre si nous pouvons utiliser la fondation de communication de Windows et les services Web. Cela a du sens lorsque le logiciel fonctionne en mode distribué, mais pas vraiment dans le cadre d'un déploiement autonome sur une seule machine. L'ajout de services Web et l'utilisation de IIS pourraient être excessifs pour ce que nous essayons d'accomplir. Je ne sais pas.
Voici donc ce sur quoi je travaille et ce sur quoi j'ai lu et fait des recherches. J'apprécierais grandement vos réflexions à ce sujet et les conseils que vous pouvez me donner.
Gracias.