|
Auteur | Sujet : [Topic unique] .Net @ Prog |
---|
DiB91 Bwaaaaaaah | Reprise du message précédent : --------------- La DiBerie | Rehost | Link |
Publicité | Posté le 08-05-2023 à 13:16:45 |
TotalRecall | Je dois avoir les sources de mon programme en .Net 6 qui mixait les deux, je pourrai t'envoyer le contenu du startup.cs si tu galères à faire marcher l'ensemble. Mais je suis sûr à 99% qu'il y a des tutos sur internet genre "Mix MVC Core and Swagger service in same project" tellement ça me parait basique comme demande. Message édité par TotalRecall le 08-05-2023 à 22:56:12 --------------- Topic .Net - C# @ Prog |
TotalRecall | Tiens je viens d'avoir un souci rigolo : un update mineur de Visual Studio qui m'a foiré un projet.
--------------- Topic .Net - C# @ Prog |
DiB91 Bwaaaaaaah | BON, note à moi-même : .NET Framework 4.8.1 n'est pas disponible sous Windows Server 2019... j'aurai du me renseigner avant d'envoyer mon dernier update --------------- La DiBerie | Rehost | Link |
TotalRecall | Oui ça m'avait fait tiquer aussi quand c'est sorti, heureusement je l'ai vu à temps Le unpack manuel sur de la production c'est un peu dégueu, surtout si l'upgrade de version n'était pas justifié Vous bossez sur des trucs sympas en ce moment ? Moi j'ai pas repris de client depuis quelques temps, mais il y a quelques mois je m'étais mis à Blazor pour un projet perso. J'avais posté sur le moment pour voir si des gens font du Blazor ( https://forum.hardware.fr/forum2.ph [...] 7#t2440477 ). Message cité 1 fois Message édité par TotalRecall le 12-06-2023 à 08:41:55 --------------- Topic .Net - C# @ Prog |
Taiche (╯°□°)╯︵ ┻━┻ |
--------------- Everyone thinks of changing the world, but no one thinks of changing himself | It is the peculiar quality of a fool to perceive the faults of others and to forget his own | Early clumsiness is not a verdict, it’s an essential ingredient. |
TotalRecall | J'aime la technique mais le côté "échange humains" tant que les utilisateurs sont de bonne foi et agréables c'est top aussi !
Message cité 2 fois Message édité par TotalRecall le 13-06-2023 à 17:58:14 --------------- Topic .Net - C# @ Prog |
ixemul Nan mais sans blague ! ⚡ |
--------------- VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk |
Publicité | Posté le 13-06-2023 à 17:58:37 |
Taiche (╯°□°)╯︵ ┻━┻ |
--------------- Everyone thinks of changing the world, but no one thinks of changing himself | It is the peculiar quality of a fool to perceive the faults of others and to forget his own | Early clumsiness is not a verdict, it’s an essential ingredient. |
TotalRecall |
Euh... Pourquoi ? C'est sûr que mettre ça sur du code ancien c'est bon à être inondé de warnings, mais sur du code pensé pour ça fait une bonne barrière contre les nullreferenceexceptions et autres trucs du genre.
On est d'accord sur l'utilité du nullable à enable Pour les setters publics, évidemment c'est mieux sans (j'ai zappé ça pour mon exemple), mais ça n'enlèvera pas le warning qui m'intéressait dans ma question Ma classe est une classe parce que c'est pas un record Pour le String.Empty c'est un peu arbitraire, et ça marchotte à peu près pour une chaîne, mais pas pour un autre type non nullable. En fait je pense que j'aurais voulu un truc du genre "ce champ n'est pas nullable. Mais il n'est pas forcément initialisé dans le constructeur, ne gueule pas tant qu'il l'est par un initialiseur de classe [ce qui revient au même, à la syntaxe près]", mais c'est juste pas supporté, ou pas encore Message édité par TotalRecall le 13-06-2023 à 19:35:06 --------------- Topic .Net - C# @ Prog |
Yor_le_Bourrin | Clairement je ne me vois pas revenir en arrière sur les nullable : ça explicite le contrat, évite des bugs... Perso j'alterne entre string.Empty (cas général) et null! pour les cas qui ne peuvent pas être null, genre les classes d'API qui se retrouvent par construction [required]. Dans la prochaine version de c# ça deviendra d'ailleurs probablement inutile grâce au mot clef required. |
Tonneau | Dites, je cherche une piste.
|
TotalRecall | Pour tous les trucs du genre "si ça foire déclenche ça à la place" ou "si ça foire recommence x secondes plus tard, et y secondes plus tard si ça foire encore" ou "si ça foire on arrête tout et on bombarde la russie" il faut absolument que tu rencontres Polly : https://github.com/App-vNext/Polly Par contre dans le cas spécifique de ton appel, si tu as un truc zombie qui continue de tourner quelque part parce que l'appel est déjà parti, là on peut pas faire de miracle, c'est une histoire de protocole et d'implémentation. Les CancellationToken et cie faut bien que ça soit géré quelque part. Tu parles de http et de service windows en même temps, ça me parait pas forcément coller ensemble. Surtout que le http de base, c'est pas top pour gérer le flux aussi finement. Message cité 1 fois Message édité par TotalRecall le 15-06-2023 à 17:33:09 --------------- Topic .Net - C# @ Prog |
ixemul Nan mais sans blague ! ⚡ | Yes !!! Polly ! j'hésitais à le conseiller car je ne savais pas s'il était dispo en .NET 4.6.1 et.. coup de bol, c'est le plus vieux FW qu'il supporte --------------- VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk |
TotalRecall | Ah j'avoue j'avais même pas pensé à aller vérifier ce détail, pour moi le 4.6.1 il est au musée à côté des os de dinosaures --------------- Topic .Net - C# @ Prog |
TotalRecall |
Ca va être pratique si ça le fait à chaque MAJ de VS... J'ai fait l'expérience de remplacer toute la référence par un Message édité par TotalRecall le 15-06-2023 à 18:56:29 --------------- Topic .Net - C# @ Prog |
Tonneau |
C'est un service windows, qui fait des appels a une api via http. A voir ce quon peut faire coté Api, je sais pas qui en a la charge. Je vais regarder Polly, merci. |
ixemul Nan mais sans blague ! ⚡ | Une fois n'est pas coutume, j'ai un petit problème... WPF
--------------- VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk |
TotalRecall | Et moi j'ai une question Blazor . Depuis une page Razor classique, comment on génère un lien vers une page Blazor ? J'ai une directive
La même syntaxe pour faire un lien vers une page Razor fonctionne (naturellement). Je sais que Razor et Blazor s'exécutent dans des pipelines un peu différents, mais j'imagine qu'il y a un truc tout con pour générer des liens de l'un vers l'autre Merci Message édité par TotalRecall le 15-08-2023 à 10:22:58 --------------- Topic .Net - C# @ Prog |
TotalRecall | Hello, --------------- Topic .Net - C# @ Prog |
Yor_le_Bourrin | Pas que je sache. Vu que c'est la norme de "coder" la partie build dans les autres frameworks, et qu'ils ont comme tu as dit simplifié le csproj en édition, pas sûr qu'un effort soit fait de ce côté. |
Implosion du Sord Fesseur de chameaux | C'est bien encore et toujours manuel, mais perso ça ne me pose pas de soucis. Il est important de faire ses lib en .NET Standard pour ne pas avoir à se poser de questions. Tout ce qui ne peut être en .NET Standard doit avoir sa propre lib qui gèrera une compilation multi-framework
--------------- [VDS]AIO Fractal Design Celsius S36 | Carte Wifi N Intel 5100 mPCIe | divers accessoire boitier Fractal Design | Away from keyboard, close to your breast |
TotalRecall | Ok, merci d'avoir confirmé que je perds pas mon temps à faire ça à la main .
--------------- Topic .Net - C# @ Prog |
Yor_le_Bourrin | Perso j'ai laissé tomber .net standard aussi. Je multicible .net 7 en plus de 4.7.2 pour les très legacy, ça me paraît plus future proof, notamment ça permet de gérer les nullable dans les contrats. |
TheCreator zwiiiii and then shbrouk tak | coucou, vous conseillez quoi comme alternative à postman ? en gros je cherche juste... postman, mais sans leur mise à jour débile qui va tout foutre en remote et plus rien en local. je pensais que ça serait une recherche courte mais je tombe soit sur des trucs douteux, soit des trucs payants, soit des trucs webapp. d'avance merci Message édité par TheCreator le 13-09-2023 à 16:23:35 --------------- La superstition c'est comme ceux qui réparent les fauteuils, il faut que le bois qu'ils rajoutent soit à peu près comme l'autre bois sinon ça se voit trop. |
DiB91 Bwaaaaaaah | Ah bah ça, c'est de la coïncidence
--------------- La DiBerie | Rehost | Link |
TheCreator zwiiiii and then shbrouk tak |
--------------- La superstition c'est comme ceux qui réparent les fauteuils, il faut que le bois qu'ils rajoutent soit à peu près comme l'autre bois sinon ça se voit trop. |
ixemul Nan mais sans blague ! ⚡ | J'ai utilisé un temps Insomnia, qui était vraiment pas mal, (lors du passage de Postman 1.xx à 2.xx), puis je suis repassé à PostMan.... Mais pour les mêmes raisons que toi je vais probablement repasser sur Insomnia --------------- VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk |
TotalRecall | Plop, --------------- Topic .Net - C# @ Prog |
Taiche (╯°□°)╯︵ ┻━┻ |
--------------- Everyone thinks of changing the world, but no one thinks of changing himself | It is the peculiar quality of a fool to perceive the faults of others and to forget his own | Early clumsiness is not a verdict, it’s an essential ingredient. |
Yor_le_Bourrin | Le "null!" initialisé dans les properties est bien du code inutile juste pour éviter les warnings. C'est bien pour ça qu'ils ont rajouté le mot clef required, c'est contre productif sinon. Pour l'initialisation dans le constructeur, ça n'est pas une solution : perso au delà de 3 properties je vire le constructeur si j'en avais mis un, ça devient illisible comparé à une initialisation avec les properties explicites. Sonar est un peu moins extrémiste que moi, il limite par défaut à 7 paramètres pour le constructeur / méthodes. Si pour la prochaine version MS pouvait faire évoluer les records sur ce point là d'ailleurs, ça serait pas mal : je ne les utilise pas à cause de ça... |
Taiche (╯°□°)╯︵ ┻━┻ | On doit pas bosser pareil alors, c'est pas grave Pour détailler : un constructeur avec beaucoup de paramètres n'est un sujet que si t'es sur un bon gros POCO, mais perso je vois pas le souci à passer par un constructeur plutôt qu'un initialiseur, tu peux aller à la ligne entre chaque param et utiliser des parenthèses au lieu des accolades (et en plus tu évites le "Property = " devant, ou alors si ça te manque tu peux utiliser les params nommés). Les records prémunissent de ça en étant des value objects donc non mutables (sauf bidouille) et super simples à comparer. Et la syntaxe avec with permet aussi de jouer avec facilement. EDIT : quant au null!, je ne l'utilise quasiment jamais, je crois que j'ai dû l'utiliser 1 ou 2 fois en 2 ans. Message édité par Taiche le 23-12-2023 à 14:32:52 --------------- Everyone thinks of changing the world, but no one thinks of changing himself | It is the peculiar quality of a fool to perceive the faults of others and to forget his own | Early clumsiness is not a verdict, it’s an essential ingredient. |
Yor_le_Bourrin | Si tu ne vois pas le souci des méthodes et constructeurs (et méthodes )avec des milliers de paramètres, sonar le voit bien . Risque multiplié qu'un boulet inverse 2 paramètres, car il ne les aura pas nommés. Init suffit largement pour l'immutabilité. Attention grosse erreur par contre : les records sont des reference type, à moins d'utiliser des record struct. Les records ne changent globalement rien par rapport à une classe / struct, à part le sucre syntaxique du constructeur qui fait des properties {get; init} en une ligne. |
Taiche (╯°□°)╯︵ ┻━┻ | Je ne dis pas que je ne vois pas de souci des signatures avec plein de paramètres, c'est généralement un code smell, je suis d'accord Ceci étant, utiliser des setters pour des properties pour éviter d'avoir trop de params dans le constructeur est un contournement très discutable à mon sens (cf ce qui suit). Oui init suffit mais dans ce cas tu te retrouves à écrire Pour les records, je parle de value object au sens DDD, pas de value type Voir https://en.wikipedia.org/wiki/Value_object et https://martinfowler.com/bliki/ValueObject.html C'est un confort énorme je trouve, t'as pas à te farcir les overrides de Equals, de GetHashCode, de créer un Comparator custom... sans même parler de l'immutabilité qui garantit l'absence d'effets de bord. Et l'utilisation du mot-clé with permet en outre de s'affranchir de la "chiantitude" de recopier manuellement un record dans un autre, ex : var p3 = p2 with { Amount = 15 } et en avant Guingamp. Message édité par Taiche le 23-12-2023 à 17:54:10 --------------- Everyone thinks of changing the world, but no one thinks of changing himself | It is the peculiar quality of a fool to perceive the faults of others and to forget his own | Early clumsiness is not a verdict, it’s an essential ingredient. |
TotalRecall |
Et moi je crois qu'avant d'écrire ce genre de phrase sacrément condescendante tu devrais au moins t'assurer d'avoir bien compris de quoi il était question, par exemple en relisant la discussion mentionnée, pour éviter les incompréhensions quelque part Prenons un exemple : Quelques options : ... Reste par contre en .Net 7 la possibilité de juste ajouter "required" à ces champs, ce qui au lieu d'avertir au moment de la définition de la classe fait en sorte qu'à la place tu le sois lors de son instanciation si tu oublies une propriété. Ce qui me parait beaucoup plus propre et censé que tous les cas précédents. Je donne l'exemple du DTO mais ça marche aussi ailleurs évidemment. record (ou struct) pour moi c'est pas le débat. C'est aussi super utile mais pas si c'est juste pour contourner des comportements du langage intentionnels sur les classes. Message cité 1 fois Message édité par TotalRecall le 23-12-2023 à 22:53:56 --------------- Topic .Net - C# @ Prog |
Taiche (╯°□°)╯︵ ┻━┻ |
--------------- Everyone thinks of changing the world, but no one thinks of changing himself | It is the peculiar quality of a fool to perceive the faults of others and to forget his own | Early clumsiness is not a verdict, it’s an essential ingredient. |
ixemul Nan mais sans blague ! ⚡ | Pour un petit refresh de première pages, retrouvé sur mon linkedin :
--------------- VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk |
Publicité | Posté le |
Sujets relatifs | |
---|---|
service web REST en VB.NET HeySpread | Requete Access avec paramètres, éxécutée en VB .Net |
impersonalisation sous ASP.NET | [Topic Unique] les blagues pourries de harko et florentg |
Generation d'un GIF en ASP.NET | Appeler un service web .NET sécurisé en Java |
Prog Visual Basic "periodicité" | [Oracle] Temps d'execution de requete tres long par rapport au .NET |
[VB.NET] Lister des imprimantes réseaux | Fusion de résultats de requêtes dans une unique Table |
Plus de sujets relatifs à : [Topic unique] .Net @ Prog |