J'ai plutôt dû passer du VB.Net au VB en fait...
Mes connaissances sont essentiellement basées sur les langages objet (java/c++/c#) plutôt que les langages procéduraux (c/vb) mais pour pouvoir maintenir le vieux code j'ai eu besoin de m'y plonger dedans quand même (le moins possible
)
Pour le client chez qui je bosse, ils sont justement passé au VB.Net parce qu'historiquement ils développaient en VB et que les développeurs ont naturellement eu plus de facilité pour évoluer vers VB.NET qu'ils ne l'auraient eu en passant directement au C#.
A l'usage (avis personnel), le C# est plus intuitif que le VB.Net à écrire, moins de "bizarreries" à gérer:
- les index de certaines listes converties du VB qui ne commencent pas à 0
- les sauts -goto- hérités du VB qui sont à proscrire mais qui peuvent être utilisés en VB.NET ... et qui n'existent pas en C# (ou pas à ma connaissance)
- les mots clés supplémentaires inutiles en C# lorsqu'on pense en pur langage orienté objet mais indispensables en VB.Net (Dim, Overridable, WriteOnly, etc)
Par contre, on peux automatiquement convertir du VB.Net en C# et vice versa. Du coup, c'est une histoire de goût personnel que de choisir l'un ou l'autre langage.
Si les applications que tu dois développer sont suffisemment bien pensées, il est possible de continuer à maintenir du code VB mais de réaliser tous les nouveaux développements en C# et d'interfacer tout les modules VB avec les projets en C# (des DLL interfaces en C# ou VB.NET) via COM Interop.
C'est en tout cas par là que toute migration doit commencer.
Je n'ai pas de centre de formation à te conseiller, ma formation scolaire m'a enseigné le C/C++, le Java et le JSP, pour les autres (C#, VB.NET, VB, ASP.Net et le PHP), je suis un autodidacte qui a appris sur le tas, au fil de ses différentes missions.