ASP.NET

**ASP.NET** yra tinklalapio struktūros technologija, parduodama Microsoft, kurią programuotojai gali naudoti norėdami sukurti dinaminę internetinę svetainę, žiniatinklio konstrukciją arba paslaugą. Tai dalis Microsoft .NET platformos Microsoft, Aktyvių Serverio Puslapių () (ASP.net) technologijos įpėdinis. ASP.NET integruota su bendros kalbos išpildymo aplinka (, trump. *CLR*), leidžiančia programuotojams rašyti ASP.NET kodą bet kuria Microsoft .NET kalba.

## Charakteristika

### ASPX rinkmenos formatas
**ASPX** yra html rinkmenos formatas, naudojamas sukurti žiniatinklio formos puslapius; programavimo žargonu, ASPX rinkmeną tipiškai sudaro statinio HTML arba XHTML žymą, kaip ir žymos charakterizavimą ASP.NET žiniatinklio valdymu ir ASP.NET vartotojo valdymu, kur vykdytojai patalpina visą reikiamą statinį ir dinaminį turinį žiniatinklio puslapiui. Papildomai, dinaminis kodas, kuris veikia serveryje gali būti patalpinamas ir puslapyje tarp figūrinių skliaustų **<code></code>**, kas yra panašu į kitas žiniatinklio vykdymo technologijas, tokias kaip PHP, JSP, ir ASP, tačiau šiai praktikai nepritaria Microsoft, nebent tai būtų daroma dėl kompiuterių mokslo sąsajos.

Microsoft tai rekomenduoja, kai reikia susidurti su dinaminės programos kodu, naudojant „paslėpto kodo“ modelį, kai kodas yra įdedamas į atskirą rinkmeną ar į specifiškai sukurtą skripto žymą. „Paslėpto kodo“ rinkmenos yra tipiškai pavadinamos *ManoPuslapis.aspx.cs* ar *ManoPuslapis.aspx.vb* pagal ASPX rinkmenos vardą (šis būdas yra automatizuotas Microsoft Visual Studio ir kitose integruotose vykdymo aplinkose). Kai programuojant naudojamas šis stilius, vykdytojas rašo kodą, kuris iškart atsako į įvairius įvykius, tokius kaip puslapio atidarymas ar valdymas nuspaudžiant klavišus, negu naršant po šias procedūras per visą dokumentą.

### ASPX puslapio pavyzdys


```csharp
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = DateTime.Now.ToLongDateString();
    }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Puslapio pavyzdys</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label runat="server" id="Label1" />
    </div>
    </form>
</body>
</html>
```


### Technikos atvaizdavimas
**ASP.NET** naudoja *aplankyto turinio* atvaizdavimo techniką. Per kompiliaciją šablono (.aspx) rinkmena yra surenkama į kodą, kuris sukuria valdymo medį (turinį) atvaizduojantį originalų (statinį) šabloną. Raidinis tekstas eina į raidinio valdymo klasę, o serverio valdymą atstovauja specifinio valdymo klasė. Atvaizdavimo kodas yra sujungiamas su vartotojo parašytu kodu (paprastai, daugeriopų dalinių klasių rinkinio) ir išplaukia į specifinę puslapio klasę. Puslapis dubliuojasi kaip **valdymo medžio** pagrindinė šaknis.

Konkrečios užklausos puslapiui yra apdorojamos priklausomai nuo žingsnių skaičiaus. Pirmiausiai, per atvaizdavimo žingsnius, sukuriamas atvaizdavimo klases ir kodo vykdymą. Tai parodo pirminį valdymo medį, kuris dabar tipiškai valdomas puslapio metodais sekančiais žingsniais. Kodas gali keisti medžio struktūrą. Galų gale, atvaizdavimo žingsnyje lankytojas panaudoja kiekvieną medžio atšaką, siųsdamas užklausas. Taip HTML kodas yra nusiunčiamas klientui.

Po to, kai užklausa yra apdorojama, tam tikra puslapio klasės užklausa yra atmetama iš bendro valdymo medžio.

## Nuorodos

;ASP.NET resursai
* Microsoft oficiali ASP.NET 3.5 svetainė
* ASP.NET pagal MSDN
* ASP.NET vadovėlis ir kodų pavyzdžiai 
* Kas naujo ASP.NET 3.5
* ASP.NET OOP ir Unit testavimas 

;ASP.NET komandos narių blogai
* Scott Guthrie, vyr.vadybininkas – ScottGu blogas
* Nikhil Kothari, architektas – nikhilk.net 
* Brian Goldfarb, produkto vadybininkas – Brian Goldfarb’s blogas
* Shanku Niyogi, produkto Unit vadybininkas – shankun.com 
* Bertrand Le Roy, vykdytojas – Pasakėlės iš blogio imperijos
* Harish Ranganathan, vykdytojas evangelistas – Harish Ranganathan