Mélange de code VB.Net et C # dans un projet de site Web ASP.Net?

La question un peu plus âgée et souvent posée autour, j’ai des questions similaires ici mais ma question est un peu plus précise

Q1. Est-il légal de mélanger du code C # et VB.Net dans un site Web ASP.Net? Cela fonctionnera-t-il ou non? Si cela fonctionne comment cela peut être fait? Tout échantillon sera bon.

Q2. Si le mélange de codes C # et VB.Net a des répercussions, partagez-les également.

J’ai un projet Web qui est codé en VB.Net. Je travaille sur un module du projet. et je veux coder en C #. Je ne peux pas convertir le projet entier en C # car je ne suis pas le seul à travailler sur le projet. Cependant, le module que j’ai l’intention de construire, je veux l’avoir construit en C #.

J’ai entendu dire que dans le cas de projets Web, si nous codons une partie en C # et une partie en VB.net, nous rencontrons des problèmes pour comstackr le projet en une DLL. Est-ce vrai? Si oui, quelle est la solution?

De plus, si je construis une bibliothèque de liens dynamics en .Net, puis-je mélanger du code C # et Vb.Net?

De http://msdn.microsoft.com/en-us/library/t990ks23.aspx :

Plusieurs langages de programmation dans le dossier App_Code

Étant donné que le code source du dossier App_Code est compilé dans un seul assemblage, tous les fichiers du dossier App_Code doivent être dans le même langage de programmation. Par exemple, le dossier App_Code ne peut pas inclure le code source dans Visual Basic et C #.

Toutefois, vous pouvez configurer votre application Web pour traiter les sous-dossiers du dossier App_Code en tant qu’unités compilables distinctes. Chaque dossier peut alors contenir du code source dans un langage de programmation différent. La configuration est spécifiée en créant un élément codeSubDirectories dans l’élément de compilation du fichier Web.config et en ajoutant une référence au sous-dossier. L’exemple suivant montre comment configurer des sous-dossiers nommés VBCode et CSCode pour les comstackr dans des assemblys distincts:

      

Les références aux sous-dossiers VBCode et CSCode ne doivent inclure aucune information sur le langage de programmation contenu dans le sous-dossier. Comme avec le dossier App_Code lui-même, ASP.NET infère le compilateur à utiliser en fonction des fichiers du sous-dossier.

La réponse ici qui a le plus de votes ne fonctionne que pour les projets de site Web, pas un projet Web App. Je pense que beaucoup de développeurs utilisent le terme “application Web” en ignorant génériquement le fait que, techniquement, c’est une chose différente dans .NET. Microsoft déclare: “Par défaut, une application Web est compilée en fonction des parameters de langue définis dans le fichier de projet. Des exceptions sont possibles, mais elles sont relativement difficiles.” Donc, je suppose que la seule façon de faire cela serait d’avoir deux projets séparés dans une solution. (Encore une fois, un projet de site Web n’a pas de solution ni de fichier de projet.) Je ne suis pas sûr de tous les détails.

Il semble que vous puissiez les mélanger dans le même projet si vous faites le code dont vous avez besoin en tant que contrôle. Donc, si le site principal est en C # et que vous faites la partie VB que vous voulez en tant que contrôle ascx, vous pouvez le draper et le déposer dans votre site.

Je ne savais pas que vous pouviez le faire, mais un membre de l’équipe a travaillé sur un travail qu’il faisait.