ATL Server er en teknologi udviklet af Microsoft til at skabe webapplikationer . Den bruger en tag-erstatningsmotor skrevet i C++ til at generere websider . Det bygger på eksisterende teknologier såsom ISAPI og Microsoft Active Template Library og indeholder et skabelonbibliotek designet til brug ved opbygning af webapplikationer.
ATL Server blev først introduceret i Visual Studio .NET 2003 . Det var også inkluderet i Visual Studio 2005 , men understøttes ikke længere fra Visual Studio 2008 -udgivelsen . Meget af ATL Server-koden er blevet gjort tilgængelig som et open source-projekt på CodePlex , Microsofts kildepubliceringswebsted.
En typisk ATL-serverbaseret applikation indeholder mindst én ISAPI DLL -udvidelse samt en eller flere Server Response Files (.srf-udvidelse) og tilknyttede applikations-DLL-filer, der implementerer applikationens funktionalitet.
SRF-filer kan indeholde et sæt HTML- og script-tags. SRF script tags er markeret med {{ åbning og }} afsluttende parenteser.
En enkelt SRF-fil kan kalde kode fra flere applikations-DLL'er. Ligeledes kan en applikations-DLL betjene flere SRF'er.
Den enkleste SRF-fil skal indeholde en eller flere applikations-DLL-referencer og et eller flere applikations-DLL-funktionskald. En simpel SRF-fil ser sådan ud:
{{handler ATLServerHelloWorld.dll/Default}} <html> <body> {{Hej Verden}} </body> </html>Første linje i filen:
{{handler ATLServerHelloWorld.dll/Default}}bruges til at identificere den DLL og klasse, der vil blive kaldt af SRF-filen.
Senere i filen ser funktionskaldene sådan her ud:
{{Hej Verden}}I ovenstående tilfælde indeholder ATLServerHelloWorld.dll DLL standard klassedefinitionen "Default" som vist nedenfor:
[request_handler("Standard")] klasse CDefault { ... [tag_name(name="HelloWorld")] HTTP_CODE OnHelloWorld(ugyldig) { m_HttpResponse << "Hej verden!"; returnere HTTP_SUCCESS; } };Det skal præciseres, at request_handler-attributten bruges i en klasse til at identificere klassen som "Default"-klassen, og tag_name-attributten bruges til at identificere "HelloWorld"-metoden.