AWWW-1st3.6-w06.tresc-1.1-Slajd21
Separacja kodu – Code Behind
Charakterystycznym problemem dla pierwszych technologii „server pages” (takich jak klasyczne ASP) była nieczytelność kodu stron na skutek przemieszania HTML ze wstawkami kodu wykonywalnego. ASP.NET umożliwia pełną separację kodu HTML i wykonywalnego poprzez architekturę Code Behind. Technika Code Behind jest zalecana szczególnie dla złożonych stron i jest domyślnie stosowana przez środowisko Visual Studio.
Technika Code Behind wykorzystuje fakt, że strony ASP.NET są klasami i jest oparta o mechanizm dziedziczenia. Każda strona ASP.NET reprezentuje klasę dziedziczącą bezpośrednio lub pośrednio z klasy bibliotecznej Page (dla stron, dla których nie została jawnie wskazana klasa bazowa, klasą bazową jest Page). Code Behind polega na przeniesieniu kodu wykonywalnego do klasy zdefiniowanej w zewnętrznym pliku i wskazaniu tej klasy jako klasy bazowej dla strony za pomocą atrybutu Inherits dyrektywy @Page. Dyrektywa ta zawiera też atrybut wskazujący nazwę pliku Code Behind: Src – gdy pliki są instalowane na serwerze w postaci źródłowej i kompilowane przez runtime ASP.NET, Codebehind – gdy aplikacja jest instalowana na serwerze w postaci skompilowanej (np. zbudowana w Visual Studio).
Zwyczajowe rozszerzenia nazw plików Code Behind to: .aspx.cs dla kodu w języku C# i .aspx.vb dla kodu w języku Visual Basic .NET.
W ASP.NET 1.x klasa bazowa w pliku Code Behind musi zawierać składowe odpowiadające kontrolkom strony ASP.NET, aby możliwe było w niej dodawanie metod obsługujących zdarzenia generowane przez kontrolki. Sposób wskazania metod obsługujących poszczególne zdarzenia jest w przypadku skorzystania z techniki Code Behind inny niż gdy kod HTML i wykonywalny są umieszczone razem w pliku strony. Sposób ten zostanie zilustrowany przykładem na kolejnym slajdzie.
W ASP.NET 2.0 technika Code Behind została uproszczona dzięki mechanizmowi klas częściowych (ang. partial classes).