Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2779 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  75  76  77  78  79  80
Page Suivante
Auteur Sujet :

[Topic unique] .Net @ Prog

n°2460839
ixemul
Nan mais sans blague ! ⚡
Posté le 26-12-2023 à 17:36:37  profilanswer
 

Reprise du message précédent :
Pour un petit refresh de première pages, retrouvé sur mon linkedin :
 
https://media.licdn.com/dms/image/D [...] Tb4zsNvLuc  
 
et pour la postérité :
 
https://www.lemondeinformatique.fr/ [...] 92501.html
 
:D


---------------
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
mood
Publicité
Posté le 26-12-2023 à 17:36:37  profilanswer
 

n°2460840
TheCreator
zwiiiii and then shbrouk tak
Posté le 26-12-2023 à 17:48:11  profilanswer
 

mapster c'est mieux que automapper ? je deteste ce truc de tout mon coeur :D


---------------
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.
n°2460841
ixemul
Nan mais sans blague ! ⚡
Posté le 26-12-2023 à 17:52:14  profilanswer
 

TheCreator a écrit :

mapster c'est mieux que automapper ? je deteste ce truc de tout mon coeur :D


 
pas encore testé mapster, mais je connais automapper et je m'en méfie comme de la peste... à choisir, je préfère le mapping à la mano pour l'instant :D


---------------
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
n°2460842
Yor_le_Bou​rrin
Posté le 26-12-2023 à 20:46:42  profilanswer
 

TheCreator a écrit :

mapster c'est mieux que automapper ? je deteste ce truc de tout mon coeur :D


J'ai testé un peu. Mapster est ultra rapide, car utilise les generators. Par contre un peu moins souple, on avait eu des soucis de mapping sur des cas tordus (conversion avec du managed code). Dans des cas simples ça fera sans doute mieux le taf et plus rapidement je pense.

n°2460914
TotalRecal​l
Posté le 28-12-2023 à 15:27:03  profilanswer
 

Taiche a écrit :


C'est vrai c'était pas cool et pas nécessaire, mea culpa, je te présente mes excuses.


Ca ira pour cette fois [:ocolor]
 

Taiche a écrit :


Je pige pas le "donc" ici ? En gros t'as des champs non nullables et, comme ils sont pas initialisés ça râle ?


Ben oui, ce qui est normal, mais chiant :o
 

Taiche a écrit :


Je comprends mieux le problème [:romf] Tout est question de contexte je pense. Si on est sur un DTO, par exemple utilisé pour de la désérialisation en sortie d'un WS/requête HTTP avec payload JSON/SQL, en quoi c'est "mal" un constructeur ? La désérialisation va l'utiliser, tout le monde sera content.
Je suis d'accord avec les autres remarques.
En fait, si t'es sur un DTO que tu ne construis pas et que c'est le framework/une lib qui fait ce job, toi ce qui va t'intéresser c'est de lire les propriétés pour faire du mapping ou je sais pas quoi derrière, donc que ce soit un constructeur ou une property, c'est pas très grave.
Si t'es sur un DTO que tu construis, je trouve important que le constructeur définisse ce qui est nécessaire et ce qui ne l'est pas, soit avec des params optionnels, soit en ne mettant que les params nécessaires et en settant les properties optionnelles au besoin. C'est le job du constructeur, quoi. J'en reviens à "pourquoi le constructeur c'est mal ?" parce que pour moi les props settables c'est impliquer de la mutabilité à un objet (et de mon point de vue c'est pas ouf) et que je vois pas en quoi initialiser un objet avec des propriétés est mieux ou plus lisible ou plus propre [:transparency]


Mais pourquoi je voudrais générer un constructeur inutile (vu que moi je l'appellerai pas), moche (plein de paramètres), qu'il faut maintenir (si modification des champs), et dont je suis pas sûr que mon deserialiseur le trouvera alors qu'avec les propriétés publiques y a aucune surprise et aucun code inutile ?
Pour un DTO les setters publics ne me dérangent pas, et je maintiens que je trouve l'usage de required plus élégant que le forçage des valeurs sur les non nullables ou bien la muiltiplication des ctors. Et vu que le truc est récent et n'avait pas été mentionné il y a quelques mois ça me paraissait important d'y revenir.
Pour un objet dont je veux protéger l'état interne là effectivement je ne veux pas de setters (ou à la limite en internal), et là c'est bien d'avoir un constructeur (avec surcharges et arguments optionnels éventuellement). Bref je crois qu'on a fait le tour du sujet...


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2460915
TotalRecal​l
Posté le 28-12-2023 à 15:33:57  profilanswer
 

ixemul a écrit :

Pour un petit refresh de première pages, retrouvé sur mon linkedin :

 

https://media.licdn.com/dms/image/D [...] Tb4zsNvLuc

 

et pour la postérité :

 

https://www.lemondeinformatique.fr/ [...] 92501.html

 

:D


C'est très bien de mettre en avant des concepts et des pratiques, mais là c'est un peu trop dirigiste niveau librairies, ça sent le prosélytisme :o

 

Pour Automapper, j'aime pas non plus. Chez mon client actuel y a quelques mois j'ai tenté de pousser des trucs que je juge plus transparents, comme Mapperly qui fonctionne par génération de code et qui offre pas mal de customisation.
Avantages :
- Absolument rien ne se fait par reflection ou autres mécanismes obscurs et lents au runtime, tout le code est généré et compilé.
- Du coup c'est 100% debugable, pas comme Automapper qui fonctionne en mode boîte noire.
Je sais bien qu'il y a un certain nombre de mécanismes tout à fait efficaces dans Automapper pour s'assurer qu'aucun mapping n'a été oublié en route, mais sur des scénarios un peu complexes je préfère quand même avoir plus de maitrise.
Mapperly est un projet assez récent par contre, il ne fait pas (encore) tout ce qu'offrent les solutions de mapping un peu plus matures.

 

edit : et j'ai pas compris pourquoi le 2e lien ? :d


Message édité par TotalRecall le 28-12-2023 à 15:35:09

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2460917
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-12-2023 à 15:44:28  profilanswer
 

TotalRecall a écrit :


Mais pourquoi je voudrais générer un constructeur inutile (vu que moi je l'appellerai pas), moche (plein de paramètres), qu'il faut maintenir (si modification des champs), et dont je suis pas sûr que mon deserialiseur le trouvera alors qu'avec les propriétés publiques y a aucune surprise et aucun code inutile ?
Pour un DTO les setters publics ne me dérangent pas, et je maintiens que je trouve l'usage de required plus élégant que le forçage des valeurs sur les non nullables ou bien la muiltiplication des ctors. Et vu que le truc est récent et n'avait pas été mentionné il y a quelques mois ça me paraissait important d'y revenir.
Pour un objet dont je veux protéger l'état interne là effectivement je ne veux pas de setters (ou à la limite en internal), et là c'est bien d'avoir un constructeur (avec surcharges et arguments optionnels éventuellement). Bref je crois qu'on a fait le tour du sujet...


Bin au lieu d'avoir un constructeur inutile, t'as des setters publics inutiles (vu que toi tu ne les appeleras pas non plus) ? :D Dans tous les cas y a un truc "moche" (selon les points de vue) : soit un constructeur avec plein de params, soit des propriétés avec des setters publics (et des mots-clés required là où y a besoin).
Dans le cas du constructeur, t'as pas besoin de forcer une valeur puisque par définition ta property non nullable sera initialisée par lui.

 

Pour moi, on en revient aux records qui sont à mon avis la meilleure solution pour les DTO. Le seul problème est effectivement la signature à rallonge mais face aux gains multiples dont on a déjà parlé plus haut et le fait que l'alternative c'est une classe avec un ctor par défaut + des props settables, ba à choisir je préfère nettement le premier.

 

En gros, mon utilisation depuis quelque temps : DTO/POCO => record, besoin de logique et de méthodes "non triviales" => class.
Maintenant oui c'est mon choix perso et on parle simplement de points de vue.


Message édité par Taiche le 28-12-2023 à 15:44:55

---------------
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.
n°2460918
Yor_le_Bou​rrin
Posté le 28-12-2023 à 15:47:47  profilanswer
 

'Tain la lourdeur  [:massys]  [:brad pute]

n°2460920
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 28-12-2023 à 15:51:48  profilanswer
 

[:pingouino] Écoute j'essaie d'échanger sur le sujet hein, autant je comprends que le ton de mon premier message n'était pas terrible, autant discuter de l'intérêt d'une classe avec properties settables vs un record ou une class avec un constructeur un peu long ba ça me paraît dans les clous du topic [:spamafote] Accessoirement ça fait aussi partie de notre job.


---------------
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.
n°2460921
Yor_le_Bou​rrin
Posté le 28-12-2023 à 16:07:52  profilanswer
 

Discuter oui, rabâcher non. Le tour a été fait 2/3 fois, avec les mêmes arguments, sans succès visiblement. Il est temps de passer à autre chose  [:cerveau spamafote] .

 

Surtout en période DotNet 8, qui apporte des bonnes idées / rattrapages sur la concurrence : spread operator et initialisation de tableaux notamment

mood
Publicité
Posté le 28-12-2023 à 16:07:52  profilanswer
 

n°2461565
DiB91
Bwaaaaaaah
Posté le 10-01-2024 à 08:25:18  profilanswer
 

Bonjour par ici :)
 
J'ai une question un peu semi HS on va dire, mais bon peut être qu'il y a des solutions plus appropriées au .NET que d'autres, sait-on jamais... :)
 
Pour la plupart des mes développements .NET (web ou appli) j'utilise le même presta d'envoi de mails techniques (mails d'inscription, mails d'erreurs/logs, mails ponctuels quoi, pas de démarchage, mailing etc...) : MailJet.
C'est pas forcément un choix impartial, c'est juste une habitude que j'ai prise depuis ~10 ans, et j'aime bien bosser avec eux, c'est simple (clé API, mode relai vs mode API etc...) :)
 
Problème : le service s'est un peu dégradé avec le temps, j'ai une limitation sur mon compte mais le service technique ne sait pas me dire pourquoi, ni comment la lever, donc j'ai parfois des délais dans mes envois, c'est frustrant.
 
Vous avez une préférence vous de votre côté ?
Facile à exploiter en .NET (pas forcément en mode API, mais avec un wrapper ou un objet simple du SDK on va dire), qui ait bonne réputation (pour pas finir en spam chez mes clients ...) ?
 
Merci à vous :)
:hello:


---------------
La DiBerie | Rehost | Link
n°2461567
Je@nb
Kindly give dime
Posté le 10-01-2024 à 08:34:30  profilanswer
 

Azure communication services ?
Sendgrid ?

n°2461571
Yor_le_Bou​rrin
Posté le 10-01-2024 à 08:55:02  profilanswer
 

Mon client actuel utilise https://www.brevo.com/fr/ . Peu / pas de blocage chez les clients, API simple ou SMTP au choix


Message édité par Yor_le_Bourrin le 10-01-2024 à 08:55:42
n°2461572
DiB91
Bwaaaaaaah
Posté le 10-01-2024 à 09:03:06  profilanswer
 

Merci beaucoup.
Pour le moment, je suis sincèrement trop petit pour me permettre un Azure ou un MS365 pro, mais je vais regarder pour les 2 autres :jap:


---------------
La DiBerie | Rehost | Link
n°2461581
Yor_le_Bou​rrin
Posté le 10-01-2024 à 09:37:09  profilanswer
 

Trop petit pour un azure [:cerveau klem] ?
- Ca coûte pas grand chose : calcul sur https://azure.microsoft.com/fr-fr/pricing/calculator/ tu prends communication services, tu es à < 3.50 € /mois pour 10k mails de 1Mo
- Tu paies à l'usage
- L'API est simple, l'admin aussi
 
Curieux de voir quel point te bloque, habituellement / de mon XP c'est plus les gros qui sont réticents au cloud (raisons politiques notamment)

n°2461582
Je@nb
Kindly give dime
Posté le 10-01-2024 à 09:39:54  profilanswer
 

DiB91 a écrit :

Merci beaucoup.
Pour le moment, je suis sincèrement trop petit pour me permettre un Azure ou un MS365 pro, mais je vais regarder pour les 2 autres :jap:


Pourquoi trop petit ? Il y a pas besoin d'être gros pour ouvrir un compte, une simple CB suffit.
Je sais pas combien tu dois envoyer de mails mais c'est €0.00023/Email sent par ex

n°2461610
DiB91
Bwaaaaaaah
Posté le 10-01-2024 à 13:08:48  profilanswer
 

Ah bah j'avais une (mauvaise) idée conçue sur le sujet :)
Effectivement je m'en servais y a quelques années pour tout autre chose et les relais Microsoft sont faciles à utiliser (et configurer du coup !)

 

Je vais tester aussi  :love:


---------------
La DiBerie | Rehost | Link
n°2461706
DiB91
Bwaaaaaaah
Posté le 11-01-2024 à 16:35:21  profilanswer
 

Bon bah j'ai mis en place l'envoi via Azure :o
Effectivement, c'est très simple à faire et quasiment immédiat.
 
Les seules limitations que je rencontre dans mon application actuelle (ASP .NET MVC 5 / .NET Framework 4.8) :
- les courriers envoyés atterrissent en spam
- les courriers envoyés sont convertis en texte brut, la mise en forme HTML est ignorée
 
Pour le 1er point, je pense qu'il sera résolue de lui-même dans quelques heures, le temps que mes entrées SPF/DKIM/DKIM2 chez OVH soient prise en compte par les DNS.
Le 2e point venait de l'interface chaise/clavier, j'avais remplacé mes templates par des versions light en texte brut :o
 
Par contre l'envoi est un peu long du coup, l'envoi via EmailSendOperation.Send() est bloquant et bien plus long que celui via le bon vieux SmtpClient.Send().  
Il faut que je vois pour basculer sur la version asynchrone EmailSendOperation.SendAsync(), ou alors je vais devoir déléguer l'envoi des mails à un autre programme :o


Message édité par DiB91 le 11-01-2024 à 17:09:03

---------------
La DiBerie | Rehost | Link
n°2461716
Yor_le_Bou​rrin
Posté le 11-01-2024 à 18:45:17  profilanswer
 

Top !

 

L'envoi via async ne fera probablement pas aller plus vite par contre, c'est juste le thread de iis qui sera libéré pour une autre requête.

n°2461718
DiB91
Bwaaaaaaah
Posté le 11-01-2024 à 19:06:15  profilanswer
 

Oui voilà, le délai d'envoi ne me gêne pas trop, c'est plus le blocage du thread principal qui m'embête.
 
On peut jouer sur un paramètre de EmailSendOperation.Send(), dans lequel on peut lui demander de rendre la main soit dès que la commande est partie, soit une fois qu'Azure confirme avoir envoyé le message (et on peut aussi scruter le status de l'envoi pour jouer avec un event), mais même en le mettant au moins safe possible, ça prend toujours quelques centaines de ms.
 
--> Ca ira très bien pour mon humble usage, mais je me vois pas implémenter ça pour un envoi en batch par exemple ...


---------------
La DiBerie | Rehost | Link
n°2461730
Implosion ​du Sord
Fesseur de chameaux
Posté le 11-01-2024 à 20:31:30  profilanswer
 

DiB91 a écrit :

Oui voilà, le délai d'envoi ne me gêne pas trop, c'est plus le blocage du thread principal qui m'embête.

 

On peut jouer sur un paramètre de EmailSendOperation.Send(), dans lequel on peut lui demander de rendre la main soit dès que la commande est partie, soit une fois qu'Azure confirme avoir envoyé le message (et on peut aussi scruter le status de l'envoi pour jouer avec un event), mais même en le mettant au moins safe possible, ça prend toujours quelques centaines de ms.

 

--> Ca ira très bien pour mon humble usage, mais je me vois pas implémenter ça pour un envoi en batch par exemple ...


Pour les envois en batch (email, notif, sms), j'ai toujours délégué à un service dédié


---------------
[VDS]AIO Fractal Design Celsius S36 | Carte Wifi N Intel 5100 mPCIe | divers accessoire boitier Fractal Design | Away from keyboard, close to your breast
n°2464059
DiB91
Bwaaaaaaah
Posté le 13-02-2024 à 09:23:28  profilanswer
 

Bonjour :D

 

Besoin d'un petit hint de la part d'un vétéran de l'ASP .NET MVC (.NET Framework) parmi vous :o
Depuis quelques jours, j'ai une quantité affolante (par rapport à mes habitudes on va dire) de stacks qui proviennent d'une appli web, mais la trace est très très inhabituelle.
Je n'avais jamais vu ce type d'exception jusque maintenant, et ça se produit chez plein d'utilisateurs, sur une URL précise, mais évidemment non reproductible en test...

 

https://rehost.diberie.com/Picture/Get/f/253843

 

Et c'est tout !
Je n'ai pas de référence à la ligne qui fait appel à CheckSuspiciousPhysicalPath(), et je ne sais pas ce qui a foiré.
Est-ce qu'il y a une erreur ou est-ce que c'est juste une info, j'en sais rien.
Ca a l'air de poper dans le global.asax, dans une des méthodes de navigation, mais comme je ne le reproduis pas en dev, je n'arrive pas à en être sûr.

 

Le fichier en question (passé en paramètre) existe, et n'est pas locké en lecture/écriture dans un autre processus.
L'erreur se produit chez plusieurs utilisateurs différents, j'ai bien des user agents et IP publiques différents et non suspects.

 

Ca semble faire suite à 2 dernières opérations effectuées sur cette application :
- migration .NET Framework 4.7.2 -> 4.8
- augmentation du nombre de requêtes permises par session (via le setting aspnet:RequestQueueLimitPerSession)

 

L'application est écrite en ASP .NET MVC 5 et tourne sur une machine Windows Server 2019, sous IIS.

 

Vous avez déjà vu une telle exception ? :??:


Message édité par DiB91 le 13-02-2024 à 09:24:28

---------------
La DiBerie | Rehost | Link
n°2464060
meta67
Posté le 13-02-2024 à 09:36:52  profilanswer
 

C'est un path en dur ou en relatif ?

n°2464063
DiB91
Bwaaaaaaah
Posté le 13-02-2024 à 09:41:01  profilanswer
 

Normalement, la navigation sur cette appli se fait via des URL complètes, mais c'est vrai que quand ces erreurs arrivent, l'URL demandée est alors sous sa forme relative oui :??:

 

Exemple ici sur une qui vient juste d'arriver :
https://rehost.diberie.com/Picture/Get/f/253863

 

EDIT : par contre c'est vrai que ça ne semble concerner qu'1 ou 2 fichiers, les URL demandées sont tout le temps les 2 mêmes.


Message édité par DiB91 le 13-02-2024 à 09:42:58

---------------
La DiBerie | Rehost | Link
n°2464064
kao98
...
Posté le 13-02-2024 à 09:43:45  profilanswer
 

https://referencesource.microsoft.c [...] til.cs,185
 
Apparemment il n'aime pas les `/` et préfère les `\\`


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°2464066
DiB91
Bwaaaaaaah
Posté le 13-02-2024 à 09:49:05  profilanswer
 

Merci !
 
Effectivement j'étais arrivé à cette conclusion aussi, mais comme ce n'est pas moi qui fais appel directement à cette méthode, je ne sais pas où intervenir pour manipuler le chemin d'accès :??:
 
Peut être un appel fait automatiquement quand je fais un FileExists() ?
Je vais chercher de ce côté là.
 
Merci pour le tuyau en tout cas :jap:


---------------
La DiBerie | Rehost | Link
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  75  76  77  78  79  80
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
service web REST en VB.NET HeySpreadRequete 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.NETAppeler 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éseauxFusion de résultats de requêtes dans une unique Table
Plus de sujets relatifs à : [Topic unique] .Net @ Prog


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR