2

Nous avons actuellement un site web asp.net avec des modules développés en VB.Net & certains en C# (pas seulement les classes mais aussi les pages aspx individuelles et le code derrière) . Nous avons pensé que nous voulions passer au modèle d'application web car nous devons implémenter CI avec TFS.asp.net application web avec C# & vb.net à la fois dans codebehind

Le problème:

Lorsque nous créons une application Web C#, copiez les fichiers à partir du site & dire convertir à l'application web, il donne Could not Parse errors (probablement parce que les fichiers sont des fichiers VB.NET)

Lorsque nous créons une application Web VB.NET, copiez les fichiers & disent convertir à l'application web, il convertit uniquement les pages de vb.net & sur la publication jette une erreur sur toutes les pages C# disant Could not load type

Le site asp.net serait w ork correctement avec plusieurs support de langage codebehind.

Une aide serait grandement appréciée!

+1

La raison pour laquelle cela fonctionnait lorsque vous aviez un site Web était que le code n'était pas compilé jusqu'à ce qu'il soit nécessaire, puis chaque page était compilée séparément. Avec une application web, le tout est compilé en une seule DLL et vous ne pouvez pas mélanger les langues dans une DLL. – ChrisF

+0

Je me rends compte que l'investissement a été fait, mais pourquoi deux langues sont-elles utilisées? Cela semble être un cauchemar à maintenir. – NerdFury

+0

Ce serait super utile. Nous aimerions passer à un projet d'application Web, mais nous sommes généralement vb, avec un certain nombre de pages C# codebehind. @NerdFury: deux raisons: 1. source de l'Internet tels que SqlProfileProvider, Blog, code Forum. 2. Les développeurs qui veulent utiliser de nouvelles fonctionnalités de langage, copier/coller du code d'autres endroits (la plupart de notre source est vb, mais avec une bonne quantité de nouveaux C#), et non c'est pas si mal à maintenir - les développeurs .net ne le font pas Habituellement luttez lire/écrire à la fois vb et C# IME. –

Répondre

0

Mettez tous les noms de dossier App_Code contenant ce code C# dans la section CodeSubDirectories dans votre web.config

P.S. Voici comment cela se fait dans DotNetNuke

+0

Que dois-je faire avec les pages aspx individuelles où certains codes derrière sont vb.net et d'autres sont C#? – hadi

+0

wow ... vous auriez à résoudre ce problème, vous ne pouvez pas simplement échanger des langues comme ça –

+0

Cela fonctionne très bien quand il s'agissait d'un site web asp.net. Ne fonctionne pas dans l'application web asp.net. Toute façon par laquelle je peux le faire fonctionner sans recoder tout mon code pour correspondre à la langue? – hadi

3

Pouvez-vous diviser l'application en 2 applications Web distinctes qui s'exécutent à partir du même répertoire racine? Mettez simplement la DLL C# dans la corbeille avec la DLL VB.net compilée et placez toutes les pages ASPX là où elles devraient être pour la structure de votre site.

Je n'ai pas essayé cela moi-même, mais cela devrait fonctionner. Vous devrez créer un projet séparé et référencer toutes les couches de données, etc. Il suffit de déplacer le code C# vers la nouvelle application et de voir comment cela se passe. Pas la meilleure solution, mais elle bat la conversion d'une langue à l'autre.

+0

Merci Brent, votre solution fonctionne. – esegura

+0

Juste ajouter quelques infos sur ce qui a fonctionné pour moi: deux projets d'applications web (un pour vb, un pour C#).Faites d'un projet votre «principal» - créez une référence de projet à l'autre. Créez un événement post-build pour xcopier tous vos fichiers .aspx depuis votre emplacement de projet secondaire vers votre emplacement principal. Cela devrait vous mettre dans un bon endroit. – Matt

0

Vous pouvez le faire avec des sites Web mais pas avec des applications Web. Notez également que si vous voulez ou devez faire cela, les applications Web n'ont vraiment aucun niveau de puissance supplémentaire que les sites Web n'ont pas. Les applications Web peuvent avoir des avantages en termes de déploiement dans certains environnements, mais Visual Studio 2010 et 2012 publieront facilement les sites Web et les applications Web d'asp.net.

Questions connexes