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 :

Organisation globale d'un site


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Par défaut Organisation globale d'un site
    Bonjour à tous,

    Après avoir lu quelques tutoriels sur l'asp.net, j'essaye de créer un site via cette technologie. Cependant je suis un peu perdu sur la façon de m'y prendre pour correctement organiser mes pages.

    Pour que mon site ait une structure globale, j'utilise les masterpages, cependant je ne sait pas trop comment me débrouiller avec tout ça.

    Exemple :J'ai dans ma MasterPage ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="right">
                <asp:ContentPlaceHolder ID="sideContent" runat="server" />
    </div>
    Dans ce ContentPlaceHolder je peux avoir deux codes HTML différents. Si l'utilisateur n'est pas connecté, un premier menu. Si l'utilisateur est connecté un menu différent. J'ai réussi à mettre en place ce système en mettant cette condition ainsi que les deux codes HTML dans toutes mes pages .aspx. Ce qui est assez génant... A la moindre modification je dois modifier dans toutes mes pages.

    Comment gérer ça via la MasterPage ? Y'a t'-il une sorte d'équivalent à Page_Load mais qui serait au niveau de la masterPage?

    En gros tout ce qui est complètement statique j'ai mis dans la MasterPage, mais je sais pas trop comment me débrouiller dés que c'est un minimum dynamique...

    Merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Vaste sujet que tu lance là.

    Je n'ai pas saisi toute l'essence de ton propos mais ce que tu dis là ressemble pas mal à ce queje fais dans mes sites.

    Disons que lorsque tu place une ContentPlaceHolder, tu réserve un endroit dans ta page ASPX. C'est pour cela que tu dois prendre garde à la mise en page.

    Ensuite, à partir de ta page ASPX tu appelle ce ContentPlaceHolder avec un Content et sa propriété ContentPlaceHolderID. Et c'est ce content que tu place du code qui viendra se mettre directement dans l'endroit réservé.

    Il y a un Page_Load dans le CodeBehind de la MasterPage, tu peux tout faire dedans. Tu retrouve pratiquement tout les évènements de la PAge dans la MAsterPage.

    Moi, j'ai pris le parti d'utiliser les Composants Utilisateurs (ASCX) pour faire ce gene de chose. Par exemple, j'ai un Composant Utilisateur qui gère l'alimentation et le statut de connexion des menus. Je l'appelle à partir de ma page qui dispose d'une MasterPage et je lui passe des paramètres pour qu'il se charge et affihce les menus en fonction du statu de connexion.

    Si tu as d'autres questions n'hésites pas.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Par défaut
    OK.
    Je vais faire quelques tests.

    J'avais également ce code présent dans toutes mes pages aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Not Session("connected") = True Then
          Session.Abandon()
          FormsAuthentication.SignOut()
          Response.Redirect("Login.aspx")
    End If
    Je peux donc le mettre dans le code behind de la MasterPage et il sera executé au démarrage de chaque page?

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Normalement oui, il sera éxécuté sur chaque page ayant la MasterPage liée.
    Donc, gafe à ne pas lier ta MasterPage à Login.aspx, sinon, tu as le droit à la boucle infernale, heu, pardon, infinie......

  5. #5
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Par défaut
    Ouaip, c'est ce que je viens de penser... Pas un moyen d'éviter ça tout en gardant login.aspx comme esclave de ma masterpage?
    A partir de la masterPage, puis-je savoir quelle page est demandée? (pour faire un exception quand c'est login.aspx)

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Oui, tu peux trés bien faire un test pour savoir quelle est la page demandée, amis ça deveint scabreux comme programmation.

    Cherche dans la directoin du Me.Page et tu verras y a plein de propriétés concernant la Page, du coup, tu récupère son nom et hop, un petit If et le tour est joué.

    Mais je pense que tu vas vite prendre conscience des limite du chemin das lequel tu t'engage. masi va au bout de ton truc avant, pour bien comprendre.

  7. #7
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Par défaut
    Certaines erreurs ont besoin d'être commises pour êtres comprises c'est ça ?
    Je peux avoir un aperçu du genre de soucis que je vais rencontrer ?

  8. #8
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Oui, petit scarabée, il faut commettre des erreurs pour avancer sur le chemin de la connaissance

    Ben le genre d'erreur ou lutôt de surprise ça va être un umbroglio de code et de test àfaire pour pendre en compte tous les cas de figure, pour commencer.

    Ensuite, tu vas vite te rendre compte que le chemin de la MasterPage etde l'utilisation des Composants Utilisateur oblige à bien, bien réfléchir à la structure du ou des sites que tu veux faire.

    Moi, lorsque j'ai commencé, j'ai rammé. Puis un jour, j'ai pris le temps de réfléchir àce queje voualsi faie, indépendement de la technique.

    Maintenant mes sites, mais tous mes sites, reposent sur une seule et unique page ASPX qui prend une MasterPage dynamiquement et appelle des Composants Utilisateurs pour former les "Pages" du site. Donc beaucoup de travail en BDD et un peu de jugeotte pour architecturer tout ça.

    Je te filerais pas l'ensemble de mon boulot car cela ne serait pas simple ni utile pour toi. Mais je veux bien te filer les clés de la réflexion poura rriver à un résultat sensiblement le même avec l'autonomie de pouvoir prolonger et fariquer toi même la suite.

  9. #9
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Par défaut
    Me.Page.toString me donne ASP.login_aspx . Le .NET et sa manie de tout nommer avec des conventions bizarres je te jure... (Je dis ça parce que j'ai bien galéré après m'être rendu compte que tous mes name de <input> avaient été renommés suite à l'installation de mes masterPage. Du coup plein de code javascript marchait plus et c'était une vraie galère).

    Pour ton exemple d'architecture, je pense qu'il est inutile que je t'embête plus que ça. J'ai un mois pour finir mon projet (je suis en stage) et ensuite je reprends les cours dans lesquels je ne ferai pas de .NET avant deux ans. Pendant mes cours officiels sur l'asp.net je pourrai davantage me pencher sur le sujet et étudier tout cela (j'aurai un brin d'avance sur mes camarades qui n'en auront jamais fait).

    Merci pour l'aide, je devrais pouvoir me débrouiller pour faire un truc stable même si un peu bidouillé et pas très élégant en interne.

    ++

Discussions similaires

  1. [2.x] Organisation globale d'un projet
    Par demos77 dans le forum Symfony
    Réponses: 0
    Dernier message: 31/07/2012, 18h23
  2. Variables globales, au site
    Par novices dans le forum Langage
    Réponses: 7
    Dernier message: 09/08/2006, 11h57
  3. Méthode et organisation pour développer un site web
    Par Bobtop dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 16/06/2006, 15h54
  4. organisation de site
    Par newtito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 30/08/2005, 11h09

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