Tengo un sitio web ASP.NET 3.5 (jerga de estudio visual), pero el sitio sigue creciendo y parece bastante vaquero, entre otras cosas. Me gustaría ver que esto se convierta en una aplicación web (espacios de nombres y todo).
¿Es esto algo que se puede hacer fácilmente en Visual Studio? Si no es así, ¿existen otras herramientas que puedan crear automáticamente todos los espacios de nombres, etc.?
asp.net
visual-studio
web-applications
RSolberg
fuente
fuente
Respuestas:
fuente
Tutorial: convertir 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.
fuente
Si tiene problemas para construir su nuevo proyecto de aplicación web, verifique las Propiedades del archivo en Visual Studio de todas las clases 'auxiliares'. Para un proyecto que estaba convirtiendo, la Acción de compilación se estableció en Contenido, mientras que debería haber sido Compilar.
fuente
Cree una nueva aplicación web en VS 2010.
1. Con el Explorador de Windows, copie todos sus archivos en la carpeta del proyecto.
2. En el explorador de soluciones VS 2010, muestre todos los archivos.
3. Seleccione los archivos y carpetas - haga clic con el botón derecho en incluir en el proyecto.
4. Haga clic con el botón derecho en el explorador de soluciones del proyecto y seleccione Convertir a aplicación web.
Hay bastantes pequeñas diferencias, como que la carpeta App_Code cambiará de nombre a old_app_code, lo que sorprendentemente no causa ningún error. El TypeName en sus fuentes de datos de objeto y las herencias en la etiqueta @Page pueden necesitar el [ProjectName]. prefijo agregado globalmente. Por ejemplo, si el nombre de su tipo era "BusinessLogic.OrderManager" y el nombre de su proyecto es InventorySystem, deberá cambiarlo a InventorySystem.BusinessLogic.OrderManager. Además, algunos cambios de visualización, como los validadores de campo obligatorios, ya no están predeterminados en fuente roja, sino en negro.
fuente
Al principio me enfrentaba a los mismos problemas. Después de seguir el libro Wrox Professional ASP.NET 4.0, encontré la siguiente solución para mi caso.
Primero creé una nueva aplicación web. Copie todos los archivos del sitio web en la carpeta de la aplicación web. Haga clic con el botón derecho en la aplicación y haga clic en convertir a la aplicación web.
Puede preguntar por qué necesita convertir una aplicación web en una aplicación web. La respuesta es que cuando crea un sitio web, simplemente codifica el archivo .cs donde sea necesario. Sin embargo, una aplicación web declara automáticamente .design.cs (o .vb) y un archivo .cs para la sección de código y diseño.
SIGUIENTE: Elimine todas las referencias manuales, como el atributo 'Inherits' en la directiva PAGE, a otros archivos en su sitio web, ya que los espacios de nombres se encargarán de hacer referencia a las clases de forma centralizada.
También enfrenté un problema, ya que no había incluido la carpeta OBJ y BIN en mi proyecto. Si cree que le faltan las carpetas BIN y OBJ, simplemente haga clic en el icono 'Mostrar todos los archivos' en el Explorador de soluciones y luego haga clic con el botón derecho en las carpetas que faltan y agregue al proyecto. (para asegurarse de que se compilen con el proyecto).
ACTUALIZACIÓN: Como @deadlychambers señala en los comentarios: Puede buscar en todas partes haciendo "Ctrl + Shift + F" y luego buscar
Inherits="(.*?)"
. ¡Esto encontrará todas las ocurrencias y probablemente le ahorrará algo de tiempo!fuente
Ahora he migrado con éxito un proyecto de sitio web a una aplicación web y hay algunas trampas que hay que tener en cuenta.
Tener ReSharper a su disposición ayuda mucho a refactorizar los archivos aspx.
public partial class FolderName_Projectname : Page
Si es necesario, cambie el nombre de todos los archivos usando Resharper o manualmente. Si encuentra varios errores como"There is already a member Page_Load() defined"
, esto probablemente se deba a nombres de clase incorrectos y duplicaciónReemplace
CodeFile
todas las páginas aspx conCodebehind
y especialmente preste atención a los archivos en su subcarpeta. Asegúrese de queInhertis=""
no contenga la ruta relativa. Tus espacios de nombres se encargan de todo. Entonces el formato correcto esInherits="Namespace.classname"
. Si su clase tiene un espacio de nombres NaSpa y un nombre de archivo foo.cs, seríaInherits="NaSpa.foo"
Una vez que haya preparado todos sus archivos (no olvide sus páginas maestras), ejecute "Convertir a aplicación web". Si encuentra errores después, enjuague y repita. Si encuentra errores del tipo "TextBoxName no se puede encontrar ¿le falta una referencia", asegúrese de que no se olvidó de desinfectar sus páginas aspx. Un buen indicador es comprobar los archivos del diseñador generados automáticamente. Si
TextBoxName
no aparece allí, la conversión no se realizó correctamente.fuente
el espacio de nombres ASP predeterminado ya no parece funcionar. Así que parece que no puedo llamar a mis páginas User Controls.ascx desde fuera de la página. Darles un espacio de nombres y cambiar el valor predeterminado de ASP a mi espacio de nombres parecía funcionar.
fuente