Az ATL Server a Microsoft által webes alkalmazások létrehozására kifejlesztett technológia . C++ nyelven írt címkecsere motort használ a weboldalak létrehozásához . Olyan meglévő technológiákra épít, mint az ISAPI és a Microsoft Active Template Library , és tartalmaz egy sablonkönyvtárat, amelyet webalkalmazások készítésére terveztek.
Az ATL Server először a Visual Studio .NET 2003 -ban jelent meg . A Visual Studio 2005 -ben is szerepelt, de a Visual Studio 2008 kiadásától kezdve már nem támogatott . Az ATL-kiszolgáló kódjának nagy része nyílt forráskódú projektként elérhető a CodePlex -en , a Microsoft forráskiadói webhelyén.
Egy tipikus ATL-kiszolgálóalapú alkalmazás legalább egy ISAPI DLL -kiterjesztést , valamint egy vagy több szerverválaszfájlt (.srf kiterjesztést) és kapcsolódó alkalmazás-DLL-fájlt tartalmaz, amelyek megvalósítják az alkalmazás funkcióit.
Az SRF-fájlok HTML- és script-címkéket tartalmazhatnak. Az SRF szkriptcímkék {{ nyitó és }} záró zárójelekkel vannak jelölve.
Egyetlen SRF-fájl több alkalmazás-DLL-ből is hívhat kódot. Hasonlóképpen, egy alkalmazás DLL több SRF-et is kiszolgálhat.
A legegyszerűbb SRF fájlnak tartalmaznia kell egy vagy több alkalmazás DLL hivatkozást és egy vagy több alkalmazás DLL függvényhívást. Egy egyszerű SRF fájl valahogy így néz ki:
{{kezelő ATLServerHelloWorld.dll/Default}} <html> <test> {{Helló Világ}} </body> </html>A fájl első sora:
{{kezelő ATLServerHelloWorld.dll/Default}}Az SRF fájl által meghívott DLL és osztály azonosítására szolgál.
Később a fájlban a függvényhívások valahogy így néznek ki:
{{Helló Világ}}A fenti esetben az ATLServerHelloWorld.dll DLL tartalmazza az alapértelmezett "Default" osztálydefiníciót, az alábbiak szerint:
[request_handler("Alapértelmezett")] osztály CD-alapértelmezett { ... [tag_name(name="HelloWorld")] HTTP_CODE OnHelloWorld(érvénytelen) { m_HttpResponse << "Hello World!"; return HTTP_SUCCESS; } };Tisztázni kell, hogy egy osztályban a request_handler attribútumot használják az osztály "Alapértelmezett" osztályként történő azonosítására, a tag_name attribútumot pedig a "HelloWorld" metódus azonosítására.