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

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

DotNetifyは、.NETプラットフォーム上でリアルタイムWebアプリケーションを作成するために設計された、.NETとBlazorを使用したオープンソースのフレームワークです。 SignalRのパワーを利用して、クライアントとサーバー間のリアルタイムインタラクションを実現し、動的かつインタラクティブなWebアプリケーションの構築を簡略化します。 DotNetifyは、サーバーサイドスクリプトのデータとクライアント側のビューを同期させるプログラミングモデルを提供し、開発者が豊かで反応のよいパフォーマンスの高いオンラインインターフェースを迅速かつ簡単に設計できるようにします。

逆に、IronPDF PDF生成ライブラリは、プログラム的にPDFドキュメントの作成、編集、操作を支援する強力な.NETパッケージです。 レポート、請求書、フォームなどの動的でデータ駆動のドキュメントを作成する際に最良の選択肢であり、HTMLテキストをPDFに変換する直感的なAPIを提供しています。

DotNetifyとIronPDFを統合することで、C#アプリケーションでリアルタイムWebインタラクティビティと堅牢なPDF生成機能を組み合わせます。 この統合は、リアルタイムデータの表示と最新のデータに基づいてPDFドキュメントを動的に作成および配布する能力を必要とするアプリケーションに特に有効です。 開発者は、IronPDFの多才なPDF生成とDotNetifyのリアルタイムデータ同期を活用することで、シームレスなドキュメント生成と配布を通じて複雑なビジネス要件に対応し、ユーザー体験を向上させる広範でインタラクティブなオンラインアプリを作成できます。

DotNetifyとは?

DotNetifyは、.NETとBlazorによってインタラクティブでリアルタイムのWebアプリを簡単に作成するために設計されたオープンソースのフレームワークです。 開発者は、SignalRを活用してクライアントとサーバー間のリアルタイム通信を促進し、サーバー側データと同期する動的で反応のよいユーザーインターフェイスを作成できます。 DotNetifyはリアクティブプログラミングアプローチを使用し、リアルタイムデータバインディングとイベント処理の複雑さを抽象化することで、最小限のコードで複雑なオンラインアプリケーションの作成を簡略化します。

dotnetify .NET(開発者向け:動作の仕組み):図1

DotNetifyによって開発者は、クライアントへの変更を即座に伝播し、常にアプリケーションの状態を反映するサーバーサイドのビューモデルを構築できます。 このフレームワークはクライアントサイド技術を選択する柔軟性を提供し、クラシックなJavaScriptフロントエンドとBlazorフロントエンドの両方をサポートします。 使いやすさと効果的なため、ダッシュボード、共同作業ツール、ライブデータストリームなどリアルタイム更新が必要なアプリケーションに最適です。

DotNetifyのリアルタイムのやり取りとデータフローの複雑な処理により、ユーザー体験が大幅に向上し、スムーズなデータ同期と即時フィードバックを可能にします。 全体として、DotNetifyは、リアクティブで最先端のリアルタイムオンラインアプリケーションを迅速かつ効率的に構築しようとする.NET開発者にとって貴重なツールです。

DotNetifyの機能

C#用のDotNetifyは、インタラクティブでリアルタイムのオンラインアプリを簡略化する多様な機能を提供します。主な機能には以下のものがあります。

  • リアルタイム通信: 双方向のリアルタイムクライアントサーバー通信を実現するSignalRを利用し、インタラクティブなユーザーインターフェイスと即時更新を可能にします。
  • リアクティブプログラミングモデル: リアクティブプログラミングモデルを提供し、クライアントサイドのビューとサーバーサイドのビューモデルを自動的に同期させ、最新の情報でユーザーインターフェイスを保ちます。
  • サーバーサイドビューモデル: アプリケーション内で状態管理とデータフローを簡素化するためにクライアントサイドコンポーネントがバインドできるサーバーサイドビューモデルの作成を支援します。
  • BlazorとJavaScriptサポート: クラシックなJavaScriptフロントエンドとBlazorフロントエンドの両方をサポートし、開発者が要件に最適なクライアントサイド技術を選ぶことを可能にします。
  • 統合の容易さ: 新規または既存プロジェクトにリアルタイム機能をシームレスに集成し、React Native、Vue、Blazorを使用するプロジェクトと融合する前面UIコンポーネントフレームワークと良好に動作します。
  • スケーラビリティ: アプリケーションが多くの同時接続を効果的に管理できるようにするSignalRのスケーラビリティ機能を継承しています。
  • MVVMアーキテクチャ: 責任を分離し、整理された清潔なコードを維持するのを助けるModel-View-ViewModel(MVVM)アーキテクチャを採用しています。
  • イベント処理: UIやり取りと状態の変化を処理するために必要なボイラープレートコードを削減し、イベント処理とデータバインディングを簡略化します。
  • 拡張性とカスタマイズ性: 他のライブラリまたはフレームワークと必要な統合と挙動のカスタマイズのための拡張ポイントとフックを提供します。
  • 強力なインフラストラクチャ: バックエンドで完全に定義できる動的ルーティングメカニズムを提供し、ネスト型ルーティング、トークンベースの認証などが可能です。
  • オープンソースとコミュニティ駆動: オープンソースプロジェクトとして、DotNetifyはコミュニティ参加と貢献から利益を得ており、継続的なアップグレードと改善を確保しています。

C#におけるDotNetifyの作成と構成

シンプルなプロジェクトを立ち上げてC#オンラインアプリでDotNetifyを構成し始めるための手順です。 このチュートリアルは、ASP.NET CoreとBlazorを使用して基本的なDotNetifyサーバーとクライアントを設定する方法を示します。

新しいASP.NET Core Blazorサーバープロジェクトを設定する

  1. Visual Studio を開く: Visual Studio を起動し、新しいプロジェクトを作成します。
  2. Blazor サーバー アプリを作成する:プロジェクト テンプレートから Blazor サーバー アプリ テンプレートを選択し、"次へ"をクリックします。 3.プロジェクトを構成する:プロジェクトの名前 (例: "DotNetifyWebApp") を指定し、必要な構成変更を行います。 "作成"をクリックします。

NuGet経由でDotNetifyをインストール

  1. NuGet パッケージの管理:ソリューション エクスプローラーでプロジェクトを右クリックし、"NuGet パッケージの管理"を選択します。
  2. DotNetify を検索します。DotNetifyおよび DotNetify.Blazor パッケージをインストールします。

DotNetifyを構成する

Startup.csを開いて、ConfigureServicesConfigureメソッドを使用してDotNetifyを構成します。

using DotNetify;
using DotNetify.Blazor;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSignalR();
        services.AddDotNetify();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
            endpoints.MapHub<DotNetifyHub>("/dotnetify");
        });
    }
}
using DotNetify;
using DotNetify.Blazor;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSignalR();
        services.AddDotNetify();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
            endpoints.MapHub<DotNetifyHub>("/dotnetify");
        });
    }
}
$vbLabelText   $csharpLabel

ビューモデルを作成する

プロジェクトに新しいクラスファイル(例:HelloWorldViewModel.cs)を作成し、基本的なビューモデルをデザインします。

using DotNetify;

public class HelloWorldViewModel : BaseVM
{
    public string Greetings => "Hello, World!";
}
using DotNetify;

public class HelloWorldViewModel : BaseVM
{
    public string Greetings => "Hello, World!";
}
$vbLabelText   $csharpLabel

ビューモデルを登録する

ビューモデルを登録する前に、Program.csを開きます。

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
            .ConfigureServices(services =>
            {
                services.AddTransient<HelloWorldViewModel>();
            });
}
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
            .ConfigureServices(services =>
            {
                services.AddTransient<HelloWorldViewModel>();
            });
}
$vbLabelText   $csharpLabel

Blazorコンポーネントを作成する

プロジェクトで新しいBlazorコンポーネント(例:HelloWorld.razor)を追加し、ビューモデルに接続します。

@page "/"

@using DotNetify
@using DotNetify.Blazor
@inject IDotNetifyService DotNetify

<h3>@greetings</h3>

@code {
    private string greetings;

    protected override async Task OnInitializedAsync()
    {
        var vm = await DotNetify.ConnectAsync<HelloWorldViewModel>(this);
        greetings = vm.Greetings;
    }
}
  • DotNetify、Blazor、Razor Pages、SignalRを利用するようにアプリケーションを設定します。
  • DotNetifyとBlazorのエンドポイントおよびルーティングを構成します。
  • 挨拶メッセージを返す属性を持つ基本的なビューモデルを説明します。
  • HelloWorldViewModelをサービスとして登録します。
  • BlazorコンポーネントはHelloWorldViewModelとの接続を確立し、歓迎のテキストを取得し、画面に表示します。

dotnetify .NET(開発者向け:動作の仕組み):図2

開始方法

DotNetifyとIronPDFを使用するには、.NETプロジェクトを作成し、両方のライブラリをアプリケーションに組み込む必要があります。 始めるためのステップバイステップのチュートリアルはこちらです。

IronPDF とは何ですか?

機能豊富な.NETライブラリIronPDF PDF Libraryは、C#プログラムがPDFドキュメントを作成、読み取り、編集することを可能にします。 このライブラリを使用すると、開発者はHTML、CSS、およびJavaScriptの情報を迅速に高品質で印刷可能なPDFに変換できます。 主なタスクには、ヘッダーとフッターの追加、PDFの分割とマージ、ドキュメントへの透かしの追加、HTMLからPDFへの変換が含まれます。

IronPDFは、.NET Frameworkと.NET Coreの両方をサポートしているため、さまざまなアプリケーションに関連しています。 使用の簡潔さと豊富な情報で、開発者の製品に簡単にPDFを統合できます。 IronPDFは、複雑なデータのレイアウトとフォーマットを処理し、生成したPDFがクライアントの元のHTMLテキストに近似することを保証します。 また、IronPDFはWindows、Web、およびモバイル環境などのクロスプラットフォームアプリもサポートしています。

dotnetify .NET(開発者向け:動作の仕組み):図3

IronPDF の機能

  • HTMLからのPDF生成: JavaScript、HTML、およびCSSをPDFに変換します。 IronPDF は、メディア クエリとレスポンシブ デザインの 2 つの現代の Web 標準をサポートしています。 その現代のWeb標準サポートは、PDFの請求書、レポート、およびドキュメントをHTMLとCSSで動的に装飾するのに役立ちます。

  • PDF編集: 既存のPDFには、テキスト、画像、その他のコンテンツを追加できます。 開発者はIronPDFを使用して、PDFファイルからテキストや画像を抽出し、複数のPDFを1つのファイルに結合し、PDFファイルをいくつかの別々の書面に分割し、透かし、注釈、ヘッダー、およびフッターを追加することができます。

  • PDF変換: Word、Excel、画像ファイルなどの複数のファイル形式をPDF形式に変換します。 IronPDFはまた、PDFから画像への変換(PNG、JPEGなど)をサポートしています。

  • パフォーマンスと信頼性: 工業設定で必要とされる高パフォーマンスと信頼性。 IronPDFを使用すると、開発者は大規模なドキュメントセットを簡単に管理できます。

IronPDFをインストールする

PDFを使った.NETプロジェクトで必要なツールを手に入れるには、IronPDFパッケージをインストールします。

Install-Package IronPdf

DotNetifyをIronPDFと統合する

DotNetifyを構成:

スタートアップ設定: Startup.csを開いて、ConfigureServicesConfigureメソッドを使用してDotNetifyを構成します。

using DotNetify;
using DotNetify.Blazor;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSignalR();
        services.AddDotNetify();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
            endpoints.MapHub<DotNetifyHub>("/dotnetify");
        });
    }
}
using DotNetify;
using DotNetify.Blazor;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSignalR();
        services.AddDotNetify();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
            endpoints.MapHub<DotNetifyHub>("/dotnetify");
        });
    }
}
$vbLabelText   $csharpLabel

ビューモデルを作成する

プロジェクトに新しいクラスファイルを追加し(例:PdfViewModel.cs)、PDFを作成するビューモデルを作成します。

using DotNetify;
using IronPdf;

public class PdfViewModel : BaseVM
{
    public string PdfUrl { get; set; }

    public void GeneratePdf()
    {
        // Create a new PDF renderer instance
        var Renderer = new ChromePdfRenderer();

        // Render HTML as a PDF document
        var PdfDocument = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

        // Define the output path for saving the PDF
        var OutputPath = "wwwroot/PdfFiles/HelloWorld.pdf";

        // Save the generated PDF document
        PdfDocument.SaveAs(OutputPath);

        // Update the property for the PDF URL
        PdfUrl = "/PdfFiles/HelloWorld.pdf";
        Changed(nameof(PdfUrl));
    }
}
using DotNetify;
using IronPdf;

public class PdfViewModel : BaseVM
{
    public string PdfUrl { get; set; }

    public void GeneratePdf()
    {
        // Create a new PDF renderer instance
        var Renderer = new ChromePdfRenderer();

        // Render HTML as a PDF document
        var PdfDocument = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>");

        // Define the output path for saving the PDF
        var OutputPath = "wwwroot/PdfFiles/HelloWorld.pdf";

        // Save the generated PDF document
        PdfDocument.SaveAs(OutputPath);

        // Update the property for the PDF URL
        PdfUrl = "/PdfFiles/HelloWorld.pdf";
        Changed(nameof(PdfUrl));
    }
}
$vbLabelText   $csharpLabel

新しいコンポーネントを追加してBlazorコンポーネント(例:GeneratePdf.razor)を作成し、ビューモデルにバインドします。

@page "/"

@using DotNetify
@using DotNetify.Blazor
@inject IDotNetifyService DotNetify

<PageTitle>Generate PDF</PageTitle>
<h3>Generate PDF</h3>

<button @onclick="GeneratePdf">Generate PDF</button>

@if (!string.IsNullOrEmpty(pdfUrl))
{
    <a href="@pdfUrl" target="_blank">Download PDF</a>
}

@code {
    private string pdfUrl;

    protected override async Task OnInitializedAsync()
    {
        var vm = await DotNetify.ConnectAsync<PdfViewModel>(this);
        pdfUrl = vm.PdfUrl;

        vm.PropertyChanged += (sender, args) =>
        {
            if (args.PropertyName == nameof(vm.PdfUrl))
            {
                pdfUrl = vm.PdfUrl;
                StateHasChanged();
            }
        };
    }

    private void GeneratePdf()
    {
        DotNetify.CallMethod("GeneratePdf");
    }
}

C# ASP.NET Core BlazorアプリケーションでDotNetifyとIronPDFを統合することで、リアルタイムデータの処理と動的PDF生成が可能になります。 設定は、Startup.csでサービスを構成することから始まり、サーバーサイドBlazorとリアルタイム機能を有効にするために、Razor Pages、Blazor Server、SignalR、DotNetifyのサービスが登録されます。

PdfViewModel.csでは、IronPDFのPDF生成ロジックが定義されています。 数行のコードでPDFファイルを生成できます。 GeneratePdf関数は、HTMLコンテンツをPDFに変換し、PdfUrlプロパティを更新して、クライアントに新しいファイル位置を通知します。 GeneratePdf.razor Blazorコンポーネントとの通信はこのビューモデルによって処理されます。

dotnetify .NET(開発者向け:動作の仕組み):図4

コンポーネントはIDotNetifyServiceを介してPdfViewModelに接続し、そのプロパティにバインドし、クライアントがGeneratePdf関数を呼び出し、プロパティの変化に反応できるようにします。 ユーザーが"PDF生成"ボタンをクリックすると、ビューモデルのメソッドが呼び出され、PDFが作成され、ダウンロードURLが動的に更新されます。 この構成により、IronPDFの強力なドキュメント生成機能とDotNetifyのリアルタイムデータ同期を組み合わせることで、Webアプリケーションは応答しやすく魅力的なユーザー体験を提供します。

dotnetify .NET(開発者向け:動作の仕組み):図5

結論

DotNetifyとIronPDFの統合により、C# ASP.NET Core Blazorアプリケーションでリアルタイムデータ同期と動的PDF生成が組み合わさります。 DotNetifyはクライアントサイドのBlazorコンポーネントとサーバーサイドのビューモデル間のシームレスな通信を可能にし、インタラクティブで応答性のあるアプリケーションを実現します。 これはIronPDFによって補完され、サーバーサイドロジックから直接PDFを作成および修正するための堅牢なツールを提供します。 この強力な組み合わせにより、カスタマイズされたドキュメントを作成及び配布するアプリケーション、そしてリアルタイム更新が可能にされます。

この統合は、レポーティング、請求書処理、またはその他のドキュメント関連のタスクにおいてユーザー体験を向上させるために、リアルタイムデータ処理とドキュメント生成技術を活用しています。 示された手順に従うことで、開発者はこれらのツールを効率的に設定して利用し、現代のウェブアプリケーション開発における新しい可能性を解放できます。

IronPDFとIron Software開発者ツールを使用すると、この豊富な機能を探求しようとする開発者は、OCR、バーコードスキャン、PDF生成などの機能を利用できます。 プロジェクトに関連する提供されたライセンスオルタナティブは詳細に指定されており、開発者が自身のニーズに最も適したモデルを選択することを可能にします。 列挙された利点は、開発者が多様な課題に対して迅速、協調的、効果的なソリューションを提供するのに貢献します。

よくある質問

DotNetifyとは何であり、どのように機能するのか?

DotNetifyは.NETとBlazorで構築されたオープンソースフレームワークで、リアルタイムウェブアプリケーションの開発を目的としています。SignalRを使用して、クライアントとサーバー間のリアルタイム通信を可能にし、動的でインタラクティブなウェブアプリケーションの作成を支援します。

どのようにC#でPDF生成を統合したリアルタイムウェブアプリケーションを開発できますか?

リアルタイムウェブアプリケーションにはDotNetifyを、PDF生成にはIronPDFを組み合わせることで、開発者はリアルタイムのデータ入力に基づいて動的にPDFを生成および配布するインタラクティブなアプリケーションを作成できます。

IronPDFが提供するPDF文書操作の機能は何ですか?

IronPDFはPDF文書をプログラム的に作成、編集、変換する機能を提供します。HTML、CSS、JavaScriptからPDFへの変換を可能にし、さまざまなPDF操作をサポートしており、レポートや動的文書の生成に最適です。

DotNetifyはリアルタイムアプリケーション開発をどのように向上させますか?

DotNetifyは、クライアント側のビューとサーバー側のデータを同期させるプログラミングモデルを提供することで、リアルタイムアプリケーション開発を強化しています。これにより、応答性の高いインタラクティブなウェブインターフェースの作成が可能になります。それは、柔軟な開発環境を可能にするJavaScriptとBlazorの両方をサポートしています。

DotNetifyでSignalRを使用する利点は何ですか?

DotNetifyでのSignalRはリアルタイムのクライアントとサーバーの通信を可能にし、インタラクティブで応答性の高いウェブアプリケーションの作成に不可欠です。これにより、アプリケーション内での即時更新と動的な相互作用が促進されます。

IronPDFは.NETアプリケーションで動的なレポート生成をどのように支援しますか?

IronPDFはCSSやJavaScriptを含むHTMLコンテンツを高品質なPDF文書に変換することで動的なレポートを生成することができます。これは特に、データ駆動型のレポートや請求書の生成を必要とするアプリケーションに役立ちます。

DotNetifyにおけるViewModelsの役割は何ですか?

DotNetifyでは、ViewModelsはクライアントとサーバー間のデータ同期を担当します。これにより、応答性の高いユーザーインターフェイスを備えたアプリケーションの開発が容易になります。

DotNetifyとIronPDFを組み合わせることでユーザーエクスペリエンスがどのように向上しますか?

DotNetifyとIronPDFを組み合わせることで、リアルタイムのデータ更新と単一のアプリケーション内での動的PDF生成を可能にすることにより、ユーザーエクスペリエンスが向上します。この統合は、シームレスな文書の生成と配布を可能にし、アプリケーションの機能を向上させます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。