DotNetNuke passe au c#
Auteur : Jean-Baptiste Bouillet
Date de pulication : 05 April 2011
Article consulté 1075 fois

(2 votes)
Pourquoi DotNetNuke passe au C# ?
Aujourd’hui parmi les langages dotnet, celui en passe d’être le plus utilisé est le c# (ce qui n’était pas forcément le cas lors du lancement de dotnetnuke). Microsoft supporte et promeut officiellement 2 langages parmi l’ensemble des langages disponible autour de la CLR (Common Language Runtime)
Qu’est-ce que C# ?
C# est le premier langage de développement de la plateforme Microsoft .Net, publiée en 2002 par Microsoft pour remplacer les technologies natives vieillissantes de programmation sous Windows (VB 6, MFC etc.).
Dans le contexte de la concurrence grandissante de Java, .Net fut conçu pour permettre l’utilisation d’un Framework commun par plusieurs langages, comme VB.Net et C++ dit « managé », inspirés des plateformes existantes de l’époque).
Chacun des langages supporté est compilé dans un langage machine commun intermédiaire (MSIL), et exécuté au sein d’une machine virtuelle (CLR), un peu comme Java.
Le langage C# créé pour l’occasion et pour le développement de la plupart des composants du Framework .Net a été fortement influencé par Java et c++.
Considéré comme langage primaire de la plateforme, il est largement plébiscité dans la communauté des développeurs, même si Microsoft promeut l’utilisation de langages variés et s’efforce de maintenir l’équivalence en fonctionnalités des autres langages principaux comme VB.Net.
Différence VB.net vs C#
Les différences principales sont des différences de syntaxes. Depuis le Framework 3.5, les fonctionnalités sont au même niveau. Avant le Framework 3.5, certaines fonctionnalités existaient uniquement en c# ou en vb.net.
Globalement c# permet d’avoir une écriture de code plus concis que vb.net.
En termes de différences de syntaxe, certaines sont plus évidentes que d’autres :
-
C# est sensible à la casse contrairement à VB
-
C# termine toutes ses lignes par un « ; ». L’inconvénient est de devoir rajouter ce caractère à chaque fin de ligne mais du coup l’avantage est de pouvoir écrire une même instruction sur plusieurs lignes sans devoir utiliser de caractères spécifiques (« _ » en vb.net pour symboliser un retour à la ligne sur une même instruction.) Depuis la sortie de vb2010, il est désormais possible de ne plus spécifier le caractère de retour charriot dans certains cas de figure (après une virgule, après une parenthèse ouvert ou avant une parenthèse fermée, après une accolade …)
-
La gestion des evenements est plus manuelle en c#, visual studio ne propose pas au niveau des listes déroulantes les évènements associés aux différents contrôles.
La définition des propriétés est beaucoup plus légère en c#. Il est possible de définir une propriété utilisant une variable privé en une ligne (….)
-
En VB.net : Private _myVal as integer
Public property Myval as integer
Get
Return _myVal
End get
Set (byval value as integer)
_myVal=value
End set
End property
-
En c# : public int property Myval{get;set;}
Depuis vb2010, cette différence est gommée puisque VB permet maintenant des déclarations plus légères de ce type :
Public Property Myval As String
-
L’écriture des expressions lambda est plus simple en c# :
-
La conversion des types est plus direct et lisible en c# :
Certaines de ces différences évoluent au fur et à mesure des versions pour arriver à des langages beaucoup plus proches (gestion du retour à la ligne en vb, types dynamiques en c# …). Les fonctionnalités qui ont pu être spécifique à chaque langage sont de plus en plus commune et les différences hors syntaxes semblent voués à disparaitre.
Qu’est-ce que cela va changer ?
Pour les utilisateurs & les webmasters
Pour faire court, rien.
En effet, les webmasters et utilisateurs ne voient que la version compilée de DotNetNuke et des différents modules. Une fois du code .net compilé, la dll contient une version MSIL du code. Cette version ne contient aucune différence qu’elle soit compilée en c#,vb.net ou encore cobol.net,python.net ou n’importe quelle langage supporté par la plateforme .net.
Pour les développeurs
Pour faire court (encore, oui je sais) pas grand-chose.
Concrètement, il est possible de développer dans n’importe quel langage .net en utilisant une librairie développée dans n’importe quel langage. Ainsi aujourd’hui, certains modules sont développées en c# alors que dotnetnuke est lui en vb.net. L’inverse sera donc possible sans aucun souci.
Pour les développeurs développant en mode web application project, il n’y aura donc aucun changement en dehors du fait de devoir lire du code c# s’ils souhaitent analyser des parties de code de Dotnetnuke.
Pour les développeurs développant en mode website, il faudra spécifier dans le fichier de configuration si le code est en vb.net (ce qui était le cas par défaut).