Resumen de varios problemas al actualizar ASP.NET 1.0 a ASP.NET 2.0
Autor:Eve Cole
Fecha de actualización:2009-06-30 16:06:42
Actualicé el proyecto 1.1 original en los últimos días y encontré algunos problemas. Los resumiré aquí y les recordaré a los amigos que no han tenido tiempo de actualizar o que están listos para actualizar para evitar desvíos y perder tiempo durante el proceso de actualización.
1. La forma de procesamiento del archivo Global.asax es diferente y se producirán errores después de la conversión. En vs2003, Global.asax tiene un archivo posterior de código. En la versión 2.0, el archivo de separación de código se mueve al directorio App_Code para que pueda convertirse automáticamente. disponible a través de la aplicación. Acceda a cualquier página ASP.NET del programa. El atributo "Código subyacente" se eliminará de las directivas en archivos ASAX. vs2005 escribe el código directamente en Global.asax. Por lo tanto, debe eliminar los archivos convertidos, volver a agregarlos y copiar el código correspondiente.
No hay ningún archivo de proyecto en 2.2.0. En una aplicación 1.1, el archivo del proyecto contiene configuraciones de compilación, referencias a ensamblados externos y una lista de archivos en el proyecto. En las aplicaciones 2.0, la configuración de la versión y las listas de archivos ya no son necesarias porque todos los archivos en el directorio del proyecto web se consideran parte del proyecto web.
3. Modo de separación de códigos.
En ASP.NET 1.1, el modo de separación de código separa el contenido (como test.aspx) del código (como test.aspx.cs). Las páginas de contenido heredan de páginas separadas por código, que contienen código generado por el usuario y el diseñador.
ASP.NET 2.0 mejora el modo de separación de código mediante el uso de clases parciales, utilizando la palabra clave parcial para separar el código de una sola clase en dos archivos separados. Permite que una clase abarque varios archivos. En el nuevo modo separado por código, la página de contenido hereda de la clase compilada, que consta de la página separada por código correspondiente y el archivo resguardo generado automáticamente que define las declaraciones de campo para los controles utilizados en la página de contenido. Este cambio separa el código generado automáticamente del código del usuario y hace que la página de separación de códigos sea significativamente más pequeña y limpia. La estructura de clases parcial también reduce el riesgo de romper accidentalmente la página al editar el código generado por el diseñador.
Si se produce un error, verifique si hay una palabra clave parcial; de lo contrario, agregue la palabra clave parcial.
4. Revisión gramatical. El programa asp.net1.1 no verificará los errores de sintaxis en aspx, aspcx y otros archivos al compilar, mientras que vs2005 verificará la sintaxis en todos los archivos aspx, aspcx y otros archivos del proyecto al compilar, por lo que si hay errores de sintaxis, provocará que la compilación no se pueda aprobar.
5. Declaración de control. Si todos los controles se declaran en la página .aspx, elimine todas las declaraciones de control del archivo de separación de código; de lo contrario, se informará un error: Definición duplicada.
6. (Solo C#) Mueva el código de enlace de eventos de la función InitialzeComponent en el archivo de división de código a la página .aspx. Tenga en cuenta que esta acción no se aplica a eventos llamados automáticamente, incluidos Page_Init, Page_Load, Page_DataBind, Page_PreRender, Page_Unload, Page_Error, Page_AbortTransaction y Page_CommitTransaction.
7. Método de implementación (precompilado, compilado completo, sitio actualizable, etc.). En 1.x, las aplicaciones web se precompilaban y se implementaban como un gran ensamblaje. Las páginas de contenido (*.aspx) no se compilan en el servidor, pero se pueden editar en el servidor. Con el nuevo modo de compilación de páginas y estructura de directorios, puede utilizar una variedad de configuraciones diferentes para implementar aplicaciones ASP.NET 2.0. En un caso, puede precompilar todas las páginas ASPX e implementar una aplicación web que consta de ensamblados completamente compilados. En este modo, no puede cambiar fácilmente la aplicación en el servidor. Alternativamente, puede implementar su aplicación sin precompilar ningún código. En esta configuración, puede cambiar páginas .aspx, archivos separados por código o cualquier otro código en la aplicación directamente en el servidor. Cuando un usuario solicita una página en el servidor, la página se compila dinámicamente.
8. Cambie todas las propiedades de CodeBehind en la página .aspx a propiedades de CodeFile
CodeBehind: especifica el nombre del archivo compilado que contiene las clases asociadas con la página. Esta propiedad no se puede utilizar en tiempo de ejecución.
Esta propiedad se proporciona por compatibilidad con versiones anteriores de ASP.NET para implementar la funcionalidad de código subyacente. En ASP.NET versión 2.0, debería utilizar la propiedad CodeFile para especificar el nombre del archivo fuente y la propiedad Inherits para especificar el nombre completo de la clase.
Archivo de código
Especifica la ruta al archivo de código subyacente al que hace referencia la página. Esta propiedad se utiliza con la propiedad Inherits para asociar un archivo fuente de código subyacente con una página web. Esta propiedad sólo es válida para páginas compiladas.
9. Mueva todos los archivos de código independientes y AssemblyInfo.cs al directorio App_Code.
Sin embargo, después de ejecutar el asistente de conversión, es posible que algunos archivos de separación de código (por ejemplo, *.aspx.cs o *.ascx.vb) se hayan movido al directorio App_Code. Esto indica que la página de contenido del archivo de división de código contiene una directiva Codebehind con formato incorrecto y no está configurada correctamente. Es decir, el asistente de conversión no puede determinar si el archivo dividido con código está realmente vinculado a una página .aspx específica.
10. Servicios web En ASP.NET 1.x, los servicios web (.asmx) se dividen automáticamente en una página de encabezado en blanco (.asmx) y un archivo separado por código que contiene los métodos reales.
Bajo Asp.net2.0:
• Mueva la clase de separación de código al directorio App_Code para que sea accesible automáticamente desde cualquier página ASP.NET de la aplicación.
• Cambie la propiedad CodeBehind en el archivo .asmx para que apunte a la nueva ubicación.
(Tenga en cuenta que los archivos separados por código no utilizan clases locales, por lo que se sigue utilizando el atributo CodeBehind).
• Cambie todas las declaraciones de alcance Predeterminado, Amigo y Interno a Públicas.
¿Qué tipo de problemas encontró durante el proceso de actualización de 1.1 a 2.0? Puedes anotarlo para que todos puedan aprender juntos y evitar desvíos.