Saltar al contenido

Cómo convertir un sitio web ASP.NET a una aplicación web ASP.NET

Después de de nuestra prolongada recopilación de información dimos con la respuesta este disgusto que pueden tener ciertos los usuarios. Te brindamos la solución y deseamos resultarte de mucha ayuda.

Solución:

Bueno, resulta que la opción “Convertir a aplicación web” NO existe para “sitios web”. ¡La opción “Convertir a aplicación web” solo existe para “aplicaciones web”!

[emphasis mine]

Entonces, este es el trato, para hacer la conversión, necesita:

  • Agregue una nueva “aplicación web” a su solución VS 2008 (Archivo->Agregar->Nuevo proyecto->C#->Web->Aplicación web ASP.NET).

  • Luego, copia todos los archivos en el “sitio web” anterior a su “aplicación web” recién creada y anula los archivos creados en él de forma predeterminada

  • El siguiente paso es el más feo, debe agregar “manualmente” las referencias en su “sitio web” a la nueva “aplicación web”. Pensé que el juguete VS 2008 PowerCommands haría esto por mí, ya que copia referencias de otros tipos de proyectos, pero no fue así. Debe hacerlo usted mismo, manualmente, y debe tener cuidado en este paso si tiene varias versiones del mismo ensamblaje (como AJAXToolkit en mi caso) o ensamblajes que tienen GAC y versiones locales más o menos.

  • Siga repitiendo el último paso e intentando construir la “aplicación web”. Seguirá recibiendo errores como ” ‘….’ es un espacio de nombres desconocido. ¿Falta una referencia de ensamblaje? “. Asegúrese de no tener ninguno de esos, excepto aquellos en los que ‘….’ se reemplaza por las ID de los controles de servidor que usa. En otras palabras, siga agregando referencias y compilando el proyecto hasta que solo aparezcan los errores que existen debido a la falta de archivos .DESIGNER.CS o .DESIGNER.VB.

  • Luego, vaya al nodo del proyecto raíz “aplicación web” en el explorador de soluciones VS 2008 y haga clic con el botón derecho en él, luego encontrará la opción “Convertir a aplicación web”. Lo que hace esta opción es realizar pequeños cambios en las directivas “@Page” y “@Control” de páginas y controles, y crear los archivos .DESIGNER.CS o .DESIGNER.VB necesarios.

  • Intente construir la “aplicación web” nuevamente. Si obtiene errores, vea qué referencias pueden faltar y/o haga clic en “Convertir a aplicación web” nuevamente. A veces, si hay algún error que no sea el causado por la falta de archivos DESIGNER, no todas las páginas/controles tendrán esos archivos DESIGNER creados para ellos. Arreglar el problema que no es DISEÑADOR y hacer clic en “Convertir a aplicación web” nuevamente debería hacer el trabajo para esto.

  • Una vez que haya terminado con éxito la construcción de VS, debería estar listo para comenzar. Comienza a probar tu aplicación web. Opcionalmente, puede hacer clic derecho en el nodo del proyecto raíz de “aplicación web” en VS 2008 Solution Explorer y hacer clic en “Propiedades” y luego ir a la pestaña “Web” para configurar la “aplicación web” en una carpeta virtual en IIS (puede crear una nueva directorio virtual desde allí en VS). Si desea utilizar el directorio virtual de IIS que utilizaba el antiguo “sitio web”, primero debe eliminarlo de IIS.

  • Actualización: cuando pruebe sus páginas, preste MÁXIMA ATENCIÓN a las clases en la carpeta “App_Code”, especialmente aquellas que NO TIENEN ESPACIO DE NOMBRES. Esas pueden ser una gran trampa. Tuvimos un problema con dos sobrecargas de métodos de extensión en el mismo
    static clase que no tenía espacio de nombres, ¿uno extiende DateTime? (Anulable) y llama a otra sobrecarga que extiende el mismo DateTime. Llamar a la otra sobrecarga como método de extensión pasó la compilación VS 2008 y nos dio un error de compilación SOLO EN TIEMPO DE EJECUCIÓN (Con IIS). Cambiar la llamada a la otra sobrecarga de llamarla como método de extensión a llamarla normalmente static (solo cambiando la llamada en la misma clase, las llamadas de otras clases permanecieron como llamadas de método de extensión) resolvió este, pero claramente, no es tan seguro como solía ser en VS 2005. Especialmente con clases sin espacios de nombres.

  • Actualización 2: durante la conversión, VS 2008 cambia el nombre de su “App_Code” a “Old_App_Code”. Este nuevo nombre suena feo, pero NO LO CAMBIES DE NOMBRE. En el modelo de “aplicación web”, todo el código estará en un ensamblado. En tiempo de ejecución, el servidor web no sabe qué tipo de proyecto web está utilizando. Toma todo el código en la carpeta “App_Code” y crea un nuevo ensamblaje para él. De esta manera, si tiene un código en la carpeta llamada “App_Code”, terminará con errores de compilación RUNTIME de que existen los mismos tipos en dos ensamblajes, el creado por VS y el creado por IIS / ASP.NET Development Server . Para evitar eso. deje el “Old_App_Code” con el mismo nombre, o cámbiele el nombre a CUALQUIER COSA EXCEPTO: “App_Code”. No coloque ningún código en dicha carpeta “App_Code” y, preferiblemente, NO tenga una carpeta con ese nombre en su “aplicación web”.

Lo sé desde antes, pero lo olvidé ahora porque no he usado el modelo de “sitio web” por mucho tiempo :(.

Tutorial: Conversión de un proyecto de sitio web en un proyecto de aplicación web en Visual Studio en MSDN

Si la aplicación de su sitio web crece… es mejor dividirla en varios proyectos. La conversión de un proyecto de sitio web a un proyecto de aplicación web no ayudará mucho.

Si tiene problemas para compilar su nuevo proyecto de aplicación web, verifique las Propiedades de archivo en Visual Studio de todas las clases ‘ayudantes’. Para un proyecto que estaba convirtiendo, la Acción de compilación se configuró en Contenido, mientras que debería haber sido Compilar.

Si conservas alguna vacilación y capacidad de modernizar nuestro noticia eres capaz de ejecutar una anotación y con gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *