Hosting domitienda.com
MisTrucos.Net - El rincón de los trucos informáticos El rincón de los trucos informáticos
Trucos ASP.NET 2 > Utilizar VB.NET y C# al mismo tiempo en la carpeta APP_CODE

Bueno he de aqui que por las cosas de la vida y componentes que reutilice y falta de tiempo necesite utilizar clases en VB.NET y C# dentro de la carpeta APP_CODE en un proyecto web en VS2005..


Coloque mis clases Clase1.vb y Clase2.cs en la carpeta y genero el siguiente error:
Exception Details: System.Web.HttpException: The files '/WebSite1/App_Code/Clase2.cs' and '/WebSite1/App_Code/Clase1.vb' use a different language, which is not allowed since they need to be compiled together.


Pero no crei que tuviera esta limitación asi que me dedique a verificar como seria el proceso de indicarle el tipo de lenguaje que se utiliza en la famosa carpeta... por defecto el directorio APP_CODE puede contener clases del mismo lenguaje, pero se puede agregar subdirectorios e indicar a ASP.NET que los compile separadamente.


Cual es el proceso?....



  1. Primeramente insertar en la seccion de <;compilation>; del webconfig estas lineas que agregan un coleccion de subdirectorios que asp.net debe compilar en forma separada, o mejor dicho de forma agrupada por estos directorios...
    <;codeSubDirectories>;
    <;add directoryName="App_Code_VB"/>;
    <;add directoryName="App_Code_CS"/>;
    <;/codeSubDirectories>;

  2. Luego tendrias que crear estos directorios
    /App_Code/App_Code_VB
    /App_Code/App_Code_CS


  3. Y llegando al final, distribuir nuestras clases de VB.NET dentro de la carpeta correspondiente App_Code_VB, y las de C# en la carpeta App_Code_CS


Algunos datos interesantes (desde los enlaces a MSDN):



  • El orden de generación se deduce del orden descendente de la colección codeSubDirectories.
  • El directorio App_Code se genera en último lugar.
  • Los subdirectorios se muestran en el orden en el que se debe compilar el código para cumplir sus dependencias, pero...
  • No existen dependencias de orden de generación, lo que significa que este orden no es significativo.
  • No hay ningún elemento codeSubDirectories predeterminado configurado para ASP.NET.
  • Puede haber cualquier número de subdirectorios

Enlaces:


- Sharing Code Between Pages
http://dotnetjunkies.com/QuickStartv20/aspnet/doc/pages/code.aspx
- Elemento codeSubDirectories para compilation (Esquema de configuración de ASP.NET)
http://msdn2.microsoft.com/es-es/library/54dwfbb7.aspx
- Elemento add aplicado a codeSubDirectories para compilation (Esquema de configuración de ASP.NET)
http://msdn2.microsoft.com/es-es/library/221faf8e.aspx
- CompilationSection.CodeSubDirectories (Propiedad)
http://msdn2.microsoft.com/es-es/library/system.web.configuration.compilationsection.codesubdirectories.aspx _____________________
Jose A. Fernandez