2010-07-06 14 views
3

À quel moment décidez-vous que certains de vos sous-programmes et codes communs doivent être placés dans une bibliothèque de classes ou une DLL? Dans l'une de mes applications, je voudrais partager une partie de mon code commun entre différents projets (comme nous le savons tous, c'est un programming sin to duplicate code).Comment décider quand implémenter une DLL?

La grande majorité de mon code se trouve dans un seul projet. J'ai également un petit utilitaire qui est partitionné à partir de l'exécutable principal qui s'exécute avec des autorisations élevées dans un seul but. Les deux articles ont, au plus, trois sous-programmes en commun. Ces routines communes doivent-elles être placées et appelées à partir d'une bibliothèque de classes? Comment décidez-vous quand le faire? Lorsque vous avez au moins un sous-programme partagé? Vingt-plus de lignes de code?

Je ne pense pas que cela dépende du langage ou du framework, mais si c'est le cas, j'utilise le framework .NET.

Répondre

1

Il y a d'autres façons de partager le code entre les applications que d'une DLL. De ce que cela ressemble, vous ne parlez pas de beaucoup de code, alors il semble que vous n'ayez pas à vous en soucier trop.

En général, j'utilise la règle suivante:

  • Pour la duplication de code trivial (un simple couple 1-2 fonctions de ligne, qui sont faciles à comprendre et debug) Je vais juste copier et Collez le code.

  • Pour les fonctions plus compliquées (une petite bibliothèque de fonctions d'aide autonome, contenues dans un fichier ou deux, qui nécessitent un niveau modeste de maintenance et de débogage) Je vais simplement inclure le fichier dans les deux projets (soit par relier, ou définir un sous-dépôt, ou quelque chose comme ça). Pour un partage de code plus étendu (un groupe de classes interreliées, ou une couche de communication de base de données, utile pour plusieurs projets), je vais les refactoriser en une bibliothèque autonome, les empaqueter et les distribuer en utilisant ce qui est approprié pour tout ce que je suis dans la programmation.

en raison de la complexité de la gestion de vos augmentations de code par un ordre de grandeur pour chaque étape (lorsque vous DLLs emballage pour plusieurs projets dont vous avez besoin maintenant de réfléchir à des questions versioning) vous seulement vouloir passer au niveau suivant quand vous en avez besoin. Il ne semble pas que vous ressentiez la douleur de gérer votre code commun pour le moment, et si tel est le cas, il n'y a aucun besoin réel.

0

Si le code est partagé entre plusieurs applications, il doit alors se trouver dans une DLL ou une bibliothèque de classes.

Pour une application plus volumineuse, vous pouvez également décomposer différents sous-systèmes de l'application en bibliothèques distinctes. De cette façon, chaque projet peut se concentrer sur une tâche particulière. Cela simplifie la structure de votre application et facilite la recherche d'un morceau de code. Par exemple, vous pourriez avoir une application GUI avec (projets .NET) de DLL différent pour:

  • Travailler avec un protocole de réseau spécifique
  • Accès code commun, par exemple les classes utilitaires
  • L'accès au code existant (via PInvoke)
  • etc ...