Eh ! Le RTFM consiste à lire la doc officielle, rien de plus. Comme je l'ai dit, ce n'est pas en lisant un dictionnaire que tu apprends à parler une langue.
Et l'unique exemple qu'ils donnent me vaudrait de leur mettre un zéro ! En effet une table qui ne commence pas par un identifier autoincrémenté ne vaut rien.
Ma préoccupation du moment et de savoir manipuler des bases de données majeures depuis Visual Studio C# comme SQL Server et PostgreSQL.
Un livre sur le SQL comme dit loup solitaire n'a aucune intérêt pour moi, mon problème n'est pas le SQL, à ce niveau je me débrouille honnêtement, mais de coder depuis C#.
Je ne trouve plus rien en francophone et je ne me suis pas encore vraiment mis à défricher les anglophones Github et autres qui sont de véritables pétaudières. Tout au plus ai-je trouvé quelques exemples basiques monotables. Tout le reste est trop ancien pour être utilisable. Le site developpez.com, à ce niveau, est plutôt un musée qu'autre chose.
Le meilleur est qu'il y a un développeur qui prétend mettre des exemples, mais aucune de ces sources se compile. Et, bien sûr, il ne met pas le code terminé qui permettrait de se rendre compte.
Je ne pense quand même pas être si exotique que ça en cherchant à savoir manipuler des bases de données classiques depuis un non moins classique langage Windows le C#.
- Edité par williamhoustra 15 janvier 2019 à 13:54:38
À un moment, développer c'est compliqué oui. Il paraît même que c'est un métier et que des gens sont payés pour. Là c'est un peu comme si un gars avait suivi un tutoriel de menuiserie et tout, il a appris à construire des chaises, des tables, etc. Il a aussi suivi un tutoriel de maçonnerie et de construction où il a appris à faire quelques trucs. Et finalement, il veut construire une maison, mais il se plaint, il n'y a aucun tutoriel pour construire exactement la maison qu'il veut. Vous vous rendez compte qu'il devra peut-être se renseigner seul sur la construction de maison ! Et encore, faudra encore qu'il teste des trucs pour avoir exactement la maison qu'il veut !
Ton cas est un peu particulier.. Manipuler une base de données en C#, en général on fait ça à travers un ORM (EntityFramework par exemple), mais ce n'est pas adapté à de gros volumes de données et à toutes les requêtes..
Je connais pas les détails de ton projet et ton besoin exact, mais si il s'agit juste d’exécuter des requêtes SQL que tu le fasse depuis du C#, du Java ou autre, ce n'est pas ça le plus compliqué..
Après, il faut aussi admettre que travailler en dev demande (oblige) à parler anglais (du moins le lire), et à savoir faire de bonnes recherches.. Mais si tu écris "manipuler des bases de données depuis Visual Studio C# comme SQL Server et PostgreSQL" dans google, ça m'étonne pas que tu trouves rien..
Réfléchis aux bons mots clés, à ce que tu veux faire exactement, aux choses que tu as déjà vu et qui s'en rapproche, et si tu ne trouves rien, tu fais un post sur StackOverflow en expliquant (en détails, pas comme ici) ta problématique..
Tu va pas trouver de code "terminé" qui fait ce que tu veux sans effort.. Et encore moins sur github !
Et franchement.. La doc de Microsoft est assez bien faite (explications, tutos, exemple, etc..) pour que RTFM soit la bonne chose à faire.
Edit: Je crois pas que ce soit le bon endroit pour discuter de tout ça, ouvre un sujet dans la catégorie concernée.
Ce serait une choucroute. Comment ça, ce n'est pas un fruit? Il fallait bien trouver le rapport avec la choucroute, comme ça on l'a.
Edit : Bah, le message de @Fizik a été édité du coup mon message n'a plus aucun sens. Il disait que si les langages étaient des fruits, le java serait une pomme avant de demander que serait le C (de mémoire)
Oh là là que lis-je ! En maçonnerie et en menuiserie il y a des tutoriels et des modes d'emploi, sinon comment feraient-ils ? Pour avoir tâter de ces deux techniques et y avoir fait des choses honorables, je peux l'affirmer. Même en soudure à l'arc j'ai appris, par des manuels comment faire. Au début ce n'était pas beau du tout, je soudais donc des pièces sans importance, mais je me suis perfectionné.
Il y a des spécialités "coup de patte" : plâtrier, enduiseur. Même avec de bons tutos on ne fera rien de bien valable du premier coup. Car il faut l'acquérir, par la pratique, le coup de patte.
Mais rien à voir avec mon propos : la programmation consiste à appuyer sur des touches d'un clavier. le tout est donc de savoir quelles touches. C'est la où un tuto est utile. Tuto dont on fera des variantes, certaines se planteront, mais on aura alors les éléments pour savoir pourquoi elles se plantent ce qui permettra de progresser.
La doc de Microsoft est rudimentaire. J'ai passé ce stade (la lecture d'un fichier monotable). Effectivement ceux qui jettent des bouts de codes dont on ne peut rien tirer ne m'intéressent pas. L'exemple d'un livre que j'ai apprécié parce que tout fonctionne est celui de John Sharp "Visual C# 2010, étape par étape", Microsoft Press. Même les exemples en anglais ont été francisés par le traducteur, délicate attention.
Si ! Il existe des sites de programmes exemples avec des codes complets. Rien en français comme d'hab, mais ce n'est - quand même - pas un problème. Ce qui me gêne en anglais ce sont des concepts de programmation développés car je n'ai pas assez de vocabulaire et de grammaire anglaise pour tout comprendre. Mais qu'on me balance un code (qui fonctionne !) suffit à mon bonheur. Je peux alors y faire des variantes, m'autocorriger si elles ne fonctionne pas, etc.
Non, je ne vais pas ouvrir un sujet car oser poser ce problème, somme toute de pédagogie, est tabou (un comble pour un site de formation) et ne peut que m'attirer, comme ici, que des griefs. Je n'interviendrais plus sur les forums, c'est tout.
Mais rien à voir avec mon propos : la programmation consiste à appuyer sur des touches d'un clavier. le tout est donc de savoir quelles touches.
Non, c'est très réducteur, écrire le code n'est qu'un détail quand on programme. La difficulté c'est l'architecture du programme et les algorithmes, toute la partie conception.
Si tu vois la programmation comme ça, c'est pas étonnant que tu aie du mal. Si on compare au bâtiment, un programmeur qui développe un programme tout seul, il doit faire à la fois le travail de l'architecte, de tous les artisans, et de tous les autres corps de métier impliqués dans la construction.
williamhoustra a écrit:
Non, je ne vais pas ouvrir un sujet car oser poser ce problème, somme toute de pédagogie, est tabou (un comble pour un site de formation) et ne peut que m'attirer, comme ici, que des griefs. Je n'interviendrais plus sur les forums, c'est tout.
C'est pas parce qu'on est pas d'accord avec toi qu'on est méchants hein... Tu aurais ouvert un sujet sur les forums techniques ton problème aurait déjà été résolu, et quelqu'un t'aurais trouvé un cours ou tuto adapté, ou aurait expliqué lui-même ce qu'il faut faire dans ta situation.
Mais visiblement tu préfère le drama.
- Edité par LoupSolitaire 17 janvier 2019 à 12:58:13
Oui, j'ai bien compris, et inutile de sarcasmer, les tutoriels ne sont plus dans l'air du temps parce que c'était encore une démarche collective et altruiste, ceux qui avaient le savoir en faisait profiter ceux qui débutaient dans un nouveau domaine. "La connaissance s'accroît quand on la partage" avait écrit dans sa signature J-C Bellamy. Mais ce n'est plus ça maintenant. C'est la vachardise qui est dans l'air du temps et dont on a un beau fleuron à la tête de la république.
Pour moi j'ai résolu mes problèmes : en fait j'étais bien perplexe de ne pas pouvoir utiliser le paquetage Nuget pour utiliser PostgreSQL dans Visual Studio, une flopée de lignes en rouge me faisait croire que ce paquetage était bogué ou incompatible. Mais j'avais mal lu et ce n'était pas clair ! Il pleurait, en fait, après d'autres paquetages qui n'étaient pas installés. Je l'aurais lu dans un tuto (car c'était d'un niveau débutant, vu que j'avais utilisé, il y a quelques années la technique de la dll), j'aurais tout de suite compris. De même j'ai expliqué ce problème que j'avais dans des forums plus spécialisés mais on n'a pas daigné me répondre.
Idem quand j'ai demandé un exemple de manipulation de BDD par VC# en utilisant deux tables et pas seulement en mode vue, bien sûr. Rien ! Pas une réponse ! Je vais, certes, y arriver, mais je vais tâtonner alors que si j'avais un programme exemple ça me ferait gagner du temps de compréhension.
La vachardise, vous dis-je.... D'ailleurs pourquoi irais-je m'embêter à répondre à ceux qui ont des problèmes avec leur Windows ou leur matériel ? Je n'en ai pas moi !
- Edité par williamhoustra 19 janvier 2019 à 20:45:17
Je ne sais pas ce que tu as cherché mais j'ai tapé "C# db" dans duckduckgo et voilà le premier lien qu'il m'a retourné. Idem pour l'histoire avec nuget et postgresql, j'ai tapé "visual studio nuget postgresql", je suis tombé sur le paquet npgsql, premier lien à nouveau de la recherche. Ce n'est peut-être pas le même paquet que tu as utilisé, mais en tout cas, les dépendances y sont indiquées de manière claire. Bon, j'y ai consacré 2 min parce que je n'avais aucun intérêt à pousser plus loin les recherches donc ça ne correspond peut-être pas exactement à ce que tu cherches.
Et puis après, pour faire qu'il y ait des tutos, déjà il faut qu'il y ait quelqu'un que ça intéresse d'en écrire un parce que ça prend d'écrire un tuto correcte. Et encore plus si on le maintient à jour. Et personnellement, je trouve qu'il y a déjà une masse de tutos très importante, notamment en français, peut-être pas sur ce qui t'intéresse, mais tu ne peux pas dire qu'il n'existe rien en français. Un contre-exemple : ubuntu-fr.org qui est une mine d'or pour les débutants et même les plus avancés pour savoir comment utiliser Ubuntu et où il y a énormément d'informations sur plein de programmes différents. Le wiki fr d'Archlinux, c'est pareil, il y a énormément d'informations. Donc, il y a toujours des gens qui ont la volonté de partager leur savoir.
Edit : En poussant un tout petit peu loin, en allant sur le site du paquet npgsql, je suis tombé sur la doc du paquet avec... des exemples indiquant comme l'utiliser ! Donc je ne sais pas comment tu fais tes recherches, mais en y ayant passé tout au plus 10 min, j'ai un connecteur postgresql pour C# utilisable dans visual studio.
Mais bon, ceux qui trouvent qu'il n'y a pas assez de tutoriels dans le domaine précis qui les intéresse ont toujours la ressource d'en écrire eux-mêmes.
Enseigner, c'est un bon moyen d'apprendre.
- Edité par michelbillaud 21 janvier 2019 à 10:20:09
Bon j'ai avancé et je commence à me débrouiller honnêtement. Du coup c'est moi qui va mettre sur pied un tutoriel sur le sujet PostgreSQL et son utilisation avec Visual C#.
Déjà il n'y a absolument rien d'utile en français ou alors c'est trop vieux. On trouve plus de choses dans les sites anglophones mais ce n'est pas encore la langue qui est l'obstacle, c'est que c'est la pétaudière.
Il en résulte que pour manipuler PostgreSQL avec Visual Studio il ne suffit pas d'utiliser la dll npgsql qu'on introduit le plus simplement du monde dans les références. Ça marche encore, mais cette dll n'est plus maintenue.
Il faut utiliser le package Nuget npgsql.4.0.4.nupkg, cela, d'après ce que j'en ai lu avait l'avantage de gérer les versions (et la 4.0.4 est la toute dernière). Mais ce qui n'est pas dit c'est que ce paquet n'est pas suffisant. Donc à faire la manoeuvre d'inclusion en ligne de commande avec Nuget je me retrouvais avec un paquet de lignes en rouge comme quoi c'était impossible.
Pour moi c'était donc une incompatibilité de ce paquet Nuget. Mais à y regarder de plus près dans ces lignes en rouge je vois que cela ne leur plaisait pas d'avoir des choses manquantes, trois précisément. Et pas une seule fois ce n'était mentionné sur le site npgsql.
C'est cela qui est pénible avec les sites anglophones : ils sont d'une pédagogie désastreuses. D'ailleurs la plupart du temps ce ne sont pas des vrais sites mais des réponses à des discussions, des enfilades dont on ne peut rien tirer.
Je me suis donc mis à la recherche de mes 3 paquets manquants : System.Runtime.CompilerServices.Unsafe, System.Threading.Tasks.Extensions et System.ValueTuple
qui sont donc des prérequis. On ne peut installer le paquet npgsql Nuget qu'après avoir installé ceux-ci. mais c'est tellement meilleur de ne pas le dire...
Bon, maintenant que j'ai pu installer ma librairie PostgreSQL, je peux donc avancer en programmation VC#. Mais il y a aussi des choses à signaler dans les configurations. Là aussi ce n'est pas dit. Par exemple ceux qui sont infichus de mettre le code utf8 s'en vont répétant qu'il ne faut pas mettre de minuscules accentuées dans le nom des tables. Et pourquoi ça ? Je n'ai pas envie de m'américaniser en étant prisonnier de l'ASCII 7 bits, merdre alors ! Petit cas pratique : imaginons une assurance qui gère des pensions. Comment faire alors deux tables : Retraites et Retraités ?
Bon, je vais donc faire un tutoriel dans l'esprit du Zéro ancien et que j'hébergerais sur mon site.
retraités => retirees et retraites => pensions (ah mais oui c'est vrai que c'est en anglais)
Bon sinon heureusement qu'on c'est mis d'accord sur l'anglais au taf car sinon entre les espagnols, les allemands et les chinois, notre code aurait des noms et des commentaires écrit dans un truc que l'on comprends pas xd
Rassure-moi @williamhoustra, les trois dépendances que tu cites, ce ne sont pas celles qu'on retrouve dans le deuxième lien que j'ai donné dans mon dernier post? Je dois être aveugle ou avoir des hallucinations. Lien qui est donné dans la première page de la doc du paquet où il est préconisé l'installation avec Nuget.
Après je ne sais pas comment est gérée l'installation par le gestionnaire de paquets mais je comprends qu'on attende de ce dernier qu'il gère aussi les dépendances automatiquement.
Content de voir que tu avances.. Mais ce sujet du forum n'est pas à disposition pour écrire ton monologue concernant tes (palpitantes) aventures dans le monde du C# et PostgreSQL.
Si tu tiens vraiment à nous tenir informés de tes péripéties (et je suis sûr que ça intéresse pleins de monde ici!), je te conseille d'ouvrir un post, ou un blog..
Et puis bon, les forums sont aussi la pour ça, si tu ne trouves pas ce que tu cherches sur des tutos, pose ton problème sur un forum et tu auras une réponse (normalement).
quand je discute avec d'autre personnes à propos d'OC ils me répondent toujours "c'est pas assez complet, c'est trop basique" car c'est justement sur le forum que l'on rentre dans les détails.
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
Zeste de Savoir | Kali Linux n'est pas une distribution pour débuter ni pour être utilisée tous les jours | Pour choisir une distribution Linux
Blond, bouclé, toujours le sourire aux lèvres...
Zeste de Savoir | Kali Linux n'est pas une distribution pour débuter ni pour être utilisée tous les jours | Pour choisir une distribution Linux
Des tutos surtout et gratuit|Déboguez php|Un cours sur ASP.NET MVC
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
Zeste de Savoir | Kali Linux n'est pas une distribution pour débuter ni pour être utilisée tous les jours | Pour choisir une distribution Linux
Avatar by MaxRoyo. Venez parler du sdz
Zeste de Savoir | Kali Linux n'est pas une distribution pour débuter ni pour être utilisée tous les jours | Pour choisir une distribution Linux
Avatar by MaxRoyo. Venez parler du sdz