.Net Core 3.0 à .Net 8 (C#,F#, Visual basic .Net)
Posté : mer. 11 sept. 2019 13:55
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