Qu'est ce que .NET Core

logo-net

Qu'est ce que .NET Core ?

Fort de l'expertise d'une soixantaine de collaborateurs passionnés, AXOPEN vous accompagne dans le développement et la maintenance de vos applications web et mobiles en .NET.

Les avantages de .NET Core ?

Sa performance, sa portabilité, son écosystème riche, et son intégration avec les services cloud Azure.

Les inconvénients de .NET Core ?

Sa complexité pour les débutants complets, sa dépendance initiale à l'écosystème Microsoft.

Les caractéristiques de .NET Core

Commun

  • Utilité (fonction) : .NET Core est utilisé pour développer des applications modernes, cloud, web, de bureau, IoT, et microservices avec une performance élevée et une grande portabilité.

  • Langue de programmation : Principalement C#, mais prend également en charge F#, Visual Basic, et d'autres langages .NET.

  • Système d‘exploitation : Multiplateforme (Windows, macOS, Linux).

  • Existe depuis : .NET Core a été initialement publié en juin 2016.

  • Licence : MIT License et Apache License 2.0.

  • Développeur : Microsoft et la communauté open source.

  • Communauté : Grande communauté active avec de nombreux contributeurs, forums, conférences, groupes d'utilisateurs, et ressources en ligne.

  • Performance générale : Très bonne, avec des optimisations JIT, AOT et une performance comparable voire supérieure à celle de .NET Framework.

  • Maintenabilité : Élevée, grâce à une structure modulaire, une configuration simplifiée, et une documentation exhaustive.

  • Facilité d'apprentissage : Relativement facile pour ceux qui connaissent déjà C# et .NET Framework ; de nombreuses ressources sont disponibles pour les débutants.

  • Configuration : Utilise NuGet pour la gestion des dépendances et des fichiers de configuration JSON pour les paramètres de projet.

  • Documentation : Documentation exhaustive et officielle disponible sur le site Microsoft Docs, ainsi que de nombreux livres et tutoriels en ligne.

  • Alternative : Alternatives incluent Java, Node.js, Python, et Ruby on Rails.

  • On l'aime pour : Sa performance, sa portabilité, son écosystème riche, et son intégration avec les services cloud Azure.

  • On le déteste pour : Sa complexité pour les débutants complets, sa dépendance initiale à l'écosystème Microsoft.

  • Fréquence de mise à jour : Mises à jour régulières avec des versions mineures tous les quelques mois et des versions majeures tous les ans environ.

  • LTS : Oui, certaines versions ont un support à long terme (LTS).

  • Maturité : En constante évolution, mais déjà bien établi et mature avec un support important de Microsoft et de la communauté.

Langage

  • Moto et philosophie : "One platform for all types of applications" – Fournir une plateforme unifiée pour le développement d'applications modernes, flexibles et performantes.

  • Paradigme de programmation : Orienté objet, fonctionnel, procédural, événementiel.

  • Maintenabilité des développements : Élevée, grâce à une structure de projet claire, une gestion des dépendances efficace, et des outils intégrés.

  • Sécurité : Forte, avec des fonctionnalités de sécurité intégrées comme l'authentification, l'autorisation et la protection contre les vulnérabilités courantes.

  • Performance des applications : Très bonne, avec des optimisations JIT, AOT et une gestion efficace de la mémoire.

  • Deggugabilité : Excellente, avec des outils de débogage intégrés dans Visual Studio, Visual Studio Code et autres IDEs.

  • Ecosystème : Vaste, avec de nombreuses bibliothèques, frameworks (ASP.NET Core, Entity Framework Core) et outils disponibles.

  • Prise en charge des génériques : Oui, avec une syntaxe bien définie pour les types paramétrés en C#.

  • Exceptions vérifiées : Non, .NET Core ne supporte que les exceptions non vérifiées.

  • Polymorphisme : Oui, à travers l'héritage, les interfaces et les méthodes abstraites en C#.

  • Conçu pour : Développement d'applications modernes, web, cloud, de bureau, IoT, et microservices avec une grande performance et portabilité.

  • Type de sécurité : Sécurité de la mémoire gérée par le runtime et des fonctionnalités intégrées pour la protection des applications.

  • Interropérabilité : Très bonne, avec des possibilités d'interagir avec des bibliothèques natives et des services externes via P/Invoke et autres mécanismes.

  • Arrays : Prise en charge via C#.

  • Prise en charge de la compilation conditionnelle. : Oui, via les directives de préprocesseur en C#.

  • Prise en charge de l'instruction Goto. : Oui, bien que son utilisation soit découragée.

  • Structure et syndicats : Prise en charge des structs en C#, mais pas des unions.

  • Fait pour : Développement d'applications modernes, performantes, et multiplateformes.

  • Installation : Installation du SDK .NET via les gestionnaires de paquets ou les installeurs officiels.

  • Support multi-plateforme : Oui, fonctionne sur Windows, macOS, Linux, et autres systèmes d'exploitation.

  • IDE : Visual Studio, Visual Studio Code, JetBrains Rider.

  • Environnement d'exécution : CoreCLR (Common Language Runtime) pour .NET Core.

  • Dépendance à la plate-forme : Indépendant, fonctionne sur de nombreux systèmes d'exploitation grâce à .NET Core.

  • Pointers : Oui, mais uniquement dans le code unsafe en C#.

  • Point flottant : Oui, prise en charge des types float et double en C#.

  • Indice TIOBE : Non applicable directement, mais C# (utilisé avec .NET Core) est généralement dans le top 10.

  • Mode d'Exécution du Langage : Non applicable, mais utilise principalement C# qui est semi-compilé. Le code source est compilé en bytecode (IL), puis exécuté par le CLR.

  • Typage : Non applicable, mais utilise principalement C# qui a un typage statique et fort. Les types sont déclarés dans le code et vérifiés à la compilation.

  • Entreprises célèbres utilisant : Microsoft, Stack Overflow, UPS, Samsung.

Framework

  • Structure du Framework : NodeJS ne propose pas d'architecture spécifique, chaque projet créer son architecture de code.