Appelez-nous aujourd'hui ! +33766664691 | contact@develop4fun.com

2. C# vs VB .NET

(Dernière mise à jour: 16 février 2023)

C# et Visual Basic .NET sont deux parmi les nombreux langages de programmation disponibles pour la plate-forme .NET. Le Common Language Runtime (CLR) du Framework .NET est, en fait, une plate-forme d’exécution commune pour un grand nombre de langages, y compris le C++, J#, Cobol.NET .

Plutôt que de déterminer qui est le « meilleur », il est intéressant de comprendre les particularités de chaque langage. Nous nous concentrerons sur l’évaluation des différences les plus importantes.

Lors d’une première analyse, il est clair que VB.NET est le choix privilégié pour ceux qui viennent des versions antérieures de VB et ASP-VBScript, tandis que le C# est plus attrayant pour ceux qui ont de l’expérience avec du C++ et Java. La syntaxe C# ressemble beaucoup au Java, alors que VB.NET est une évolution de Visual Basic.

La différence la plus importante n’est pas tant la syntaxe mais plutôt le sentiment de nouveauté en termes d’approche de la programmation orientée objets.

Qui a l’habitude de travailler en C++ ou en Java trouve un environnement où les concepts sont similaires lorsqu’ils ne sont pas trop superposés. Par exemple, dans le .NET comme dans Java, tout est un objet : tout type d’approche hybride avec programmation structurée de style C++ est abandonné.

Donc, qui provient de “l’ancien” ASP et VB est en face d’un langage similaire, dans certains aspects, de la syntaxe de base, mais avec une approche orientée objet qui est commune à l’ensemble du Framework et s’apparente plus à Java et à ses similaires.

C# est un nouveau langage, tandis que VB .NET apporte l’héritage de toutes les versions précédentes de Visual Basic (la syntaxe VB .NET, même avec la mise à jour du support aux objets, est pratiquement la même que Visual Basic 4.0 , publié en 1996).

Un premier aspect apparent est que le code écrit dans VB .NET est plus long que son équivalent en C#. Considérons, par exemple, une fonction qui saisit deux nombres et calcule la moyenne :

 //C#
public double CalculeMoyenne(double N1, double N2)
{
    return (N1 + N2) / 2;
}

‘Visual Basic .NET
Public Function CalculeMoyenne(ByVal N1 As Double, ByVal N2 As Double) As Double
    Return (N1 + N2) / 2
End Function

 

Une autre grande différence, peut-être la plus évidente, est que C# est case sensitive, c’est-à-dire sensible à la casse, alors que VB est insensible à la casse : pour C#, les variables nomPersonne et PersonneNom sont différentes, tandis que pour Visual Basic .NET, elles sont identiques.

Au-delà des différences concernant la syntaxe, C# permet de faire des choses qui ne peuvent pas être faites dans VB .NET, et vice versa. Par exemple, le C#, montrant sa dérivation à partir de C++, utilise des pointeurs, ce qui avec VB .NET est impossible.

Certaines différences architecturales ont été couvertes par la version 2.0 du Framework, qui introduit également pour Visual Basic .NET l’overloading des opérateurs (une autre fonctionnalité que C# a pris du C++) et la capacité de documenter un code écrit à l’aide du XML. En fait, le C# permet à la documentation d’une classe d’utiliser des tags dans le code comme des commentaires pour JavaDocs.

VB .NET, en particulier avec la nouvelle version du Framework, rend l’écriture des applications encore plus simple et plus rapide : Parmi les nombreux exemples qu’on pourrait faire à ce sujet, citons le namespace My, qui permet d’accéder rapidement à un ensemble complet des propriétés et des méthodes d’utilisation commune, permettant un développement plus efficace.

Les informations contenues dans le namespace My sont toujours disponibles à partir de C#, mais sa présence dans VB .NET rend beaucoup plus facile d’effectuer certaines tâches. Par exemple, pour télécharger un fichier à partir d’Internet, en utilisant Visual Basic .NET avec le Framework 2.0, il suffit juste une instruction :

 My.Computer.Network.DownloadFile(“https://www.develop4fun.fr/file.zip”, “C:/Test”)

 

En C #, il n’y a pas objet My et nous devrions instancier un objet de classe Network pour obtenir le même effet.

En outre, la liste des membres qui apparaît avec IntelliSense dans VB .NET est divisée en deux onglets où les éléments couramment utilisés sont mis en surbrillance, ce qui facilite la sélection de l’élément désiré. En C#, la liste des éléments est toujours affichée dans son intégralité.

IntelliSense dans VB .NET

 

 

 

 

 

 

 

Ce rapide aperçu des différences entre le C# et Visual Basic .NET ne prétend pas être exhaustif : pour plus d’informations ( surtout en ce qui concerne la diversité de la syntaxe la plus évidente ), voir les liens à la fin. De plus, avec Visual Studio, vous pouvez obtenir plus de détails sur le sujet en recherchant Language Equivalents dans l’aide en ligne.

2 réponses sur "2. C# vs VB .NET"

  1. Bien évidement ce sera du C# !!

  2. C’est pas mal comme article pour aborder rapidement quelques différences usuels. Par contre il faudrait corriger une erreur qui s’est glissée. Vous dites que C# est sensible à la casse… et votre exemple n’a rien a voir : nomPersonne et Personnenom… ces varibales sont n’ont même pas le même nom, donc rine à voir avec la casse… Ce serait plutot Nompersonne et nompersonne

Laisser un message

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *