Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazówka
Ta zawartość jest fragmentem e-booka Blazor dla deweloperów aplikacji ASP NET Web Forms dla platformy Azure, dostępnym na .NET Docs lub jako bezpłatny plik PDF do pobrania, który można odczytać w trybie offline.
Platforma ASP.NET Web Forms jest podstawą tworzenia aplikacji internetowych platformy .NET od czasu pierwszego wydania platformy .NET Framework w 2002 roku. Kiedy sieć Web była jeszcze w dużej mierze w powijakach, ASP.NET Web Forms sprawiły, że tworzenie aplikacji internetowych było proste i wydajne dzięki wdrożeniu wielu wzorców używanych do tworzenia aplikacji klasycznych. W ASP.NET Web Forms strony sieci Web mogą być szybko tworzone z kontrolek interfejsu użytkownika wielokrotnego użytku. Interakcje użytkownika są obsługiwane naturalnie jako zdarzenia. Istnieje bogaty ekosystem kontrolek interfejsu użytkownika Web Forms udostępnianych przez firmę Microsoft i dostawców kontrolek. Elementy sterujące ułatwiają nawiązywanie połączenia ze źródłami danych i wyświetlanie rozbudowanych wizualizacji danych. Dla osób preferujących pracę wizualną projektant formularzy internetowych udostępnia prosty interfejs przeciągania i upuszczania do zarządzania kontrolkami.
Z biegiem lat firma Microsoft wprowadzała nowe platformy internetowe oparte na ASP.NET, aby sprostać trendom w tworzeniu aplikacji internetowych. Do takich frameworków internetowych należą ASP.NET MVC, ASP.NET Web Pages, a ostatnio ASP.NET Core. W przypadku każdej nowej platformy niektórzy przewidzieli nieuchronny spadek ASP.NET Web Forms i skrytykowali ją jako przestarzałą, przestarzałą platformę internetową. Pomimo tych przewidywań wielu deweloperów sieci Web platformy .NET nadal znajduje ASP.NET Web Forms za prosty, stabilny i produktywny sposób wykonywania swojej pracy.
W czasie pisania prawie pół miliona deweloperów internetowych używa ASP.NET Web Forms co miesiąc. Platforma ASP.NET Web Forms jest stabilna do tego stopnia, że dokumenty, przykłady, książki i wpisy w blogu sprzed dekady pozostają przydatne i istotne. W przypadku wielu deweloperów internetowych platformy .NET „ASP.NET” jest nadal synonimem „ASP.NET Web Forms”, tak jak to było, gdy platforma .NET została po raz pierwszy opracowana. Argumenty dotyczące zalet i wad ASP.NET Web Forms w porównaniu z innymi nowymi platformami internetowymi platformy .NET mogą nadal trwać. ASP.NET Web Forms pozostaje popularnym frameworkiem do tworzenia aplikacji internetowych.
Mimo to innowacje w tworzeniu oprogramowania nie spowalniają. Wszyscy deweloperzy oprogramowania muszą być na bieżąco z nowymi technologiami i trendami. Warto wziąć pod uwagę zwłaszcza dwie tendencje:
- Przejście na rozwiązania open source i wieloplatformowe
- Przeniesienie logiki aplikacji po stronie klienta
Platforma .NET typu open source i międzyplatformowa
Gdy platformy .NET i ASP.NET Web Forms zostały po raz pierwszy udostępnione, ekosystem platformy wyglądał znacznie inaczej niż obecnie. Rynki komputerów stacjonarnych i serwerów były zdominowane przez system Windows. Alternatywne platformy, takie jak macOS i Linux, nadal miały trudności z zyskaniem popularności. ASP.NET web Forms są dostarczane z programem .NET Framework jako składnik tylko dla systemu Windows, co oznacza, że ASP.NET aplikacje Web Forms mogą być uruchamiane tylko na maszynach z systemem Windows Server. Wiele nowoczesnych środowisk używa teraz różnych rodzajów platform dla serwerów i maszyn programistycznych, w związku z czym obsługa wielu platform dla wielu użytkowników jest absolutnym wymaganiem.
Większość nowoczesnych frameworków webowych jest teraz również typu open source, co ma wiele korzyści. Użytkownicy nie są uzależnieni od jednego właściciela projektu w celu naprawienia usterek i dodania funkcji. Projekty typu open source zapewniają lepszą przejrzystość postępu opracowywania i nadchodzących zmian. Projekty typu open source czerpią korzyści z wkładu całej społeczności i wspierają otwarty ekosystem open source. Pomimo zagrożeń związanych z oprogramowaniem open source wielu konsumentów i współautorów znalazło odpowiednie środki zaradcze, które umożliwiają im korzystanie z zalet ekosystemu open source w bezpieczny i rozsądny sposób. Przykłady takich środków zaradczych obejmują umowy licencyjne współtwórcy, przyjazne licencje, skany pochodzenia i fundacje wspierające.
Społeczność platformy .NET przyjęła zarówno obsługę międzyplatformową, jak i open source. .NET Core to implementacja platformy .NET typu open source i międzyplatformowa, która działa na wielu platformach, w tym w systemach Windows, macOS i różnych dystrybucjach systemu Linux. Mono to wersja platformy .NET typu open source, która działa w systemach Android, iOS i na różnych innych typach urządzeń, w tym zegarkach i inteligentnych telewizorach. W 2020 r. firma Microsoft wydała platformę .NET 5, która połączyła platformę .NET Core i Mono w „jedno środowisko uruchomieniowe i framework .NET, które może być używane wszędzie i które ma jednolite zachowania środowiska uruchomieniowego i doświadczenia deweloperskie”.
Czy ASP.NET web forms skorzysta z przejścia do obsługi typu open source i wieloplatformowej? Odpowiedź, niestety, brzmi: nie, a przynajmniej nie w tym samym stopniu co reszta platformy. Zespół platformy .NET wyjaśnił , że ASP.NET Web Forms nie zostaną przeniesione do platformy .NET Core ani .NET 8. Dlaczego tak jest?
We wczesnym okresie istnienia .NET Core podjęto działania związane z przenoszeniem ASP.NET Web Forms. Stwierdzono, że liczba niekompatybilnych zmian była zbyt duża. Jest tu również przyznanie, że nawet w przypadku firmy Microsoft istnieje ograniczenie liczby frameworków internetowych, które może obsługiwać jednocześnie. Być może ktoś w społeczności podejmie się stworzenia otwartoźródłowej i międzyplatformowej wersji ASP.NET Web Forms. Kod źródłowy ASP.NET Web Forms został udostępniony publicznie w formie referencyjnej. Ale na razie wydaje się, że ASP.NET Web Forms pozostanie wyłącznie dla systemu Windows i bez modelu współtworzenia open source. Jeśli obsługa międzyplatformowa lub open source stają się ważne dla Twoich scenariuszy, należy wyszukać coś nowego.
Czy oznacza to, że ASP.NET Web Forms jest martwy i nie powinien już być używany? Oczywiście nie! Dopóki platforma .NET Framework jest dostarczana w ramach systemu Windows, ASP.NET Web Forms będzie obsługiwanym frameworkiem. Dla wielu deweloperów Web Forms brak obsługi międzyplatformowej i otwartego kodu źródłowego nie jest problemem. Jeśli nie masz wymogu obsługi międzyplatformowej, otwartego kodu źródłowego lub innych nowych funkcji platformy .NET Core lub .NET 8, to trzymanie się ASP.NET Web Forms w systemie Windows jest w porządku. ASP.NET Web Forms będzie nadal produktywnym sposobem pisania aplikacji internetowych przez wiele lat.
Ale jest inny trend, który warto wziąć pod uwagę, i jest nim przesunięcie w stronę klienta.
Programowanie po stronie klienta
Wszystkie frameworki internetowe oparte na platformie .NET, w tym ASP.NET Web Forms, historycznie miały jedną wspólną cechę: były renderowane po stronie serwera. W aplikacjach internetowych renderowanych na serwerze przeglądarka wysyła żądanie do serwera, który wykonuje kod (kod platformy .NET w aplikacjach ASP.NET), aby utworzyć odpowiedź. Ta odpowiedź jest wysyłana z powrotem do przeglądarki, aby przeglądarka mogła ją obsłużyć. W tym modelu przeglądarka jest używana jako lekki silnik renderujący. Ciężka praca nad tworzeniem interfejsu użytkownika, uruchamianiem logiki biznesowej i zarządzaniem stanem odbywa się na serwerze.
Jednak przeglądarki stały się wszechstronnymi platformami. Implementują coraz większą liczbę otwartych standardów sieci Web, które zapewniają dostęp do możliwości komputera użytkownika. Dlaczego nie skorzystać z mocy obliczeniowej, pamięci masowej, pamięci i innych zasobów urządzenia klienckiego? W szczególności interakcje interfejsu użytkownika mogą zyskać bogatszy, bardziej interaktywny charakter w przypadku obsługi co najmniej częściowo lub całkowicie po stronie klienta. Logika i dane, które powinny być obsługiwane na serwerze, nadal mogą być obsługiwane po stronie serwera. Można używać wywołań internetowego interfejsu API, a nawet protokołów czasu rzeczywistego, takich jak WebSocket. Te korzyści są dostępne dla deweloperów internetowych bezpłatnie, jeśli chcą pisać w języku JavaScript. Platformy interfejsu użytkownika po stronie klienta, takie jak Angular, React i Vue, upraszczają tworzenie aplikacji internetowych po stronie klienta i zyskały popularność. Deweloperzy ASP.NET Web Forms mogą również czerpać korzyści z wykorzystania klienta, a nawet korzystać z gotowej obsługi zintegrowanych frameworków JavaScript, takich jak ASP.NET AJAX.
Jednak mostkowanie dwóch różnych platform i ekosystemów (.NET i JavaScript) wiąże się z kosztami. Doświadczenie jest wymagane w dwóch równoległych światach z różnymi językami, frameworkami i narzędziami. Nie można łatwo współdzielić kodu i logiki między klientem a serwerem, co powoduje duplikowanie i obciążenie inżynieryjne. Może być również trudno nadążyć za ekosystemem języka JavaScript, który rozwija się w zawrotnym tempie. Preferencje dotyczące frameworków front-endowych i narzędzi kompilacji zmieniają się szybko. Branża zaobserwowała progresję od Grunt przez Gulp po Webpack itd. Te same ciągłe zmiany wystąpiły w frameworkach front-endowych, takich jak jQuery, Knockout, Angular, React i Vue. Ale biorąc pod uwagę monopol JavaScriptu w przeglądarkach, w tej sprawie niewiele było wyboru. To znaczy, aż społeczność internetowa zebrała się i spowodowała cud !
WebAssembly spełnia potrzebę
W 2015 r. główni producenci przeglądarek połączyli siły w grupie społeczności W3C, aby utworzyć nowy otwarty standard internetowy o nazwie WebAssembly. WebAssembly to kod bajtowy dla sieci Web. Jeśli możesz skompilować kod do WebAssembly, będzie można go uruchomić w dowolnej przeglądarce na dowolnej platformie z prędkością zbliżoną do natywnej. Początkowe wysiłki koncentrowały się na języku C/C++. Rezultatem był dramatyczny pokaz uruchamiania natywnych silników graficznych 3D bezpośrednio w przeglądarce bez wtyczek. WebAssembly od tego czasu został ustandaryzowany i wdrożony przez wszystkie główne przeglądarki.
Prace nad uruchamianiem platformy .NET na platformie WebAssembly zostały ogłoszone pod koniec 2017 r. i udostępniono je w 2020 r., w tym obsługę w platformie .NET 5 i nowszych wersjach. Możliwość uruchamiania kodu platformy .NET bezpośrednio w przeglądarce umożliwia tworzenie aplikacji internetowych w pełnym stosie za pomocą platformy .NET.
Blazor: tworzenie aplikacji internetowych full-stack za pomocą platformy .NET
Samodzielnie możliwość uruchamiania kodu platformy .NET w przeglądarce nie zapewnia kompleksowego rozwiązania do tworzenia aplikacji internetowych po stronie klienta. Tu z pomocą przychodzi Blazor. Blazor to platforma internetowego interfejsu użytkownika po stronie klienta oparta na języku C# zamiast języka JavaScript. Blazor może działać bezpośrednio w przeglądarce przez WebAssembly. Nie są wymagane żadne wtyczki przeglądarki. Alternatywnie Blazor aplikacje mogą działać po stronie serwera na platformie .NET i obsługiwać wszystkie interakcje użytkowników za pośrednictwem połączenia w czasie rzeczywistym z przeglądarką.
Blazor ma doskonałe wsparcie narzędziowe w programach Visual Studio i Visual Studio Code. Framework zawiera również pełny model komponentów interfejsu użytkownika i ma wbudowane funkcje:
- Formularze i walidacja
- Wstrzykiwanie zależności
- Routing po stronie klienta
- Układy
- Debugowanie w przeglądarce
- Interoperacyjność w JavaScript
Blazor ma wiele wspólnego z ASP.NET Web Forms. Oba frameworki oferują oparte na komponentach, sterowane zdarzeniami i stanowe modele programowania interfejsu użytkownika. Główną różnicą architektury jest to, że ASP.NET web forms działa tylko na serwerze. Blazor program może działać po stronie klienta w przeglądarce. Ale jeśli masz doświadczenie z ASP.NET Web Forms, wiele rzeczy w Blazor wyda Ci się znajomych. Blazor to naturalne rozwiązanie dla deweloperów ASP.NET Web Forms, którzy szukają sposobu, aby wykorzystać programowanie po stronie klienta oraz otwartoźródłową, międzyplatformową przyszłość platformy .NET.
Ta książka zawiera wprowadzenie do Blazor, które jest przeznaczone specjalnie dla deweloperów ASP.NET Web Forms. Każda Blazor koncepcja jest przedstawiona w kontekście analogicznych funkcji i praktyk ASP.NET Web Forms. Po zakończeniu tej książki będziesz mieć wiedzę na temat:
- Jak budować aplikacje Blazor.
- Jak Blazor to działa.
- Jak Blazor odnosi się do platformy .NET.
- Rozsądne strategie migracji istniejących aplikacji ASP.NET Web Forms do Blazor, tam, gdzie to właściwe.
Pierwsze kroki z Blazor
Rozpoczęcie pracy z Blazor jest łatwe. Przejdź do https://blazor.net i postępuj zgodnie z linkami, aby zainstalować odpowiedni zestaw .NET SDK i szablony projektów Blazor. Znajdziesz również instrukcje dotyczące konfigurowania narzędzi Blazor w programie Visual Studio lub Visual Studio Code.