2010-02-17 10 views
5

Actualmente uso la carpeta App_Code para todas mis clases, y para mí (por ahora) parece estar funcionando bien.Proyecto de biblioteca de clases VS App_Code - Pros/Cons?

Sin embargo, he estado considerando cambiar a un proyecto de biblioteca de clase dentro de mi solución en lugar de la carpeta App_Code. ¿Alguien puede decirme los pros y los contras de hacer esto?

Una idea que tuve fue con respecto a la prueba de mi aplicación web. Si utilizo una biblioteca de clases, ¿debo compilarla cada vez que quiero modificar/probar? Obviamente, en la carpeta App_Code no tengo que hacerlo ya que todas las clases se compilan en tiempo de ejecución.

+0

http://stackoverflow.com/questions/398037/asp-net-web-site-or-web-application – womp

Respuesta

6

Debe utilizar una biblioteca de clases. Las razones son simples.

Desea eliminar la lógica de su empresa o aplicación de la interfaz de usuario. La carpeta App_Code es para clases que solo se ocupan de la interfaz de usuario.

El motivo de la separación es crear niveles. Lo que significa que hoy tienes un sitio web, mañana se te puede pedir que hagas un programa de Windows o un nuevo sitio web. Si tiene que cambiar su UI, va a copiar y pegar el código. Eso significa que ahora tiene 2 o más lugares para mantener el código. Esto conducirá a una calidad de código más pobre, arreglando el mismo error en 2 o más lugares.

Si coloca su código en una biblioteca. Usted crea una nueva interfaz de usuario y luego solo hace referencia a la biblioteca. Ahora solo está usando 1 juego de código.

+0

Esta es una gran respuesta, y una que tiene perfecto sentido. En mi pregunta anterior mencioné que tenía que compilar la Biblioteca de clases una y otra vez mientras probaba ... ¿hay alguna forma de evitar esto? –

+0

¿Entonces la respuesta es que tengo que compilarlo cada vez que hago un ajuste o modificación? –

+0

No tiene que compilar la lógica de negocios si no la ha cambiado. La compilación no lleva mucho tiempo y no es una buena razón para mantener todo el código en la capa de la interfaz de usuario. –

0

Jimmy Bogard (autor de Automapper) ha escrito una excelente article sobre cómo estructura su código, lo que puede ayudar a confirmar la respuesta de @David.

Cuestiones relacionadas