Logo UGIdotNET

ASP.Net 2.0 - Utilizzare più linguaggi nello stesso progetto

Tra le nuove funzionalità di ASP.Net 2.0 è presente la possibilità di utilizzare linguaggi diversi all'interno della stessa applicazione Web: per abilitare questa feature è necessario però predisporre il progetto con alcuni semplici passaggi.

Creare una SubDirectory per ogni linguaggio

Normalmente la cartella App_Code può contenere files dello stesso linguaggio. Il primo step è quindi quello di creare sottodirectory diverse all'interno di App_Code, una per ogni linguaggio desiderato. Sarà quindi premura del programmatore andare a smistare le classi dell'applicazione all'interno delle sottodirectory in base al loro linguaggio.
Sebbene l'elenco delle directory sia una collection ordinata, non ci sono dipendenze sull'ordine di compilazione.
La figura sottostante mostra un esempio in cui sono presenti due sottodirectory, una per C# e una per Vb.Net.

Il solution explorer di VS2005


Modificare il Web.Config

Il secondo step è quello di mappare le sottodirectory appena create all'interno del file di configurazione Web.Config. La sintassi è la seguente:

<system.web>
   <!-- ... -->
      <compilation>
        <codeSubDirectories>
           <add directoryName="CSharp"/>
           <add directoryName="VB"/>
        </codeSubDirectories>
      </compilation>
   <!-- ... -->
</system.web>

Non è necessario specificare il linguaggio associato a una directory: sarà Visual Studio a scegliere il compilatore adatto.


Conclusioni

Le potenzialità di questa feature non sono da sottovalutare: sarà possibile infatti reciclare snippet di codice scritto in un linguaggio diverso da quello della nostra applicazione, senza dover creare una class library esterna. Un esempio pratico potrebbe essere DotNetNuke, portale realizzato al 100% in Vb.Net e spesso oggetto di desiderio dei CSharpisti.

Autore: Giorgio Sardo
Data: 12 dicembre 2005
Ultimo aggiornamento: 12 dicembre 2005
Categorie:  Visual Studio .NET ASP.NET

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185