Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

ASP.net – partager des fichiers (pages, UserControl) entre plusieurs site web – ajouter un fichier lié (Add As Link)

Dans certains cas, il est interessant de partager des fichiers entre plusieurs sites web : des pages web (.aspx), des UserControls (.ascx), etc …

Si l’on utilise un projet de type WebApplication et non un site web, il est possible d’ajouter un fichier lié. Pour cela, dans le solution explorer, lorsque vous faites un “Add existing item”

image

Vous pouvez sélectionner des fichiers d’un autre emplacement. Afin d’éviter que Visual Studio copie le fichier, vous pouvez l’ajouter en tant que fichier lié (Add As Link):

imageAinsi, votre solution contiendra bien une référence vers un fichier externe. Visual Studio nous affiche le fichier via l’icone “raccourci” dans l’explorateur de solution.

image

A l’utilisation cela ne fait aucune différence, il n’y aucun soucis pour éditer le fichier, compiler/publier le site web, ou réaliser des check-in (il faut que le fichier partagé fasse partie du workspace TFS).

Si vous utilisez un site web, on ne peut pas utiliser un fichier lié, en effet ceux ci nécessitent un fichier .csproj (ou .vbproj). En fonction des besoins, vous pouvez utilisez ces 3 astuces

  • Si vous utilisez IIS, vous pouvez utiliser un répertoire virtuel
  • Si vous n’avez pas besoin des fichiers pour le développement et que vous utilisez Team Build pour faire vos déploiements, vous pouvez utiliser une tache qui copiera les fichiers dans votre site web.
  • (non testé) Le système de fichier NTFS permet de faire des liens symboliques, il est donc possible de simuler le comportement des fichiers liés directement au niveau NTFS. Je n’ai pas testé cette solution, si l’un d’entre vous test, je suis curieux d’avoir son feedback, notamment au niveau de l’interaction avec TFS.  
    ==> How to create a symbolic link
    ==> junction utility (sysinternals)

Bien sur ces solutions ne sont pas aussi efficaces et simple que les fichiers liés.

Et vous ? Comment faites vous pour partager des fichiers entre 2 sites/applications web ?

Posted: mercredi 30 septembre 2009 14:27 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

seb.49 a dit :

Bonjour

Je lis : "Dans certains cas, il est interessant de partager des fichiers entre plusieurs sites web : ... des UserControls (.ascx), ..."

Dans ce cas il faut mieux faire un Custom Ccontrol. Non ?

# septembre 30, 2009 14:55

emmanuel.roulle a dit :

Pour ma part, j'avais mis en place un système assez complexe qui permettait de charger un ascx placé en ressource dans une dll référencée...

# septembre 30, 2009 15:39

VANNESTE Xavier a dit :

Merci de m'avoir rappeler cette astuce :) par contre je me demande si cela fonctionne avec un controle de code source car cela fait partie d'une problématique que j'ai. Je testerais et te le dirais :)

# septembre 30, 2009 15:47

cyril a dit :

@seb.49 : oui, en théorie les Custom Control permettent ceci. Mais en pratique si ton UserControl contient plusieurs centaines de lignes, ca devient super galère de le faire via un CustomControl.

@Xavier : tu parles des junctions ? y'a moyen que ca fonctionne avec TFS, faudra juste refaire le lien après la premiere récuperation du fichier. Coté TFS, je pense qu'il verra 2 fichiers différents !

Pour le "Add As Link", je suis sur que ca fonctionne tant que le fichier ajouté fait partie du workspace (OK, j'ai pas testé).

# septembre 30, 2009 16:21

lutecefalco a dit :

Et tu retrouves bien ton fichier lié lors de la compile?

Parce que par défaut, les fichiers liés ne sont pas copiés lors du build. Il faut modifier les targets présentes dans Microsoft.WebApplication.targets pour ça

# octobre 1, 2009 15:40

lutecefalco a dit :

edit: c'est le .csproj qu'il faut modifier en ajoutant une target customisée ^^

# octobre 1, 2009 15:46

cyril a dit :

@lutecefalco : Je viens de retester. Non, il n'y a aucune modification à faire. Du moment que le build Action est "Compile" (par défaut pour un fichier .cs), le fichier lié sera bien compilé. D'ailleurs, si le fichier n'était pas compilé je vois pas l'interet de cette feature.

# octobre 4, 2009 01:58

lutecefalco a dit :

Je viens de tester à nouveau chez moi.

En buildant ma web app, je retrouve pas mes fichiers liés. En faisant un Publish, je les ai.

Je testerai au boulot voir ce que ça donne avec TFS

# octobre 5, 2009 22:18
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- MBA : Pourquoi faire et comment le choisir ? par Blog Technique de Romelard Fabrice le il y a 14 heures et 58 minutes

- Y'a des erreurs qui peuvent rendre le développeur violent par Aleks's Blog le 02-02-2012, 16:33

- [Hyper-V 3] Présentation des commandlets PowerShell par Blog de SPBrouillet (Pierrick BROUILLET) le 01-31-2012, 16:01

- IIS7 – Compression GZIP par Atteint de JavaScriptite Aiguë [Cyril Durand] le 01-31-2012, 15:52

- SharePoint 15 Technical Preview Managed Object Model Software Development Kit par Matthew le 01-31-2012, 12:34

- Office 15 Technical Preview - Open specification Update par Matthew le 01-31-2012, 10:14

- TFS Integration Tools – Installation par Vivien Fabing le 01-31-2012, 00:06

- Test par RonnyK le 01-30-2012, 16:56

- [SharePoint 2010] Désactiver le correcteur orthographique dans les pages d’un site de publication par Jean-Christophe Brabant le 01-30-2012, 09:30

- [SharePoint 2010] Site internet et performances : poids et nombre des ressources par Arnault Nouvel le 01-30-2012, 00:52