asp.net visual-studio-2010 visual-studio dynamic-data

asp.net - La carpeta App_Code falta en VS 2010



visual-studio-2010 visual-studio (8)

¿Por qué no crear otro proyecto, una biblioteca de clases y ponerlo allí? Esa es, de lejos, la mejor manera de mantener esas clases separadas del resto de su sitio web.

Para responder a su pregunta específica sobre la carpeta App_Code, está disponible en proyectos WebSite como una carpeta Asp.Net desde la que puede elegir. Pero desde un proyecto de aplicación web, puede crear una nueva carpeta y ponerle el nombre App_Code y funcionará perfectamente. Esto es a partir de Visual Studio 2010 RC.

Intentaba crear un sitio web de datos dinámicos con VS 2010 RC. Un intento de crear una carpeta App_Code donde colocaría una clase LINQ a SQL falló. Cuando seleccioné ''Agregar carpeta ASP.NET'' para agregar la carpeta, tuve opciones para crear solo las siguientes carpetas:

  • App_GlobalResources
  • App_LocalResources
  • Datos de aplicación
  • App_Browsers
  • Tema

¿Qué pasó con la carpeta App_Code?


Es muy fácil simplemente agregar la nueva clase desde Agregar Nuevo Elemento Visual Studio 2010 mostrará automáticamente el mensaje "¿Desea colocar el archivo en la carpeta de Código de Aplicación?". Simplemente haga clic en Aceptar.! [Introduzca la descripción de la imagen aquí] [1]


Puede crear manualmente la carpeta App_Code y agregar su clase dentro. Una cosa que debe tomar nota es ... en las propiedades del archivo, asegúrese de que Build Action esté configurado para compilar .


También me pareció divertido que falta. Lo que pasa es que "no" necesita crear la carpeta App_Code, solo agrega las clases a cualquier carpeta nueva.

En VS 2005, cualquier clase fuera de App_Code daría un error de compilación.

Entonces, ¿también quiero saber por qué decidieron eliminar esta restricción? ¿Fue por la gente que se quejó de ello o el concepto de diseño cambió y se consideró necesario?


en VS 2010, necesita crear una solución, luego haga clic derecho -> agregar nuevo sitio web, luego, cuando agregue clases, linq2sql, etc., vs creará la carpeta app_code para usted


si crea una clase, le preguntará si desea agregarla en una carpeta de código de la aplicación.


Si desea la carpeta app_code , debe crear "sitio web ASP.NET". Una vez hecho esto, haga clic derecho en el sitio web (Solution Explorer) -> Agregar carpeta ASP.NET-> App_Code.

Si está mirando la carpeta app_code dentro de la "aplicación web ASP.NET", está perdiendo el tiempo.


no puede / no debe agregar la carpeta App_Code a una aplicación web porque esta carpeta está diseñada para la compilación en tiempo de ejecución de asp.net y el proyecto de la aplicación web está diseñado para precompilar su sitio web en un dll que puede encontrar en el Bin carpeta e implementar en su sitio. Si agrega esto manualmente, puede terminar teniendo conflictos de nombres ya que la clase será precompilada a la dll y luego asp.net nuevamente intentará recompilar en tiempo de ejecución.

Por lo tanto, para los proyectos de aplicaciones web, en su lugar, debe agregar una carpeta llamada algo así como ''CodeFolder'' y luego agregar su clase allí. A continuación, haga clic con el botón derecho en las propiedades de ese archivo de clase y establezca su configuración de compilación en lugar de contenido.

Estoy trabajando en mi propio proyecto web para www.athenatennis.com.sg y voy a seguir una curva de aprendizaje similar con eso.