フッターコンテンツにスキップ
.NETヘルプ

.NET Aspire (開発者向けの仕組み)

.NET Aspireは、観測可能で本番環境対応の分散アプリケーションを構築するために特化した、クラウド対応のスタックフレームワークとして際立っています。 NuGetパッケージのセットを通じて提供されるAspireは、さまざまなクラウドネイティブサービスの発見に関する考慮事項に効率的に対処し、一貫した設定パターンを提供することを目指しています。 .NETクラウドネイティブアプリの領域では、伝統的なモノリシックコード構造を離れ、分散アプリケーション内のより小さく相互に関連するコンポーネントやマイクロサービスが標準となっています。 これらのアプリケーションは通常、データベース、メッセージングシステム、クラウドリソース、キャッシングなどの多数のサービスに依存しています。

このコンテキストでは、分散アプリケーションは、複数のホストで動作するコンテナのような多くのノードにまたがる計算リソースを活用しています。 これらのノードが協力してエンドユーザーに応答を提供するには、ネットワーク境界を越えて効果的な通信が不可欠です。 特に、クラウドネイティブの分散アプリケーションは、クラウドネイティブアプリインフラストラクチャに内在するスケーラビリティ、堅牢性、管理容易性を活用する分散アプリケーション内の独自のカテゴリーです。

この記事では、Webアプリケーションを作成するための.NET Aspireコンポーネントについて説明します。 また、IronPDFライブラリを使用して、Aspire.NETプロジェクトコンポーネント内でPDFファイルを作成およびダウンロードします。

1. .NET Aspireの紹介

.NET Aspireアプリケーションは、.NETエコシステム内での.NETクラウドネイティブアプリの開発体験を向上させることを目的とした意図的なイニシアティブとして際立っています。 分散アプリのシームレスな構築と運用を容易にするために設計された統一かつ独自のツールおよび設計パターンのスイートを導入します。.NET Aspireスターターアプリケーションの主要な目的には次のものが含まれます:

オーケストレーション: .NET Aspireオーケストレーションは、複数のプロジェクトアプリケーションとそれらの複雑な依存関係をオーケストレーションするための強力な機能を備えています。 この機能により、.NETプロジェクトのさまざまなコンポーネント間のスムーズな実行とシームレスな接続が保証されます。 コンポーネント: .NET Aspireオーケストレーションによって提供されるコンポーネントは、NuGetパッケージ内にカプセル化されており、ローカルRedisコンテナリソースやPostgresのような広く利用されるサービスを表しています。 これらのコンポーネントは標準化されたインターフェイスによって特徴付けられ、一貫したシームレスな統合がアプリケーションと保証されます。 これらの事前パッケージ化されたコンポーネントを活用することにより、開発者は開発プロセスを迅速化し、.NET Aspireプロジェクトテンプレートを使用して高レベルの相互運用性と構成可能なクラウドネイティブアプリケーションを維持できます。 ツーリング: .NET Aspireスターターテンプレートは、開発ワークフローを簡素化するために調整された包括的なツールセットを組み込んでいます。 プロジェクトテンプレートとツーリングの経験は、Visual Studioと.NET CLIに注意深く統合されており、開発者が.NET Aspireアプリを簡単に作成および操作できるようにします。 この包括的なツーリングフレームワークは生産性を向上させ、.NET Aspireアプリの設定およびプロジェクトテンプレートの開発と管理のための統一された環境を提供します。

本質的に、.NET Aspireは、オーケストレーション、コンポーネント統合、ツーリングのような特定のクラウドネイティブの懸念の主要な側面に対処する包括的なソリューションとして機能し、.NETクラウドネイティブアプリケーションの構築と展開の効率性と一貫性を向上させることを目的としています。

2. .NET Aspireの始め方

.NET Aspireに携わる前に、次のコンポーネントがローカルにインストールされていることを確認してください:

.NET 8.0: システムに.NET 8.0をインストールしておくことを確認してください。 .NET Aspire Workload: VSインストーラーを使用するか、dotnet workload install aspireコマンドを実行することで.NET Aspireワークロードを取得します。 統合開発環境(IDE)またはコードエディター: 事前にVisual Studio 2022をシステムにインストールする必要があります。

これらのすべての要件が満たされている場合は、アプリを処理するための最初の.NET Aspireコンポーネントの開発を開始する準備が整っています。

3. 新しい.NET Aspireプロジェクトの作成

.NET Aspireアプリを作成するには、次の手順に従います。

  1. Visual Studioを開き、[Create a new project]をクリックします。
  2. 新しいウィンドウが表示されます。 この新しいウィンドウで、検索バーにAspireと入力します。 下にリストが表示され、その中からAspire Starter apphostプロジェクトとパッケージ参照を選択して[Next]をクリックします。 新しいウィンドウが表示されます。 この新しいウィンドウでプロジェクト名を入力して[Next]をクリックします。 このウィンドウでターゲットフレームワークを選択し、[Create]ボタンをクリックします。

数秒で.NET Aspireアプリケーションが作成され、開発およびカスタマイズを始める準備が整います。

4. .NET Aspireアプリケーションの実行とテスト

プロジェクトが作成されたら、[Run]ボタンをクリックしてください。ビルドを作成するのに時間がかかり、その後、Aspire Webアプリケーションホームページが開かれます。

このホームページには、観測可能な本番対応.NET Aspireスターターアプリケーションを構築するための.NET Aspireクラウドネイティブアプリスタックが含まれています。

さて、リンクをクリックして.NETと対話してみましょう。

ここでは.NET Aspire Webフロントエンドプロジェクトとパッケージ参照をクリックしてください。 それは異なるポート名で新しいウェブページを開きます。 ## 5. IronPDF C#の紹介

IronPDFのドキュメントでは、開発者が高度なPDF生成と操作機能を簡単にアプリケーションに統合することを可能にする強力で多用途なC#ライブラリとして説明されています。

Iron Softwareによって開発され、この機能が豊富なライブラリは、C#アプリケーション内でPDFドキュメントを直接作成、変更、レンダリングするための包括的なツールを提供します。

IronPDFでは、さまざまなソース(HTML、画像、既存のドキュメントなど)からPDFをシームレスに生成することができ、フォーマットとレイアウトに対して正確な制御を維持します。 動的レポートの作成、HTMLコンテンツのPDFへの変換、既存のドキュメントへの注釈追加など、PDFの操作を簡素化するIronPDFは、信頼性が高く効率的なソリューションを求めるC#開発者にとって貴重なアセットです。

5.1. IronPDFのインストール IronPDFをシームレスにインストールするには、Visual Studio内のNuGetパッケージマネージャーを活用してください。

インストールするために指定されたパッケージはIronPDFと名付けられています。

パッケージマネージャーコンソールに以下のコマンドをコピーして貼り付け、Enterを押してください。 ### 5.2. IronPDFをAspireコンポーネントと統合する IronPDFをAspireコンポーネントと統合するのは、Blazor Webアプリケーションと統合するのと同じです。AspireコンポーネントはBlazorアプリケーションをコンポーネントとして使用できます。

Install-Package IronPdf

このコード例では、カウンターページのコードを変更してPDFファイルを作成およびダウンロードします。

counter.razor ファイルを開き、以下のコードに置き換えてください。 その後、JavaScriptコードを書いてPDFファイルをダウンロードします。このコードをHTMLボディタグのスコープ内にあるスクリプトタグに書いてください。

以下がプロジェクトに追加するコードです。

@page "/PrintPDF"
@rendermode InteractiveServer
@using IronPdf
<PageTitle>Print PDF</PageTitle>
<h1>IronPDF</h1>
<p role="status">Click on the button below to create and download the PDF file </p>
<button class="btn btn-primary" @onclick="IncrementCount">Print</button>
@code {
    private int currentCount = 0;

    /// <summary>
    /// Handles the click event of the "Print" button.
    /// This function will generate a PDF from an HTML string and prompt the user to download it.
    /// </summary>
    private void IncrementCount()
    {
        var renderer = new ChromePdfRenderer();
        // Create a PDF from an HTML string using C#
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        // Export to a file using JavaScript Interop to initiate download
        JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()));
    }
}
@page "/PrintPDF"
@rendermode InteractiveServer
@using IronPdf
<PageTitle>Print PDF</PageTitle>
<h1>IronPDF</h1>
<p role="status">Click on the button below to create and download the PDF file </p>
<button class="btn btn-primary" @onclick="IncrementCount">Print</button>
@code {
    private int currentCount = 0;

    /// <summary>
    /// Handles the click event of the "Print" button.
    /// This function will generate a PDF from an HTML string and prompt the user to download it.
    /// </summary>
    private void IncrementCount()
    {
        var renderer = new ChromePdfRenderer();
        // Create a PDF from an HTML string using C#
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        // Export to a file using JavaScript Interop to initiate download
        JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()));
    }
}
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: @page "/PrintPDF" @rendermode InteractiveServer using IronPdf <PageTitle> Print PDF</PageTitle> <h1> IronPDF</h1> <p role="status"> Click on the button below to create and download the PDF file </p> <button class="btn btn-primary" onclick="IncrementCount"> Print</button> @code
"btn btn-primary" onclick="IncrementCount"> Print</button> code
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend @page "/PrintPDF" @rendermode InteractiveServer using IronPdf <PageTitle> Print PDF</PageTitle> <h1> IronPDF</h1> <p role="status"> Click on the button below to create and download the PDF file </p> <button Class="btn btn-primary" onclick
"status"> Click on the button below [to] create [and] download the PDF file </p> <button Class="btn btn-primary" onclick
Private Private Friend page "/PrintPDF" rendermode InteractiveServer [using] IronPdf (Of PageTitle) Print PDF</PageTitle> (Of h1) IronPDF</h1> <p role="status"> Click on the button below [to] create [and] download the PDF file </p> <button Class
	Private currentCount As Integer = 0

	''' <summary>
	''' Handles the click event of the "Print" button.
	''' This function will generate a PDF from an HTML string and prompt the user to download it.
	''' </summary>
	Private Sub IncrementCount()
		Dim renderer = New ChromePdfRenderer()
		' Create a PDF from an HTML string using C#
		Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
		' Export to a file using JavaScript Interop to initiate download
		JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()))
	End Sub
End Class
$vbLabelText   $csharpLabel

その後コードを実行すると、以下の画像のように表示されます。 PDFファイルを作成およびダウンロードするには、[Print]ボタンをクリックしてください。

<script type="text/javascript">
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            //Download document in Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
<script type="text/javascript">
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            //Download document in Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
JAVASCRIPT

それはoutput.pdfという名前のPDFファイルを作成およびダウンロードします。

.NET Aspireは、クラウド環境で堅牢で観測可能な分散アプリケーションを開発するために特化した枠組みとして浮上しています。

統一された一連のツールと設計パターンを提供することにより、クラウドネイティブアプリケーションの構築に関連する複雑さを単純化し、シームレスなオーケストレーション、コンポーネント統合、ユーザーフレンドリーなツーリングフレームワークを提供します。 スケーラビリティ、堅牢性、管理容易性に焦点を当て、マイクロサービスと分散アーキテクチャへのパラダイムシフトと一致しています。

開発者が.NET Aspireでの旅を始めるとき、オーケストレートされた複数プロジェクトアプリケーションからNuGetパッケージにカプセル化された標準化コンポーネントまで、包括的な機能セットへのアクセスが可能になります。

この記事では、ZIPファイルの重要性、その利点、およびさまざまなアプリケーションにおけるそれらの抽出の重要性を探りました。

ガイドで概説されている前提条件を順守し、簡単なステップを踏むことにより、開発者は簡単に.NET Aspireアプリケーションを作成、実行、テストできます。 さらに、IronPDFをAspireコンポーネントに統合することにより、フレームワークの拡張性と多用途性が示され、開発者は高度なPDF生成および操作機能をクラウドネイティブアプリケーションに簡単に取り入れることができます。 全体として、.NET Aspireはその明確に定義された目的とユーザーフレンドリーなアプローチにより、.NETエコシステム内でクラウドネイティブアプリケーションを構築および展開するための効率的で一貫したソリューションを求める開発者にとって貴重な資産として位置付けられています。

Blazor WebアプリケーションでIronPDFを使用する完全なチュートリアルについては、IronPDFのブログチュートリアルをご覧ください。 IronPDFの無料トライアルを入手するには、IronPDFライセンスページを訪問して無料トライアルライセンスを取得してください。

Furthermore, the integration of IronPDF into Aspire components showcases the extensibility and versatility of the framework, enabling developers to seamlessly incorporate advanced PDF generation and manipulation capabilities into their cloud-native applications. Overall, .NET Aspire, with its well-defined objectives and user-friendly approach, positions itself as a valuable asset for developers seeking an efficient and consistent solution for building and deploying cloud-native applications within the .NET ecosystem.

For a complete tutorial on using IronPDF with Blazor web applications visit IronPDF's blog tutorial. To get a free trial of IronPDF, visit the IronPDF licensing page to get your free trial license.

よくある質問

C# で HTML を PDF に変換するにはどうすればいいですか?

IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。

.NET Aspireのクラウドネイティブアプリケーション開発における目的は何ですか?

.NET Aspireは、開発者が観測可能でプロダクションレディの分散アプリケーションを構築するために設計されています。これは、クラウドネイティブアプリケーションにおけるマイクロサービスアーキテクチャの管理のためのオーケストレーションツール、コンポーネントの統合、および包括的なツールセットを提供します。

IronPDFは.NET Aspireプロジェクトとどのように統合されていますか?

IronPDFは.NET Aspireプロジェクトに統合され、高度なPDF生成および操作機能を提供します。このことにより、開発者はクラウドネイティブアプリケーション内でPDFをシームレスに作成および管理することができます。

WebアプリケーションでのIronPDFの一般的な用途は何ですか?

IronPDFは、PDFレポートの生成、HTMLコンテンツをPDFに変換、文書ワークフローの管理にWebアプリケーションでよく使用されます。これは.NETアプリケーション内でPDFタスクを処理するための強力なツールセットを開発者に提供します。

.NETプロジェクトでIronPDFを使用する際のトラブルシューティング方法は?

IronPDFの問題をトラブルシューティングするには、NuGetパッケージが正しくインストールされていること、すべての依存関係が適切に参照されていることを確認してください。コンソールでエラーメッセージをチェックし、さらなるガイダンスを得るためにIronPDFのドキュメントまたはサポートを参照してください。

.NET Aspireフレームワークの主なコンポーネントは何ですか?

.NET Aspireにはオーケストレーション機能、開発を高速化するための事前パッケージ化されたコンポーネント、Visual Studioおよび.NET CLIに統合されたツールが含まれており、クラウドネイティブアプリケーションの開発と管理を合理化するよう設計されています。

.NET Aspireがマイクロサービスアーキテクチャに提供する利点は何ですか?

.NET Aspireは一貫したセットアップパターン、堅牢なオーケストレーション、シームレスなコンポーネント統合を提供し、クラウドネイティブ環境でのマイクロサービスアーキテクチャの管理および展開を容易にします。

IronPDFと.NETアプリケーションを使用する方法についてもっと知るにはどうすればいいですか?

IronPDFと.NETアプリケーションを使用する方法についてもっと知るためには、IronPDFのブログおよびドキュメントを訪れ、チュートリアルやサンプルを参照してください。これらのリソースは、IronPDFを効果的に統合および使用するための詳細なガイドを提供します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。