Al usar VS2005, una de las cosas con las que se encuentran los usuarios (que vienen de VS2003) es un nuevo modelo de compilación de los proyectos Web. (Web Site Project). Hay varias diferencias entre un modelo y otro, desde el sitio donde se seleccionan para crear un nuevo proyecto hasta los resultados de compilación. Para muchas cosas esto es muy importante, así que aunque este no es un tema nuevo vuelvo a él para referencia propia y de otros.
En el modelo Web Application:
· Toda la aplicación se compila en un solo assembly (dll) que queda en la carpeta bin.
· Todas las referencias, y archivos se relacionan en el archivo del proyecto.
· Todo el proceso de compilación usa MSBuild así que se puede personalizar lo que pasa antes, durante y después de la compilación.
En el Modelo Web Project:
Se generan muchos dlls que viven en el directorio bin, es un poco complicado saber para que es cada uno y cual es cual.
Para mi entonces la principal diferencia esta relacionada con la compilación, y aquí es donde esto se vuelve importante hoy. (3 años después de VS2005.)
Ahora estoy desarrollando algunos proyectos para Sharepoint 2007, hay muchas opciones pero una interesante es crear una aplicacion asp.net normal, agregar las referencias a Sharepoint y publicarla en el directorio _layouts.
Para hacer esto y que quede bien es obligatorio que el assembly de la aplicación web sea uno solo, es decir que sea un proyecto Web Application. , hay otros escenarios como usar Enterprise services en los que eso del ensamblado único también es importante. Asi que para mucha gente, esto resulto tan importante que se creo una adición para VS2005 que permite volver a tener los proyectos Web Applications.
A continuación algunas fotos de mi maquina de desarrollo (gracias clo J) que permiten ver las diferencias al momento de creación, los resultados de compilación y el deployment resultante en sharepoint.
Cuando se entra a Visual Studio y se selecciona nuevo web site se ve una pantalla como esta:
si se crea una pagina, un botón, una clase, se compila y se publica (Publish) se obtiene algo como esto:
Como pueden ver hay dos dlls, una llamada application Code y Otra llamada App_web_xxxx.dll.
Para tener el soporte para Web Applications se puede ir al sitio de Microsoft y rápidamente instalarlo siguiendo estos pasos:
1. Primero Aplicar este parche y
2. Luego descargar el complemento de aqui.
Luego de instalar esto se siguen teniendo los web projects, pero también esta ahora la opcion de web applications, solo que se encuentran en otro lado como se puede ver aquí: (new Project, Web…)
Y al agregar la misma página, el mismo botón, la misma clase que en el proyecto anterior, compilar y publicar se obtiene esto:
Como se ve una sola dll con el mismo nombre del proyecto.
Pues bien, esta dll es la que se puede colocar en el carpeta BIN del directorio virtual del sitio sobre el que se esta creando la aplicación en sharepoint.
asi : (En este caso mi aplicación dentro del Sharepoint se llama ProjectServer)
Y las páginas del compilado si quedan en el directorio layouts:
Personalmente me gustan los proyectos que usan webApplications, y hasta el momento no he encontrado ninguna restricción o algo que no pueda hacer, incluso en otro proyecto que usaba Enterprise Services desde una de las clases del Web Site fue perfecto para registrar con facilidad los componentes en la consola de COM+.
espero que sea de ayuda.
Juan Carlos Peláez
MCTS
Distributed Applications
Keywords: VS2005, Sharepoint, Web Application Projects, Web Projects, Sharepoint Applications, Juan Peláez, MCTS Distributed Applications. Build, deploy, Desarrollo para Sharepoint, Consultor en Sharepoint.