ASP

Active Server Pages
Öndüriji 		:  Microsoft
Durnukly goýberiliş	:  3.0 (täze wersiýasy meýilleşdirilmeýär)

Görnüşi	          	:  Web-programma karkasy

Lisenziýasy      	:  Hususy

Active Server Pages (ASP)
başgaça ady bilen Classic ASP ýa-da ASP Classic, dinamiki döredilýän web-sahypalar üçin Microsoft-yň ilkinji serwer skript işleýjisidir.  Ol ilkibaşda Windows NT 4.0 Option Pack (1998 ý.) arkaly Internet Information Services (IIS)-e goşmaça hökmünde goýberildi, soňra bolsa, Windows Server-iň mugt komponenti hökmünde goşuldy (Windows 2000 Server-iň ilkinji goýberlişinden başlap). ASP-niň deregini ASP.NET tutýar.

ASP 2.0 alty sany yaýýar obýekti üpjün edýär: Application, ASPError, Request, Response, Server we Session. Meselem, Session üýtgeýänleriň ýagdaýyny sahypadan-sahypa üpjün edýän kuki esasly sessiýany görkezýär. Active Scripting işleýjisiniň Component Object Model (COM)-e bar bolan goldawy ASP websaýtlarynyň DLL-ler ýaly kompilýatiw kitaphanalarda funksionallyga girmegine mümkinçilik berýär.
.asp faýl giňeltmeli web-sahypalar ASP ulanýarlar, emma käbir websaýtlar howpsuzlyk maksatlary sebäpli özleriniň skriptleýiş dillerini gizleýärler (mes. has giňden ýaýran .htm ýa-da .html giňeltmelerini ulanýarlar). .aspx giňeltmeli sahypalar kompilýatiw ASP.NET ulanýarlar (Microsoft-yň .NET Framework-iniň esasynda), bu bolsa, olary iş wagtynda interprirlenýän ASP serwer skriptindäkiden has çaltlaşdyrýar we güýçlendirýär; şeýle hem bolsa, ASP.NET sahypalary barybir käbir ASP skriptlerini öz içine alýan bolmagy mümkin. ASP.NET-iň ulanmaga girizilmegi esasy tehnologiýa üçin Classic ASP diýen terminiň ulanylmagyna getirdi.
Programmaçylar aglaba ASP sahypalaryny VBScript ulanyp ýazýarlar, emma oňa derek islendik başga bir Active Scripting işleýjisini @Language direktiwasy ýa-da <script language="language" runat="server"> sintaksisi bilen saýlap bolýar. JScript (Microsoft-yň ECMAScript amala-aşyrmasy) adatça elýeterli başga bir dildir. PerlScript (Perl ýasamasy) we beýlekiler başga gurulýan Active Scripting işleýjileri hökmünde elýeterlidir.

==Taryhy==

Aspect Software Engineering tarapyndan döredilen dbWeb we iBasic gurallaryna esaslanýan ASP web programmanyň ýerine ýetirilişini gönüden-göni web serwere integrirlän ilkinji web programma taýýarlaýyş serişdeleriniň biridi, ol NeXT-iň (häzir Apple) WebObjects-iniň 1996-njy ýyldaky goýberilişinden 9 aý soňra çykarylypdy. Bu daşarky ulanyp bolýan programmalary ýa-da CGI skriptlerini çagyrmaklyga garanyňda has ýokary önjeýlilik gazanmak üçin ýerine ýetirildi, olar şol wagt web programma ýazmaklygyň iň ýörgünli usulydy.
Microsoft korporasiýasy IIS 3 üçin ASP-ni çykarmanka, IIS-de işleýän web programmaçylar dinamiki maglumatlary we sahypalary görkezmek hem-de dolandyrmakda ODBC sürüjileri bilen kombinirlenen IDC we HTX faýllaryna bil baglaýardylar. Bu faýl formatlarynyň we gurluşlarynyň esaslarynyň ASP-niň irki wersiýalarynyň ýerine ýetirilmeginde iň bolmanda kem-käsleýin ulanylmagyna dowam edildi.

Halcyon InstantASP (iASP) we Chili!Soft ASP üçünji tarap önümleri Microsoft Windows işlediş ulgamlaryndan başga platformalarda ASP-ni işledýärler. Hakyky ASP-niň hiç bir alternatiwasy ähli funksiýalary doly emulirläp bilmeýär, üstesine adaty ASP-niň hiç hili meselesi ýok maglumat bazasynyň birikmesi ýaly funksionallygy gazanmak üçin goçmaça komponentleri hem talap edip bilýärler. Microsoft Access maglumat bazalary üçin goldawyň Windows däl ulgamlarda aýratyn meselä öwrülmegi mümkin.

JScript ulanýan Chili!Soft ASP-den tapawutlylykda, iASP programmasy VBScript we JScript dillerini ulanyp bilýär. Microsoft-yň ASP-si bularyň ikisini hem ulanyp bilýär, şeýle hem onuň başga dillere şol skript işleýjisini ulandyrmak potensialy hem bar. iASP programmasy Java-da ýazylandy, şonuň üçinem ol islendik işleýiş ulgamynda diýen ýaly işleýärdi. Indi iASP onçakly elýeterli däl ýa-da iň azyndan ony tapmak örän kyn.
Elýeterli başga diller hem bar: mes. Perl we TCL, emma olar o diýen giňden tanalmaýar ýa-da ASP scriptlemesi üçin ulanylýar. Apache Webserver moduly ASP-ä çalymdaş Perl skript dilini işledýär.

Ilki bilen 1997-nji ýylda goýberilen Chili!Soft programmasy 2000-nji ýylyň 24-nji maýynda Cobalt Networks tarapyndan alyndy. Soňra bolsa, Cobalt Networks-i Sun Microsystems satyn aldy (7 dekabr, 2000). Chili!Soft-yň ady "Sun ONE Active Server Pages" bilen çalşyryldy, ondan soňra bolsa "Sun Java System Active Server Pages" diýlip üýtgedildi. Chilisoft ASP programmasy C/C++ bilen ýazylan, ol belli bir web serwer wersiýasyna pugta baglydyr. Sun-a görä, "Sun Java System Active Server Pages"iň ömri paýawlap barýar.

==Ulanylyşynyň mysaly==

ASP-de programmaçylar Microsoft-yň Active Scripting standardy bilen utgaşykly islendik skriptleýiş dilini ulanyp bilýärler. Gaýybana skriptleýiş dili (classic ASP) - VBScript:

<% Response.Write "Salam Dünýä!" %>

Ýa-da ikisi hem birmeňzeş işleýän has ýönekeý formatda

<%= "Salam Dünýä!" %>

Ýokaryda berlen mysallar HTML dokumentiniň tekstine "Salam Dünýä!" diýen jümläni print edýär.

==ASP.NET==<big>

ASP.NET programmaçylaryň dinamiki websaýtlary, web programmalaryny we web hyzmatlaryny gurmagyna mümkinçilik döretmek maksady bilen, Microsoft tarapyndan tayyarlanylan we satuwa çykarylan web-programma karkasydyr. Ol ilki bilen .NET Framework-iň 1.0 wersiýasy bilen 2002-nji ýylyň ýanwarynda goýberildi, ol Microsoft-yň Active Server Pages (ASP) tehnologiýasynyň mirasdüşeridir. Common Language Runtime (CLR)-da gurlan ASP.NET programmaçylaryň islendik goldanylýan .NET dilini ulanyp, ASP.NET koduny ýazmaklygyna mümkinçilik berýär. ASP.NET SOAP giňeltmesiniň karkasy ASP.NET komponentleriniň SOAP habarlaryny işlemekligine şert döredýär.

==Taryhy==

1997-nji ýylda Internet Information Services 4.0 goýberleninden soň, Microsoft korporasiýasy ASP hakyndaky umumy, hususan-da presentasiýa bilen mazmuny bölüp aýyrmaklyk hem-de "arassa" kod ýazyp bilmeklik boýunça arz-şikaýatlary çözüp biljek täze web-programma modeliniň mümkinçilikleri üçin iş geçirip başlady. IIS toparynda menejer bolup işleýän Mark Anders hem-de 1997-nji ýylda Duke University-ni tamamalap Microsoft-a işe giren Scott Guthrie şol modeliň nähili bolmalydygyny kesgitlemek wezipesine bellenildi. Anders bilen Guthrie başlangyç dizaýny iki aýdan gowrak wagtyň dowamynda işläp düzdüler, Guthrie bolsa 1997-nji ýylyň Roždestwo baýramçylygynda başlangyç prototipleri kodirledi.

==Scott Guthrie (Microsoft Developer Division VP) 2007 ý.==

Başlangyç prototipe "XSP" diýlip, at berildi; Guthrie 2007-nji ýyldaky bir interwýusynda şeýle düşündirýärdi: "Adamlar hemişe X-iň nämäniň gysgaltmasydygyny soraýarlar. Şol wagt aslynda ol hiç bir zadyň gysgaltmasy däldi. XML şeýdip başlady; XSLT hem şeýdip başlady. X harpy bilen başlamaklyk hiç neneňsi bolmady, ine biziň başdaky at goýşumyz şeýleräk boldy." XSP-niň başlangyç prototipi Java bilen taýýarlanyldy, emma kän salym geçmänkä täze platformany Common Language Runtime (CLR)-yň üstüne gurmaly diýen netijä geldik, sebäbi ol obýekte gönükdirilen programmalaýyş gurşawyny, "zibil ýygnamaklygy" we Microsoft-yň Component Object Model platformasynyň goldamaýan funksiýalary hökmünde kabul edilýän başga fuksiýalary hem hödürleýärdi. Guthrie gelnen bu netijäni "uly töwekgelçilik" diýip suratlandyrýar, sebäbi olaryň täze web taýýarlaýyş platformasynyň şowly çykmaklygy CLR-niň şowlulygyna bagly boljakdy, CLR hem edil XSP ýaly şol wagt taýýarlamaklygyň irki sepgitlerindedi, hatda XSP topary Microsoft-da CLR-ni maksat edinýän ilkinji topardy.

Common Language Runtime-a geçilmekligi bilen, XSP täzeden C#-a ornaşdyryldy (oňa içerki leksikada "Project Cool" diýilýärdi, ýöne jemgyýetçilikden gizlin saklanylýardy), şeýlelikde onuň ady ASP+ edilip üýtgedildi, şol pursada çenli täze platforma Active Server Pages-iň mirasdüşeri hökmünde garalýardy, mundaky esasy niýet bolsa ASP taýýarlaýjylary üçin ýeňil geçiş ýoluny üpjün etneklik bolup durýardy.
Mark Anders 2000-nji ýylyň 2-nji maýynda Arizonanyň Phoenix (Feniks) şäherinde geçirilen ASP Connections konferensiýasynda ilkinji gezek ASP+-y görkezdi. Giň jemgyýetçilige görkezişler we ASP+-yň başlangyç beta wersiýanyň goýberilişi (şeýle hem .NET Framework-iň galan bölegi) 2000-nji ýylyň 11-nji iýulynda Floridanyň Orlando şäherinde geçirilen 2000 Professional Developers konferensiýasynda bolup geçdi. Bill Gates-iň esasy presentasiýasy wagtynda, Fujitsu kompaniýasy ASP+-yň COBOL bilen bilelikde ulanylýandygyny görkezdi, şeýle hem başga köpdürli diller, şol sanda Microsoft-yň täze Visual Basic .NET we C# dilleri, şeýle-de, ActiveState tarapyndan döredilen utgaşyklyk gurallary arkaly Python we Perl üçin goldawy yglan edildi.

2000-nji ýylyň ikinji ýarymynda ".NET" markasy makul görlensoň, ASP+ adyny ASP.NET diýip üýtgetmeklik barada netijä gelindi. Mark Anders şol ýyl "The MSDN Show" atly gepleşige çykanda şeýle diýdi: ".NET başlangyjynda aslynda ençeme faktorlar bar, programmany hyzmat hökmünde hödürlemeli, XML we web hyzmatlary bolmaly, Internetiň mümkinçiliklerini geňeltmeli... biz onuň adyny platformanyň .NET framework-i düzýän galan böleklerine laýyklykda saýlap aldyk."

Dört ýyllyk taýýarlykdan hem-de 2000-nji we 2001-nji ýyllardaky beta wersiýalardan soň, 2002-nji ýylyň 5-nji ýanwarynda .NET Framework 1.0 wersiýasynyň bir bölegi hökmünde ASP.NET 1.0 goýberildi. Hatda heniz goýberilmankä, ASP.NET hakynda onlarça kitap ýazyldy, Microsoft bolsa, ony özüniň web hyzmatlary platformasynyň bir bölegi hökmünde giňden reklama etdi. Guthrie ASP.NET-iň önümçilik birliginiň menejeri boldy, taýýarlaýyş bolsa çalt depginde dowam etdi, 1.1 wersiýasy 2003-nji ýylyň 24-nji aprelinde Windows Server 2003-üň bir bölegi hökmünde goýberildi. Bu goýberiliş ASP.NET-iň ykjam enjamlary goldamaklygyna gönükdirildi.

==Aýratynlyklary==

Pages.NET sahypalary, resmi ady boýunça "web-formalar" programma taýýarlamakda esasy gurujy bloklar bolup durýar. Web-formalar ".aspx" giňeltmeli faýllarda bolýar; bu faýllarda adatça statiki (X)HTML belligi, şeýle-de, serwer Web Controls-y we User Controls-y kesgitleýän bellik bolýar, ol ýerde taýýarlaýjylar web-sahypa üçin talap edilýän ähli statiki we dinamiki mazmuny ýerleşdirýärler. Mundan başga-da, serwerde işleýän dinamiki kody <% -- dynamic code -- %> blogynyň içinde sahypa ýerleşdirip bolýar, ol PHP, JSP we ASP ýaly beýleki web taýýarlaýyş tehnologiýalaryna meňzeşdir, ýöne maglumat birikdiriş maksatlaryndan başga ýagdaýlarda bu praktika umuman maslahat berilmeýär, sebäbi ol  sahypa emele getirilýärkä has köp çagyryş talap edýär.
Bellik: Bu mysal kody "tekst-içi" ulanýar, code-behind ýaly däl.

==Code-behind modeli==

Microsoft dinamiki programma koduna code-behind modelini ulanyp, çemeleşmekligi maslahat berýär, ol bu kody aýratyn bir faýla ýa-da ýörite script tegine ýerleşdirilýär. Code-behind faýllarynyň adatça MyPage.aspx.cs ýa-da MyPage.aspx.vb ýaly atlary bolýar, sahypa faýlynda bolsa, MyPage.aspx (sahypa faýlynyňky (ASPX) bilen birmeňzeş bolýar, emma ahyrky giňeltmesi sahypanyň dilini görkezýär). Bu praktika Microsoft Visual Studio-da we başga IDE-lerde awtomatikdir. Şu stildäki programmalar ulanylýan mahaly, taýýarlaýjy dürli wakalara, mes. ýüklenilip duran sahypa, ýa-da üstüne basylan dolandyryşa jogap bermek üçin, dokumentde proseduralaýyn iş geçirmeýär-de, eýsem kod ýazýar.
ASP.NET-iň code-behind modeli Classic ASP-den aýrybaşgalaşýar, sebäbi ol taýýarlaýylara prezentasiýa bilen mazmuny ýadynda böleklere aýryp, programma döretmeklige çagyrýar. Teoriýada, bu bir web-dizaýnere, meselem, dizaýn belligine ünsüni jemläp, ony işledýän programmalaýyş koduna zeper ýetirmezlige şert döredýär. Bu bolsa, kontrolçyny model-view-controller karkaslaryndaky görnüşden aýyrmaklyga meňzeşdir.

==ASP.NET bilen ASP Classic deňeşdirmesi==

Windows ulanyjy interfeýsine meňzeş kontrollardan emele gelýän sahypalary döretmeklik ukybyny hödürlemeklik arkaly, ASP.NET taýýarlaýjylaryň Windows programma taýýarlaýlyndan web taýýarlaýşa geçmekligini ýeňilleşdirýär. Bir web kontroly, meselem düwme ýa-da ýarlyk, edil öz Windowsdaky "kärdeşi" ýaly işleýär: kod onuň aýratynlyklaryny belläp we onuň wakalaryna jogap berip bilýär. Kontrollar özlerini nädip döretmelidigini bilýär: Windows kontrollary bolsa, özlerini ekrana çekýärler, web kontrollary HTML we JavaScript segmentlerini döredýär, olar bolsa ahyrky ulanyjynyň brauzerine iberilýän gutarnykly sahypanyň böleklerini düzýär.
ASP.NET tehnologiýasy programmaçylary ASP we PHP ýaly adaty web-skriptleýiş gurşawlarynda däl-de, waka dolandyryşly GUI modeli ulanmak arkaly programma döretmeklige höweslendirýär. Ýagdaý ýatlamaýan web gurşawyny hemişelik (isleg-ara) ýagdaýa geçirmek maksady bilen, bu karkas JavaScript ýaly bar bolan tehnologiýalary "ViewState" ýaly içerki komponentler bilen birleşdirýär.

==ASP Classic-den başga aratapawutlar:==

Obýekt kody taýýarlaýyş tapgyrynda has köp dizaýn-wagt säwlikleriniň saplanmagy arkaly has çalt işleýän programmalary aňladýar.
Iş-wagt säwliklerini düzetmeklik ep-esli ösdürilen, try-catch bloklary rkaly kadadançykma düzedişlerini ulanýar.

Controllar we wakalar ýaly Microsoft Windows programmalaryna meňzeş metforalary bar. 
Kontrollaryň we klass kitaphanalarynyň giň toplumy programmalryň tiz döredilmegine şert döredýär, şeýle-de ulanyjynyň kesgitleýän kontrollary menýular ýaly giňden ulanylýan web şablonlaryna şert döredýär. Bu kontrollaryň sahypadaky ýerleşişi has ýeňil, sebäbi onuň uly bölegini aglaba redkatorlarda wizual ýerine ýetirip bolýar.

ASP.NET tehnologiýasy .NET Common Language Runtime-yň köp dilli mümkinçiliklerinden peýdalanýar, web-sahypalary VB.NET, C#, J#, Delphi.NET, Chrome we ş.m. bilen kodlamaga şert döredýär.
Önjeýliligi ýokarlandyrmak üçin tutuş sahypany ýa-da onuň käbir böleklerini keşirlemäge ukyply.
Biznes-logikany presentasiýadan bölüp aýyrmak üçin, code-behind taýýarlaýyş modelini ulanmaga ukyply.
Sahypany we kontrollary programmalamak üçin hakyky obýekt-orientirli proýektirlemäni ulanmaga ukyply
Eger bir ASP.NET programmasy ýat syzdyrsa, ASP.NET iş-wagtyýalňyşly programmanyň hosty bolan  AppDomain-i sökýär we programmany täze AppDomain-de ýükleýär.

ASP.NET-däki sessiýa ýagdaýyny Microsoft SQL Server maglumat bazasyna, ýa-da web-serwer hökmünde şol bir kompýuterde ýa-da başga bir kompýuterde aýratyn bir prosese ýazdyryp bolýar. Şeýlelikde, web-serwer nol edilen ýa-da ASP.NET işçi prosesi resirkulirlenen mahaly, sessiýa bahalary ýitmeýär.
2.0-dan öňki ASP.NET wersiýalary standartlara utgaşykly däldikleri sebäpli tankyt edilipdi. Öndürilip, müşderi brauzere iberilen HTML we JavaScript hemişe W3C/ECMA standartlaryna gabat gelip durmaýardy. Mindan başga-da, karkasyň brauzer tapyş funksiýasy kämahallar Microsoft-yň öz Internet Explorer-inden başga web-brauzerleri ýalňyşlyk bilen "irki wersiýada" diýip kesgitleýärdi, we bu müşderilere HTML/JavaScript käbir funksiýalary aýrylyp, ýa-da käwagtlar hatardan çykarylyp gaýtarylýardy. Şeýle hem bolsa, 2.0 wersiýasynda, saýtyň konfigurasiýasyna laýyklykda ähli kontrollar abat HTML 4.0, XHTML 1.0 (gaýybana) ýa-da XHTML 1.1 netijesini öndürýär. Standartlara utgaşykly web-brauzerleri tapmaklayk has ygtybarly,  Cascading Style Sheets goldawy bolsa, has giňişleýin.

Web-serwer kontrollary: Bular web-formalara ulanyjy interfeýs üpjün etmek üçin ASP.NET tarapyndan işe girizilen kontrollardyr. Bu kontrollar ýagdaý-dolandyryşly kontrollardyr WYSIWYG kontrollarydyr.

Kategoriýa:Informatika