Mescolando codice VB.Net e C # in un progetto di sito Web ASP.Net?

La domanda è piuttosto vecchia e spesso è stata fatta in giro, ho domande simili qui ma la mia domanda è un po ‘più specifica.

Q1. È legale mescolare il codice C # e VB.Net nel sito Web ASP.Net? Funzionerà o no? Se funziona come si può fare? Ogni campione andrà bene.

Q2. Se ci sono ripercussioni sulla combinazione di codice C # e VB.Net, si prega di condividere anche quelli.

Ho un progetto web che è codificato in VB.Net. Sto lavorando su un modulo del progetto. e voglio scrivere in C #. Non posso convertire l’intero progetto in C # perché non sono l’unico che lavora al progetto. Comunque, il modulo che intendo build, voglio avere quello costruito in C #.

Ho sentito che in caso di progetti web, se codifichiamo parte in C # e parte in VB.net, ci sono problemi nella compilazione del progetto in una DLL. È vero? se sì, qual è la soluzione.

Inoltre, se sto costruendo una libreria di collegamenti dinamici in .Net, allora posso mescolare il codice C # e Vb.Net?

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

Più linguaggi di programmazione nella cartella App_Code

Poiché il codice sorgente nella cartella App_Code è compilato in un unico assembly, tutti i file nella cartella App_Code devono essere nello stesso linguaggio di programmazione. Ad esempio, la cartella App_Code non può includere il codice sorgente in Visual Basic e C #.

Tuttavia, è ansible configurare l’applicazione Web per trattare le sottocartelle della cartella App_Code come unità compilabili separate. Ogni cartella può quindi contenere il codice sorgente in un linguaggio di programmazione diverso. La configurazione viene specificata creando un elemento codeSubDirectories nell’elemento di compilazione del file Web.config e aggiungendo un riferimento alla sottocartella. L’esempio seguente illustra come configurare le sottocartelle denominate VBCode e CSCode per compilare in assembly separati:

      

I riferimenti alle sottocartelle VBCode e CSCode non devono includere alcuna informazione su quale linguaggio di programmazione è contenuto nella sottocartella. Come con la cartella App_Code stessa, ASP.NET deduce il compilatore da utilizzare in base ai file nella sottocartella.

La risposta qui che ha più voti funziona solo per progetti di siti Web, non per progetti di app Web. Penso che molti sviluppatori usano il termine “web application” ignorando genericamente il fatto che tecnicamente è una cosa diversa in .NET. Microsoft afferma: “Per impostazione predefinita, un’applicazione Web viene compilata in base alle impostazioni della lingua nel file di progetto e si possono fare eccezioni, ma è relativamente difficile.” Quindi, presumo che l’unico modo per farlo sarebbe avere due progetti separati all’interno di un’unica soluzione. (Anche in questo caso, un progetto di sito Web non ha alcuna soluzione o file di progetto.) Non sono sicuro di tutti i dettagli.

Sembra che tu possa mescolarli all’interno dello stesso progetto se fai il pezzo di codice che ti serve come controllo. Quindi se il sito principale è in C # e si esegue la parte VB che si desidera come controllo ascx, è ansible eseguire il drap e rilasciarlo all’interno del sito.

Non mi rendevo conto che potevi farlo, ma un membro del team ha lavorato su un lavoro che stava facendo.