Hoy en día, muchos sitios web que usan ASP no usan componentes en absoluto. Hoy, el editor de Foxin Technology Channel describe brevemente los servicios de división entre ASP y componentes. Espero que sea útil para usted aprender este conocimiento.
Servicios de división de ASP y componentes
ASP se usa más comúnmente para crear archivos HTML o XML para usar por clientes en servidores, por lo que discutimos principalmente este escenario de uso. Esto plantea una pregunta común: si las páginas ASP están en el servidor, ¿pertenecen a parte de la capa de negocios? En el mundo de los componentes, la respuesta suele ser no. Si bien ASP se ejecuta en el servidor y puede estar en el mismo espacio que el servidor de aplicaciones, esto no lo hace parte de la lógica comercial.
Con las herramientas de interfaz de usuario que crecen o, a medida que se habilitan más soluciones de empresa a empresa, tener esta clara distinción pagará una gran recompensa.
Dicho esto, veamos algunos de los criterios más importantes de la División de la Capa de Empresas y la División de Capa de Presentación:
Separe el código de la interfaz de usuario de la lógica de negocios. Esto incluye escribir código acoplado a la interfaz de usuario, como usar un objeto MTS que utiliza un componente interno ASP para separarlo del código de lógica comercial, como si estuviera en una DLL diferente.
Transacciones separadas de las páginas ASP. La transacción ASP es muy buena en algunos casos, pero los componentes y las aplicaciones de varios niveles cambian esto. Los componentes no deben confiar en la capa del cliente para administrar sus transacciones y semántica de lógica comercial.
Coloque el componente de representación (componente que usa solicitud y respuesta) en la misma máquina y/o proceso que el servidor web. Si un objeto que usa el objeto de componente interno ASP se coloca en una máquina remota, todas las llamadas al componente interno ocurrirán en un formulario de devolución de llamada. El servidor COM+ que llama al cliente IIS es un servidor COM+, lo que reduce significativamente el rendimiento y complica la configuración de seguridad. Estos objetos de ajuste se pueden colocar en una "activación de la biblioteca" marcada con la aplicación COM+.
ASP existe en el servidor, por lo que la página ASP debe cumplir con las reglas de intercambio de recursos y tener en cuenta la escalabilidad. Consulte los detalles a continuación:
En una "sesión", la administración debe intentar evitar el estado específico del usuario.
Mantenga ASP sin estado y permita los grupos de recursos cuando sea posible.
Método de operación
Al evaluar si un segmento de código pertenece a la lógica de negocios o la capa de presentación, pregúntese: "Si tengo que reemplazar mi página ASP con una aplicación de teléfono de tipo botón, ¿ese código sigue siendo útil?" Si la respuesta es "Sí", puede intentar dividirla en el código de lógica de negocios o el código de ayuda de la interfaz de usuario.
Si el código no se puede usar después de cambiar el cliente, o si es un ayudante para construir la interfaz de usuario, el código pertenece a la capa de servicio de representación. Está en la página ASP, o en un componente que utiliza los componentes internos ASP. No pertenece al componente del objeto comercial.
Comprender la diferencia entre el escritorio y el cliente ASP
ASP es un cliente especial de componentes, a diferencia de las aplicaciones Win32 tradicionales de un solo hilo en el escritorio. Las principales diferencias se resumen de la siguiente manera.
Gestión de hilos: ASP es un cliente multiprocesado. Esto significa que puede haber muchas actividades concurrentes que se ejecutan juntas, tal vez manejando diferentes páginas ASP al mismo tiempo. Esto significa que no se puede hacer que el objeto afirme falsamente que es el único usuario que ocupa exclusivamente el sistema. Hacer esto puede causar reacciones inesperadas, por ejemplo, para desarrollar un mal hábito de almacenar objetos en una sesión de ASP o variables de aplicación.
Entorno de seguridad: ASP es realizado por Internet Information Services 5.0 en el sitio web, con tres niveles de aislamiento: bajos, medianos y altos. Incluso estos sitios web pueden tener diferentes configuraciones de seguridad, permitir o negar el acceso anónimo, autenticar a los clientes y más. Todas estas configuraciones crean una gran cantidad de esquemas donde las diferentes cuentas de usuario terminan usando sus objetos.
Crecimiento fácil: este no es un problema técnico, sino un efecto secundario de las instalaciones proporcionadas por las aplicaciones web.
Tradicionalmente, agregar base de usuarios a aplicaciones de escritorio requiere una planificación cuidadosa de las transferencias a un número conocido de clientes. ASP ha cambiado el proceso. Después de funcionar, la aplicación básica ASP-visual puede ser fácilmente abrir para usar por todos los empleados, todos los socios comerciales y todos los clientes a nivel local o mundial.
Se puede describir de esta manera: un correo electrónico único con un hipervínculo puede hacer crecer la base de usuarios diez veces. ¿Su aplicación está lista para esto? La única forma de saber es realizar pruebas de fuerza en su sitio web para obtener el valor esperado del rendimiento real.
¿Cómo debe usar objetos Visual Basic dentro de ASP? Cree y cancele sus objetos dentro del alcance de la página.
Es decir, haga que la página ASP sea estacada tanto como sea posible, y solo depende de las variables de sesión o aplicación en un estado temporal. No almacene objetos en las variables de sesión o de aplicación. Esto bloquea el hilo ASP en su sesión, cancela todos los valores esperados para la escalabilidad. Es decir, el número de usuarios procesados por el servidor web no excederá docenas de usuarios. Si necesita almacenar contenido en una sesión o aplicación, conviértalo en un objeto en lugar de un objeto.
Hay muchas otras pautas a seguir. Le recomendamos que lea la columna "Servin it it Up" escrita por JD Meier en MSDN Voices. Esta columna incluye una amplia gama de técnicas, prácticas y consejos que ayudan a desarrollar aplicaciones ASP y componentes de ASP escalables y confiables.
No almacene referencias en objetos VB en sesión o aplicación
Todos los componentes de Visual Basic 6.0 son "subprocesos de unidades", lo que significa que todos se ejecutan en unidades STA. Esto significa que si se crea un objeto en un hilo, entonces todas las llamadas a ese objeto deben ser atendidas por el mismo hilo. Muchos hilos (de usuarios de sitios web concurrentes) usan la misma instancia del objeto STA, causando una serie de actividades que pueden convertirse en cuellos de botella en la aplicación.
Además, el almacenamiento de objetos STA creados con server.CreateObject dentro del alcance de la sesión puede contactar efectivamente el subproceso de ejecución al usuario actual, lo que limita el número máximo de usuarios concurrentes de la aplicación al 20XN predeterminado (n = número de procesadores).
Método de operación
Si sigue nuestras recomendaciones para hacer que los objetos estén sin estado, no necesita almacenar referencias para la reutilización del cliente y almacenarlos dentro del alcance de la aplicación. Los clientes podrán crear, usar y cancelar sus propios objetos de forma independiente. Esto reduce la necesidad de mantener objetos específicos de la sesión porque no retienen el estado específico de la sesión.
La forma recomendada es hacer que el objeto sin estado, que accede a la base de datos u otras áreas de almacenamiento (como cookies y LDAP) cuando sea necesario.
Si necesita usar datos de sesión o de toda la aplicación, almacene los datos, en lugar del objeto que procesa los datos, aquí. Puede crear una clase que encapsule el procesamiento del valor deseado.
Aprenda nuevo contenido en IIS 5.0
Internet Information Server 5.0 agrega muchas características nuevas. Estas mejoras se han escrito en el artículo MSDN de JD Meier: Use ASP en IIS 5.0 (inglés).
Lo anterior es una breve descripción de los servicios de división entre ASP y componentes compartidos por el editor del canal de tecnología False New New. Espero que tenga más conocimiento sobre este aspecto, lo que ayudará al desarrollo de ASP.