ATL Server es una tecnología desarrollada originalmente por Microsoft para desarrollar aplicaciones web . Utiliza un motor de reemplazo de etiquetas escrito en C++ para representar páginas web . Se basa en tecnologías existentes como ISAPI y Active Template Library , e incluye una biblioteca de plantillas dedicada al desarrollo de aplicaciones web.
ATL Server apareció por primera vez con Visual Studio .NET 2003. Se incluyó en Visual Studio 2005 , pero ya no se admite desde el lanzamiento de Visual Studio 2008. La mayor parte del código base de ATL Server se ha publicado como un proyecto de código fuente compartido en CodePlex , un sitio web de uso compartido de código administrado por Microsoft.
Una aplicación de servidor ATL típica consta de al menos una DLL de extensión ISAPI junto con uno o varios archivos de respuesta del servidor (.srf) y sus archivos DLL de aplicación asociados que proporcionan la funcionalidad de la aplicación.
Los archivos SRF pueden contener una combinación de etiquetas HTML y de script. Las etiquetas de script SRF se indican mediante llaves de apertura {{ y de cierre }} .
Un único archivo SRF puede llamar al código de varias DLL de aplicación. De manera similar, una única DLL de aplicación puede servir a varios archivos SRF.
El archivo SRF más simple debe contener una o más referencias a las DLL de la aplicación y una o más llamadas a funciones dentro de esas DLL. Un archivo SRF simple se vería así:
{{controlador ATLServerHelloWorld.dll/Default}}<html><cuerpo>{{Hola Mundo}}</cuerpo></html>
La primera línea del archivo:
{{controlador ATLServerHelloWorld.dll/Default}}
se utiliza para identificar la DLL y la clase a la que el archivo SRF realizará llamadas.
Dentro del archivo, las llamadas de función se verían así:
{{Hola Mundo}}
En el caso anterior, la DLL ATLServerHelloWorld.dll contiene una definición de una clase "Predeterminada" como se muestra a continuación:
[ manejador_de_solicitudes ( "Predeterminado" )] clase CDefault { ... [ nombre_de_etiqueta ( nombre = "HolaMundo" )] CÓDIGO_HTTP OnHelloWorld ( void ) { m_HttpResponse << "¡Hola Mundo!" ; devolver HTTP_SUCCESS ; } };
Tenga en cuenta el uso del atributo request_handler en la clase para identificar que esta es la clase "Predeterminada" y también tenga en cuenta el uso del atributo tag_name para identificar el método "HelloWorld".