Formularze Web Forms — wprowadzenie Formularze Web Forms umożliwiają tworzenie programowalnych stron internetowych, służących jako interfejs użytkownika aplikacji internetowych. Informacje zawarte na stronie Web Form mogą być wyświetlane przy użyciu dowolnej przeglądarki internetowej lub urządzenia klienckiego. Logika aplikacyjna implementowana jest w kodzie wykonywanym po stronie serwera. Postać wynikowa strony Web Forms może zawierać dowolne języki zgodne z HTTP, w tym HTML, XML, WML i ECMAScript (JScript, JavaScript). Strony Web Forms charakteryzują się następującymi cechami: są oparte na technologii Microsoft ASP.NET — kod uruchamiany po stronie serwera dynamicznie generuje postać wynikową strony internetowej i wysyła ją do przeglądarki internetowej lub urządzenia klienckiego (więcej informacji na temat ASP.NET znajduje się w artykule Podstawy technologii ASP.NET, są kompatybilne z dowolną przeglądarką internetową lub urządzeniem przenośnym — strona Web Forms dla elementów takich jak style czy układ automatycznie tworzy prawidłowy kod HTML, zgodny z daną przeglądarką. Możliwe jest także projektowanie stron Web Forms dedykowanych dla określonej wersji przeglądarki (np. Microsoft Internet Explorer 5) i wykorzystanie pełnych możliwości danej przeglądarki, są kompatybilne ze wszystkimi językami obsługiwanymi przez wspólne środowisko uruchomieniowe .NET, w tym przez Microsoft Visual Basic, Microsoft Visual C# oraz Microsoft JScript .NET, są oparte na platformie Microsoft .NET Framework. Umożliwia to wykorzystanie wszystkich zalet platformy, w tym zarządzanego środowiska wykonywania, bezpieczeństwa typów czy dziedziczenia obiektów, są obsługiwane przez Visual Studio — silne środowisko szybkiego projektowania aplikacji, zawierające narzędzia do projektowania i programowania formularzy, można je rozszerzać z użyciem kontrolek obsługujących projektowanie stron internetowych w trybie RAD, co pozwala na szybkie tworzenie zaawansowanych interfejsów użytkownika, są elastyczne, ponieważ można je rozszerzać z wykorzystaniem kontrolek tworzonych przez użytkownika lub dostarczanych przez firmy trzecie. Składniki stron Web Forms Programowanie interfejsu użytkownika zostało podzielone na dwie niezależne części — projektowanie grafiki i projektowanie logiki. Technika ta jest bardzo podobna do sposobu rozdzielenia widocznej części formularza od kodu tego formularza, znanego z poprzednich wersji Visual C++ i Visual Basic. Widoczna część formularza, zwana stroną Web Forms, to albo plik zawierający statyczny kod HTML, albo kontrolki serwerowe ASP.NET albo obydwa te elementy. Strona Web Forms to kontener dla statycznego tekstu i kontrolek. Kreator Web Forms Designer w Visual Studio i kontrolki serwerowe ASP.NET pozwalają na projektowanie formularzy w taki sam sposób, jak w dowolnych innych aplikacjach Visual Studio. Więcej informacji na ten temat można znaleźć w artykule Kontrolki stosowane na stronach Web Forms. Logika strony Web Forms to kod służący do interakcji z tym formularzem. Logika przechowywana jest w niezależnym od pliku interfejsu użytkownika pliku o rozszerzeniu .aspx.vb lub .aspx.cs. Kod zapisany w tym pliku zwany jest „kodem schowanym”. Logika pliku z kodem schowanym może być zapisana w języku Visual Basic lub Visual C#. Struktura formularza Web Forms Podczas kompilacji projektu, na podstawie plików kodu schowanego wszystkich stron Web Forms projektu, tworzona jest biblioteka dołączana dynamicznie (.dll). Pliki .aspx także są kompilowane, ale w inny sposób. Podczas obsługi pierwszego żądania wyświetlenia danej strony, ASP.NET automatycznie generuje klasę .NET reprezentującą tę stronę i kompiluje ją do drugiego pliku .dll. Klasa wygenerowana na podstawie pliku .aspx dziedziczy po klasie zdefiniowanej w pliku kodu schowanego, znajdującej się w pliku .dll utworzonym podczas kompilacji projektu. Gdy użytkownik żąda wyświetlenia strony o danym adresie URL, serwer uruchamia pliki .dll w celu wygenerowania wynikowego kodu HTML tej strony. Więcej informacji — Przetwarzanie stron Web Forms. Więcej informacji na temat konstrukcji stron Web Forms znaleźć można w artykule pod tytułem Model kodu formularzy Web Forms. Korzyści ze stosowania stron Web Forms Programowanie aplikacji internetowych wiąże się z zagadnieniami, które zwykle nie występują przy programowaniu tradycyjnych aplikacji klienckich. Do zagadnień tych należą: Implementacja rozbudowanego interfejsu użytkownika. Projektowanie i implementowanie interfejsu o skomplikowanym układzie, dużej ilości zawartości dynamicznej, zawierającego złożone kontrolki może być trudne i uciążliwe. Jeszcze trudniejsze jest utworzenie takiego interfejsu dla aplikacji, która musi współpracować z różnymi przeglądarkami internetowymi lub różnymi platformami urządzeń klienckich. Rozdzielenie klienta i serwera. W aplikacjach internetowych klient (przeglądarka) i serwer to dwa różne programy, uruchamiane na różnych komputerach (a nawet w różnych systemach operacyjnych). Z tego względu obie części aplikacji współdzielą bardzo niewiele danych — mogą komunikować się ze sobą, ale wymieniają jedynie niewielkie ilości prostych informacji. Praca bezstanowa. Gdy serwer otrzymuje żądanie przesłania jakiejś strony, odnajduje tę stronę, generuje jej postać wynikową, wysyła do przeglądarki, a następnie usuwa informacje dotyczące tego żądania. Jeśli użytkownik ponownie zażąda przesłania tej samej strony, serwer powtarza wszystkie czynności, generując stronę od podstaw. Innymi słowy, serwer nie utrzymuje w pamięci informacji o przetworzonych stronach. Jeśli jakieś informacje muszą być przechowane pomiędzy kolejnymi żądaniami, jest to problem do rozwiązania w kodzie aplikacji. Nieznane możliwości klienta. W wielu przypadkach aplikacje internetowe dostępne są dla wielu użytkowników, korzystających z różnych przeglądarek. Przeglądarki charakteryzują się różnymi możliwościami — dlatego tak trudne jest utworzenie aplikacji, która będzie równie dobrze obsługiwana przez wszystkie przeglądarki. Problemy z dostępem do danych. W tradycyjnych aplikacjach internetowych odczytywanie i zapisywanie informacji w bazie danych może być skomplikowane i może wymagać dużej ilości zasobów. Problemy ze skalowalnością. W wielu wypadkach aplikacje projektowane dotychczasowymi metodami nie są skalowalne — zwykle ze względu na brak kompatybilności pomiędzy różnymi komponentami aplikacji. Skalowalność jest często krytycznym problemem podczas rozwoju aplikacji. Rozwiązanie wymienionych problemów może wymagać dużych nakładów czasu i środków. Strony Web Forms i architektura ASP.NET pomagają rozwiązać te problemy w następujący sposób: Intuicyjny i spójny model obiektowy. Model obiektowy architektury ASP.NET umożliwia traktowanie formularzy jako całości, a nie jako oddzielnych części — klienckiej i serwerowej. Pozwala to na projektowanie formularza w sposób bardziej intuicyjny niż w przypadku tradycyjnych aplikacji internetowych — możliwe jest ustawianie właściwości elementów formularza i obsługiwanie zdarzeń generowanych przez te elementy. Co więcej, kontrolki serwerowe ASP.NET obsługiwane są w sposób niezależny od faktycznej zawartości strony HTML i od interakcji pomiędzy przeglądarką a serwerem. Kontrolki serwerowe można stosować tak, jak kontrolki w aplikacji klienckiej i nie trzeba zajmować się tworzeniem kodu HTML, wyświetlającego i przetwarzającego kontrolki i ich zawartość. Model programowania sterowany zdarzeniami. Strony Web Forms pozwalają na tworzenie aplikacji internetowych w znajomy i wygodny sposób, polegający na tworzeniu procedur obsługi dla zdarzeń zachodzących w kliencie lub na serwerze. Model ten został zaimplementowany w ASP.NET w taki sposób, że mechanizm wykrycia wystąpienia zdarzenia na kliencie, przesłania go do serwera i wywołania odpowiedniej procedury obsługi jest w pełni automatyczny i niewidoczny dla programisty. W wyniku otrzymujemy czytelną i łatwą w zapisie strukturę kodu, uwzględniającą programowanie zdarzeniowe. Intuicyjne zarządzanie stanem. Zarządzanie stanem formularza i jego kontrolek jest obsługiwane automatycznie przez ASP.NET. Dostępne są też metody jawnego zarządzania stanem informacji wykorzystywanych przez daną aplikację. Funkcjonalność ta nie wymaga dużego użycia zasobów serwera i może być implementowana zarówno z wykorzystaniem plików cookie, jak i bez nich. Aplikacje niezależne od przeglądarki. Środowisko ASP.NET jest odpowiedzialne za warstwę logiki aplikacyjnej na serwerze, co eliminuje konieczność uwzględniania w kodzie różnic pomiędzy przeglądarkami. Mimo tego, nadal możliwe jest wykorzystanie rozbudowanej funkcjonalności wybranych przeglądarek poprzez utworzenie kodu uruchamianego po stronie klienta, co pozwala zwiększyć wydajność i uatrakcyjnić pracę z aplikacją. Obsługa wspólnego środowiska uruchomieniowego .NET Framework. ASP.NET to technologia zbudowana na podstawie platformy .NET Framework. Dzięki temu aplikacje ASP.NET mogą korzystać z całej funkcjonalności tej platformy. Aplikacje można tworzyć w dowolnym języku programowania, zgodnym ze środowiskiem uruchomieniowym, w tym w Microsoft Visual Basic, Visual C# i JScript .NET. Co więcej — dzięki wykorzystaniu infrastruktury dostępu do danych, wbudowanej w .NET Framework i biblioteki ADO.NET — dostęp do danych jest znacznie prostszy. Skalowalna platforma serwerowa .NET Framework. Platforma ASP.NET zapewnia skalowalność — przeniesienie aplikacji z pojedynczego, jednoprocesorowego serwera na rozbudowaną farmę serwerów jest łatwe i nie wymaga dużych zmian w logice aplikacji. Zobacz także (materiały w języku angielskim) Wprowadzenie do ASP.NET | Model kodu formularzy Web Forms | Przetwarzanie stron Web Forms | Tworzenie prostej strony Web Forms — instrukcja krok po kroku | Migracja do Web Forms | Ułatwienia dostępu w aplikacjach internetowych — instrukcja krok po kroku