.NET ヘルプ

.NET (開発者のための仕組み)

現代のソフトウェア開発では、分散アプリケーションの構築とデプロイは複雑で困難な場合がある。 複数のサービス、依存関係、配備環境を管理するには、しばしば多大な労力と調整が必要になる。 これらの課題に対処するために、マイクロソフトは.NETアプリケーションの開発、テスト、デプロイを簡素化するための開発者ツールであるProject Tyeを導入しました。 この記事では、Tye の世界に入り込み、その機能、利点、および .NET 開発者向けの実用的なアプリケーションを探ります。 また、IronPDFIron SoftwareからのPDF生成ライブラリについて学び、実際の例でTyeIronPDFを使用します。

プロジェクト・タイ .NET を理解する

Tye は、.NET プロジェクトアプリケーションの構築、テスト、およびデプロイのプロセスを最小限の設定で簡略化するオープンソースの実験的な開発者ツールです。 Microsoftのエンジニアリングチームによって開発されたTyeは、マイクロサービスとその依存関係を管理するための一貫した、体系的なアプローチを提供することで、開発ワークフローを簡素化することを目的としています。 基本的に、Tyeはコンテナ化、オーケストレーション、および開発者の生産性の原則を取り入れ、シームレスなアプリケーションの開発とデプロイメントを実現します。

.NET の主な特徴

1.サービス・ディスカバリーと依存関係管理

Tyeは、.NETアプリケーション内のサービス間の依存関係を自動的に検出し、管理します。 プロジェクトのメタデータとDockerコンテナを活用してサービスの関係を推測し、マイクロサービス間の通信とオーケストレーションの調整を容易にする。 これにより、複数のプロジェクトでマイクロサービスを開発することが容易になる。

2. 統合開発環境

TyeはVisual StudioおよびVisual Studio Codeとシームレスに統合され、.NET開発者に使い慣れた開発環境を提供します。 アプリケーション・コンポーネントのデバッグ、ロギング、モニタリングのためのツールを提供し、開発中の迅速な反復とトラブルシューティングを可能にする。

3.Dockerコンテナ化

Tyeは.NETアプリケーションのデプロイメント単位としてDockerコンテナを採用している。 プロジェクトの構成に基づいて各サービスのDockerfileを自動的に生成し、開発環境と本番環境で一貫性と再現性のあるコンテナビルドを容易にし、マイクロサービスのテストとデプロイを容易にします。

4. ローカル開発環境

Tyeは、単一の環境内で依存関係とサービスをオーケストレーションすることで、ローカル開発を簡素化する。 開発者は1つのコマンドでアプリケーション・スタック全体を立ち上げることができ、依存関係の手動セットアップや設定が不要になる。

5. Kubernetesへのデプロイ

Tyeは、.NETアプリケーションをKubernetesクラスタにデプロイするための組み込みサポートを提供する。 プロジェクトの仕様に基づいてKubernetesマニフェストとHelmチャートを生成し、デプロイプロセスを合理化するとともに、クラウドネイティブ環境におけるコンテナオーケストレーションのベストプラクティスを推進する。

6.モニタリングと観測可能性

Tyeは、PrometheusやGrafanaのような一般的な観測ツールと統合し、アプリケーションのパフォーマンスと健全性に関する洞察を提供します。 アプリケーション・コンポーネントからのメトリクスとログを公開し、開発者がリソースの使用状況を監視し、ボトルネックを特定し、問題をリアルタイムで診断できるようにします。

タイとの実践的なアプリケーション

Tyeが.NETアプリケーションの開発とデプロイを効率化できる実用的なシナリオをいくつか探ってみよう:

1.地域開発環境

# Start Tye in local development mode with tye run command
tye run
# Start Tye in local development mode with tye run command
tye run
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

2. Docker コンテナ化

Build Docker images for Tye services with available solution file
tye build
Build Docker images for Tye services with available solution file
tye build
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

3. Kubernetesへのデプロイ

Deploy Tye application to Kubernetes cluster 
tye deploy --interactive // deploy microservices and distributed applications
Deploy Tye application to Kubernetes cluster 
tye deploy --interactive // deploy microservices and distributed applications
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

タイ入門

タイを始めるには

  1. マシンに .NET Core 3.1 をインストールしてください(より高いバージョンはサポートされていません)。

  2. Tyeをグローバルツールとしてインストールする:
dotnet tool install -g Microsoft.Tye --version "0.2.0-alpha.20258.3"
dotnet tool install -g Microsoft.Tye --version "0.2.0-alpha.20258.3"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. マイクロサービス用の新しいフォルダを作成する。

  2. フォルダーに移動し、フロントエンドプロジェクトを作成します(例:Razor Pages)。
mkdir microservices
cd microservices
dotnet new razor -n frontend  // frontend service or backend service
mkdir microservices
cd microservices
dotnet new razor -n frontend  // frontend service or backend service
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
  1. フロントエンドのプロジェクト、tyeダッシュボードを実行する:
tye run frontend  // frontend project or backend project
tye run frontend  // frontend project or backend project
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これはフロントエンド・アプリケーションのビルド、実行、監視を行う。 http://localhost:8000、Tyeのダッシュボードにアクセスし、サービスの状態を確認することができます

タイのコンフィギュレーション・スキーマ

Tyeにはオプションの設定ファイルtye.yamlがあり、設定をカスタマイズできる。 このYAMLファイルには、すべてのプロジェクトと外部依存関係が含まれています。 既存のソリューションがある場合、Tyeは自動的に現在のプロジェクトをすべて入力します。

この YAML ファイルを初期化するには、microservices ディレクトリに移動して以下のコマンドを実行し、デフォルトの tye.yaml ファイルを生成します:

tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

tye.yamlファイルは以下のように作成される。

name: myawesomeapplication
services:
- name: backendtest
  project: backend/backend.csproj
  bindings:
  - port: 7000
- name: frontendtest
  project: frontend/frontend.csproj
  replicas: 2
  bindings:
  - port: 8000
- name: workertest
  project: worker/worker.csproj
- name: rabbit
  image: rabbitmq:3-management
  bindings:
    - port: 5672
      protocol: rabbitmq
name: myawesomeapplication
services:
- name: backendtest
  project: backend/backend.csproj
  bindings:
  - port: 7000
- name: frontendtest
  project: frontend/frontend.csproj
  replicas: 2
  bindings:
  - port: 8000
- name: workertest
  project: worker/worker.csproj
- name: rabbit
  image: rabbitmq:3-management
  bindings:
    - port: 5672
      protocol: rabbitmq
YAML

タイを使うメリット

  1. 簡素化された開発ワークフロー: Tye は、.NET アプリケーションのローカルでのビルド、テスト、デバッグを統合ツールセットを提供することで、開発ワークフローを簡素化します。

  2. 市場投入までの時間を短縮:サービス検出、依存関係管理、コンテナ化などの一般的なタスクを自動化することにより、Tyeはアプリケーションを本番環境にデプロイするために必要な時間と労力を削減します。

  3. 改善されたコラボレーション: Tyeは、開発、運用、DevOpsチーム間のコラボレーションを促進し、アプリケーションの依存関係とデプロイメント構成を管理するための共通プラットフォームを提供します。

  4. クラウドネイティブ対応: Tye は .NET アプリケーションに、Kubernetes のようなクラウドネイティブ環境での運用に必要なツールと実践を装備し、組織が自信を持って最新のインフラパラダイムを採用できるようにします。

  5. コミュニティサポートと貢献: Microsoftに支援されたオープンソースプロジェクトとして、Tyeはその開発、ドキュメント、およびエコシステムに積極的に貢献する活気ある貢献者とユーザーのコミュニティの恩恵を受けています。

プロジェクト・タイ・ライセンス

Project Tyeは、開発および商業目的での使用が無料のMITライセンスが付属しています。

IronPDFの紹介

tye .NET(開発者向けのしくみ):図1 - IronPDF for .NET: C# PDFライブラリ

IronPDF は、HTML、CSS、画像、およびJavaScriptからPDFを作成、編集、および署名するために設計された強力なC#ライブラリです。 商業利用レベルのパフォーマンスを、低メモリフットプリントで提供します。

IronPDFの主な機能

1.HTMLからPDFへの変換

HTMLファイル、HTML文字列、URLをPDFに変換。 例えば、Chrome PDFレンダラーを使用してウェブページをPDFとしてレンダリングします。

2.クロスプラットフォーム対応

.NET Core、.NET Standard、.NET Frameworkなど、さまざまな.NETプラットフォームに対応。 Windows、Linux、macOSに対応しています。

3.編集と署名

プロパティを設定し、パスワードとアクセス許可を使用してセキュリティを追加し、PDFに電子署名を適用します。

4.ページテンプレートと設定

ヘッダー、フッター、ページ番号、調整可能な余白でPDFをカスタマイズ。 レスポンシブレイアウトとカスタム用紙サイズをサポートします。

5.規格遵守

PDF/AやPDF/UAなどのPDF標準に準拠。 UTF-8文字エンコーディングをサポートし、画像、CSS、およびフォントなどのアセットを処理します。

では、この2つのライブラリを使った実践例を見てみよう。

IronPDFとTye to Runを使ってPDFドキュメントを生成する

まず、Visual Studio Razorアプリケーションを作成してみましょう。 Visual Studioを開き、新しいプロジェクトを作成し、以下のようにrazorアプリを選択してください。

tye .NET(開発者向けの仕組み):図 2 - Visual Studioを開いて新しいASP.NET Core Webアプリ(Razor Pages)を作成します。

プロジェクト名と場所を提供してください。

![tye .NET(開発者向けの仕組み):図3 - プロジェクト名と場所を指定してプロジェクトを設定します。 次へをクリックします。

次のステップでは、.NET Frameworkのバージョンを選択し、Createをクリックします。 Tyeは.NET 3.1でのみ動作するため、同じものを選択します。

tye .NET(開発者のための仕組み):図4 - .NET Core 3.1フレームワークを選択し、「Create」をクリックします。

Visual Studio パッケージ マネージャーからIronPDF を NuGet パッケージからインストールします。

tye .NET(開発者のための仕組み): 図5 - NuGetパッケージマネージャの検索バーで「IronPDF」を検索して、プロジェクトを選択し、インストールボタンをクリックすることで、Manage NuGet Package for Solutionを使用してIronPDFをインストールします。

次に、ファイルブラウザを開き、ソリューションフォルダに移動します。 次にCMDプロンプトを開く。

以下のコマンドでTyeをインストールする:

dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

または、すでにTyeがインストールされていて、アップデートしたい場合は、以下のコマンドを使用してください:

dotnet tool update -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
dotnet tool update -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以下のコマンドでTyeを初期化する:

tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これは次のようなテンプレートYAMLファイルを作成します:

# tye application configuration file
# read all about it at https://github.com/dotnet/tye
#
# when you've given us a try, we'd love to know what you think:
#    https://aka.ms/AA7q20u
#
# define global settings here
# name: exampleapp # application name
# registry: exampleuser # dockerhub username or container registry hostname
# define multiple services here
services:
- name: frontend
  project: Frontend\Frontend.csproj # msbuild project path (relative to this file)
  # executable: app.exe # path to an executable (relative to this file)
    args: -f=netcoreapp3.1 # arguments to pass to the process
  # replicas: 5 # number of times to launch the application
  # env: # array of environment variables
  #  - name: key
  #    value: value
  # bindings: # optional array of bindings (ports, connection strings)
    # - port: 8080 # number port of the binding
# tye application configuration file
# read all about it at https://github.com/dotnet/tye
#
# when you've given us a try, we'd love to know what you think:
#    https://aka.ms/AA7q20u
#
# define global settings here
# name: exampleapp # application name
# registry: exampleuser # dockerhub username or container registry hostname
# define multiple services here
services:
- name: frontend
  project: Frontend\Frontend.csproj # msbuild project path (relative to this file)
  # executable: app.exe # path to an executable (relative to this file)
    args: -f=netcoreapp3.1 # arguments to pass to the process
  # replicas: 5 # number of times to launch the application
  # env: # array of environment variables
  #  - name: key
  #    value: value
  # bindings: # optional array of bindings (ports, connection strings)
    # - port: 8080 # number port of the binding
YAML

以下のコマンドでTyeを実行してください:

tye run frontend
tye run frontend
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これはURL: http://127.0.0.1:8000/ でTyeダッシュボードを開いて、アプリが実行されているのを見ることができます。

タイ・ダッシュボード

tye .NET(開発者向けの動作方法):図6 - Tyeを使用してlocalhost上で動作するRazorアプリケーション

次に、以下のコードをプロジェクトに追加して、ボタンをクリックするだけで、任意のウェブサイトのURLからPDFドキュメントを生成できるようにします。

以下のコードをIndex.cshtmlファイルに追加してください:

@page
@model IndexModel
@{
    ViewData["Title"] = "Generate PDF";
}
<form method="post"  class="text-center flex-row">
    <h1 class="display-4">Welcome To Url To PDF Generator </h1>
    <p>Enter Website Url:
    <button type="submit">Generate PDF</button>
    @if (Model.Message != null)
    {
        <p>@Model.Message</p>
    }
</form>
@page
@model IndexModel
@{
    ViewData["Title"] = "Generate PDF";
}
<form method="post"  class="text-center flex-row">
    <h1 class="display-4">Welcome To Url To PDF Generator </h1>
    <p>Enter Website Url:
    <button type="submit">Generate PDF</button>
    @if (Model.Message != null)
    {
        <p>@Model.Message</p>
    }
</form>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

次に、以下のコードをIndex.cshtml.csに追加します:

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace Frontend.Pages
{
    public class IndexModel : PageModel
    {
        public string Message { get; set; }
        [BindProperty]
        public string UrlInput { get; set; }
        private readonly ILogger<IndexModel> _logger;
        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }
        public void OnGet()
        {
        }
        public IActionResult OnPost()
        {
            if (string.IsNullOrEmpty(UrlInput))
            {
                ModelState.AddModelError("UrlInput", "Please enter some text.");
                return Page();
            }
            // Create PDF from ChromePdfRenderer
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderUrlAsPdf(UrlInput);
            // Return the PDF as a file result
            var pdfBytes = pdf.BinaryData;
            return File(pdfBytes, "application/pdf", "GeneratedDocument.pdf");
        }
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace Frontend.Pages
{
    public class IndexModel : PageModel
    {
        public string Message { get; set; }
        [BindProperty]
        public string UrlInput { get; set; }
        private readonly ILogger<IndexModel> _logger;
        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }
        public void OnGet()
        {
        }
        public IActionResult OnPost()
        {
            if (string.IsNullOrEmpty(UrlInput))
            {
                ModelState.AddModelError("UrlInput", "Please enter some text.");
                return Page();
            }
            // Create PDF from ChromePdfRenderer
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderUrlAsPdf(UrlInput);
            // Return the PDF as a file result
            var pdfBytes = pdf.BinaryData;
            return File(pdfBytes, "application/pdf", "GeneratedDocument.pdf");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

次にTyeを以下のように実行する:

tye .NET(開発者のための仕組み):図7 - コマンドを使用してタイプを実行:tye run frontend

これにより、Tyeダッシュボードが起動します。

tye .NET(開発者にとっての動作方法):図8 - Tyeダッシュボード

ここで、バインディングセクションのいずれかのリンクをクリックしてPDFジェネレーターアプリを開き、PDF生成用のサンプルURLを入力します。

tye .NET(開発者への動作方法):図9 - IronPDFを使用したURLからPDF生成器

生成ボタンをクリックすると、以下のPDFが出力されます:

tye .NET (開発者向けの動作方法): 図10 - IronPDFを使用したHTML URLからPDFへの変換

コードの説明

  1. index.cshtmlには、ウェブサイトのURLを取得し、PDF生成をトリガーするためのボタンと入力が含まれています。

  2. index.cshtml.csはIronPDFを使ってPDFドキュメントを生成するコードを含んでいます。

  3. 私たちはChromePdfRendererクラスとRenderUrlAsPdf()メソッドを使用して、URLからPDFを生成します。

  4. この生成されたURLは、Postメソッドのレスポンスとして返されます。

  5. Tye Runコマンドを実行すると、Tyeダッシュボードが起動し、実行中のサービスがすべて表示されます。

  6. フロントエンドサービスをクリックし、アプリを開いてPDFドキュメントを生成してください。

IronPDFライセンス

IronPDFライセンスページをご覧ください。

以下のように、appSettings.jsonファイルにライセンスキーを記述します:

{
  "IronPdf.License.LicenseKey" : "The Key Here"
}

結論

結論として、Tyeは.NETエコシステムにおける大きな進展を表しており、分散アプリケーションの構築、テスト、デプロイに対する効率的なアプローチを提供しています。 あなたが経験豊富な.NET開発者であろうと、コンテナ化やマイクロサービスに不慣れであろうと、Tyeは、最新の開発手法を取り入れ、クラウドネイティブアーキテクチャへの進行を加速するためのユーザーフレンドリーなプラットフォームを提供します。

IronPDF は、HTMLコンテンツからPDFドキュメントを簡単に作成、操作、レンダリングできる.NETライブラリです。 HTMLからPDFへの変換、PDFの結合と分割、ヘッダー、フッター、透かしの追加をサポートしています。 IronPDF は、その使いやすさ、高品質なレンダリング、および.NET Coreと.NET Frameworkアプリケーションとの互換性で知られています。 IronPDFライブラリとTyeビルドツールの両方を知ることで、開発者はPDF生成機能を備えた最新のアプリケーションを開発するための高度なスキルを習得できます。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
C# Nito.Asyncex (開発者のための仕組み)
次へ >
Quartz .NET(開発者向けの動作の仕組み)