jueves, 13 de diciembre de 2007

Publicar ASP.NET Web site

Si ya terminaste de desarrollar tu ASP.NET web site (ojo web site, no web application), y quieres publicarlo, debes elegir la opción "Publish Web Site" del menú Build.
Para esto, tienes la opción de cambiar la carpeta en donde quieres que se almacenen todos los archivos que necesitarás llevar a producción.
Luego que configuraste todo lo necesario y presionaste el botón OK, dirígete a la carpeta donde elegiste publicar tu web site.
Qué ves allí???
Un montón de archivos .aspx, el web.config y otros archivos de nuestra aplicación.
Hasta ahí todo bien.
Para efectos de practicidad, hagamos esto:
(Mi Visual Studio está en inglés, qué le vamos a hacer... es mi regalo de la 4ta estrella del DCE2005 :) )
A.- "Allow this precompiled site to be updatable"
B.- "Use fixed naming and single page assemblies"

Estas son 2 de las opciones que se ven en la caja de diálogo "Publish Web Site".
La tercera opción no nos interesa por ahora.
En adelante, nos referiremos a estas opciones como A y B, de acuerdo?
Ahora dirígete a la carpeta bin, esto es lo que verás:

1.- Si al momento de publicar tu web site sólo marcaste la opción A, lo único que verás será un assembly con un nombre más o menos así: App_Web_2ijian4_.dll (una vaina). No sé si a alguien le parezca cómodo distribuir un assembly con un nombre raro... tomando en cuenta que en vs2003 no teníamos ese problema.
2.- Si al momento de publicar tu web site sólo marcaste la opción B, entonces lo que verás en el directorio bin será un montón de assemblies, uno por cada página .aspx que hayas creado. Tampoco me parece gran cosa.
De seguro a alguno de uds sí le parecerá útil: hay que respetar las opiniones.
3.- Si marcaste A y B, tampoco hay gran cambio: un montón de assemblies, uno por cada página.
Pero, a qué voy con todo esto??

A que en ningún momento tuve la opción de elegirle un nombre a mi assembly, ni de ponerle un número de versión, ni de especificar si quería assemblies en modo debug o release, elegir entre generar un único assembly o un assembly por folder, y muchas cosas más.
Y a qué se debe eso???

A que los proyectos de tipo web site no tienen un archivo de proyecto ( .vbproj en VB.NET ) que ponga orden en la casa, y que permita configurar lo que arriba mencioné.
Si pes, qué le vamos a hacer... pero, tiene solución el problema??

Por supuesto!!!
La solución descargarse de la web un template llamado Web Deployment project, el cual deberemos añadirle a Visual Studio 2005.
Bieeeeeeeeeeeennnnnnnnnnnnn!!!
Este template no es otra cosa más que el archivo de tipo proyecto que le faltaba a tu web site, osea, podremos hacer todo lo que hace un instante decía que no se podía hacer.
Busca en San Google "Web Deployment Project", decárgalo e instálalo en tu PC.
Para usarlo en tu web site, en el explorador de soluciones, haz click derecho en la raiz de tu web site y elige "Add Web Deployment Project...", esta acción añadirá un archivo de tipo proyecto a tu solución.

Luego, haz click derecho sobre el archivo recién añadido y, elige la opción "Property Pages".
Aparecerá una caja de diálogo para que puedas modificar todas las opciones que creas conveniente, y luego puedas publicar tu web site... como debe ser.

1 comentario:

Christian dijo...

Les recomiendo que vean este post, el cual cuenta como armar un bat para automatizar la publicación de una aplicación ASP.Net

http://laboticadellanga.blogspot.com/2011/07/super-bat-para-compilar-y-publicar-una.html