.Net Core 3.0 (C#,F#, Visual basic .Net)

Parce qu'il en faut pour tout le monde, discutez ici d'ADA, de shell et autres Wolfram...

Modérateur : Francois

Arduino-RPI
Messages : 11
Enregistré le : mar. 26 mai 2020 15:21

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Arduino-RPI » mer. 5 août 2020 23:01

C'est vraiment intéressant, tu utilises en plus les dernieres technos (gRPC, blazor...)
De mon coté, j'ai un peu moins de temps pour bosser avec mes rpi sur une solution de maison connectée (remontées de données dans une base sqlite et pilotage en wifi sur des esp arduino).

Arduino-RPI
Messages : 11
Enregistré le : mar. 26 mai 2020 15:21

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Arduino-RPI » mer. 5 août 2020 23:03

Tu utilises des rpi 3 ou des 4 ?

Bud Spencer
Raspinaute
Messages : 882
Enregistré le : lun. 15 août 2016 21:38

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Bud Spencer » jeu. 6 août 2020 11:26

Oui, j’essaie vraiment d’utiliser les dernières technos et j’en profite aussi pour moderniser mon code et m’a façon d’aborder .Net. Avant par exemple, que ce soit en C# ou avec les d’autre langages oo, je n’utilisais de l’injection de dépendance que pour des projets conséquents et principalement quand il y avait une notion de plugins, alors qu’avec .Net Core, c’est tellement bien intégré que cela devient une évidence même pour de petit programme. Idem pour Entity, le projet chronos c’est au plus une cinquantaine de tables et à ce niveau-là, je me contentais généralement de requête SQL dans le code. Pour l’instant, ce qui me manque le plus là-dedans, c’est surtout toute la facilité qu’il y avait avec les composants ASP.NET, mais ça c’est plus une question d’habitude qu’autre chose et cela m’oblige là aussi à adopter des méthodes plus ‘universelle’ et plus moderne.

Ce qui est aussi très intéressant, c’est la demande en recrutement autours de .Net Core alors que si on regarde bien, la 3.1 n‘est qu’une intermédiaire vers .Net 5. Beaucoup de décideurs commencent à comprendre que .Net Core n’est pas juste un banal portage open source du Framework .Net mais bien son futur.

Perso, j’ai beaucoup utilisé NodeJS et C++ sur le PI parce que ça reste très facile et efficace, mais pour mes prochains projets persos, ce sera .Net Core sans hésitation.

Jusque-là, j’utilisais uniquement un PI3 (les tout premiers) parce que c’était mon PI ‘d’expérimentation’, mais j’ai commandé des PI4 en 8Go pour être sur les derniers modèles. Je pensais les recevoir cette semaine, mais j’attends toujours …
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Arduino-RPI
Messages : 11
Enregistré le : mar. 26 mai 2020 15:21

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Arduino-RPI » ven. 7 août 2020 20:26

Pour l'injection de dépendance, j'ai découvert cela il n'y a pas si longtemps...Je n'ai pas suffisamment de recul encore pour y voir son intérêt à l'utilisation.
Pour Entity, je pense qu'il faut un peu maitriser le sujet pour éviter d'alourdir les "temps de reponses/execution" à la base. Mais je suis convaincu qu'une fois maitrisé, on y trouve un réel intérêt :)

J'ai pu voir aussi la demande au niveau recrutement sur .Net Core car j'étais en recherche de nouvelles opportunités (souhait de basculer sur du web et plus de client lourd, type winform...) début Janvier. Et .Net Core a vraiment la cote chez les dev/Architecte/Chefs de Projets...

C'est appréciable d'entendre un expert dire que pour ses projets persos, il passera sur du .Net Core :)

J'ai regardé le prix pour un RPI 4 - 4G, 60euros quand meme... ET 8Go, 80 euros...

J'avais une petite question, en .net core, pour faire un api Rest sans avoir un nginx derriere... Il serait possible de le faire avec OWIN (ou OWIN c'est dépassé et .net core a autre chose a proposé)... Je voudrais juste faire un "microservice" avec une api rest qui répond...

Bud Spencer
Raspinaute
Messages : 882
Enregistré le : lun. 15 août 2016 21:38

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Bud Spencer » sam. 8 août 2020 10:46

L’injection de dépendances est un concept plutôt avancé en poo donc cela demande d’avoir des bases solides avec ce paradigme mais un des points fort de .Net Core, c’est justement la vulgarisation de ce concept et c’est tellement bien fait que l’on y vient tout naturellement. Pour ce qui est d’Entity, j’ai mis du temps à m’y mettre. J’avais plutôt la réputation d’etre le type qu’il fallait aller voir quand on avait besoin d’une requête de sorcier (et je peux te dire que j’en ai fait de la sorcellerie sql :twisted: :lol: ). Pour ce qui est des performances, un appel avec la fonction d’un orm semble forcément plus lourde qu’une requête sql brute, mais il faut penser à tout et ca change tout . Exemple :

Quand tu fais une requête SELECT, à l’usage créer une commande, tu définies la requete sql, tu executes ta commande qui te retourne le jeu d’enregistrements, puis généralement tu crées une liste d’objets que tu instancies un par un par itération (en t’infusant au passage toutes les conversions de types).
Avec Entity tu fais tout ça en une seule commande. Tu ne te soucis plus du tout de la base de données et tu peux te concentrer uniquement sur la structure et les types de tes objets. Exemple basic :

Code : Tout sélectionner

var l = dbcontext.Personnes.Where(x=>x.age == 16).OrderBy(x=>x.prenom) ;
C’est tout, et tu as directement une liste d’objets Personne qui ont 16 ans ordonnée par prénom

Code : Tout sélectionner

lar ll = l.Where(x=>x.prenom == ‘alain’) ;
l.RemoveRange(ll) ;
tu as virés tous les ‘alain’ de la liste l

Code : Tout sélectionner

dbcontext.Personnes.SaveChange() ;
la db est à jour.

Adapter Entity a un programme et un context de données déja existant peut etre très délicats voir impossible parce que les objets ne reflètent pas forcement la structure des données de la base, mais pour démarrer un nouveau programme qui repose sur un sgbd, c’est vraiment dommage de s’en priver, surtout avec .Net Core qui là aussi facilite énormément la mise en œuvre d’Entity.

Si tu veux faire une API alors .Net Core est un très bon choix. Tu n’as pas besoin de NGinx ou autre et encore moins d’Owin . Tout est déjà dans la boite Asp Net Core. Je ferais un petit exemple d’api spécialement dédié au PI et tu verras que c'est vraiment taillé pour ça.

En attendant voilà un petit exemple de contrôleur d’api qui utilise entity.
apipersonne.png
apipersonne.png (38.86 Kio) Vu 343 fois
Difficile de faire plus simple non ?

http://ipouurl/api/personne retourne directement la listes des personnes (json) depuis la table Personnes
http://ipouurl/api/personne/5 retourne l’objet personne (json) depuis la table Personnes
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Arduino-RPI
Messages : 11
Enregistré le : mar. 26 mai 2020 15:21

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Arduino-RPI » sam. 8 août 2020 11:56

Tu fais juste un dotnet myApp.dll (avec un & commercial) ? Meme principe que pour une appli console et ton "microservice" tourne ?

Bud Spencer
Raspinaute
Messages : 882
Enregistré le : lun. 15 août 2016 21:38

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Bud Spencer » dim. 9 août 2020 08:48

Que ce soit une application orientée web, un service ou une simple appli console, le principe est exactement le meme. Soit un exécutable multiplateforme ou ciblé (qui sous-entend que tu as installé la version .net core correspondante a ton appli sur le système) ou alors un déploiement autonome ou tu n’as rien à installer au préalable et dans ce cas, tous les composants .Net Core sont publié dans le dossier de ton application. Dans tous les cas, toutes les versions peuvent cohabiter sur un meme système puisque chaque application possède son propre ficher de références.
Un liens qui explique sommairement les différentes méthode de déploiement :
https://docs.microsoft.com/fr-fr/dotnet/core/deploying/

Après, pour tout ce qui ‘orienté web’, tu peux parfaitement envoyer tes requêtes directement à ton application (qui à son propre ‘serveur web inside’ puisque tu auras référencé asp.net core), mais si tu es dans un contexte de publication web existant (IIS, NGinx, Apache …) et que tu as des contraintes de routages multi-sites ou des besoin d’équilibrage de charge ou tout simplement des règles de sécurités qui te l’impose, tu peux aussi faire transiter tes requêtes par le reverse proxy existant.
https://docs.microsoft.com/fr-fr/aspnet ... etcore-3.1
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Arduino-RPI
Messages : 11
Enregistré le : mar. 26 mai 2020 15:21

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Arduino-RPI » dim. 9 août 2020 17:48

Merci pour les infos, je vais tester cela dans la semaine.

Bud Spencer
Raspinaute
Messages : 882
Enregistré le : lun. 15 août 2016 21:38

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Bud Spencer » jeu. 27 août 2020 09:04

Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Bud Spencer
Raspinaute
Messages : 882
Enregistré le : lun. 15 août 2016 21:38

Re: .Net Core 3.0 (C#,F#, Visual basic .Net)

Message par Bud Spencer » ven. 28 août 2020 11:48

Un peu de matos est arrivé pour le projet Chronos. Les pi4 8Go n'étaient pas dispo chez mon fournisseur, donc je me suis rabattu sur des 4Go.
matos.jpg
matos.jpg (350.92 Kio) Vu 244 fois
Il me manque quelques boitier qui sont en reliquat et les pcb que j'ai fait graver pour un raccordement propre des périphériques aux PIs.

Durant les congés, j'ai laissé tourner un bot qui simulent 200 personnes qui font entre 2 et 20 pointages par jours sur plusieurs services, postes et affaires. Le but était d'alimenter la db d'une société test de façon a pouvoir valider les différents tableau de bord et états de reporting. La db est hébergée sur une vm Ubuntu et c'est un PI3 qui a servi de serveur d'application et d'API. Résultat plus de 38000 enregistrements ajoutés dans différentes tables et 0 erreurs.

Semaine prochaine (si j'ai le temps), assemblage des pointeuses :)
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Autres langages »