WIADOMOSCI FIRMOWE

Od dymu do gleby: Aktualizacja naszego projektu biowęgla w północnej Tajlandii

Większość deweloperów, po raz pierwszy gdy musi dodać raportowanie PDF do aplikacji wewnętrznej, traci dzień.

Próbują dialogu drukowania przeglądarki. Wynik jest niepoprawny. Próbują biblioteki PDF po stronie klienta. Układ się łamie. Sami tworzą coś z tekstem pozalokalizowanym i współrzędnymi absolutnymi. Działa dla jednego raportu, a potem się rozpada dla kolejnego. Zanim wprowadzą funkcję na rynek, spalili osiem godzin na problemie, który powinien był zająć dwadzieścia minut.

Jeff Fritz pokazał pełnej sali początkujących, jak to zrobić w dwadzieścia minut.

Warsztat

Jeśli nie znasz Jeffa Fritza: jest on Microsoft MVP, głównym kierownikiem programu w Microsoft i gospodarzem długo działającego streamu Fritz and Friends. Prowadzi darmowe warsztaty dla deweloperów, którzy są na wczesnym etapie swojej drogi .NET, a kilka tygodni temu zorganizował jeden z najbardziej ambitnych: pięciogodzinne żywe budowanie obejmujące HTML, CSS, C#, Blazor, ASP.NET i .NET Aspire, gdzie cała grupa buduje działającą aplikację śledzenia kolekcji od podstaw.

Po czterech godzinach aplikacja wymagała raportów PDF. Użytkownik powinien móc kliknąć przycisk i otrzymać czysty, możliwy do pobrania PDF swojej kolekcji. Rzeczywiste narzędzia wewnętrzne. Rodzaj funkcji, o którą ostatecznie prosi każdy menedżer produktów i którą ostatecznie każdy deweloper musi wprowadzić.

Wzór, którego uczy Jeff, to ten, który powinny stosować większość zespołów, i warto go omówić, ponieważ gdy go zobaczysz, przestaniesz sięgać po złe narzędzia.

Zainstaluj IronPDF za darmo

Warsztat Jeffa Fritza IronPDF — budowanie na żywo dla początkujących .NET

Wzór w pięciu krokach

Oto jego kształt. Jest zwodniczo krótki.

  1. Dedykowana strona Razor dla raportu. Jeff tworzy Report.razor w katalogu Pages projektu. Mały wybór, wielkie zyski, trzymanie raportu jako własnej strony oznacza, że można go stylizować, regenerować i testować niezależnie od reszty interfejsu użytkownika. Raport staje się pełnowartościową częścią aplikacji, a nie dziwnym dodatkiem do innego widoku.

  2. Wstrzyknij kontekst danych. Fabryka Entity Framework Core CollectionContext zostaje wprowadzona przez wstrzykiwanie zależności, dokładnie tak jak każdy inny punkt pobierania danych w aplikacji. Bez specjalnych wzorców, bez obejść, bez osobnej ścieżki danych tylko dla raportów. Raport używa tych samych danych, co reszta aplikacji, w ten sam sposób.

  3. Renderuj raport jako HTML. To jest ruch, który oddziela dobry wzorzec od kruchego. Jeff nie sięga po język układu specyficzny dla PDF. Pisze raport jako HTML, ten sam znacznik, którego używał przez całe popołudnie i pozwala na pracę istniejącego stylu. Nagłówki, tabele, sekcje, wszystko w HTML. Fakt, że ostateczny rezultat to PDF, to szczegół, który pojawia się później.

  4. Konwertuj HTML na PDF w jednej linii. To tutaj IronPDF zdobywa swoje miejsce. ChromePdfRenderer pobiera ciąg HTML i produkuje rzeczywisty, poprawnie zrenderowany PDF, używając pod maską silnika Chrome. CSS, który wygląda dobrze w przeglądarce, wygląda dobrze w PDF. Brak oddzielnej warstwy stylizacyjnej do nauki, brak dziwactw renderujących do debugowania.

  5. Zwróć go jako plik. Przeglądarka pobiera PDF czysto, gdy użytkownik kliknie przycisk. Zrobione. Funkcja wdrożona.

Pięcioetapowy wzorzec raportowania PDF z warsztatu Jeffa Fritza na .NET

To jest cały wzorzec. Pięć kroków, dwadzieścia minut czasu transmitowania i funkcja, która działa w produkcji.

Dlaczego to działa

Głębszym powodem, dla którego ten wzorzec jest właściwy, jest trwałość, ale na powierzchni każdy krok odpowiada czemuś, co programista już wie, jak to zrobić.

Pisanie układu raportu? To HTML i CSS, tak samo jak każda inna strona. Zapytania dotyczące danych? Ten sam wzorzec EF Core. Podłączanie strony do aplikacji? Te same strony Razor, to samo DI. Jedynym prawdziwie nowym krokiem jest konwersja na PDF, a to jest jedna linia.

Porównaj to z alternatywami. Podejścia z dialogiem drukowania przerywają działanie, gdy użytkownik ma inną przeglądarkę, inny poziom przybliżenia lub nieoczekiwane ustawienie drukarki. Biblioteki PDF po stronie klienta zmuszają programistę do nauki zupełnie nowego języka układu. Układy oparte na współrzędnych tworzone ręcznie działają dla jednego raportu i upadają przy drugim. Żadne z tych podejść nie wytrzymuje kontaktu z rzeczywistym produktem.

Wzorzec HTML-to-PDF po stronie serwera wytrzymuje. Wyjście jest spójne, deterministyczne i scentralizowane, to samo wejście produkuje ten sam PDF za każdym razem, na każdym kliencie, ponieważ renderowanie odbywa się w jednym miejscu na jednych zasadach. Dla narzędzi wewnętrznych, raportów dla klientów, dokumentów ścieżki audytu, wszędzie tam, gdzie spójność danych ma znaczenie, to jest wzorzec, który wytrzymuje.

Ten warsztat uczy go czysto, ponieważ nie ma czasu, by nauczać go w inny sposób.

Wypróbuj go w swoim projekcie

Bezpłatna wersja próbna IronPDF — buduj wzorzec PDF z warsztatu Jeffa Fritza

Biblioteka, której Jeff używa do kroku konwersji, IronPDF, jest darmowa do wypróbowania z 30-dniowym kluczem próbnym. Zarejestruj się za pomocą e-maila biznesowego, klucz przychodzi na Twoją skrzynkę odbiorczą i możesz zbudować dokładny wzorzec, którego uczy Jeff Fritz, w swoim własnym projekcie przed końcem popołudnia. Brak znaków wodnych w trakcie próbnej wersji, pełny dostęp do funkcji, dostępne każde API.

Jeśli odkładałeś dodanie raportowania PDF, ponieważ za ostatnim razem, gdy próbowałeś, zajęło to cały dzień, to jest wersja projektu, która zajmuje dwadzieścia minut.

Rozpocznij swoją darmową wersję próbną IronPDF

Obejrzyj pełny warsztat

Cała sesja Jeffa jest na jego kanale YouTube. Segment raportowania PDF zaczyna się o 4:56:48, ale wcześniejsze moduły również są warte Twojego czasu, są czystym wprowadzeniem do współczesnego stacka .NET, a nauczanie Jeffa jest naprawdę dobre.

Watch on YouTube