2012-07-12 5 views
0

Je programme en VB6 depuis quelques années et maintenant j'ai repris VB.Net. J'ai développé quelques solutions, mais les solutions ne répondent pas aux normes de conception courantes. Je suis le seul développeur dans une entreprise financière. Mes solutions fonctionnent, mais je n'ai personne à qui me renseigner sur l'architecture correcte.Conception/architecture orientée objet pour une application CRUD simple

Je développe une nouvelle application et je veux qu'elle soit bien faite. Cependant, je ne sais pas ce que devrait être une classe/objet etc. Je pense que j'utilise trop de variables globales et rien n'est encapsulé.

La demande est pour les soumissions de dépenses. L'utilisateur (l'utilisateur doit être une classe?) Peut entrer une dépense avec des éléments de campagne. J'utilise un datagridview pour afficher/ajouter les éléments de campagne. Il y aura également un onglet historique qui affiche toutes les dépenses de l'utilisateur et un onglet de révision afin qu'un réviseur sur les dépenses puisse approuver les éléments de ligne.

Les données sont dans SQL Server plusieurs tables, une pour l'en-tête de dépenses, une pour les lignes de dépenses, une pour les informations utilisateur. Les dépenses approuvées sont insérées dans une application tierce sur la même base de données SQL Server pour le paiement.

Quelle approche utiliseriez-vous dans la conception d'une application simple comme celle-ci? Merci pour tout conseil que vous pouvez me donner.

+0

Malheureusement, il n'y a vraiment pas de façon "correcte" de répondre à cette question. Au mieux, je peux recommander un livre ou deux sur le développement orienté objet. "Domain Driven Design" par Eric Evans est un bon pour conceptualiser vos objets d'affaires, par exemple. "Design Patterns" par Erich Gamma, et al (également connu sous le nom de "Gang Of Four" livre) est un examen approfondi des modèles réutilisables dans les conceptions orientées objet. Ce sont des _bit_ lourds pour un débutant, mais ce sont de bons matériaux. Il y a un _lot_ à apprendre et il ne peut pas vraiment être encapsulé dans une question/réponse Stack Overflow. – David

+0

Si vous essayez quelques choses et identifiez ce que vous pensez être des problèmes avec ces approches, nous pouvons certainement recommander de meilleures approches ou aider à résoudre les problèmes. Pas seulement les anciennes critiques de code, remarquez. Mais des choses comme: "Voici comment j'ai écrit cette classe, mais il semble difficile et difficile à maintenir.Y a-t-il un modèle qui peut améliorer le design?" ou "Cette fonction est un sérieux goulot d'étranglement au niveau des performances, ce que j'essaie de faire, c'est ___. Y a-t-il un moyen plus efficace de le faire?" – David

+0

En ce moment je me recule et je définis les noms. J'ai un utilisateur, un réviseur (qui est un type particulier d'utilisateur), un en-tête de dépenses et des lignes de dépenses. Je définis les propriétés et les méthodes sur celles-ci. Puisqu'ils ont des propriétés et des méthodes, sont-ils des objets dans l'application? – unholymackerel

Répondre

0

Vous devez faire beaucoup plus d'études. Cependant, une chose que j'ai trouvée utile pour développer rapidement des modèles d'objets sans trop me soucier des aspects de la base de données est l'Entity Framework. Ajouter un modèle d'entité à votre projet et lire à ce sujet.