ATL Server este o tehnologie dezvoltată de Microsoft pentru crearea de aplicații web . Utilizează un motor de înlocuire a etichetelor scris în C++ pentru a genera pagini web . Se bazează pe tehnologii existente, cum ar fi ISAPI și Microsoft Active Template Library și conține o bibliotecă de șabloane concepută pentru a fi utilizată în construirea de aplicații web.
ATL Server a fost introdus pentru prima dată în Visual Studio .NET 2003 . A fost inclus și în Visual Studio 2005 , dar nu mai este acceptat din versiunea Visual Studio 2008 . O mare parte din codul ATL Server a fost pus la dispoziție ca proiect open source pe CodePlex , site-ul de publicare sursă al Microsoft.
O aplicație tipică bazată pe server ATL conține cel puțin o extensie DLL ISAPI , precum și unul sau mai multe fișiere de răspuns ale serverului (extensia .srf) și fișiere DLL de aplicație asociate care implementează funcționalitatea aplicației.
Fișierele SRF pot conține un set de etichete HTML și script. Etichetele de script SRF sunt marcate cu {{ deschidere și }} paranteze de închidere.
Un singur fișier SRF poate apela cod din mai multe DLL-uri de aplicație. De asemenea, o aplicație DLL poate servi mai multe SRF-uri.
Cel mai simplu fișier SRF ar trebui să conțină una sau mai multe referințe DLL de aplicație și unul sau mai multe apeluri de funcții DLL de aplicație. Un fișier SRF simplu arată cam așa:
{{handler ATLServerHelloWorld.dll/Default}} <html> <corp> {{Salut Lume}} </corp> </html>Prima linie a fișierului:
{{handler ATLServerHelloWorld.dll/Default}}este utilizat pentru a identifica DLL-ul și clasa care vor fi apelate de fișierul SRF.
Mai târziu în fișier, apelurile funcției arată cam așa:
{{Salut Lume}}În cazul de mai sus, DLL-ul ATLServerHelloWorld.dll conține definiția implicită a clasei „Default”, după cum se arată mai jos:
[request_handler(„Implicit”)] clasa CDdefault { ... [tag_name(name="HelloWorld")] HTTP_CODE OnHelloWorld(void) { m_HttpResponse << „Bună lume!”; returnează HTTP_SUCCESS; } };Trebuie clarificat faptul că atributul request_handler este folosit într-o clasă pentru a identifica clasa ca „Default”, iar atributul tag_name este folosit pentru a identifica metoda „HelloWorld”.