Co to jest Web Forms
ASP.NET Web Forms jest częścią platformy aplikacji internetowej ASP.NET i jest dołączona do programu Visual Studio. Jest to jeden z czterech modeli programowania, których można użyć do tworzenia aplikacji internetowych ASP.NET, inne są ASP.NET MVC, ASP.NET stron internetowych i ASP.NET aplikacje jednostronicowe.
Web Forms to strony, których użytkownicy żądają przy użyciu przeglądarki. Te strony można napisać przy użyciu kombinacji kodu HTML, skryptu klienta, kontrolek serwera i kodu serwera. Gdy użytkownicy żądają strony, jest ona kompilowana i wykonywana na serwerze przez platformę, a następnie struktura generuje znacznik HTML, który może renderować przeglądarka. Strona ASP.NET Web Forms przedstawia użytkownikowi informacje w dowolnej przeglądarce lub urządzeniu klienckim.
Za pomocą programu Visual Studio można utworzyć ASP.NET Web Forms. Zintegrowane środowisko projektowe (IDE) programu Visual Studio umożliwia przeciąganie i upuszczanie kontrolek serwera, aby ułożyć stronę Web Forms. Następnie można łatwo ustawić właściwości, metody i zdarzenia dla kontrolek na stronie lub dla samej strony. Te właściwości, metody i zdarzenia służą do definiowania zachowania strony internetowej, wyglądu i działania itd. Aby napisać kod serwera do obsługi logiki dla strony, możesz użyć języka .NET, takiego jak Visual Basic lub C#.
Uwaga
ASP.NET i dokumentacja programu Visual Studio obejmuje kilka wersji. Tematy, które podkreślają funkcje z poprzednich wersji, mogą być przydatne w przypadku bieżących zadań i scenariuszy korzystających z najnowszych wersji.
ASP.NET Web Forms to:
- W oparciu o technologię ASP.NET firmy Microsoft, w której kod uruchamiany na serwerze dynamicznie generuje dane wyjściowe strony internetowej do przeglądarki lub urządzenia klienckiego.
- Zgodne z dowolną przeglądarką lub urządzeniem przenośnym. Strona ASP.NET sieci Web automatycznie renderuje prawidłowy kod HTML zgodny z przeglądarką dla funkcji, takich jak style, układ itd.
- Zgodne z dowolnym językiem obsługiwanym przez środowisko uruchomieniowe języka wspólnego platformy .NET, takie jak Microsoft Visual Basic i Microsoft Visual C#.
- Oparte na .NET Framework firmy Microsoft. Zapewnia to wszystkie zalety platformy, w tym środowisko zarządzane, bezpieczeństwo typów i dziedziczenie.
- Elastyczny, ponieważ można dodawać do nich kontrolki utworzone przez użytkownika i inne firmy.
oferta ASP.NET Web Forms:
- Rozdzielenie kodu HTML i innego kodu interfejsu użytkownika z logiki aplikacji.
- Rozbudowany zestaw kontrolek serwera do typowych zadań, w tym dostępu do danych.
- Zaawansowane powiązanie danych z doskonałą obsługą narzędzi.
- Obsługa skryptów po stronie klienta wykonywanych w przeglądarce.
- Obsługa różnych innych funkcji, takich jak routing, zabezpieczenia, wydajność, internacjonalizacja, testowanie, debugowanie, obsługa błędów i zarządzanie stanami.
ASP.NET Web Forms pomaga przezwyciężyć wyzwania
Programowanie aplikacji internetowych stwarza wyzwania, które zwykle nie występują podczas programowania tradycyjnych aplikacji opartych na klientach. Wśród wyzwań są:
- Implementowanie rozbudowanego interfejsu użytkownika sieci Web — projektowanie i implementowanie interfejsu użytkownika przy użyciu podstawowych obiektów HTML może być trudne i żmudne, zwłaszcza jeśli strona ma złożony układ, dużą ilość zawartości dynamicznej i pełnoekranowe obiekty interakcyjne.
- Separacja klienta i serwera — w aplikacji internetowej klient (przeglądarka) i serwer są różne programy często działające na różnych komputerach (a nawet w różnych systemach operacyjnych). W związku z tym dwie połówki aplikacji mają bardzo mało informacji; mogą komunikować się, ale zazwyczaj wymieniają tylko małe fragmenty prostych informacji.
- Wykonywanie bezstanowe — gdy serwer sieci Web odbiera żądanie dla strony, znajduje stronę, przetwarza ją, wysyła ją do przeglądarki, a następnie odrzuca wszystkie informacje o stronie. Jeśli użytkownik ponownie zażąda tej samej strony, serwer powtórzy całą sekwencję, ponownie przetwarzając stronę od podstaw. Mówiąc inaczej, serwer nie ma pamięci stron, które zostały przetworzone — strona jest bezstanowa. W związku z tym, jeśli aplikacja musi przechowywać informacje o stronie, jej bezstanowy charakter może stać się problemem.
- Nieznane możliwości klienta — w wielu przypadkach aplikacje internetowe są dostępne dla wielu użytkowników korzystających z różnych przeglądarek. Przeglądarki mają różne możliwości, co utrudnia utworzenie aplikacji, która będzie działać równie dobrze na wszystkich z nich.
- Komplikacje związane z dostępem do danych — odczytywanie i zapisywanie w źródle danych w tradycyjnych aplikacjach internetowych może być skomplikowane i intensywnie obciążające zasoby.
- Komplikacje związane ze skalowalnością — w wielu przypadkach aplikacje internetowe zaprojektowane z istniejącymi metodami nie spełniają celów skalowalności ze względu na brak zgodności między różnymi składnikami aplikacji. Często jest to typowy punkt awarii aplikacji w ramach dużego cyklu wzrostu.
Sprostanie tym wyzwaniom w przypadku aplikacji internetowych może wymagać znacznego czasu i wysiłku. ASP.NET Web Forms i struktura ASP.NET sprostać tym wyzwaniom w następujący sposób:
- Intuicyjny, spójny model obiektów — struktura stron ASP.NET przedstawia model obiektów, który umożliwia myślenie o formularzach jako jednostce, a nie jako osobnych elementach klienta i serwera. W tym modelu można programować stronę w bardziej intuicyjny sposób niż w tradycyjnych aplikacjach internetowych, w tym możliwość ustawiania właściwości elementów strony i reagowania na zdarzenia. Ponadto kontrolki serwera ASP.NET są abstrakcją od fizycznej zawartości strony HTML i bezpośredniej interakcji między przeglądarką a serwerem. Ogólnie rzecz biorąc, można użyć kontrolek serwera tak, jak można pracować z kontrolkami w aplikacji klienckiej i nie trzeba myśleć o sposobie tworzenia kodu HTML do prezentowania i przetwarzania kontrolek i ich zawartości.
- Model programowania opartego na zdarzeniach — ASP.NET Web Forms przenieść do aplikacji internetowych znany model zapisywania procedur obsługi zdarzeń dla zdarzeń występujących na kliencie lub serwerze. Struktura strony ASP.NET abstrahuje ten model w taki sposób, że podstawowy mechanizm przechwytywania zdarzenia na kliencie, przesyłania go na serwer i wywoływania odpowiedniej metody jest automatycznie i niewidoczny dla Ciebie. Wynikiem jest jasna, łatwo napisana struktura kodu, która obsługuje programowanie oparte na zdarzeniach.
- Intuicyjne zarządzanie stanem — struktura strony ASP.NET automatycznie obsługuje zadanie utrzymywania stanu strony i jej kontrolek oraz zapewnia jawne sposoby zachowania stanu informacji specyficznych dla aplikacji. Jest to realizowane bez dużego wykorzystania zasobów serwera i można je zaimplementować za pomocą plików cookie lub bez wysyłania plików cookie do przeglądarki.
- Aplikacje niezależne od przeglądarki — platforma stron ASP.NET umożliwia tworzenie całej logiki aplikacji na serwerze, eliminując konieczność jawnego kodowania różnic w przeglądarkach. Jednak nadal umożliwia korzystanie z funkcji specyficznych dla przeglądarki przez napisanie kodu po stronie klienta w celu zapewnienia lepszej wydajności i bogatszego środowiska klienta.
- .NET Framework obsługa środowiska uruchomieniowego języka wspólnego — struktura stron ASP.NET jest oparta na .NET Framework, więc cała struktura jest dostępna dla dowolnej aplikacji ASP.NET. Aplikacje można napisać w dowolnym języku zgodnym ze środowiskiem uruchomieniowym. Ponadto dostęp do danych jest uproszczony przy użyciu infrastruktury dostępu do danych udostępnianej przez .NET Framework, w tym ADO.NET.
- .NET Framework skalowalną wydajność serwera — struktura stron ASP.NET umożliwia skalowanie aplikacji internetowej z jednego komputera z jednym procesorem do farmy sieci Web z wieloma komputerami i bez skomplikowanych zmian logiki aplikacji.
Funkcje ASP.NET Web Forms
- Kontrolki serwera — ASP.NET kontrolki serwera sieci Web są obiektami na ASP.NET stronach sieci Web uruchamianych po żądaniu strony i renderowaniu znaczników w przeglądarce. Wiele kontrolek serwera sieci Web jest podobnych do znanych elementów HTML, takich jak przyciski i pola tekstowe. Inne kontrolki obejmują złożone zachowanie, takie jak kontrolki kalendarza i kontrolki, których można użyć do nawiązywania połączenia ze źródłami danych i wyświetlania danych.
- Strony wzorcowe — ASP.NET strony wzorcowe umożliwiają tworzenie spójnego układu stron w aplikacji. Pojedyncza strona wzorcowa definiuje wygląd i zachowanie standardowe, które ma być używane dla wszystkich stron (lub grupy stron) w aplikacji. Następnie można utworzyć poszczególne strony zawartości zawierające zawartość, którą chcesz wyświetlić. Gdy użytkownicy żądają stron zawartości, scalają się ze stroną wzorcową, aby wygenerować dane wyjściowe, które łączą układ strony wzorcowej z zawartością na stronie zawartości.
- Praca z danymi — ASP.NET oferuje wiele opcji przechowywania, pobierania i wyświetlania danych. W aplikacji ASP.NET Web Forms używasz kontrolek powiązanych z danymi, aby zautomatyzować prezentację lub wprowadzanie danych w elementach interfejsu użytkownika strony internetowej, takich jak tabele i pola tekstowe i listy rozwijane.
- Członkostwo — ASP.NET Identity przechowuje poświadczenia użytkowników w bazie danych utworzonej przez aplikację. Gdy użytkownicy logują się, aplikacja weryfikuje swoje poświadczenia, odczytując bazę danych. Folder Konto projektu zawiera pliki implementujące różne części członkostwa: rejestrowanie, logowanie, zmienianie hasła i autoryzowanie dostępu. Ponadto ASP.NET Web Forms obsługuje protokół OAuth i OpenID. Te ulepszenia uwierzytelniania umożliwiają użytkownikom logowanie się do witryny przy użyciu istniejących poświadczeń, takich jak Facebook, Twitter, Windows Live i Google. Domyślnie szablon tworzy bazę danych członkostwa przy użyciu domyślnej nazwy bazy danych w wystąpieniu bazy danych SQL Server Express LocalDB, serwera bazy danych programistycznej, który jest dostarczany z Visual Studio Express 2013 dla sieci Web.
- Skrypt klienta i struktury klienta — możesz ulepszyć funkcje oparte na serwerze ASP.NET, włączając funkcje skryptu klienta na stronach formularza internetowego ASP.NET. Możesz użyć skryptu klienta, aby zapewnić użytkownikom bogatszy, bardziej dynamiczny interfejs użytkownika. Skrypt klienta umożliwia również wykonywanie wywołań asynchronicznych na serwerze sieci Web, gdy strona jest uruchomiona w przeglądarce.
- Routing — routing adresów URL umożliwia skonfigurowanie aplikacji do akceptowania adresów URL żądań, które nie są mapowanie na pliki fizyczne. Adres URL żądania to po prostu adres URL, który użytkownik wprowadza w przeglądarce, aby znaleźć stronę w witrynie sieci Web. Routing służy do definiowania adresów URL, które są semantycznie zrozumiałe dla użytkowników i które mogą pomóc w optymalizacji wyszukiwarki (SEO).
- Zarządzanie stanami — ASP.NET Web Forms zawiera kilka opcji, które ułatwiają zachowanie danych zarówno na poszczególnych stronach, jak i dla całej aplikacji.
- Zabezpieczenia — ważną częścią tworzenia bezpieczniejszej aplikacji jest zrozumienie zagrożeń. Firma Microsoft opracowała sposób kategoryzowania zagrożeń: fałszowanie, manipulowanie, odrzucanie, ujawnienie informacji, odmowa usługi, podniesienie uprawnień (STRIDE). W ASP.NET Web Forms można dodać punkty rozszerzalności i opcje konfiguracji, które umożliwiają dostosowywanie różnych zachowań zabezpieczeń w ASP.NET Web Forms.
- Wydajność — wydajność może być kluczowym czynnikiem w udanej witrynie sieci Web lub projekcie. ASP.NET Web Forms umożliwia modyfikowanie wydajności związanej z przetwarzaniem stron i serwerem, zarządzaniem stanem, dostępem do danych, konfiguracją aplikacji i ładowaniem oraz wydajnymi praktykami kodowania.
- Internacjonalizacja — ASP.NET Web Forms umożliwia tworzenie stron internetowych, które mogą uzyskiwać zawartość i inne dane na podstawie preferowanego ustawienia języka przeglądarki lub na podstawie jawnego wyboru języka użytkownika. Zawartość i inne dane są określane jako zasoby, a takie dane mogą być przechowywane w plikach zasobów lub innych źródłach. Na stronie ASP.NET Web Forms skonfigurujesz kontrolki w celu pobrania ich wartości właściwości z zasobów. W czasie wykonywania wyrażenia zasobów są zastępowane przez zasoby z odpowiedniego zlokalizowanego pliku zasobów.
- Debugowanie i obsługa błędów — ASP.NET zawiera funkcje ułatwiające diagnozowanie problemów, które mogą wystąpić w aplikacji Web Forms. Obsługa debugowania i błędów jest dobrze obsługiwana w ASP.NET Web Forms, dzięki czemu aplikacje kompilują i działają skutecznie.
- Wdrażanie i hosting — program Visual Studio, ASP.NET, platforma Azure i usługi IIS udostępnia narzędzia ułatwiające proces wdrażania i hostowania aplikacji Web Forms.
Podejmowanie decyzji o tym, kiedy utworzyć aplikację Web Forms
Należy dokładnie rozważyć, czy zaimplementować aplikację internetową przy użyciu modelu ASP.NET Web Forms lub innego modelu, takiego jak ASP.NET platformy MVC. Struktura MVC nie zastępuje modelu Web Forms; można użyć jednej ze struktur dla aplikacji internetowych. Przed podjęciem decyzji o użyciu modelu Web Forms lub platformy MVC dla określonej witryny sieci Web należy rozważyć zalety każdego podejścia.
Zalety aplikacji internetowej Forms-Based sieci Web
Platforma oparta na Web Forms oferuje następujące korzyści:
- Obsługuje ona model zdarzeń, który zachowuje stan za pośrednictwem protokołu HTTP, co zapewnia korzyści z tworzenia aplikacji internetowych biznesowych. Aplikacja oparta na Web Forms udostępnia dziesiątki zdarzeń obsługiwanych w setkach kontrolek serwera.
- Używa wzorca kontrolera strony, który dodaje funkcje do poszczególnych stron. Aby uzyskać więcej informacji, zobacz Kontroler strony.
- Używa on formularzy stanu widoku lub opartych na serwerze, co ułatwia zarządzanie informacjami o stanie.
- Działa dobrze w przypadku małych zespołów deweloperów sieci Web i projektantów, którzy chcą korzystać z dużej liczby składników dostępnych do szybkiego tworzenia aplikacji.
- Ogólnie rzecz biorąc, tworzenie aplikacji jest mniej złożone, ponieważ składniki (klasa strony , kontrolki itd.) są ściśle zintegrowane i zwykle wymagają mniej kodu niż model MVC.
Zalety aplikacji internetowej MVC-Based
Struktura ASP.NET MVC oferuje następujące korzyści:
- Ułatwia zarządzanie złożonością, dzieląc aplikację na model, widok i kontroler.
- Nie używa on formularzy stanu widoku ani formularzy opartych na serwerze. Dzięki temu platforma MVC jest idealna dla deweloperów, którzy chcą mieć pełną kontrolę nad zachowaniem aplikacji.
- Używa wzorca kontrolera frontonu, który przetwarza żądania aplikacji internetowej za pośrednictwem jednego kontrolera. Dzięki temu można zaprojektować aplikację, która obsługuje zaawansowaną infrastrukturę routingu. Aby uzyskać więcej informacji, zobacz Kontroler frontu.
- Zapewnia lepszą obsługę programowania opartego na testach (TDD).
- Działa dobrze w przypadku aplikacji internetowych, które są obsługiwane przez duże zespoły deweloperów i projektantów sieci Web, którzy potrzebują wysokiego stopnia kontroli nad zachowaniem aplikacji.