SmokeからSoilへ:北タイにおけるバイオチャープロジェクトの最新情報
ほとんどの開発者は、初めて内部アプリにPDFレポートを追加するとき、1日を費やしてしまいます。
彼らはブラウザの印刷ダイアログを試します。 出力が間違っているようです。 彼らはクライアントサイドのPDFライブラリを試みます。 レイアウトが崩れます。 彼らはテキストを位置指定された絶対座標で手作業でロールしています。 一つのレポートでは動作しますが、次のレポートではうまくいきません。 彼らがこの機能を出荷するまでに、20分で終わるはずの問題に8時間を費やしてしまいました。
Jeff Fritzは初心者でいっぱいの部屋で、それを20分で行う方法を示しました。
ワークショップ
もしジェフ・フリッツをご存じない場合:彼はMicrosoft MVP、Microsoftのプリンシパルプログラムマネージャーであり、長年続くFritz and Friendsストリームのホストです。 彼は.NETの旅を始めたばかりの開発者のために無料ワークショップを開催していますが、数週間前に彼は最も野心的なもののひとつを実施しました。それは5時間にわたるライブビルドで、HTML、CSS、C#、Blazor、ASP.NET、.NET Aspireをカバーし、グループ全体がゼロから動作するコレクショントラッキングアプリケーションを構築するものでした。
4時間後、アプリケーションはPDFレポートが必要になりました。 ユーザーはボタンをクリックすることで、自分のコレクションのクリーンでダウンロード可能なPDFを取得できるようにすべきです。 実世界の内部ツールのこと。 最終的にすべての製品マネージャーが要求し、すべての開発者が出荷しなければならない種類の機能。
ジェフが教えるパターンは、多くのチームが使うべきものであり、それを観察する価値がある。なぜなら、一度見れば間違ったツールに手を伸ばさなくなるからだ。

5ステップのパターン
これがその形だ。 見た目よりも短い。
レポート用の専用Razorページ。 ジェフは、プロジェクトのPagesディレクトリ内にReport.razorを作成します。 小さな選択が大きな報酬を生み、レポートを独立したページとして保持することで、スタイル設定、再生成、およびUI全体からの独立したテストが可能になります。 レポートは、アプリケーションの重要な部分になり、他のビューに補強されたハックにはなりません。
データコンテキストを注入。 Entity Framework Core CollectionContextファクトリーは、依存性注入を通じてアプリケーション内の他のデータ取得ポイントと同様に入ってきます。 特別なパターンも、回避策も、レポート専用のデータパスもありません。 レポートは、アプリの他の部分が使うのと同じデータを、同じ方法で使用します。
レポートをHTMLとしてレンダリングします。 これは、良いパターンと壊れやすいパターンを分ける動作です。 ジェフはPDF特有のレイアウト言語に手を伸ばしません。 彼はレポートをHTMLとして書き、午後ずっと使っているマークアップと同じで、既存のスタイルが機能するようにします。 ヘッダー、表、セクション、すべてがHTMLです。 最終的な出力がPDFであるという事実は、後で出てくる詳細です。
HTMLを一行でPDFに変換 これは、IronPDFがその存在価値を示すところです。 ChromePdfRendererは、HTML文字列を取得し、内部でChromeエンジンを使用して、実際に適切にレンダリングされたPDFを生成します。 ブラウザーで見栄えのするCSSは、PDFでもそのまま見栄えがします。 学ぶべき別のスタイリングレイヤーはなく、デバッグすべきレンダリングの問題もありません。
- ファイルとして返します。ユーザーがボタンをクリックすると、ブラウザーはPDFをクリーンにダウンロードします。 完了。 機能が出荷されました。

それが全パターンです。 5ステップ、20分のストリーム時間、そして本番で耐えうる機能。
なぜこれがうまくいくのか
このパターンが正しい理由は耐久性ですが、表面的な理由は、各ステップが開発者が既に知っていることに対応しているからです。
レポートのレイアウトを書いている? それはHTMLとCSSであり、他のすべてのページと同じです。 データをクエリする? 同じEF Coreパターンです。 ページをアプリに配線する?同じRazorページ、同じDIです。 唯一の本当に新しいステップはPDFへの変換であり、それは1行です。
それを他の代替案と比較してください。 印刷ダイアログ方式は、ユーザーが異なるブラウザー、異なるズームレベル、または予期しないプリンター設定を持っている瞬間に壊れます。 クライアントサイドのPDFライブラリは、開発者に完全に新しいレイアウト言語を学ばせます。 手作りの座標に基づくレイアウトは1つのレポートには機能しますが、2番目の報告書で崩壊します。 これらのアプローチは、実際の製品に接触すると生き残りません。
サーバーサイドのHTML-to-PDFパターンは生き残ります。 出力は一貫して、決定的で、集中化されています。同じ入力が毎回、すべてのクライアントで同じPDFを生成します。なぜなら、レンダリングは1か所で1つのセットのルールに従って行われるからです。 内部ツール、顧客向けレポート、監査証跡文書など、出力の一貫性が実際に重要である場所では、このパターンが持ちこたえます。
このワークショップでは、それをクリーンに教えます。なぜなら、他の方法を教える時間がないからです。
あなた自身のプロジェクトで試してみてください

ジェフが変換ステップで使用するライブラリ、IronPDF、無料の 30日間トライアルキーで試用できます。 ビジネスメールで登録し、キーが受信箱に届き、午後が終わる前にあなた自身のプロジェクトでジェフ・フリッツが教える正確なパターンを構築できます。 トライアル中の透かしなし、完全な機能アクセス、すべてのAPIが利用可能です。
PDFレポートの追加を避けている場合、前回試したときは1日かかってしまうため、これは20分で済むプロジェクトのバージョンです。
ワークショップ全体を見る
ジェフの完全なセッションは彼のYouTubeチャンネルにあります。 PDFレポートセグメントは4:56:48から始まりますが、初期のモジュールも有意義です。モダンな.NETスタックを通じてのクリーンなランプであり、ジェフの指導は本当に良いです。
