2017-02-28 7 views
4

J'essaie de connaître les meilleures pratiques en matière de développement C#. Je suis tombé sur des personnes créant différents projets de bibliothèque de classes dans une solution. J'ai développé des solutions pour C# mais ne crée jamais de projets séparés pour mes cours. Cependant, certains de mes projets étaient petits. Pour séparer mes espaces de noms, je crée normalement des dossiers. Y a-t-il une bonne raison pour laquelle je devrais créer un projet séparé pour mes modules de cours?Espace de noms dans un projet ou un projet séparé

+1

Créez un assembly .dll et utilisez-le sur plusieurs projets. Par exemple, Journalisation, Authentification, Classes auxiliaires, etc. – Karthik

+0

Une des raisons est de gérer la complexité. Vous pouvez avoir des classes publiques qui utilisent une variété de classes internes pour leur implémentation. Les types d'un assemblage ne peuvent pas accéder par défaut aux types internes d'un assemblage différent, de sorte qu'un programmeur travaillant dans un assemblage différent n'aurait pas besoin de les connaître. –

+1

Quelques informations utiles ici: http://stackoverflow.com/questions/8934570/c-sharp-namespaces-and-assemblies-best-practice – PaulF

Répondre

1

Raison de créer un projet distinct:

Lorsque nous créons un projet de type bibliothèque de classe, après la construction du processus msbuild à une bibliothèque recrache liée assemblage/dynamique ou fichier .DLL. Ce fichier .dll peut être référencé dans n'importe quel projet dans la même ou une autre solution. Cela prend en charge la réutilisabilité du code.

Une règle générale pour une structure de solution basée sur le Web (ASP.Net MVC) est donnée comme ci-dessous:

  1. Créer un (type Bibliothèque de classes de projet) Projet modèle de domaine
  2. Créer un accès aux données couche (type de classe projet de bibliothèque)
  3. Créer un projet de couche de services (bibliothèque de classes Type de projet)
  4. Créer un projet de couche d'interface utilisateur (type de projet ASP.Net MVC)

Créez les projets de test unitaires (type de projet de la bibliothèque de classes) pour chaque projet répertorié ci-dessus.

Espérons que cela aide.

+0

Merci Yawar. Cela sera-t-il applicable à d'autres types de développement, par exemple WinForms, WPF, etc.? –

+0

Dans le cas d'applications WPF et/ou WinForm, changez simplement l'étape 4 en type de projet respectif. Ceci est généralement vrai, si le projet est très grand, alors dans WPF, vous pouvez créer un projet distinct (.dll) pour vos modèles de vue, ce qui est également vrai pour une application MVC - Voici un bon lien pour lire le projet de code cela montre une architecture d'application MVC. https://www.codeproject.com/Articles/70061/Architecture-Guide-ASP-NET-MVC-Framework-N-tier-En - Espérons que cela aide! –