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.

    Consultant freelance, 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

- TechDays Paris 2010 : La BI dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 1 heure et 30 minutes

- TechDays Paris 2010 : Déploiement de nouvelles technologies – Retour d’expérience par l’informatique de Microsoft par Blog Technique de Romelard Fabrice le il y a 2 heures et 57 minutes

- TechDays Paris 2010 : Plan de migration vers SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 6 heures et 39 minutes

- TechDays Paris 2010 : La pleinière du second jour par Blog Technique de Romelard Fabrice le il y a 7 heures et 45 minutes

- Visual Studio 2010 and .NET Framework 4 Release Candidate now available par Matthieu MEZIL le il y a 10 heures et 50 minutes

- Création d’une base de donnée sous SQL Azure par Le Blog (Vert) d'Arnaud JUND le il y a 11 heures et 47 minutes

- TechDays Paris 2010 : Les Services d’applications dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 21 heures et 46 minutes

- TechDays Paris 2010 : La GED et SharePoint 2010 par Blog Technique de Romelard Fabrice le 02-08-2010, 16:54

- TechDays Paris 2010 : SharePoint 2010 et Les réseaux sociaux par Blog Technique de Romelard Fabrice le 02-08-2010, 15:40

- TechDays Paris 2010 : SharePoint 2010 – Description et nouveautés par Blog Technique de Romelard Fabrice le 02-08-2010, 14:33