2010-12-13 5 views
0

J'ai une grande structure de répertoires avec JavaScript, images, etc. qui dépendent les uns des autres. Je voudrais encapsuler tout dans une DLL de sorte que je dois seulement faire référence à une chose et ne pas avoir plusieurs copies de tous ces fichiers à travers les projets. Parce que les fichiers dépendent les uns des autres, je pense que je peux créer un IHttpModule qui enregistre un itinéraire pour accepter les URL tels que /MyEmbeddedDir/subdir/file.js. Tout dans MyEmbeddedDir serait alors géré par un IHttpHandler personnalisé qui effectue le mappage correct. Chaque application Web doit alors référencer la DLL et ajouter le module et le gestionnaire à web.config. Est-ce que cela semble raisonnable?Intégration de la structure du répertoire entier

Aussi, est-il un moyen plus facile d'intégrer/référencer les fichiers que de définir l'action de construction de ressources intégrées et ajouter [assembly: WebResource(...)] à chaque fichier (il y a des dizaines!)? Merci!

Edit: Si je ne suis pas en utilisant WebResource.axd alors je ne devrais pas avoir besoin d'ajouter [assembly: WebResource(...)]

Répondre

0

J'ai fini par aller avec le IHTTPModule (itinéraire de registre) et IHTTPHandler (obtenir la ressource incorporée). L'itinéraire est configurable en web.config en cas de conflit avec le contenu existant.

1

Oui, ayant un seul conteneur est une excellente façon de gérer un grand nombre de fichiers (et non, SQLite ne va pas aider ici!;).

Nous avons un produit, nommé SolFS, qui est un système de fichiers virtuel, qui vous permet de conserver vos données dans un stockage personnalisé (DLL de ressources est l'une des options) et fournit l'API de fichiers pour accéder aux fichiers. Nous avons même implémenté un protocole enfichable asynchrone pour IE (du côté client, mais la tâche est très similaire à la vôtre). SolFS inclut une application de gestion qui vous permet de créer facilement des fichiers de conteneur et d'importer des fichiers dans un conteneur.

+0

Votre solution semble bonne pour un système plus grand que celui avec lequel je travaille. –

Questions connexes