.Net Core 3.0 à .Net 8 (C#,F#, Visual basic .Net)
Modérateur : Francois
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
.Net Core 3.0 à .Net 8 (C#,F#, Visual basic .Net)
Déjà disponible en preview, la version finale de .Net Core 3.0 devrait pointer son nez dans quelques jours. Pour ceux qui ne connaissent pas .Net Core, voici la définition qui en faite sur Wikipédia :
.NET Core (prononcé « dot net ») est un cadriciel (Framework) Libre et Open Source pour les systèmes d'exploitation Windows, macOS et Linux3. Il comprend CoreCLR, un environnement d'exécution complet de CLR, la machine virtuelle qui gère l'exécution des programmes .NET.
CoreCLR est livré avec un compilateur à la volée amélioré, appelé RyuJIT. .NET Core inclut également CoreFX, qui est un fork partiel de FCL. Bien que .NET Core partage un sous-ensemble d'API .NET Framework, il est livré avec sa propre API qui ne fait pas partie de .NET Framework. En outre, .NET Core contient CoreRT, le runtime .NET Native, optimisé pour être intégré aux fichiers exécutables natifs compilés par AOT. Une variante de la bibliothèque .NET Core est utilisée pour UWP. L'interface de ligne de commande .NET Core offre un point d'entrée d'exécution pour les systèmes d'exploitation et fournit des services de développement, tels que la compilation et la gestion des packages.
Pour résumer c’est l’implémentation moderne, open source et multi-plateforme du Framework .Net de Microsoft (qui est exploitable sous Windows par de très nombreux langages comme Ada, C#, C++,lisp, APL, Lua, Eiffel, Fortran, Haskell, Python, Ruby, JavaScript, CAML, Pascal, Visual Basic, Php, F# ect ect ect … , sous Win Linux et Mac avec le portage MONO et sur les os smartphone android, ios, winphone avec Xamarin)
Concernant la version Core elle est exploitable avec les langages C#, Visual basic et F#. Si vous n’avez pas l’expérience de ces technologies et que vous désirez vous y intéresser, je vous recommande le C# qui a l’avantage d’être syntaxiquement plutôt conventionnel et d'une richesse énorme.
Pourquoi je vous parle de ça ici ? tout simplement parce que cette version 3.0 dispose de 2 packages Dédié au PI (Entre autre). System.Device.Gpio, qui expose des API pour utiliser le Hard du PI (les GPIO, SPI,I2C,PWM) et Iot.Device.Bindings qui prend déjà en charge quelques composants dont voici la liste actuelle:
Analog/Digital converters
ADS1115 - Analog to Digital Converter
MCP3008 - 10-bit Analog to Digital Converter
Mcp3428 - Analog to Digital Converter (I2C)
Accelerometers
ADXL345 - Accelerometer
BNO055 - inertial measurement unit
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Volatile Organic Compound sensors
AGS01DB - MEMS VOC Gas Sensor
BMxx80 Device Family
Gas sensors
AGS01DB - MEMS VOC Gas Sensor
BMxx80 Device Family
Light sensor
BH1750FVI - Ambient Light Sensor
MAX44009 - Ambient Light Sensor
TCS3472x Sensors
Barometers
BMP180 - barometer, altitude and temperature sensor
BMxx80 Device Family
LPS25H - Piezoresistive pressure and thermometer sensor
Sense HAT
Altimeters
BMP180 - barometer, altitude and temperature sensor
BMxx80 Device Family
Thermometers
BMP180 - barometer, altitude and temperature sensor
BMxx80 Device Family
Cpu Temperature
DHTxx - Digital-Output Relative Humidity & Temperature Sensor Module
HTS221 - Capacitive digital sensor for relative humidity and temperature
LM75 - Digital Temperature Sensor
LPS25H - Piezoresistive pressure and thermometer sensor
Sense HAT
SHT3x - Temperature & Humidity Sensor
Si7021 - Temperature & Humidity Sensor
Gyroscopes
BNO055 - inertial measurement unit
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Compasses
BNO055 - inertial measurement unit
HMC5883L - 3 Axis Digital Compass
Lego related devices
BrickPi3
Motor controllers/drivers
28BYJ-48 Stepper Motor 5V 4-Phase 5-Wire & ULN2003 Driver Board
DC Motor Controller
Servomotor
Inertial Measurement Units
BNO055 - inertial measurement unit
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Magnetometers
BNO055 - inertial measurement unit
HMC5883L - 3 Axis Digital Compass
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Liquid Crystal Displays
Character LCD (Liquid Crystal Display)
Hygrometers
BMxx80 Device Family
DHTxx - Digital-Output Relative Humidity & Temperature Sensor Module
HTS221 - Capacitive digital sensor for relative humidity and temperature
Sense HAT
SHT3x - Temperature & Humidity Sensor
Si7021 - Temperature & Humidity Sensor
Clocks
Realtime Clock
Sonars
HC-SR04 - Ultrasonic Ranging Module
Distance sensors
HC-SR04 - Ultrasonic Ranging Module
VL53L0X - distance sensor
Passive InfraRed (motion) sensors
HC-SR501 - PIR Motion Sensor
Motion sensors
HC-SR501 - PIR Motion Sensor
Displays
Max7219 (LED Matrix driver)
RGBLedMatrix - RGB LED Matrix
Sense HAT
Solomon Systech Ssd1306 OLED display
Ws28xx LED drivers
GPIO Expanders
Mcp23xxx - I/O Expander device family
NXP/TI PCx857x
Pca95x4 - I2C GPIO Expander
CAN BUS libraries/modules
Mcp25xxx device family - CAN bus
SocketCan - CAN BUS library (Linux only)
Proximity sensors
MPR121 - Proximity Capacitive Touch Sensor Controller
Touch sensors
MPR121 - Proximity Capacitive Touch Sensor Controller
Wireless communication modules
nRF24L01 - Single Chip 2.4 GHz Transceiver
PWM libraries/modules
Pca9685 - I2C PWM Driver
Software PWM
Joysticks
Sense HAT
Color sensors
TCS3472x Sensors
LED drivers
Ws28xx LED drivers
SPI libraries/modules
Software implementation of SPI
Ajoutons à ca System.IO.Ports.SerialPort qui permet d’utiliser les ports com
Je n’ai pas encore testé cette version (j’attends la finale release), mais j’ai déjà écrit beaucoup de chose avec les versions 1 et 2 aussi bien pour le boulot que pour jouer avec le PI. Pour ce dernier, j’avais fait le portage d’un wrapper C# que j’avais initialement écrit pour utiliser d’abord WiringPi puis la lib bcm2835 avec le Framework MONO, mais si cette version 3.0 tiens toutes ces promesses, je n’en aurais même plus besoin.
https://docs.microsoft.com/fr-fr/dotnet ... t-core-3-0
https://github.com/dotnet/iot/tree/master/src/devices
.NET Core (prononcé « dot net ») est un cadriciel (Framework) Libre et Open Source pour les systèmes d'exploitation Windows, macOS et Linux3. Il comprend CoreCLR, un environnement d'exécution complet de CLR, la machine virtuelle qui gère l'exécution des programmes .NET.
CoreCLR est livré avec un compilateur à la volée amélioré, appelé RyuJIT. .NET Core inclut également CoreFX, qui est un fork partiel de FCL. Bien que .NET Core partage un sous-ensemble d'API .NET Framework, il est livré avec sa propre API qui ne fait pas partie de .NET Framework. En outre, .NET Core contient CoreRT, le runtime .NET Native, optimisé pour être intégré aux fichiers exécutables natifs compilés par AOT. Une variante de la bibliothèque .NET Core est utilisée pour UWP. L'interface de ligne de commande .NET Core offre un point d'entrée d'exécution pour les systèmes d'exploitation et fournit des services de développement, tels que la compilation et la gestion des packages.
Pour résumer c’est l’implémentation moderne, open source et multi-plateforme du Framework .Net de Microsoft (qui est exploitable sous Windows par de très nombreux langages comme Ada, C#, C++,lisp, APL, Lua, Eiffel, Fortran, Haskell, Python, Ruby, JavaScript, CAML, Pascal, Visual Basic, Php, F# ect ect ect … , sous Win Linux et Mac avec le portage MONO et sur les os smartphone android, ios, winphone avec Xamarin)
Concernant la version Core elle est exploitable avec les langages C#, Visual basic et F#. Si vous n’avez pas l’expérience de ces technologies et que vous désirez vous y intéresser, je vous recommande le C# qui a l’avantage d’être syntaxiquement plutôt conventionnel et d'une richesse énorme.
Pourquoi je vous parle de ça ici ? tout simplement parce que cette version 3.0 dispose de 2 packages Dédié au PI (Entre autre). System.Device.Gpio, qui expose des API pour utiliser le Hard du PI (les GPIO, SPI,I2C,PWM) et Iot.Device.Bindings qui prend déjà en charge quelques composants dont voici la liste actuelle:
Analog/Digital converters
ADS1115 - Analog to Digital Converter
MCP3008 - 10-bit Analog to Digital Converter
Mcp3428 - Analog to Digital Converter (I2C)
Accelerometers
ADXL345 - Accelerometer
BNO055 - inertial measurement unit
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Volatile Organic Compound sensors
AGS01DB - MEMS VOC Gas Sensor
BMxx80 Device Family
Gas sensors
AGS01DB - MEMS VOC Gas Sensor
BMxx80 Device Family
Light sensor
BH1750FVI - Ambient Light Sensor
MAX44009 - Ambient Light Sensor
TCS3472x Sensors
Barometers
BMP180 - barometer, altitude and temperature sensor
BMxx80 Device Family
LPS25H - Piezoresistive pressure and thermometer sensor
Sense HAT
Altimeters
BMP180 - barometer, altitude and temperature sensor
BMxx80 Device Family
Thermometers
BMP180 - barometer, altitude and temperature sensor
BMxx80 Device Family
Cpu Temperature
DHTxx - Digital-Output Relative Humidity & Temperature Sensor Module
HTS221 - Capacitive digital sensor for relative humidity and temperature
LM75 - Digital Temperature Sensor
LPS25H - Piezoresistive pressure and thermometer sensor
Sense HAT
SHT3x - Temperature & Humidity Sensor
Si7021 - Temperature & Humidity Sensor
Gyroscopes
BNO055 - inertial measurement unit
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Compasses
BNO055 - inertial measurement unit
HMC5883L - 3 Axis Digital Compass
Lego related devices
BrickPi3
Motor controllers/drivers
28BYJ-48 Stepper Motor 5V 4-Phase 5-Wire & ULN2003 Driver Board
DC Motor Controller
Servomotor
Inertial Measurement Units
BNO055 - inertial measurement unit
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Magnetometers
BNO055 - inertial measurement unit
HMC5883L - 3 Axis Digital Compass
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
Sense HAT
Liquid Crystal Displays
Character LCD (Liquid Crystal Display)
Hygrometers
BMxx80 Device Family
DHTxx - Digital-Output Relative Humidity & Temperature Sensor Module
HTS221 - Capacitive digital sensor for relative humidity and temperature
Sense HAT
SHT3x - Temperature & Humidity Sensor
Si7021 - Temperature & Humidity Sensor
Clocks
Realtime Clock
Sonars
HC-SR04 - Ultrasonic Ranging Module
Distance sensors
HC-SR04 - Ultrasonic Ranging Module
VL53L0X - distance sensor
Passive InfraRed (motion) sensors
HC-SR501 - PIR Motion Sensor
Motion sensors
HC-SR501 - PIR Motion Sensor
Displays
Max7219 (LED Matrix driver)
RGBLedMatrix - RGB LED Matrix
Sense HAT
Solomon Systech Ssd1306 OLED display
Ws28xx LED drivers
GPIO Expanders
Mcp23xxx - I/O Expander device family
NXP/TI PCx857x
Pca95x4 - I2C GPIO Expander
CAN BUS libraries/modules
Mcp25xxx device family - CAN bus
SocketCan - CAN BUS library (Linux only)
Proximity sensors
MPR121 - Proximity Capacitive Touch Sensor Controller
Touch sensors
MPR121 - Proximity Capacitive Touch Sensor Controller
Wireless communication modules
nRF24L01 - Single Chip 2.4 GHz Transceiver
PWM libraries/modules
Pca9685 - I2C PWM Driver
Software PWM
Joysticks
Sense HAT
Color sensors
TCS3472x Sensors
LED drivers
Ws28xx LED drivers
SPI libraries/modules
Software implementation of SPI
Ajoutons à ca System.IO.Ports.SerialPort qui permet d’utiliser les ports com
Je n’ai pas encore testé cette version (j’attends la finale release), mais j’ai déjà écrit beaucoup de chose avec les versions 1 et 2 aussi bien pour le boulot que pour jouer avec le PI. Pour ce dernier, j’avais fait le portage d’un wrapper C# que j’avais initialement écrit pour utiliser d’abord WiringPi puis la lib bcm2835 avec le Framework MONO, mais si cette version 3.0 tiens toutes ces promesses, je n’en aurais même plus besoin.
https://docs.microsoft.com/fr-fr/dotnet ... t-core-3-0
https://github.com/dotnet/iot/tree/master/src/devices
Modifié en dernier par Bud Spencer le dim. 19 nov. 2023 15:29, modifié 2 fois.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Bonjour,
Intéressant mais je me demande si la puissance du Pi permettra d'utiliser .Net avec suffisamment de confort.
Tu as un retour d'expérience à ce sujet ?
Merci tu retour.
Intéressant mais je me demande si la puissance du Pi permettra d'utiliser .Net avec suffisamment de confort.
Tu as un retour d'expérience à ce sujet ?
Merci tu retour.
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Alors je ne peux bien sûr pas me prononcer sur cette version 3 que je n’ai pas encore essayé mais j’ai toujours eu d’excellents résultats sur le PI avec les versions .Net Core 2.x en wrappant soit WiringPi soit la BCM2835 (tout comme avec le Framework MONO d’ailleurs). Ce qu’il faut juste savoir, c’est que .Net Core ne peut pas être utilisé sur les PI de première génération et sur les PI 0. Ce n’est pas lié un problème de performance ou de puissance, c’est juste que le compilateur JIT pour ARM utilise des instructions qui requièrent au minimum un soc ARMv7. Dès la sortie de la finale, je ferais de toute façon toutes une batterie de tests (boulot oblige) et j’en profiterais pour essayer ces nouvelles fonctionnalités dédiées au GPIOs du PI. D’après ce que j’ai lu il y a même de très forte chance que je puisse réutiliser toutes les librairies que j’ai déjà écrites pour Windows 10 IoT pour les faire tourner sous Raspbian.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Iot.Device.Bindings s’est enrichi de quelques composants très intéressants depuis, notamment pour les adc mcp3xxx
MCP3001, MCP3002, MCP3004, MCP3008, MCP3201, MCP3202, MCP3204, MCP3208, MCP3301, MCP3302 et MCP3304
https://github.com/dotnet/iot/tree/mast ... es/Mcp3xxx
Ca me démange de tester en preview, mais … non. Je ne cèderais pas à la tentation
MCP3001, MCP3002, MCP3004, MCP3008, MCP3201, MCP3202, MCP3204, MCP3208, MCP3301, MCP3302 et MCP3304
https://github.com/dotnet/iot/tree/mast ... es/Mcp3xxx
Ca me démange de tester en preview, mais … non. Je ne cèderais pas à la tentation
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Net Core 3 est passé hiers en RC-1 (release Cadidate) et Iot.Device.Bindings c'est enrichi d''un nouveau composant i2c (BH1745 Détecteur de couleurs)
https://github.com/dotnet/iot/tree/mast ... ces/Bh1745
https://github.com/dotnet/iot/tree/mast ... ces/Bh1745
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Ca y est, .Net Core 3 est passé en GA (general availability). Bon c’est clair que ce n’est pas vraiment un truc pour les noobs et cela cible plutôt le monde pro, mais vu que cela tourne sur un PI et qu’il y a dedans tout ce qu’il faut pour s’amuser avec les GPIO, ce serait dommage de s’en priver
https://devblogs.microsoft.com/dotnet/a ... -core-3-0/
https://devblogs.microsoft.com/dotnet/a ... -core-3-0/
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Cool :
Encore un nouveau moyen de programmer le Pi.
Les habitués du dev pour Windows vont être content
Encore un nouveau moyen de programmer le Pi.
Les habitués du dev pour Windows vont être content
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Bha tu sais, Windows n’a rien à voir là-dedans. Ça fait plus de 10 ans que je développe sur des plateformes non Windows en utilisant les technologies .Net et c’est le cas dans de très nombreuses entreprises. Beaucoup de personnes font encore l’erreur d’assimiler .Net à Windows alors que dans la réalité il existe une multitude de framework .Net pour différentes plateformes et architectures et il ni en a qu’un seul parmi eux qui est propriétaire et exclusivement réservé à Windows. Là ou .Net Core fait la différence avec tous les autres framework, c’est qu’il devient la référence .Net, ce qui permet de bénéficier des mêmes innovations au même moment sur tous les systèmes. Même sous Windows, Microsoft encourage les développeurs à migrer leurs applications .Net Framework vers .Net Core et de choisir ce framework pour tous leurs nouveaux développements
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Je sais. N'empêche que ça première apparition c'est
sous Windows, raison de cette erreur de jugement.
Tout comme de nombreux autres softs, on pense qu'ils sont cantonnes au 1er os sur lequel ils sont sortis.
Les exemples sont nombreux
sous Windows, raison de cette erreur de jugement.
Tout comme de nombreux autres softs, on pense qu'ils sont cantonnes au 1er os sur lequel ils sont sortis.
Les exemples sont nombreux
-
- Raspinaute
- Messages : 1089
- Enregistré le : lun. 15 août 2016 21:38
Re: .Net Core 3.0 (C#,F#, Visual basic .Net)
Op, comment installer tout ca sur un PI
Chez moi, test fait sur un PI3 avec un SD toute fraiche et le dernier Buster.
Pour une install complète (SDK, Runtime .NEt Core et ASP .NET Core). Vous pouvez au choix vous contenter du (des) runtime.
Déjà on trouve le link pour la version linux Arm ici : https://github.com/dotnet/core/blob/mas ... ownload.md
ensuite, juste une liste de procédures classique(update, téléchargement,decomp)
sudo apt-get update
sudo apt-get install curl libunwind8 gettext
curl -SL -o dotnet.tar.gz https://download.visualstudio.microsoft ... arm.tar.gz
sudo mkdir -p /usr/share/dotnet
sudo tar -zxf dotnet.tar.gz -C /usr/share/dotnet
On ajoute un lien symbolique
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
et on s'assure que tout est bien installé
dotnet --info
Je vous recommande de tester les applis Blazor (avec ou sans server ASP) , les MVC ASP. Perso, je me suis en plus amusé un peu sur une vm Debian avec un SQL Server Docké et Entity et tout fonctionne parfaitement. Coté GPIO, je n'ais pas encore essayé
Chez moi, test fait sur un PI3 avec un SD toute fraiche et le dernier Buster.
Pour une install complète (SDK, Runtime .NEt Core et ASP .NET Core). Vous pouvez au choix vous contenter du (des) runtime.
Déjà on trouve le link pour la version linux Arm ici : https://github.com/dotnet/core/blob/mas ... ownload.md
ensuite, juste une liste de procédures classique(update, téléchargement,decomp)
sudo apt-get update
sudo apt-get install curl libunwind8 gettext
curl -SL -o dotnet.tar.gz https://download.visualstudio.microsoft ... arm.tar.gz
sudo mkdir -p /usr/share/dotnet
sudo tar -zxf dotnet.tar.gz -C /usr/share/dotnet
On ajoute un lien symbolique
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
et on s'assure que tout est bien installé
dotnet --info
Je vous recommande de tester les applis Blazor (avec ou sans server ASP) , les MVC ASP. Perso, je me suis en plus amusé un peu sur une vm Debian avec un SQL Server Docké et Entity et tout fonctionne parfaitement. Coté GPIO, je n'ais pas encore essayé
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).