Wprowadzenie do Blazor deweloperów ASP.NET Web Forms
Napiwek
Ta zawartość jest fragmentem książki eBook Blazor dla deweloperów formularzy internetowych platformy ASP NET dla platformy Azure, dostępnym na platformie .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 wysłania programu .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 formularzach sieci Web strony sieci Web mogą być szybko komponowane z kontrolek interfejsu użytkownika wielokrotnego użytku. Interakcje użytkownika są obsługiwane naturalnie jako zdarzenia. Istnieje bogaty ekosystem kontrolek interfejsu użytkownika formularzy internetowych udostępnianych przez firmę Microsoft i dostawców kontroli. Kontrolki ułatwiają nawiązywanie połączenia ze źródłami danych i wyświetlanie rozbudowanych wizualizacji danych. W przypadku wizualizacji projektant formularzy internetowych udostępnia prosty interfejs przeciągania i upuszczania do zarządzania kontrolkami.
Od lat firma Microsoft wprowadziła nową platformę ASP. Platformy internetowe oparte na platformie NET umożliwiające rozwiązywanie problemów z trendami tworzenia aplikacji internetowych. Niektóre takie struktury sieci Web obejmują 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 prostą, stabilną i wydajną drogę do wykonania 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 pomyślana. Argumenty dotyczące zalet i wad ASP.NET Web Forms w porównaniu z innymi nowymi platformami internetowymi platformy .NET mogą być wściekłe. ASP.NET Web Forms pozostaje popularną strukturą 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. W szczególności warto wziąć pod uwagę dwa trendy:
- Przejście do typu open source i międzyplatformowego
- Zmiana logiki aplikacji na klienta
Platforma .NET typu open source i międzyplatformowa
Po pierwszym wysłaniu platformy .NET i ASP.NET Web Forms 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 uzyskaniem trakcji. 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, takich jak obsługa wielu platform dla wielu użytkowników jest absolutnym wymaganiem.
Większość nowoczesnych platform internetowych jest teraz również typu open source, co ma wiele korzyści. Użytkownicy nie są podtrzymani do 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 korzystają ze współtworzenia przez całą społeczność i wspierają wspierający 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 zaradcze obejmują umowy licencyjne współautora, przyjazne licencje, skany rodowodów i pomocnicze podstawy.
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. Platforma Xamarin udostępnia platformę Mono, wersję typu open source platformy .NET. Mono działa w systemach Android, iOS i różnych innych formach, w tym zegarkach i inteligentnych telewizorach. W 2020 r. firma Microsoft wydała platformę .NET 5 , która uzgodniła platformę .NET Core i Mono z "jednym środowiskiem uruchomieniowym i strukturą platformy .NET, która może być używana wszędzie i która ma jednolite zachowania środowiska uruchomieniowego i środowiska deweloperskie".
Czy ASP.NET web forms skorzysta z przejścia do obsługi typu open source i międzyplatformowego? Odpowiedź, niestety, nie jest, lub 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?
W pierwszych dniach programu .NET Core podjęto działania związane z przenoszeniem ASP.NET Web Forms. Stwierdzono, że liczba zmian powodujących niezgodność była zbyt drastyczna. Istnieje również wstęp, że nawet w przypadku firmy Microsoft istnieje ograniczenie liczby platform internetowych, które może obsługiwać jednocześnie. Być może ktoś w społeczności zajmie się przyczyną utworzenia wersji open source i międzyplatformowej ASP.NET Web Forms. Kod źródłowy ASP.NET Web Forms został udostępniony publicznie w formularzu referencyjnym. Ale na razie wydaje się, że ASP.NET Web Forms pozostanie tylko 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 nie jest już używana i nie powinna być już używana? Oczywiście nie! Jeśli platforma .NET Framework jest dostarczana w ramach systemu Windows, ASP.NET Web Forms będzie obsługiwaną strukturą. W przypadku wielu deweloperów formularzy internetowych brak obsługi międzyplatformowej i typu open source nie jest problemem. Jeśli nie masz wymogu obsługi międzyplatformowej, typu open source 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 to jest zmiana na klienta.
Tworzenie aplikacji internetowych po stronie klienta
Wszystkie . Struktury internetowe oparte na platformie NET, w tym ASP.NET Web Forms, historycznie miały jedną wspólną strukturę: są one renderowane na serwerze. 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 w celu obsługi. W tym modelu przeglądarka jest używana jako aparat renderowania elastycznego. 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ę wszechstronną platformą. Implementują coraz większą liczbę otwartych standardów sieci Web, które zapewniają dostęp do możliwości komputera użytkownika. Dlaczego nie warto korzystać z mocy obliczeniowej, magazynu, pamięci i innych zasobów urządzenia klienckiego? W szczególności interakcje interfejsu użytkownika mogą korzystać z bogatszego i bardziej interaktywnego działania 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ć język 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ść. ASP.NET deweloperzy formularzy internetowych mogą również korzystać z korzystania z klienta, a nawet mieć wbudowaną obsługę zintegrowanych platform 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, strukturami 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 ma historię ewolucji z przełomową prędkością. Preferencje narzędzi frontonu i narzędzi kompilacji zmieniają się szybko. Przemysł zaobserwował progresję z Grunt do Gulp do Webpack itd. Wystąpił ten sam niespokojny współczynnik zmian w strukturach frontonu, takich jak jQuery, Knockout, Angular, React i Vue. Ale biorąc pod uwagę monopol przeglądarki w języku JavaScript, 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 dostawcy przeglądarki połączyli siły w grupie społeczności W3C, aby utworzyć nowy otwarty standard internetowy o nazwie WebAssembly. WebAssembly to kod bajtowy sieci Web. Jeśli możesz skompilować kod do WebAssemblyelementu , 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 aparató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 WebAssembly platformie zostały ogłoszone pod koniec 2017 r. i wydane w 2020 r., w tym wsparcie na platformie .NET 5 i nie tylko. 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 w pełnym stosie za pomocą platformy .NET
Samodzielnie możliwość uruchamiania kodu platformy .NET w przeglądarce nie zapewnia kompleksowego środowiska tworzenia aplikacji internetowych po stronie klienta. Tam Blazor przychodzi. Blazor to platforma internetowego interfejsu użytkownika po stronie klienta oparta na języku C# zamiast języka JavaScript. Blazor program może działać bezpośrednio w przeglądarce za pomocą polecenia WebAssembly. Nie są wymagane żadne wtyczki przeglądarki. Alternatywnie Blazor aplikacje mogą uruchamiać 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łą obsługę narzędzi w programach Visual Studio i Visual Studio Code. Struktura zawiera również pełny model składnikó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
- Międzyoperacyjność w języku JavaScript
Blazor ma wiele wspólnego z ASP.NET Web Forms. Obie struktury oferują oparte na składnikach, oparte na zdarzeniach modele programowania stanowego 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ć na kliencie w przeglądarce. Ale jeśli pochodzisz z ASP.NET tła formularzy internetowych, istnieje wiele w Blazor tym stanie. Blazor to naturalne rozwiązanie dla deweloperów ASP.NET Web Forms, którzy szukają sposobu korzystania z programowania po stronie klienta i międzyplatformowej przyszłości platformy .NET.
Ta książka zawiera wprowadzenie do Blazor tego, które jest przeznaczone specjalnie dla deweloperów ASP.NET Web Forms. Każda Blazor koncepcja jest przedstawiona w kontekście analogicznych ASP.NET funkcji i praktyk formularzy internetowych. Po zakończeniu tej książki będziesz mieć wiedzę na temat:
- Jak tworzyć Blazor aplikacje.
- 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 odpowiednich miejsc.
Zacznij korzystać z usługi Blazor
Wprowadzenie Blazor do usługi jest łatwe. Przejdź do https://blazor.net witryny i postępuj zgodnie z linkami, aby zainstalować odpowiedni zestaw .NET SDK i Blazor szablony projektów. Znajdziesz również instrukcje dotyczące konfigurowania Blazor narzędzi w programie Visual Studio lub Visual Studio Code.