W poprzedniej części kursu udało się nam stworzyć pierwszą,
najprostszą stronę internetową, wykorzystując do tego środowisko programistyczne
Visual Studio Web Developer 2005. W tym rozdziale postaram się natomiast
wyjaśnić dokładniej zasady działania, oraz wzajemnej współpracy elementów,
tworzących aplikację ASP.NET.
Przymnijmy, do tej pory udało się nam stworzyć stronę
internetową zawierającą pole tekstowe, w którym domyślnie wyświetlany był napis
„przykładowy tekst". Dokonaliśmy tego w prosty sposób, przeciągając wymagany
przez nas element z paska narzędzi, a następnie edytując jego właściwości za
pomocą okna Properties. W stworzonym przez nas projekcie Visual Studio,
spróbujmy ponownie otworzyć plik Default.aspx, w trybie Source. Szybko
spostrzeżemy, że dodanie przez nas pola tekstowego w trybie „Design" spowodowało
pojawienie się w kodzie strony nowej linii:
<input
id="Text1"
type="text"
value="przykładowy tekst" />
Linia ta, jak zapewnie zdążyliście się domyślić jest
odpowiedzialna za wyświetlanie przez przeglądarkę pola tekstowego. W podobny
sposób, przeciągając na edytowaną stronę inne elementy html, wyświetlane w pasku
narzędzi możemy w prosty sposób edytować zawartość strony. W praktyce do
tworzenia prostych serwisów WWW, ręczne edytowanie źródeł pliku Default.aspx,
jest rzadko wymagane.
W poprzednim rozdziale kursu wspomniałem, że interaktywne
strony ASP.NET tworzymy, wykorzystując obiektowy model programowania i języki,
takie jak: Visual Basic .NET, C#, czy J#. W tym miejscu należy wyjaśnić pewną
kwestię. Każda strona internetowa, stworzona w technologii ASP.NET składa się
zasadniczo z dwóch warstw. Pierwsza z nich, jest to warstwa prezentacji i
odpowiedzialna jest ona za to, co wyświetlane jest w oknie przeglądarki. Warstwa
ta tworzona jest w języku xhtml i zawarta jest zazwyczaj w plikach z
rozszerzeniem *.aspx. Natomiast druga warstwa jest to właściwy kod aplikacji,
tworzony we wspomnianych wyżej językach i wykonywany po stronie serwera.
Zerknijmy jeszcze raz na kod naszej strony Default.aspx. Pierwsza linia w pliku
przedstawia się następująco:
<%@
Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default"
%>
To, co nas w tym momencie interesuje, to atrybut dyrektywy
“Page" o nazwie “CodeFile". Zawiera on nazwę pliku, w którym znajduje się
właściwy kod odpowiedzialny za działanie strony. Jego zawartość możemy podejrzeć
klikając dwukrotnie lewym przyciskiem myszy w oknie Visual Studio w trybie
Design, klikając w tym samym miejscu prawym przyciskiem myszy i wybierając
opcję: View Code, bądź też klikając na „plus" znajdujący się przy pliku Default.aspx w oknie Solution Explorera i otwierając pojawiający się
wówczas w oknie plik o nazwie Default.aspx.cs.

Po otwarciu pliku Default.aspx.cs widzimy, że została
zdefiniowana w nim jedna klasa o nazwie _Default. Klasa ta dziedziczy z klasy
System.Web.UI.Page, która reprezentuje pojedynczą formatkę (czyli w praktyce
stronę widzianą w oknie przeglądarki). Klasa ta, zawiera aktualnie tylko jedną
metodę o nazwie „Page_Load", która uruchamiana jest przy każdym załadowaniu
strony w oknie przeglądarki.
public partial
class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender,
EventsArgs e)
{
}
}Widzimy, więc że każda tworzona przez nas formatka jest
oddzielnym obiektem, działającym na serwerze. Obiekt ten tworzony jest za każdym
razem, w momencie zapytania klienta do serwera, jego zadaniem jest wygenerowanie
odpowiedzi dla klienta. Po wykonaniu tego zadania obiekt jest niszczony. Dlatego
między innymi w obiekcie tego typu nie można przechowywać wartości jako jego
właściwości, między kolejnymi wywołaniami strony.