Partage
  • Partager sur Facebook
  • Partager sur Twitter

Quelques infos sur l'apprentissage su C#

Sujet résolu
    17 février 2012 à 16:21:29

    Bonjour, je connais le Java et je me pose plusieurs questions sur le C# et ce qui pourrais justifier l'apprentissage progressif d'un autre langage de programmation, plus moderne et de plus en plus utilisé.

    Pour la distribution des applications, en Java, je créer un Jar executable, je le convertie en .exe avec launch4J et l'utilisateur sera invité a mettre a jour sa machine virtuelle Java si elle ne l'est pas. En C# j'ai vu que la compilation créer un executable, mais ce n'est pas du natif, concrètement comment ça fonctionne, sur les environnements Windows et autres, l'application a besoins d'utiliser une machine virtuelle qu'il faut mettre a jour ou c'est dirrectement intégré dans l'application ou dans le Système ?

    Concernant les interfaces graphiques, j'ai cru comprendre qu'il y a 2 bibliothèques, form ou WPF (corrigez moi si je me trompe) pour quelqu'un qui débute mais qui a déja de bonnes bases de programmation, vous me conseillez de commencer par form ou dirrectement d'attaquer sur WPF, y a t'il des outils de création d'interfaces graphiques efficaces (un peu comme visual editor sur Eclipse ?

    En dévellopant des applications en C# si jamais je voulais, les distribuer voir les commercialiser, c'est completement libre de droits ou je dois faire attention a quelque chose ?

    J'ai du mal a comprendre C#, C#.net, et .net, ... C# est le language, mais concrètement le .net c'est quoi des bibliothèques ?

    Enfin, je veut surtout pas créer un débat Java vs C# mais vu que le C# est quand même plus récent que le Java et de plus en plus utilisé (indice Tiobe), y a t'il des améliorations en terme de performances ou autre ?

    Merci de votre aide !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      17 février 2012 à 16:45:24

      Citation

      En C# j'ai vu que la compilation créer un executable, mais ce n'est pas du natif, concrètement comment ça fonctionne, sur les environnements Windows et autres, l'application a besoins d'utiliser une machine virtuelle qu'il faut mettre a jour ou c'est dirrectement intégré dans l'application ou dans le Système ?


      La machine virtuelle se nomme CLR : http://fr.wikipedia.org/wiki/Common_Language_Runtime (c'est très bien expliqué).

      Citation

      Concernant les interfaces graphiques, j'ai cru comprendre qu'il y a 2 bibliothèques, form ou WPF (corrigez moi si je me trompe) pour quelqu'un qui débute mais qui a déja de bonnes bases de programmation, vous me conseillez de commencer par form ou dirrectement d'attaquer sur WPF, y a t'il des outils de création d'interfaces graphiques efficaces (un peu comme visual editor sur Eclipse ?


      Tant qu'à faire, si tu veux découvrir un truc de nouveau et totalement génial, autant y aller avec du WPF, même si tu seras assez désorienté au début (je parle de vécu).


      Citation

      Concernant les interfaces graphiques, j'ai cru comprendre qu'il y a 2 bibliothèques, form ou WPF (corrigez moi si je me trompe) pour quelqu'un qui débute mais qui a déja de bonnes bases de programmation, vous me conseillez de commencer par form ou dirrectement d'attaquer sur WPF, y a t'il des outils de création d'interfaces graphiques efficaces (un peu comme visual editor sur Eclipse ?


      Visual Studio (même dans sa version expresse il me semble) possède un éditeur intégré pour les deux environnements :

      Image utilisateur Image utilisateur

      A gauche, l'éditeur WinForms - A droite, l'éditeur WPF


      Citation

      J'ai du mal a comprendre C#, C#.net, et .net, ... C# est le language, mais concrètement le .net c'est quoi des bibliothèques ?


      • C# : Le langage de programmation en lui-même
      • .NET : Le framework (l'ensemble des bibliothèques) fourni par Microsoft pour C#
      • C# .NET : C# utilisé avec le framework .NET


      Citation

      y a t'il des améliorations en terme de performances ou autre ?"


      Faudrait aller faire un tour sur les benchs, mais vu que C# a été spécialement conçu pour Windows, AMHA il y a de fortes chances pour que l'exécution soit plus optimisée sur cet OS par rapport à Java.

      Après au niveau de la licence d'utilisation je ne me suis jamais trop posé la question, mais si quelqu'un à des informations là-dessus, je suis preneur ! :)
      • Partager sur Facebook
      • Partager sur Twitter
        17 février 2012 à 16:49:46

        Salut,
        C# est géré par le CLR (common language runtime) et a aussi besoin d'une machine virtuelle qui assure la traduction en instructions spécifiques pour le microprocesseur. Cette traduction n'est pas effectué en bloc dès le début, mais au fur et à mesure des besoins. Cette machine virtuelle, il faut la télécharger.

        Pour les applications Windows Forms ou WPF, il faut déjà connaitre les bases pour s'y atteler,ce sont deux types de projets. Pour quelqu'un qui débute, je te conseille de commencer par les bases. ;) Sinon après les Windows Forms.

        Le .NET,c'est le nom d'un framework : le Framework .NET, il fournit un ensemble de technologies et d'outils facilitant le développement d'applications et propose une solution pour tout les types d'applications (application Windows, Web...).

        Bon tout ce que je viens d'écrire peut être encore vague ou mal expliqué car pour répondre parfaitement à ta question, il faudrait faire un mini-tutoriel.

        Pour comparer avec Java, je te donne un commentaire laissé dans un tutoriel :

        Citation

        C# est mieux que Java sur :
        - Cast automatique avec l'opérateur de concaténation (2 + "3") (mais ne fonctionne pas lors d'un passage de paramètre à une méthode)
        - Pour afficher les backslashs dans une chaine on peut mettre : string fichier = @"c:\Programs Files\...";
        - Ecriture très pratique de List<string> jours = new List<string> { "Lundi", "Mardi","Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche" };
        ou Voiture voitureNicolas = new Voiture { Couleur = "Bleue", Marque = "Peugeot", Vitesse = 50 };
        - Lors de l'écriture de la valeur d'une énumeration, le programme affiche le nom de la variable et nom sa valeur entière
        - Accesseur & mutateurs simplifié pour les variables membres.
        - Les struct et les enum existent !
        - Le préprocesseur pratique !



        sans oublier LINQ et les lambdas.

        cordialement
        • Partager sur Facebook
        • Partager sur Twitter
          17 février 2012 à 18:43:21

          Merci pour toutes ces infos !
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            17 février 2012 à 19:36:00

            Citation : Darioo2

            Pour la distribution des applications, en Java, je créer un Jar executable, je le convertie en .exe avec launch4J et l'utilisateur sera invité a mettre a jour sa machine virtuelle Java si elle ne l'est pas. En C# j'ai vu que la compilation créer un executable, mais ce n'est pas du natif, concrètement comment ça fonctionne, sur les environnements Windows et autres, l'application a besoins d'utiliser une machine virtuelle qu'il faut mettre a jour ou c'est dirrectement intégré dans l'application ou dans le Système ?


            Ca se passe comme en Java : tu génères un exécutable, qui est interprété par une sorte de machine virtuelle.
            En .NET, je ne connais pas d'outil magique qui permet d'intégrer un installer qui installe aussi le framework, par contre. (ClickOnce peut-être ? jamais essayé)

            Citation : Darioo2

            Concernant les interfaces graphiques, j'ai cru comprendre qu'il y a 2 bibliothèques, form ou WPF (corrigez moi si je me trompe) pour quelqu'un qui débute mais qui a déja de bonnes bases de programmation, vous me conseillez de commencer par form ou dirrectement d'attaquer sur WPF, y a t'il des outils de création d'interfaces graphiques efficaces (un peu comme visual editor sur Eclipse ?


            Commence par WPF, même si c'est un peu déroutant. WinForms est obsolète.
            L'éditeur Visual Studio est pas si mal pour un débutant.
            Pour les graphistes il y a Expression Blend.

            Citation : Darioo2

            En dévellopant des applications en C# si jamais je voulais, les distribuer voir les commercialiser, c'est completement libre de droits ou je dois faire attention a quelque chose ?


            Ne t'inquiète pas, c'est libre de droit. Tu penses bien que sinon personne ne l'utiliserait.

            Citation : Darioo2

            J'ai du mal a comprendre C#, C#.net, et .net, ... C# est le language, mais concrètement le .net c'est quoi des bibliothèques ?


            C# est un langage. .NET est un ensemble: CLR (machine virtuelle), librairies, JIT (compilation just-in-time), etc.
            C#.NET est un abus de langage (oui, je sais, c'est sur le panneau gauche du SdZ, ça reste un abus de langage).

            Citation : Darioo2

            Enfin, je veut surtout pas créer un débat Java vs C# mais vu que le C# est quand même plus récent que le Java et de plus en plus utilisé (indice Tiobe), y a t'il des améliorations en terme de performances ou autre ?


            En termes de performances, je ne sais pas, franchement.
            Pour le langage en lui-même...une méga-tonne de trucs qui rendent C# bien plus agréable.
            => http://en.wikipedia.org/wiki/Compariso [...] harp_and_Java (l'article est classé comme biaisé...surtout par les fanboys Java qui ont une crise cardiaque vu le nombre de cases rouges de leur côté).
            Ne serait-ce que le fait que *tout* est objet, y a pas de types primitifs.
            • Partager sur Facebook
            • Partager sur Twitter
              17 février 2012 à 22:07:59

              Citation : Aethec

              Commence par WPF, même si c'est un peu déroutant. WinForms est obsolète.



              Mais encore TRÈS TRÈS utilisé en entreprise, surtout car c'Est beaucoup plus rapide à développer (drag-drop des controles voila)

              Citation : Aethec

              Ne t'inquiète pas, c'est libre de droit. Tu penses bien que sinon personne ne l'utiliserait.



              Attention! Tu ne peux pas commercialisé (faire de l'argent) avec un programme C# que tu auras fait avec une version MSDNAA (ou DreamSpark) ou Express de VisualStudio.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                17 février 2012 à 22:19:43

                Citation : M4N!aC

                Mais encore TRÈS TRÈS utilisé en entreprise, surtout car c'Est beaucoup plus rapide à développer (drag-drop des controles voila)


                WPF a un éditeur drag'n'drop aussi, hein.
                Mais une société qui veut des logiciels "jolis" va se tourner vers WPF, à la fois pour la puissance du machin et grâce aux capacités d'abstraction totale entre UI et code.

                Citation : M4N!aC

                Attention! Tu ne peux pas commercialisé (faire de l'argent) avec un programme C# que tu auras fait avec une version MSDNAA (ou DreamSpark) ou Express de VisualStudio.


                T'es sûr pour les versions MSDNAA ? Il me semblait que c'est surtout le cas avec la version Express...
                • Partager sur Facebook
                • Partager sur Twitter
                  18 février 2012 à 0:07:38

                  Oui bon, la philosophie du WPF c'est d'évitez le drag-and-adrop, comme le HTML non?

                  Si, j'ai VS2010 Ultimate MSDNAA et j'ai pas le droit de commercialisé une application (et bien honnêtement, le Ultimate vaux pas la peine :\ )
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 février 2012 à 8:33:35

                    Citation : M4N!aC

                    Oui bon, la philosophie du WPF c'est d'évitez le drag-and-adrop, comme le HTML non?


                    Non au contraire, on peut faire plus de drag&drop avec WPF (du moins avec Blend) qu'en WinForms, car on peut aussi droper des comportements (behaviors et triggers) sur ses contrôles par exemple. :) En théorie un désigner WPF peut construire toute une interface (y compris ses animations, états visuels, bindings) uniquement à l'aide du drag&drop et des fenêtres de l'éditeur (propriétés, assets, états, ...) sans jamais toucher au code XAML.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 février 2012 à 14:55:19

                      Citation : M4N!aC

                      Attention! Tu ne peux pas commercialisé (faire de l'argent) avec un programme C# que tu auras fait avec une version MSDNAA (ou DreamSpark) ou Express de VisualStudio.


                      Si, tu peux, c'est justement une des choses qui font la popularité de Visual Studio auprès des amateurs/indés (qui, autrement, se tourneraient vers d'autres IDE, comme SharpDevelop ou MonoDevelop)
                      Source : http://social.msdn.microsoft.com/Forum [...] -28c5449b6417 et la FAQ de Visual Studio
                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 février 2012 à 15:48:14

                        @Orwell : Ah ben :o

                        J'vais peut-^tre me mettr eau QPF alors ^^

                        Citation : OrionPyro

                        Citation : M4N!aC

                        Attention! Tu ne peux pas commercialisé (faire de l'argent) avec un programme C# que tu auras fait avec une version MSDNAA (ou DreamSpark) ou Express de VisualStudio.


                        Si, tu peux, c'est justement une des choses qui font la popularité de Visual Studio auprès des amateurs/indés (qui, autrement, se tourneraient vers d'autres IDE, comme SharpDevelop ou MonoDevelop)
                        Source : http://social.msdn.microsoft.com/Forum [...] -28c5449b6417 et la FAQ de Visual Studio



                        Pour la express peut-être (et c'est flou :/) Mais pas pour dreamSpark

                        Citation : DreamSpark EULA

                        c. Restrictions. You may not use the software provided as part of the Student Subscription:

                        * for commercial purposes (except as permitted under Section 3(d); or
                        * to develop or maintain your own administrative or IT systems.
                        d. No commercial use. If you use the software to create software programs, you may only commercially use or distribute them upon the purchase of appropriate commercial license(s) for the software.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 février 2012 à 10:35:10

                          De toute façon, Visual Studio, Express ou non, est un IDE. Le résultat qui sera généré n'a donc aucun rapport avec l'IDE, mais sera associé au framework .NET. Je veux donc dire que cela dépends des conditionsdu framework .NET, et non de Visual Studio.
                          Je confirme donc le fait que l'on puisse proposer des programmes payants avec Visual Studio Express.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          La réponse à tout (sauf pour les aigles)
                            1 mars 2012 à 17:26:02

                            Bonjour,
                            Si je comprend bien, avec WPF il y a des outils qui permettent de créer une interface graphique complètement indépendante du code ?
                            Si c'est le cas, j'ai plutot intéret a commencer dirrectement sur WPF, ça permet de faire dirrectement des applications en MVC ?

                            Citation

                            De toute façon, Visual Studio, Express ou non, est un IDE. Le résultat qui sera généré n'a donc aucun rapport avec l'IDE, mais sera associé au framework .NET. Je veux donc dire que cela dépends des conditionsdu framework .NET, et non de Visual Studio.
                            Je confirme donc le fait que l'on puisse proposer des programmes payants avec Visual Studio Express.



                            Si je comprend bien, quel que soit l'IDE utilisé, ça ne fait que générer du code, j'aurais beau utiliser n'importe quel outil, ça ne se verra pas ?

                            Pour générer des interfaces graphiques avec WPF (séparément du code) c'est XamL le meilleur ? j'ai vu un petit tutto ici: http://www.siteduzero.com/tutoriel-3-6 [...] e-a-xaml.html c'est suffisant pour commencer ? ça me parait pas complet !

                            Merci de votre aide !
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              1 mars 2012 à 17:33:45

                              XAML est un langage de description basé sur du XML, qui est utilisé pour générer des interfaces en WPF ou en Silverlight.

                              Les outils pour en générer sont (principalement) Visual Studio et Expression Blend. (il y a aussi des trucs comme KaXaml pour des petits tests...).
                              • Partager sur Facebook
                              • Partager sur Twitter
                                3 mars 2012 à 11:54:52

                                Merci pour ta réponse, et le fait d'utiliser expression blend peut dispenser d'apprendre le Xaml ?
                                Je veut dire si quelqu'un peut se charger de me faire l'interface graphique de mon programme, je peut me concentrer uniquement sur la partie code ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  3 mars 2012 à 15:43:23

                                  Citation : Darioo2

                                  Merci pour ta réponse, et le fait d'utiliser expression blend peut dispenser d'apprendre le Xaml ?
                                  Je veut dire si quelqu'un peut se charger de me faire l'interface graphique de mon programme, je peut me concentrer uniquement sur la partie code ?


                                  Je pense que, si tu compte séparer le design du programme (ce pour quoi Blend est très adapté d'ailleurs), je pense que le designer doit au moins savoir utiliser XAML, tout comme un designer Web se doit de savoir utiliser le CSS, mais pas nécessairement C#.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    4 mars 2012 à 13:22:05

                                    Merci, de ce que j'ai pu voir, le XAML ne semble pas trop dur a comprendre, reste a voir pour les notions les plus avancés !
                                    Du coups pour gérer une interface graphique dynamiquement, ça ne pose pas problèmes vu que ce sont 2 langages différents ?

                                    Sinon par rapport a ma question plus haut sur le droit de commercialisé une application C#, apparement ce n'est pas possible avec la version express de Visual Studio, il faut la version payante !
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      4 mars 2012 à 13:35:26

                                      Tu peux commercialiser une appli créée avec VS Express.

                                      Sources : cette vieille page qui n'existe plus http://web.archive.org/web/20110511152 [...] port-faq.aspx
                                      et ce post d'un partenaire MS qui le confirme http://social.msdn.microsoft.com/Forum [...] -c555589f8832
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        4 mars 2012 à 15:27:33

                                        Citation : Aethec

                                        Tu peux commercialiser une appli créée avec VS Express.

                                        Sources : cette vieille page qui n'existe plus http://web.archive.org/web/20110511152 [...] port-faq.aspx
                                        et ce post d'un partenaire MS qui le confirme http://social.msdn.microsoft.com/Forum [...] -c555589f8832



                                        Ah bah c'est une bonne nouvelle alors, en même temps, ma source date de 2005 ...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          6 mars 2012 à 11:53:47

                                          Bonjour,
                                          J'ai une dernière question svp ...
                                          Programmant sur Java, le langage comporte de nombreuses bibliothèques dans sa version standard, traitement d'images, réseaux, bases de données, Robot, est ce que la bibliothèque de classe .net a au moins autant de contenu que celle du langage Java ?
                                          Concrètement mis a part la portabilité sur d'autres systèmes, est ce qu'il y a quelque chose qui risque de me manquer par rapport a l'utilisation du Java ?
                                          Merci de votre aide !
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            6 mars 2012 à 12:22:25

                                            Les libs .NET contiennent énormément de choses, ne t'inquiète pas pour ça.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              6 mars 2012 à 14:24:17

                                              Ok, merci pour toutes ces infos !
                                              @ +++
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Quelques infos sur l'apprentissage su C#

                                              × 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