Partage
  • Partager sur Facebook
  • Partager sur Twitter

Organisation d'un site web

C# ASP.NET

Sujet résolu
    11 mai 2011 à 10:35:30

    Bonjour bonjour amis Zéros :p

    C'est la premier fois que je poste dans cette section du forum, d'habitude je suis plutôt du côté C++ :p.

    Je suis à l'heure actuelle en stage. Je vais prochainement entrer dans la phase de production du logiciel et j'aurais eu besoin de quelques conseils d'ordre organisationnels.

    Voilà mon problème :

    J'ai dû m'auto-former sur les langages Javascript, CSS (j'avais des connaissances, mais jamais pratiqué), C# associé à Linq to SQL avec ASP.NET.

    J'ai donc quelques notions, aussi modestes soient-elles. Cependant, j'ai conscience que je vais devoir continuer à apprendre tout en développant, et comme chacun le sait, faire son apprentissage sur un projet concret, c'est le meilleur moyen de foutre un boxon monstrueux dans le code et de finalement le rendre impropre à d'éventuelles évolutions.

    C'est pourquoi j'ai envie que l'architecture de mon application soit la plus robuste, logique et ouverte à l'évolution, possible. Je me suis tourné du côté des design pattern, mais je crois que ça serait mettre trop d'effort dans quelque chose qui ne me serait pas forcement utile à 100%. Cela me compliquerait plus la tâche qu'autre chose.

    Je cherche donc à savoir, tout d'abord, comment sont gérés les fichiers sous Visual Studio 2008. En effet, on remarque que lors de la création d'une nouvelle page web par exemple, sont créés des fichiers nom.aspx.cs (pour le scripting) et nom.aspx.designer.cs (pour le designing). Cela sort un peu de la manière dont PHP m'avait été présenté, à savoir les scripts dans un répertoire CGI.

    J'aimerais aboutir à un modèle standart d'organisation des fichiers dans le projet, afin de le rendre le plus cohérent et manipulable possible, mais aussi de pouvoir réutiliser ce modèle dans des projets futurs (j'aime bien .NET, je trouve ça plus conviviale que PHP/MYSQL :x)

    En partant de la racine, je ne sais donc pas vraiment ou mettre mes fichiers .aspx.cs et .aspx.

    En l'état, j'ai les dossiers style et cgi dans la racine contenant respectivement :
    /style/css
    /style/images

    /cgi/javascript

    Mon problème donc est de savoir , par rapport à cela (ou non), où placer mes masterPage, mes fichiers .aspx les classes qui leur sont associées (fichiers .aspx.cs). Mais aussi savoir, par la même occasion, s'il est possible ou non de déplacer les fichiers .aspx.cs et .aspx.designer.cs relatif à un fichier .aspx. Ceci me paraitrait fort étonnant compte tenu des intimes relations qu'entretiennent ses fichiers.

    A bon entendeur, merci d'avance pour votre aide,

    Gregoriz




    EDIT : Je voulais aussi savoir si on pouvait faire une master page, qui hérite d'une autre master page. J'aurais en fait une master page qui sera valable pour toutes mes pages, et une "sous-masterpage" pour deux parties de mon site (correspondant à deux type de profil d'utilisateur différent)s.
    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2011 à 11:56:10

      Pour l'organisation j'en sais rien, mais la Masterpage tu peux décider de t'en servir ou non pour n'importe quel fichier, donc j'imagine que ça doit etre possible de faire des masterpages différentes en fonction des cas que tu rencontres
      • Partager sur Facebook
      • Partager sur Twitter
        11 mai 2011 à 12:05:40

        Citation : Isildur

        Pour l'organisation j'en sais rien, mais la Masterpage tu peux décider de t'en servir ou non pour n'importe quel fichier, donc j'imagine que ça doit etre possible de faire des masterpages différentes en fonction des cas que tu rencontres



        Imaginons une master page A. Celle-ci contient la bannière, le recap user.
        Après l'utilisateur est soit un admin soit un user.

        Le menu différera en conséquences. Ainsi j'aurais A qui pourrait avoir le menu, mais j'ai deux menus différents. Menu qui, par ailleurs, se répéteront sur chaque page que visite un admin ou un utilisateur une fois connecté. Sinon on sera sur la page de connexion et seul la masterPage s'affichera donc.

        L'idée est donc bien de pouvoir utiliser la masterPage A et de créer à partir de ça deux autres "sous-masterPage" chacune héritant de A mais en y incorporant le menu.

        C'était ça ma seconde question : savoir si je peux faire hériter des masterPages d'autres masterPages ou si je dois en faire une différente pour chaque cas, quitte à être redondant dans le code.
        • Partager sur Facebook
        • Partager sur Twitter
          11 mai 2011 à 12:23:05

          Oui tu peux faire des Master Pages imbriquées. Une Master page A qui pourra contenir une B ou C.

          Pour l'organisation, regarde du côté de l'ASP.NET MVC 3 pour utiliser un pattern robuste et qui pourrait se rapprocher de ce que t'as déjà fait en PHP.
          • Partager sur Facebook
          • Partager sur Twitter
            11 mai 2011 à 13:27:57

            Pour en revenir à ta question de début:

            Citation : Gregoriz

            Mon problème donc est de savoir , par rapport à cela (ou non), où placer mes masterPage, mes fichiers .aspx les classes qui leur sont associées (fichiers .aspx.cs). Mais aussi savoir, par la même occasion, s'il est possible ou non de déplacer les fichiers .aspx.cs et .aspx.designer.cs relatif à un fichier .aspx. Ceci me paraitrait fort étonnant compte tenu des intimes relations qu'entretiennent ses fichiers.


            A la base ASP.NET suit une approche extrêmement simple: une page du site = un fichier .aspx (+le code associé). Donc si tu veux qu'une page de ton site soit par exemple accessible via l'URL http://mon.site.com/Membres/Profil.aspx, il faut que la page Profil.aspx soit présente dans un dossier Membres, lui-même situé à la racine de ton projet. Il est possible de faire de la réécriture d'URLs, mais c'est un peu fastidieux.

            La situation est très différente si tu travailles avec ASP.NET MVC. A ce moment-là le site est contruit selon une architecture Model-View-Controller (comme en Ruby on Rails), et l'url http://mon.site.com/Membres/Profil déclenche par défaut l'action Profil du controller Membres (qui répondra en renvoyant une vue). C'est une question de goût, mais l'approche MVC est généralement bien recommandée pour la conception de sites Web (et c'est d'ailleurs ce qui a poussé Microsoft à proposer finalement une variante pour ASP.NET). ^^
            Le genre de questions que tu soulèves, à savoir comment construire dynamiquement la structure d'une page selon différents scénarios, est trivial en MVC. Et lorsque tu crées un nouveau projet MVC la structure est déjà établie pour toi et tu n'as plus à te demander où placer tes fichiers ;) Si tu cherches un modèle standard d'organisation, c'est clairement de ce côté-là qu'il faut regarder.

            En ce qui concerne les MasterPages d'ASP.NET, je n'ai pas le souvenir qu'on pouvait les imbriquer (mais mes souvenirs remontent à la version 2.0) :o
            • Partager sur Facebook
            • Partager sur Twitter
              11 mai 2011 à 14:12:13

              Citation : Orwell

              Pour en revenir à ta question de début:

              Citation : Gregoriz

              Mon problème donc est de savoir , par rapport à cela (ou non), où placer mes masterPage, mes fichiers .aspx les classes qui leur sont associées (fichiers .aspx.cs). Mais aussi savoir, par la même occasion, s'il est possible ou non de déplacer les fichiers .aspx.cs et .aspx.designer.cs relatif à un fichier .aspx. Ceci me paraitrait fort étonnant compte tenu des intimes relations qu'entretiennent ses fichiers.


              A la base ASP.NET suit une approche extrêmement simple: une page du site = un fichier .aspx (+le code associé). Donc si tu veux qu'une page de ton site soit par exemple accessible via l'URL http://mon.site.com/Membres/Profil.aspx, il faut que la page Profil.aspx soit présente dans un dossier Membres, lui-même situé à la racine de ton projet. Il est possible de faire de la réécriture d'URLs, mais c'est un peu fastidieux.

              La situation est très différente si tu travailles avec ASP.NET MVC. A ce moment-là le site est contruit selon une architecture Model-View-Controller (comme en Ruby on Rails), et l'url http://mon.site.com/Membres/Profil déclenche par défaut l'action Profil du controller Membres (qui répondra en renvoyant une vue). C'est une question de goût, mais l'approche MVC est généralement bien recommandée pour la conception de sites Web (et c'est d'ailleurs ce qui a poussé Microsoft à proposer finalement une variante pour ASP.NET). ^^
              Le genre de questions que tu soulèves, à savoir comment construire dynamiquement la structure d'une page selon différents scénarios, est trivial en MVC. Et lorsque tu crées un nouveau projet MVC la structure est déjà établie pour toi et tu n'as plus à te demander où placer tes fichiers ;) Si tu cherches un modèle standard d'organisation, c'est clairement de ce côté-là qu'il faut regarder.

              En ce qui concerne les MasterPages d'ASP.NET, je n'ai pas le souvenir qu'on pouvait les imbriquer (mais mes souvenirs remontent à la version 2.0) :o




              Je te remercie pour ta réponse, ça me parait relativement clair (même si la construction dynamique de la structure me pose pas trop problème :p).

              Je vais allez voir un peu du côté de ASP.NET MVC alors. J'espère simplement juste que ce n'est pas trop différent du modèle de fonctionnement d'ASP.NET "classique" d'un point de vue création des pages et que cela reste bien une différence d'un point de vue structural seulement.

              • Partager sur Facebook
              • Partager sur Twitter
                11 mai 2011 à 14:31:44

                Citation

                Je vais allez voir un peu du côté de ASP.NET MVC alors. J'espère simplement juste que ce n'est pas trop différent du modèle de fonctionnement d'ASP.NET "classique" d'un point de vue création des pages et que cela reste bien une différence d'un point de vue structural seulement.


                Alors là malheureusement, attends-toi à voir du changement... :-°
                • Partager sur Facebook
                • Partager sur Twitter
                  11 mai 2011 à 14:36:53

                  Je suis en train de lire la documentation officielle (l'anglais ça fait pas peur :p) et c'est archi bien expliqué pour l'instant je trouve.

                  Si ça intéresse, voici le lien :

                  http://www.asp.net/mvc/tutorials/getti [...] mvc3-part1-cs
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 mai 2011 à 16:41:38

                    Tu as le tutoriel en question traduit en français sur devellopez.com, mais c'était encore au temps de la premiere version de MVC, donc depuis ya eu des changements
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 mai 2011 à 16:51:02

                      Oui j'avais déja survolé il y a quelque temps. J'en ai parlé à mon chef de stage. Il va voir avec son collègue chargé des développements .NET.

                      Mais étant donné que le lien que j'ai donné est à jour, les versions qu'on utilise au taff son plus anciennes. C'est pour ça que je garde les deux sous le coude, la version française étant plus proche des versions que nous possedons au taff.

                      Après chez moi je sais plus si j'ai le framework 4.0 ou pas :°
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Organisation d'un site web

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown