2010-12-17 6 views
1

Ist es möglich, VB .NET und C# auf verschiedenen Seiten einer .NET Web App auszuführen?Ist es möglich, VB .NET und C# auf verschiedenen Seiten einer .NET Web App auszuführen?

Wenn Sie ein veraltetes VB .NET-Projekt übernehmen, aber Seiten hinzufügen müssen, ist es möglich, diese in C# zu schreiben oder können Sie nur eine Sprache pro Projekt haben?

+0

Es gibt einige gute Konverter, die vorhandenen Code von einer Sprache in die andere portieren. Ist das eine Möglichkeit? Wer möchte einen empfehlen? – Bill

Antwort

0

Sie können mehr als einen verwenden, aber es ist nicht trivial, und der Aufwand ist wahrscheinlich nicht den Gewinn wert. Schließlich kann so ziemlich alles, was Sie in C# machen können, auch in VB gemacht werden, nur die Syntax ist hässlicher.

Das Mischen von C# und VB auf einer Assembly-Ebene innerhalb derselben Lösung und Referenzieren ist sehr einfach. Wenn Sie also ein komplett neues Modul hinzufügen müssen, können Sie es in C# schreiben und darauf verweisen aus der bestehenden VB-Anwendung.

1

Fügen Sie die folgenden Zeilen in die web.config

<configuration> 
<system.web> 
    <compilation> 
     <codeSubDirectories> 
      <add directoryName="VB_Code"/> 
      <add directoryName="CS_Code"/> 
     </codeSubDirectories> 
    </compilation> 
</system.web> 

Erstellen eines Unterordners im Ordner App_Code für jede Sprache, die Sie unterstützen möchten. Beispiel:

/App_Code/VB_Code 

/App_Code/CS_Code

Platz Code VB.NET im VB_Code Ordner und Platz C# -Code in dem CS_Code Ordner

+2

Dies funktioniert nur für Websites im alten Stil (mit einem App_Code-Ordner), nicht für vollständig vorkompilierte Anwendungen (wo Sie nur die aspx- und die code-behind-DLL bereitstellen). – tdammers

+0

Sie haben Recht, es wird nur für den alten Stil funktionieren –

1

Wenn dies dann ein ASP.NET-Projekt ist Ja, das können Sie, aber nur für ASP.NET-Elemente wie Seiten und Masterseiten. Sie müssten nur das Attribut Language der Hauptrichtlinie (wie <%@Page) zu C# ändern (oder eins hinzufügen, wenn es nicht existiert). Das funktioniert, da jede Seite in einer separaten Assembly von dem ASP.NET-Dienst kompiliert wird.

Sie können Sprachen wie diese für Code-Behind-Dateien jedoch nicht wechseln, da diese alle in derselben Baugruppe vorkompiliert sind.

Allerdings, wenn ich an diesem Projekt mit Ihnen zu arbeiten, würde ich geneigt sein, Sie lart für so etwas wie dies zu tun ...

+0

Sie haben Recht. Leider ist es zur Zeit die einzige echte Option! – kieran

Verwandte Themen