Je suis actuellement en train de développer une grande application. Pour l'instant, j'ai une solution (cela peut changer dans le temps) avec de nombreux projets.Solution moyenne/grande - Processus Visual Studio Build - Conseil requis
J'ai mis en place la structure de répertoire:
\ lib \ (CONTIENT partagé composants 3ème partie) build \ build \ bin (répertoire de sortie) build \ wwwroot (répertoire de sortie pour application web) config \) src \ (contient les dossiers pour les projets ci-dessous)
Sur chacun des projets, j'ai définir l'emplacement de construction (répertoire de sortie) ".. \ build \ bin \" Ceci, comme illustré ci-dessus, fait construire les projets dans build \ bin, au dessus du répertoire src. Sur
Company.Entities Références Company.Common Cela a tous les objets métier (client, commande, produit) etc ....
Company.Common Contient des classes qui format chaînes, dates, accès au fichier etc .... Ne contient aucune référence à un autre de la Société. bibliothèques.
Company.Data Références 3ème partie lib (château de Windsor par exemple) Il contient des interfaces comme IRepository, ICustomerRepository, IOrderRepository etc .... A classe RepositoryFactory - ce qui a une méthode appelée « Get () "qui utilise Ioc (Castle Windsor) pour renvoyer le contient également IoC pour résoudre les implémentations en cours de ces dépôts. Castle.config se trouve dans le répertoire \ config \ et inclus "en tant que lien" dans ce projet. Je l'ai mis à copier toujours dans le répertoire de sortie
Company.Data.LinqToSql Références Company.Data Ceci est la bibliothèque d'accès aux données en cours. Il est instancié par IoC
Company.Logic Références à Company.Data de couche logique métier - a des méthodes comme GetProductById (string id) - à son tour, appelle Repository.Get() GetById (id). - par exemple
Company.Tests Explicite ... fera davantage usage de ceci dans le futur.
Company.Web Références Company.Logic, Company.Entities, Company.Common de couche d'interface utilisateur Web - c'est le site principal.
Ok, j'espère que cela vous donne un peu de contexte dans l'architecture actuelle de mes projets etc ...
Actuellement, je construis tout dans le répertoire build/bin, à l'exception de Company.Web, qui construit dans build/wwwroot (ceci ajoute un répertoire bin) J'ai alors un événement post-build qui copie pages aspx, feuilles de style, images, fichiers js etc .... depuis l'emplacement src/Company.Web pour construire/wwwroot J'ai configuré Visual Studio pour utiliser IIS pour le débogage, et configurer un répertoire virtuel iis pour pointer vers mon dossier build/wwwroot.
Cependant ... Certains fichiers requis ne sont pas intégrés dans le répertoire wwwroot/bin tel que - Company.Data.LinqToSql - puisque ce n'est pas référencé par proejcts, mais instancié à l'aide IoC
Comment J'améliore ma structure de processus/projet de construction pour m'aider dans mon développement? Je vais "relever" toutes les suggestions judicieuses.