.NET ヘルプ

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

リーガン・パン
リーガン・パン
2024年8月13日
共有:

現代のソフトウェア開発では、分散アプリケーションの構築とデプロイは複雑で困難な場合がある。 複数のサービス、依存関係、配備環境を管理するには、しばしば多大な労力と調整が必要になる。 このような課題に対処するため、マイクロソフトは**プロジェクト・タイ.NETアプリケーションの開発、テスト、配備を簡素化するために設計された開発者ツールです。 この記事では、Tyeの世界を掘り下げ、その機能、利点、.NET開発者のための実用的なアプリケーションを探ります。 また、次のようなことも学ぶ。IronPDFIronPDF, a PDF generation library from Iron SoftwareIron Software 使用言語**タイ以下のコンテンツを日本語に翻訳してください:IronPDF実際の例で。

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

**タイは、.NETプロジェクトアプリケーションのビルド、テスト、デプロイのプロセスを最小限の構成で効率化する、オープンソースの実験的な開発者ツールです。 マイクロソフトのエンジニアリングチームが開発、**タイは、マイクロサービスとその依存関係を管理するための一貫性のある、意見集約されたアプローチを提供することで、開発ワークフローを簡素化することを目的としている。 その中核となる 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

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

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

タイ入門

タイを始めるには

  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"
  1. マイクロサービス用の新しいフォルダを作成する。

  2. フォルダに移動し、フロントエンド・プロジェクトを作成する。(例:レイザーページ):
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
  1. フロントエンドのプロジェクト、tyeダッシュボードを実行する:
tye run frontend  // frontend project or backend project
tye run frontend  // frontend project or backend project

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

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

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

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

tye init
tye init

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
YAML

タイを使うメリット

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

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

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

  4. クラウドネイティブへの対応:.NETアプリケーションをKubernetesのようなクラウドネイティブ環境で実行するために必要なツールやプラクティスを提供し、組織が自信を持って最新のインフラストラクチャパラダイムを採用できるようにします。

  5. コミュニティのサポートと貢献:マイクロソフトが支援するオープンソースプロジェクトとして、Tyeは、開発、文書化、エコシステムに積極的に貢献する貢献者とユーザーの活気あるコミュニティから恩恵を受けています。

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

プロジェクト・タイには以下が含まれる。MITライセンス開発および商業目的であれば無料で使用できる。

IronPDFの紹介

.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アプリを選択してください。

.NET(How It Works For Developers)を使用します:図2 - Visual Studioを開き、新しいASP.NET Core Web App(Razor Pages)を作成します。

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

タイ .NET(開発者向けの仕組み):図3 - プロジェクト名と場所を指定してプロジェクトを構成する。 次へをクリックしてください。

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

.NET(How It Works For Developers)を使用します:図4 - .NET Core 3.1フレームワークを選択し、Createをクリックします。

インストールNuGetパッケージからのIronPdfVisual Studio Package Managerから。

tye.NET(開発者のための仕組み)を参照してください:図5 - NuGet Package Managerの検索バーで 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"

または、すでに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"

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

tye init
tye init

これは次のようなテンプレート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
YAML

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

tye run frontend
tye run frontend

次のURLでTyeダッシュボードが開き、アプリの実行状況を見ることができます: http://127.0.0.1:8000/

タイ・ダッシュボード

タイ .NET(開発者のための仕組み):図6 - localhost上でTyeを使って実行されている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>

次に、以下のコードを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");
        }
    }
}

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

.NET(How It Works For Developers)を使用します:図7 - tye run frontendコマンドを使った実行タイプ

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

.NET(開発者のための仕組み):図8 - Tyeダッシュボード

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

.NET(開発者向けの仕組み):図9 - IronPDFを使ったURLからPDFへのジェネレーター

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

.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"
}

結論

結論として、**タイは、.NETエコシステムの大きな進歩であり、分散アプリケーションの構築、テスト、デプロイに合理的なアプローチを提供する。 ベテランの .NET 開発者であろうと、コンテナ化やマイクロサービスの初心者であろうと、Tye は最新の開発プラクティスを受け入れ、クラウドネイティブなアーキテクチャへの旅を加速するための使いやすいプラットフォームを提供します。

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

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
C# Nito.Asyncex (開発者のための仕組み)
次へ >
Quartz .NET(開発者向けの動作の仕組み)