IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#] Séparer les fichiers *.aspx et *.aspx.cs


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut [C#] Séparer les fichiers *.aspx et *.aspx.cs
    Bonjour,

    Dans le cadre du déploiement de mon projet Web, je dois séparer l'emplacement de mes fichiers sources (*.cs), de mes fichiers web (*.aspx, *.css, *.js) ainsi que de mes ressources (*.jpg, *.gif).

    J'ai déja réussi a séparer les fichier *.cs.
    Mais, comme on le voit dans le "solution explorer" les fichiers *.aspx et *.aspx.cs sont liés !

    Est ce possible de séparer ces fichiers ? Comment spécifier au fichier *.aspx pour qu'il aille chercher son codebehind (*.aspx.cs) dans un autre endroit ?

    J'espere que ma question est compréhensible !
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    je répond peut-être à coté de la plaque, mais pourquoi tu déplois tes .cs ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut Re: [VS.NET][aspx][c#] Séparer les fichiers *.aspx et *.aspx
    Citation Envoyé par Joad
    Est ce possible de séparer ces fichiers ? Comment spécifier au fichier *.aspx pour qu'il aille chercher son codebehind (*.aspx.cs) dans un autre endroit ?
    Tout est dans la directive @Page du .aspx.

    La liaison, inutile, vient de l'attribut CodeBehind. Tu le vires, ça vire la liaison. C'est l'attribut Inherits qui indique la classe correspondante. On se fiche royalement de l'emplacement du .cs, la classe est cherchée dans la .dll compilée. Tu peux mettre tous les .cs ailleurs, voire dans un autre projet, ça ne gêne absolument pas.
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    neo 51, tu as raison de poser la question. En gros, la ou je bosse, ils uitilise un logiciel du meme genre que SourceSafe et donc je dois sauvegarder mes sources et mes fichiers web a différents endroits. Ce n'est pas vraiment lié au déploiement c vrai mais plutot au développement de l'appli web.

    Maniak, merci de ta réponse, j'ai bien viré l'attribut CodeBehind et j'ai déplacé mon fichier *.aspx.cs. Mais le probleme c'est que Vs.NEt me sort une erreure lorsque j'ouvre mon projet puisqu'il ne trouve pas le fichier lié a mon *.aspx : normal.
    Comment faire pour lui dire de chercher l' *aspx.cs a un autre endroit ????

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est de l'ASPX, donc, c'est dans le mauvais forum => Je déplace


    Merci de prendre garde où vous postez la prochaine fois


    A+

    merci:

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Je crois avoir trouvé une solution à mon probleme.
    En fait la séparation de ces fichiers n'est pas prévue par visual.net
    mais il existe une bidouille qui consiste à faire pointer le fichier *.aspx en code behind vers une classe *.cs qui comporterait tout le code.

    détails : http://aspnet.4guysfromrolla.com/articles/041305-1.aspx

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Joad
    En fait la séparation de ces fichiers n'est pas prévue par visual.net
    Ça me ferait mal :)

    Citation Envoyé par Joad
    mais il existe une bidouille qui consiste à faire pointer le fichier *.aspx en code behind vers une classe *.cs qui comporterait tout le code.
    C'est pas une bidouille, c'est ce dont on parle depuis le début ici.
    Du moment que le .aspx 'hérite' d'une classe accessible, ça roule. Il n'y a plus le '+' à côté du .aspx dans VS.NET, mais ça on s'en fout, c'est le but de la manoeuvre.
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Désolé alors c'est que j'avais mal saisi la chose

    Citation Envoyé par Maniak
    Du moment que le .aspx 'hérite' d'une classe accessible, ça roule
    Comment est ce que tu fais ca concretement ? c'est cela que je n'arrive pas a faire.

    Voilà ou j'en suis :

    Code ma class :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    using System;
     
    namespace WebApplicationTest
    {
    	/// <summary>
    	/// Summary description for baseclass.
    	/// </summary>
    	public class MyBaseClass : System.Web.UI.Page
    	{
    		protected override void OnLoad(EventArgs e)
    		{
     
     
    			// Be sure to call the base class's OnLoad method!
    			base.OnLoad(e);
     
    		}
    	}
    }
    Code ma page Aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <%@ Page language="c#" AutoEventWireup="false" Inherits="WebApplicationTest.MyBaseClass" %>
     
    <script runat=server>
    public class WebForm1 : MyBaseClass
    {
    	private void Page_Load(object sender, System.EventArgs e)
    	{
     
    	}
     
     }
    </script> 
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    	<HEAD>
    		<title>WebForm1</title>
    		<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    		<meta name="CODE_LANGUAGE" Content="C#">
    		<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    	</HEAD>
    	<body MS_POSITIONING="GridLayout">
    		<form id="Form1" method="post" runat="server">
    			<asp:Label id="test" style="Z-INDEX: 101; LEFT: 383px; POSITION: absolute; TOP: 130px" runat="server">Unchanged</asp:Label>
    			<asp:Button id="Button_Test" style="Z-INDEX: 102; LEFT: 373px; POSITION: absolute; TOP: 203px"
    				runat="server" Text="Button Test"></asp:Button>
    		</form>
    	</body>
    </HTML>

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Vire le bloc <script runat=server>, le reste est ok.
    Et donc, peu importe où est le .cs, du moment qu'il est bien compilé avec le projet. C'est le Inherits="WebApplicationTest.MyBaseClass" qui indique au framework où trouver le code de la classe dans les .dlls
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Ok j'ai fait ce que tu as écrit.

    Par contre, comment est ce que je fais, dans mon .cs pour acceder aux éléments que j'ai ajouté dans mon *.aspx ?

    par exemple :

    J'ajoute une bouton dans le *.aspx comment est ce que je récupere l'évenement double clique dans le *.cs ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par Joad
    J'ajoute une bouton dans le *.aspx comment est ce que je récupere l'évenement double clique dans le *.cs ?
    Ben si tu fais avec le designer, ça le fait tout seul.

    Si tu le fais à la main, un champ public ou protected du type du contrôle, en reprenant l'id pour le nom, et tu attaches tes gestionnaires d'évènements comme tu le sens.
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Ok merci beaucoup pour ton aide !

    En faisant tout a la main, tout fonctionne.
    Par contre si je veux faire ca automatiquement par la design view, ca ne fonctionne pas : si je double click sur un bouton pour lui assigner l'évenement Click bisarement cela appel un fichier *.aspx.cs qui est sensé ne plus être lié :

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Ah ça c'est peut-être le designer qui pète un cable. De ce côté-là je ne peux pas t'aider, j'ai banni le designer de mes applis web il y a longtemps. Jamais eu à le regretter.
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Oki ca marche.

    Merci beaucoup pour ton aide j'ai réussi a tout boucler !

  16. #16
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Si tu veux pouvoir gérer tes fichiers sans avoir de problèmes avec des trucs cachés, utilises WebMatrix, pas automatisé mais au moins c'est clair :o)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/10/2008, 09h04
  2. Réponses: 2
    Dernier message: 01/08/2007, 17h18
  3. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  4. [TP]Lister les fichiers d'un répertoire
    Par nvtitan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 21/06/2002, 11h22
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo