.NET ヘルプ

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

公開済み 2024年1月4日
共有:

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

この文脈では、分散アプリケーションは、異なるホスト上で稼働するコンテナなど、複数のノードにまたがる計算資源を活用します。 ネットワーク境界を越えた効果的な通信は、これらのノードが協力してエンドユーザーに応答を提供するために不可欠です。 特に、クラウドネイティブの分散アプリケーションは、クラウドネイティブアプリインフラストラクチャに固有のスケーラビリティ、回復性、および管理性を活用する、分散アプリケーションの中でも特別なカテゴリです。

この記事では、について議論します.NET Aspire (エイアスパイア)ウェブアプリケーションを作成するためのコンポーネント。 また、私たちはIronPDFライブラリAspire .NET プロジェクトコンポーネントでPDFファイルを作成してダウンロードする。

.NET Aspireへの紹介

.NET Aspire (エイアスパイア)アプリケーションは、.NETエコシステム内で.NETクラウドネイティブアプリの開発体験を向上させることを目的とした有意義な取り組みとして位置付けられています。 意見統一されたツールとデザインパターンの統合スイートを導入し、分散アプリケーションのシームレスな構築と運用を容易にします。.NET Aspireスターターアプリケーションの主要な目的は次のとおりです:

  1. オーケストレーション: .NET Aspireオーケストレーションは、多プロジェクトアプリケーションとその複雑な依存関係のオーケストレーションに対する堅固な機能を提供します。 この機能は、.NET プロジェクトの多様なコンポーネント間のスムーズな実行とシームレスな接続を確保します。

  2. コンポーネント: .NET Aspireオーケストレーションで提供されるコンポーネントは、NuGetパッケージ内にカプセル化され、ローカルRedisコンテナリソースやPostgresのような広く利用されるサービスを表しています。 これらのコンポーネントは標準化されたインターフェースによって特徴付けられており、一貫性のあるシームレスなアプリケーション統合を保証します。 これらのパッケージ化されたコンポーネントを活用することで、開発者は開発プロセスを迅速化し、.NET Aspireプロジェクトテンプレートを使用して、より高いレベルの相互運用性および構成可能なクラウドネイティブアプリケーションを維持できます。

  3. ツーリング: .NET Aspireスターターテンプレートには、開発ワークフローを効率化するために調整された包括的なツールセットが組み込まれています。 プロジェクトテンプレートとツーリング体験は、Visual Studio と .NET CLI に慎重に統合されており、開発者が .NET Aspire アプリを簡単に作成して操作できるようにしています。 この包括的なツーリングフレームワークは生産性を高め、.NET Aspireアプリの構成およびプロジェクトテンプレートの開発と管理のための統合環境を提供します。

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

2. .NET Aspire の始め方

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

  1. .NET 8.0: システムに .NET 8.0 をインストールしてください。

  2. .NET Aspire ワークロード: VSインストーラーを利用するか、「dotnet workload install aspire」コマンドを実行して、.NET Aspire ワークロードを取得します。

  3. 統合開発環境(IDE (統合開発環境))コードエディター:** 事前にVisual Studio 2022がシステムにインストールされている必要があります。

    これらの要件がすべて満たされていれば、アプリを扱う最初の.NET Aspireコンポーネントの開発は問題ありません。

3. 新しい .NET アスパイアプロジェクトを作成する

.NET Aspire アプリケーションを作成するには、以下のステップに従ってください。

  1. Visual Studioを開き、「新しいプロジェクトの作成」をクリックしてください。

  2. 新しいウィンドウが表示されます。 この新しいウィンドウで、検索バーにAspireを検索してください。

  3. 以下のリストから、Aspire Starter apphostプロジェクトおよびパッケージ参照を選択して、「次へ」をクリックしてください。

  4. 新しいウィンドウが表示されます。 この新しいウィンドウでプロジェクト名を入力し、「次へ」をクリックしてください。

  5. このウィンドウでターゲットフレームワークを選択し、[作成]ボタンをクリックします。

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

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

プロジェクトが作成されたら、実行ボタンをクリックするだけでビルドの作成が開始されます。しばらく時間がかかりますが、その後、Aspireウェブアプリケーションのホームページが表示されます。

このホームページには、.NET Aspire スターターアプリケーションの運用準備が整った観測可能な .NET Aspire クラウドネイティブアプリのスタックが含まれます。

.NETアスパイア(開発者向けの仕組み): 図1 - Aspireホームページ

今すぐリンクをクリックして .NET と連携してください。 とりあえず、.NET Aspireウェブフロントエンドプロジェクトとパッケージリファレンスをクリックしてください。 新しいポート名で新しいウェブページが開きます。

.NET Aspire(開発者向けの動作方法):図2 - 新しいウェブページ

5.IronPDF C#の紹介

IronPDF ドキュメントは、開発者が高度なPDF生成・操作機能をアプリケーションに簡単に統合できるようにする、強力で汎用性の高いC#ライブラリであると説明しています。 Iron Softwareによって開発されたこの機能豊富なライブラリは、C#アプリケーション内で直接PDFドキュメントの作成、修正、およびレンダリングのための包括的なツールセットを提供します。

IronPDF を使用すると、開発者は HTML、画像、既存のドキュメントなど、さまざまなソースからシームレスに PDF を作成でき、フォーマットやレイアウトの正確な制御を維持できます。 動的なレポートの作成、HTMLコンテンツのPDFへの変換、既存のドキュメントへの注釈の追加など、IronPDFはPDF処理を効率化し、ドキュメント管理のニーズに対して信頼性と効率的な解決策を求めるC#開発者にとって、かけがえのない資産となります。

IronPDFのインストール

IronPDFをシームレスにインストールするには、Visual Studio内のNuGetパッケージマネージャーを活用してください。 インストール用の指定パッケージはIronPDFと呼ばれます。 次のコマンドをパッケージ マネージャー コンソールにコピー&ペーストし、Enterキーを押してください:

Install-Package IronPdf

5.2. IronPDF と Aspire Component の統合

IronPDFをAspireコンポーネントと統合することは、Blazorウェブアプリケーションと統合するのと同じです。なぜなら、AspireコンポーネントはBlazorアプリケーションをコンポーネントとして使用することができるからです。 このコード例では、カウンターページのコードを変更してPDFファイルを作成し、ダウンロードする方法を示します。

counter.razorファイルを開き、以下のコードに置き換えてください。

@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;
    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 or Stream
        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;
    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 or Stream
        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
	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 or Stream
		JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()))
	End Sub
End Class
VB   C#

その後、PDFファイルをダウンロードするJavaScriptコードを記述します。このコードをHTMLのbodyタグの範囲内にあるscriptタグに記載してください。

// PDFファイルをダウンロードするJavaScriptコード
const downloadPDF = async () => {
  try {
    const response = await fetch('path/to/your/pdf-file.pdf');
    const blob = await response.blob();
    const url = window.URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.style.display = 'none';
    a.href = url;
    a.download = 'downloaded-file.pdf';
    document.body.appendChild(a);
    a.click();
    window.URL.revokeObjectURL(url);
  } catch (error) {
    console.error('PDFのダウンロードに失敗しました:', error);
  }
};

// ページが読み込まれたときにPDFファイルを自動的にダウンロードする
document.addEventListener('DOMContentLoaded', (event) => {
  downloadPDF();
});
``` 以下のコードをプロジェクトに追加してください。

```html
<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

そのコードを実行すると、以下の画像のようになります。

.NETアスパイア(開発者向けの使い方): 図3 - Blazor

PDFファイルを作成してダウンロードするには、印刷ボタンをクリックしてください。 それは output.pdf という名前の PDF ファイルを作成し、ダウンロードします。

.NET Aspire(開発者向けの仕組み): 図4 - PDFダウンロード

結論

.NET Aspireは、クラウド環境において堅牢で、観測可能かつ分散型のアプリケーションを開発することを目的に設計された重要なフレームワークとして登場しました。 .NET Aspireは、クラウドネイティブアプリケーションの構築に関連する複雑さを簡素化するために、一貫したツールセットとデザインパターンを提供し、シームレスなオーケストレーション、コンポーネント統合、および使いやすいツーリングフレームワークを提供します。 スケーラビリティ、耐障害性、および管理性に重点を置き、.NET Aspireはマイクロサービスおよび分散アーキテクチャへのパラダイムシフトに対応しています。

開発者が.NET Aspireでの旅を始めると、オーケストレートされたマルチプロジェクトアプリケーションからNuGetパッケージにカプセル化された標準コンポーネントまで、包括的な機能スイートにアクセスできます。 必要条件を守り、ガイドに記載された簡単な手順に従うことで、開発者は.NET Aspire アプリケーションを簡単に作成、実行、テストすることができます。

さらに、IronPDFのAspireコンポーネントへの統合は、フレームワークの拡張性と多様性を示しており、開発者がクラウドネイティブアプリケーションに高度なPDF生成および操作機能をシームレスに組み込むことを可能にします。 総じて、.NET Aspireは、その明確な目的とユーザーフレンドリーなアプローチにより、.NETエコシステム内でクラウドネイティブアプリケーションを構築およびデプロイするための効率的かつ一貫したソリューションを求める開発者にとって価値のある資産となっています。

使用方法に関する完全なチュートリアルについてはBlazorとIronPDFウェブアプリケーションはIronPDFのブログチュートリアルをご覧ください。 IronPDFの無料トライアルを入手するには、以下をご覧ください。IronPdfライセンスページ無料トライアルライセンスを取得する。

< 以前
C# Protected(開発者向けの使用方法)
次へ >
AutoMapper C#(開発者向けの仕組み)