3 votes

Je commence un nouveau projet VB et j'ai besoin de conseils.

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.

3voto

m.edmondson Points 13514

Outre le fait que vous apprendrez beaucoup au cours du processus de développement, je peux vous donner les recommandations suivantes :

  • Utilice Procédures stockées dans la base de données pour l'accès à la base de données. Cela permet d'éviter les problèmes de concurrence et d'effectuer des transactions. Cela signifie que si quelque chose ne va pas (l'ordinateur de l'utilisateur tombe en panne, etc.), aucune donnée ou intégrité de données n'est perdue.

  • Traitez les formulaires Windows comme de simples "interfaces" entre l'utilisateur et la base de données. Ils ne doivent donc rien contenir qui garde la trace des données (laissez la base de données s'en charger) et ils ne sont qu'un moyen de rassembler et d'afficher des données.

1voto

John Points 12438

J'ai eu une expérience très similaire.

J'ai essayé d'importer un projet de base de données VB6 qui fonctionnait comme une application autonome dans VB 2005, et le code était très laid.

Un livre que j'ai trouvé très utile pour réaliser des applications de base de données à trois niveaux à l'aide de VB.NET (VB 2005, en fait) est le suivant ADO.NET 2.0 avec VB 2005 publié par Murach. Il m'a permis de me mettre à niveau très rapidement et donne des exemples directs d'écriture d'applications de base de données à trois niveaux (couche métier, couche de présentation et couche d'accès à la base de données).

Je ne sais plus s'il existe une version plus récente de ce livre, mais j'ai été impressionné par la mise en page de celle-ci. Il traite également des applications Web.

En plus de cela, j'ai fait un peu de génération de code pour rationaliser le hacking de la Object et les classes d'accès à la base de données pour mon projet.

0voto

Alex Essilfie Points 5066

Je crois que ce projet va vraiment vous permettre d'apprendre et d'acquérir beaucoup d'expérience.

Comme l'a dit eddy556, utilisez les formulaires uniquement comme interfaces. Cela fonctionne mieux de cette façon.

De plus, si vous avez le moindre problème, n'hésitez pas à le demander. L'équipe de StackOveflow est là pour ça de toute façon.

Bonne chance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X