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

 .NET Discussion :

Sur quels aspects orienter ma formation C# ? [C#]


Sujet :

.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut Sur quels aspects orienter ma formation C# ?
    Bonjour,

    je suis grand débutant et je fais de l'autoformation C# .NET sous Visual C# 2010 Express.
    Pour cela je travaille sur les nombreux tuto de ce même site et je suis en train de lire C# et .Net de Gérard Leblanc.

    1) Je vais arriver à la partie qui m'intéresse le plus : l’interaction avec la BDD et là j'aurai besoin de vos avis, en effet si je comprends bien il existe plusieurs méthodes (ADO, Linq, Entity...) mais je suis paumé : est-ce que ces méthodes sont toujours très utilisées, certaines ont été supplantées ? Laquelle privilégier ?

    2) Concernant WPF : est-il utilisé à la place Windows Form ? Quelles grosses différences à part l'aspect graphique ?

    J'avoue que j'ai bien du mal à comprendre comment ont évolué ces technologies et savoir vers quoi orienter ma formation pour ne pas me lancer dans quelque chose d'obsolète.

    Merci beaucoup de votre aide.

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    je ne sais pas quel âge tu as mais tu as une reflexion que quasiement personne n'a ! (c'est un compliment si jamais ce n'était pas clair ;-))

    beaucoup ne se forment pas et ceux qui le font...le font sur des mauvais choix.


    Fonce sur WPF/XAML, le winform est mort. il n'évoluera plus jamais. Si tu veux faire du dev windows phone (=xaml), du dev windows 8 (xaml), du silverlight (=xaml, meme si c'est mort aussi), du client lourd =(xaml), du workflow foundation (xaml). bref, tu l'as compris => XAML


    Pour le reste, ADO se fait encore, il faut savoir. Certes pas tant les datasets and co mais les SqlCommand, les parametres, etc sont necessaires!
    Après Linq, ca sert meme sans base de données => a connaitre!
    Entity framework => un plus à connaitre. c'est souvent utilisé et encore, même travaillant pour microsoft, je ne l'ai utilisé qu'une seule fois en plusieurs années de projets.

    Après, je te conseillerai de te former sur tout ce qui est IoC, testing, mock/stub. c'est pas tant du C# mais une methodologie qui indiquera ta seniorité
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Merci de ta réponse.

    J'ai 30 ans et j'opère depuis quelques mois ma reconversion professionnelle : analyste de données vers développeur, j'ai pu passer par le pont "windev" qui m'a permis cet écart, mais je suis conscient que je dois consolider mes connaissances avec une "vraie technologie", j'ai opté pour .NET en espérant m'en sortir.
    Le problème c'est qu'il y a une multitude de voies possibles, et quand on débarque, il est peu aisé de savoir vers quoi s'orienter pour être pertinent.

    Je vais suivre tes conseils et m'orienter vers XAML, Linq pour être en phase avec mon temps. Tu me conseilles tout de même de passer par un apprentissage au moins standard de Winform auparavant ?

    Pour le net, tu me conseilles Silverlight toujours dans la même optique ?

    Peux-tu m'en dire plus au sujet de IoC, testing, mock/stub je ne connais pas ?

    Concernant ma formation, penses-tu que cette méthode soit la bonne (livre + tuto) ? As-tu des livres en tête qui pourraient m'aider à me lancer ?

    Merci beaucoup

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Je partage l'avis de Louis-Guillaume.

    Mais avec une précision se tournée vers le Web, les clients lourds sont en perte de vitesse (même si ca fait 10 ans qu'on le dis je pense que ca commence à être le cas) dans les offres d'emplois.

    Le winform n'apporte pas grand chose. Ca programmation est souvent assez basique. Le WPF est beaucoup plus complexe (binding, xaml,model mvvm) donc je te conseil de t'interreser plus au site web et au WPF
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  5. #5
    Membre éprouvé
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Points : 924
    Points
    924
    Par défaut
    Bonjour,
    Pour le net, tu me conseilles Silverlight toujours dans la même optique ?
    Plutôt ASP MVC / Web API

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    Pour le reste, ADO se fait encore, il faut savoir. Certes pas tant les datasets and co mais les SqlCommand, les parametres, etc sont necessaires!
    Je "plussoie" ce conseil. Avec l'essor des ORM comme Entity Framework, NHibernate, etc, on voit de plus en plus de débutants qui n'ont aucune idée de comment exécuter une requête SQL, et c'est une catastrophe, car ils ne savent absolument pas ce que fait l'ORM et comment contourner ses limitations. Les ORM facilitent la vie, mais il vaut beaucoup mieux commencer par savoir comment faire les choses manuellement. D'ailleurs, dans mes projets récents qui ont un modèle de données très simple, je prends souvent l'option de ne pas utiliser d'ORM (ou alors des micro-ORM comme Dapper), car c'est beaucoup plus performant et moins gourmand en ressources.

    Pour ce qui est de WinForms, je pense que ça peut être utile d'au moins savoir comment ça marche. Certes, ça n'évolue plus, mais ça va sans doute rester supporté encore pas mal de temps, et il y a beaucoup de projets qui l'utilisent encore. C'est beaucoup moins puissant que WPF, mais c'est aussi beaucoup plus simple, et à mon sens plus productif. Après, c'est sûr que ce n'est pas une techno d'avenir...

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Merci pour vos retours, j'y vois plus clair mais j'ai encore des interrogations :

    1) Au sujet des ORM comme Entity, comment cela fonctionne concrètement, il faut un plugin pour Visual Studio ? Le framework créé la couche DAO à partir du modèle ? Pouvez-vous m'en dire plus à son sujet ?

    2) De partout on parle du pattern MVVM de WPF, concrètement c'est quoi ce pattern, je ne comprends pas la différence qu'il y a avec MVC par exemple ? Il faut l'implémenter à la main ?

    3) Quelle différence existe-t-il entre ASP et ASP MVC ?

    4) Pouvez-vous me conseiller des supports (livres en particulier) qui sont à jour sur les technologies citées pour que je puisse me former de manière correcte ? (je n'ai ni tuteur, ni formation externe, seulement mon temps libre et mon envie de progresser ...)

    5) Partant du principe que je débute tout juste en C#, quel est selon vous l'ordre des priorités d'apprentissage et le temps qu'il parait convenable de consacrer à chaque point ? Exemple si je veux avoir une connaissance basique des Winform, faut-il 1,2, ... 10 projets ?


    Merci encore

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Pour le net, tu me conseilles Silverlight toujours dans la même optique ?
    non j'ai bien marqué, Silverlight est une techno morte! ca n'évoluera plus!


    Peux-tu m'en dire plus au sujet de IoC, testing, mock/stub je ne connais pas ?
    un bon développeur doit avant tout savoir chercher... donc chercher du dois petit scarabée ;-)


    Je confirme que le Web est important à connaitre, de là à dire qu'il est en pleine croissance, ca n'est pas forcément le cas. Il y a la vision que l'on a des offres d'emplois et il y a la vision des missions et des investissements que fait microsoft. Le Web est là mais ne continuera à répondre qu'à une partie des besoins. par contre, plus que MVC, je conseillerai effectivement de bien comprendre Web API (utile pour tout type de WS ou d'appli).

    Concernant ma formation, penses-tu que cette méthode soit la bonne (livre + tuto) ?
    je te conseillerai de commencer par lire mes articles (nan je deconne, sont vieux et tous pourris ). plus sérieusement, je te conseillerai de te faire un beau site Web en ASP.Net MVC et de te forcer à faire des tests unitaires (et donc ioc, mock). rien que ca, ca te fera la bi*e comme on dit chez nous (gagner experience )
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par cladoo Voir le message
    1) Au sujet des ORM comme Entity, comment cela fonctionne concrètement, il faut un plugin pour Visual Studio ? Le framework créé la couche DAO à partir du modèle ? Pouvez-vous m'en dire plus à son sujet ?
    A l'origine Entity Framework était inclus dans le .NET. Maintenant il évolue indépendamment du framework, donc pour avoir la dernière version il faut installer un package Nuget (une librairie packagée de façon à faciliter l'intégration dans ton projet). La version actuelle est la 5, mais la 6 ne va pas tarder à sortir (actuellement en RC1)

    Pour l'utiliser il y a différentes approches :
    - Database First : les classes sont créées automatiquement à partir de DB
    - Model First : tu définis un modèle, et ça génère automatiquement la DB et les classes
    - Code First : tu définis les classes, et ça crée la DB automatiquement

    Citation Envoyé par cladoo Voir le message
    2) De partout on parle du pattern MVVM de WPF, concrètement c'est quoi ce pattern, je ne comprends pas la différence qu'il y a avec MVC par exemple ? Il faut l'implémenter à la main ?
    http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
    http://japf.developpez.com/tutoriels...-et-testables/
    C'est similaire à MVC, mais ça tire parti des spécificités de WPF, comme le data binding et les commandes.

    Citation Envoyé par cladoo Voir le message
    3) Quelle différence existe-t-il entre ASP et ASP MVC ?
    ASP.NET "classique" (appelé WebForms) est une tentative (ratée je trouve) de porter le modèle WinForms vers le web. En gros tu déposes tes contrôles sur une surface de design, tu configures les propriétés que tu veux, et tu réponds aux évènements en code comme si c'était du code client. Problème, ce n'est pas du code client : chaque évènement nécessite un postback vers le serveur (un point que les débutants ont souvent du mal à assimiler). Le résultat est une super usine à gaz, et on ne maitrise pas grand chose au HTML généré (bon, ça c'est peut-être parce que je suis pas doué, après tout j'ai pas fait beaucoup de développement web...)

    ASP.NET MVC est une adaptation à .NET de ce qui se fait sur d'autres plateformes, en suivant le pattern MVC bien connu. La logique se trouve dans les contrôleurs ; les vues sont minimalistes : c'est principalement du HTML (+ CSS et JS si besoin) avec quelques balises permettant d'intégrer du code C#. Les contrôleurs fournissent les données nécessaires à la vue. C'est propre, c'est carré, c'est efficace, on contrôle parfaitement le résultat HTML final ; bref, c'est bien.

    (comme tu le vois mon avis sur la question est totalement impartial )

    Citation Envoyé par cladoo Voir le message
    4) Pouvez-vous me conseiller des supports (livres en particulier) qui sont à jour sur les technologies citées pour que je puisse me former de manière correcte ? (je n'ai ni tuteur, ni formation externe, seulement mon temps libre et mon envie de progresser ...)
    Les tutoriels de Developpez.com
    http://dotnet.developpez.com/cours/
    Je lis peu de livres de développement, donc je ne saurais pas lequel te conseiller.

    Citation Envoyé par cladoo Voir le message
    5) Partant du principe que je débute tout juste en C#, quel est selon vous l'ordre des priorités d'apprentissage et le temps qu'il parait convenable de consacrer à chaque point ? Exemple si je veux avoir une connaissance basique des Winform, faut-il 1,2, ... 10 projets ?
    1. apprentissage des bases langage. Commence par faire quelques petits programmes console pour te faire la main.
    2. apprentissage d'une techno UI. Perso j'ai une préférence pour WPF, mais comme dit plus haut, la pente d'apprentissage est nettement plus raide... Pour arriver rapidement à faire des petites applis, tu peux commencer par WinForms, ça se prend en main en quelques minutes. Après, pour vraiment le maitriser, il faut en faire beaucoup... J'en ai bouffé pas mal, et je suis loin de tout connaitre.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Merci pour ton avis éclairé, je comprends mieux la problématique.

    Du coup penses-tu que je puisse faire l'impasse sur ASP.NET et passer directement à ASP MVC ?

    J'ai peur de m'éparpiller, j'aimerai tout de même avancer un peu dans mon approche, mais plus je consulte les forums et les tutos plus je tombe sur une foules d'acronymes, de modules, framework, méthodo... j'ai conscience que tout le monde ne connaît pas tout, chacun finit par se spécialiser un peu mais je ne sais pas à quel point je dois m'investir sur chaque "techno" (exemple : Linq, Entity ...) pour connaître, sans pour autant maitriser.

    @tous
    De même comment faites vous, vos projets vous conduisent à utiliser toutes ces technos, où vous faites des mini projets de temps en temps pour voir l'approche de chacune d'elles ? J'ai l'impression que l'apprentissage dans lequel je me lance est une montagne tellement il y a de choses...

    Pardonnez mes questions basiques, mais votre vision du métier m'intéressent au plus haut point.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par cladoo Voir le message
    Du coup penses-tu que je puisse faire l'impasse sur ASP.NET et passer directement à ASP MVC ?
    A mon avis oui, du moins si tu as besoin de faire du développement web.
    Si tu as l'intention de faire surtout des applis clientes, pas la peine de perdre du temps à apprendre ASP.NET pour l'instant...

    Citation Envoyé par cladoo Voir le message
    J'ai peur de m'éparpiller, j'aimerai tout de même avancer un peu dans mon approche, mais plus je consulte les forums et les tutos plus je tombe sur une foules d'acronymes, de modules, framework, méthodo... j'ai conscience que tout le monde ne connaît pas tout, chacun finit par se spécialiser un peu mais je ne sais pas à quel point je dois m'investir sur chaque "techno" (exemple : Linq, Entity ...) pour connaître, sans pour autant maitriser.
    Bah c'est sûr que tu vas pas pouvoir tout apprendre... Commence par faire des petits projets, et apprends au fur et à mesure les technos dont tu as besoin pour ces projets.

    Citation Envoyé par cladoo Voir le message
    De même comment faites vous, vos projets vous conduisent à utiliser toutes ces technos, où vous faites des mini projets de temps en temps pour voir l'approche de chacune d'elles ?
    Un peu des deux. De temps en temps je vois une nouvelle techno qui a l'air sympa et je fais un petit projet pour la tester. Parfois j'ai un besoin précis pour un projet pro, et une techno en particulier répond à ce besoin.

    Citation Envoyé par cladoo Voir le message
    J'ai l'impression que l'apprentissage dans lequel je me lance est une montagne tellement il y a de choses...
    Alors commence par une petite colline

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Merci d'avoir pris le temps de me répondre c'est vraiment sympa.
    Je vais y aller progressivement, il faut que je termine le livre de Gérard Leblanc avant tout

  13. #13
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    En ce qui concerne ta question sur Winforms : inutile de te former dessus. Tu ne ferais que te rendre la transition vers WPF/Xaml plus compliquée.
    Autant partir directement sur WPF.

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    En ce qui concerne ta question sur Winforms : inutile de te former dessus.
    Je suis pas forcément d'accord. Je préfère largement WPF, et c'est sûr que WinForms c'est pas la techno à choisir pour un "vrai" projet, mais pour débuter c'est très bien parce que ça permet de faire des petites UI vite fait sans trop se prendre la tête. Le temps d'apprentissage est tellement faible que tu peux très vite arriver à un résultat ; au début le but est d'apprendre le langage, donc avoir un framework UI très simple évite de fournir trop d'effort pour l'apprentissage de cet aspect, et permet de se concentrer sur le reste.

    Après, c'est sûr que si on veut faire une UI un peu sympa et moderne, WinForms montre très vite ses limites, et il faut passer à autre chose...

  15. #15
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    calagan99 a raison mais je suivrais de tomlev quand meme (et ca m'arrache la bouche d'etre d'accord avec lui :-P).


    plutot que faire n'importe quoi en mêlant XAML+MVVM+entity (je parle bien d'apprentissage!), il faut avancer pas à pas et le winform permet de se concentrer sur les couches metier/data. La couche GUI pourra s'apprendre dans un second temps. On est tous passé par du winforms avant XAML et c'est pas évident. comme c'etait pas evident de passer du C++ au C#. mais ceux qui n'ont pas fait du C++, ca se ressent aussi, ils sont incapables de penser autrement. ca sera pareil sur winforms, il faut connaitre un minimum, surtout que ca s'apprend pas trop, c'est quand meme assez intuitif

    le winform est super utile quand tu veux créer un petit utilitaire sans contrainte métier. un batch, un parseur de fichiers, etc. pourquoi mettre en place une solution technique plus lourde quand tu sais que ton outil peut être codé en une demi-journée
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/09/2013, 14h12
  2. [Orientation] Quelles formations et quels métiers ?
    Par RPG-man dans le forum Etudes
    Réponses: 9
    Dernier message: 05/07/2011, 17h19
  3. Tri dans une DBGrid sur un champ date au format jj/mm
    Par Jeankiki dans le forum Bases de données
    Réponses: 10
    Dernier message: 31/10/2004, 12h32
  4. [BATCH-DOS] Sur quel forum poster ?
    Par Beaunico dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 17/09/2004, 18h30
  5. Savoir sur quel boutton on a cliqué ...
    Par Fofone dans le forum Composants VCL
    Réponses: 8
    Dernier message: 10/03/2003, 16h12

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