透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
現在のソフトウェア開発環境では、高水準のドキュメントを作成し、データの整合性を保証することが不可欠な作業となっています。 この投稿では、強力な C# ライブラリである Flunt C# と IronPDF を組み合わせて、データ検証およびドキュメント作成のワークフローを改善する方法を見ていきます。 開発者は、さまざまなニーズに対応する効果的で信頼性の高いソリューションを構築できます。ソフトウェアアプリケーションIronPDF の高度な PDF 生成機能と Flunt の強力なバリデーション機能を活用して。
新しいC#コンソールプロジェクトを作成します。
NuGetからFluntパッケージをインストールします。
名前空間をインポートして、クラスを継承します。
データモデルにバリデーションを追加します。
多用途で軽量な.NETフレームワークであるFluntは、C#アプリケーションにおける流れの良いバリデーションおよび通知パターンの開発を容易にするために作られました。 コードは、開発者がFluntを使用して流暢で表現力豊かな方法で検証ルールおよびビジネスロジックを構築すると、より読みやすく保守されやすくなります。 Fluntの幅広い統合バリデーション技術と拡張機能を活用することで、開発者はオブジェクトやコレクションのような複雑なデータ構造を簡単に検証できます。
さらに、Fluntは、.NETライブラリアプリケーションの信頼性と堅牢性を高めるための有用なツールです。Fluntは既存のコードベースやフレームワークに簡単に統合できます。 要するに、Fluntは検証とエラーハンドリングにおいて宣言的なアプローチを推奨し、開発者がよりクリーンで堅牢なコードを書くことを可能にします。
Fluent Interface: Fluntはバリデーションルールを構築するための読みやすく簡潔なインターフェースを提供し、複雑なバリデーションロジックの表現を簡素化します。
チェイン可能バリデーション: バリデーションルールを自然に接続することで、少ないコードでチェイン可能バリデーションシナリオを作成できます。
統合されたバリデーター: Fluntには、日付、整数、文字列、コレクションなど、頻繁に使用されるデータタイプ用のいくつかの組み込みバリデーターが含まれています。 流暢な構文により、これらのバリデーターをプロパティに容易に適用することができます。
カスタムバリデーションルール: Fluntフレームワークを拡張することで、開発者は特定のドメイン要件に適応したバリデーションロジックを可能にするカスタムバリデーションルールを追加できます。
通知システム: 検証の問題を報告し、エラーメッセージを収集するために、Fluntは通知システムを提供します。 これにより、開発者は検証の失敗をユーザーや他のアプリケーションコンポーネントに簡単に知らせることができます。
フレームワークの統合: Fluntは、Entity FrameworkやASP.NET Coreなどの有名なフレームワークやライブラリと簡単に接続でき、既存のプロジェクトに検証ロジックを追加するのが容易です。
テスト容易性: Fluntはテスト駆動開発を促進します(テスト駆動開発 (TDD))アプリケーションコードと検証ロジックを明確に区分することで、検証ルールの単体テストを簡単に行えるようにします。
オープンソースと活気あるコミュニティ: Fluntは、開発者のグループによって積極的に維持されており、オープンソースです。 これにより、フレームワークの継続的なメンテナンス、改良、およびサポートが保証されます。
通知およびバリデーションの名前空間はFluntベースクラスライブラリの一部であり、C#プロジェクトでデフォルトでアクセスできるはずです。 Fluntは、柔軟なインターフェースを提供することにより、C#プログラムのバリデーションを迅速化します。これにより、バリデーションルールの定義と適用が容易になります。 よりクリーンなコードのサポート、可読性の向上、徹底したエラーハンドリングにより、ユーザー入力、ドメインオブジェクト、APIリクエストの検証がより容易になります。
Flunt は、Windows コンソール、Web アプリケーション、Windows フォームなど、さまざまな C# アプリケーション タイプによって実装されています。(WinForms). フレームワークごとに実装は異なりますが、一般的な概念は常に同じです。
インストールが完了したら、次のコード Flunt を使用できます。 こちらは、Fluntを使用してバリデーションルールを構築する方法を示す簡単な例です:
using Flunt.Validations;
static void Main(string[] args)
{
var person = new Person { Name = "Jack", Age = -25 };
var contract = new PersonContract(person);
// validation checks
if (contract.IsValid)
{
Console.WriteLine("Person is valid!");
}
else
{
Console.WriteLine("Validation failed:");
foreach (var notification in contract.Notifications)
{
Console.WriteLine($"- {notification.Key}:{notification.Message}");
}
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonContract : Contract<Person>
{
public PersonContract(Person person)
{
// ensure the correct format of the object
Requires()
.IsNotNull(person, nameof(person))
.IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
.IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
}
}
using Flunt.Validations;
static void Main(string[] args)
{
var person = new Person { Name = "Jack", Age = -25 };
var contract = new PersonContract(person);
// validation checks
if (contract.IsValid)
{
Console.WriteLine("Person is valid!");
}
else
{
Console.WriteLine("Validation failed:");
foreach (var notification in contract.Notifications)
{
Console.WriteLine($"- {notification.Key}:{notification.Message}");
}
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonContract : Contract<Person>
{
public PersonContract(Person person)
{
// ensure the correct format of the object
Requires()
.IsNotNull(person, nameof(person))
.IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
.IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
}
}
Person
クラス: FluentValidation
の例と同じです。
PersonContract
:このクラスは、Fluntの基本概念である Contract.Verifications
から派生しています。 Requires
メソッドを使用して、コンストラクターは Person オブジェクトを受け取り、バリデーションルールを提供します。 Requires
は、いくつかのバリデーションを追加するためのチェイン可能なメソッドを提供します。 検証は IsNotNull
、NotEmpty
、HasMinLength
、および IsGreaterThan
のようなメソッドによって実行されます。 すべての検証ルールには、個別のエラーメッセージが利用可能です。
バリデーション: FluentValidation.Together
の例と同様に、オブジェクトと一緒にPersonContract
インスタンスおよびPersonオブジェクトを作成します。 検証結果は契約のValid属性によって示されます。 検証結果に応じて、成功や失敗の通知と特定のエラー詳細が表示されます。
C#アプリケーションの検証および通知処理のために、Fluntは以下のような多くの操作を提供します:
検証ルールの作成: 必須フィールド、データタイプ、値の範囲、最大長、最小長などの属性に対する検証ルールを作成するには、流暢なインターフェースを使用してください。
検証の実行: データの整合性とビジネスロジックの遵守を保証するために、事前定義されたルールに従ってオブジェクトを検証します。
検証ミスの管理: 検証ミスをアラートとして記録し、ユーザーにエラーメッセージを提供するか、トラブルシューティングのためにエラーを記録することで、丁寧に対応します。 個別の検証ロジック
複雑な検証状況や特定のドメイン要件に応じて、Fluntを拡張するために独自の検証ルールを使用します。
フレームワークとの統合: 現在のアプリケーションにおける検証機能を向上させるために、FluntはEntity FrameworkやASP.NET Coreなどの多くの著名な.NETフレームワークおよびライブラリとシームレスに統合することができます。
開発者は Flunt と IronPDF を統合することで、C# アプリケーションにおけるビジネスロジックの検証とドキュメント作成を迅速化するために、これら両技術の強みを活用することができます。 Fluntで入力データを検証した後、IronPDFを使ってPDFドキュメントを作成することで、開発者はアプリケーションをより信頼性の高い、ユーザーフレンドリーなものにすることができます。
Install-Package IronPdf
検索結果からIronPDFパッケージを探索して選択した後、「インストール」ボタンをクリックしてください。 インストールとダウンロードは Visual Studio によって処理されます。
IronPDFの機能、互換性、その他のダウンロード方法についての詳細は、IronPDFをご覧ください。NuGetパッケージ詳細ページNuGetのウェブサイトで。
代替手段として、IronPDFのDLLファイルを利用してプロジェクトに直接組み込むことができます。 DLL を含む ZIP ファイルを取得するには、次のリンクを訪問してくださいIronPDF ZIPダウンロードページ. DLLファイルを解凍したら、それをプロジェクトに含めます。
以下の内容を日本語に翻訳してください:
IronPDFを使用してPDFを作成し、Fluntを使用してデータを検証する基本的なC#アプリケーションを作成しましょう。 この例では、Fluntを使用して登録フォームのユーザー入力を検証し、IronPDFを使用して検証されたユーザーデータの概要を含むPDFドキュメントを作成します。
Personクラス: 名前と年齢の属性を持つPersonクラスが定義されています。 私たちは、Fluntのフルエントインターフェースをコンストラクタで使用して、事前定義された検証ルールに基づいてPersonデータを検証します。
Generate Pdf: RenderHtmlAsPdf
というメソッドが定義されており、Userオブジェクトを入力として受け取ります。 この機能は、IronPDFのHtmlToPdf
クラスを使用して、ユーザー登録の概要を表すHTMLテキストをPDF文書にレンダリングします。
Mainメソッド: サンプルのPersonデータを使用して、Mainメソッド内でUserクラスのインスタンスを作成します。 次に、Personデータが正当かどうかを判断するために、Fluntの IsValid
属性を使用します。 データが正しい場合、PDFドキュメントを作成するためにIronPDFメソッドを呼び出します。 コンソールに検証問題が表示されます。
私たちは、PDF生成のためのIronPDFとデータ検証のためのFluntを組み合わせることにより、C#アプリケーションにおけるユーザー入力を評価し、PDFドキュメントを生成するための迅速なワークフローを開発しました。 この方法はデータの完全性を保証し、専門品質の文書を生成し、明確で読みやすく保守可能なコードの作成を促進します。 IronPDFの機能の詳細については、以下をご参照ください。ドキュメントページ. 以下はサンプルコードスニペットです。
using IronPdf;
using System;
using System.Linq;
using System.Text;
using Flunt.Validations;
namespace ConsoleApp
{
internal class Program
{
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
var person = new Person { Name = "Jack", Age = -25 };
var contract = new PersonContract(person);
if (contract.IsValid)
{
Console.WriteLine("Person is valid!");
}
else
{
sb.Append("<p>Validation failed: </p>");
foreach (var notification in contract.Notifications)
{
sb.Append($"- {notification.Key}: {notification.Message}");
}
}
var renderer = new IronPdf.HtmlToPdf();
//Set HTML content for the page
var pdfDocument = renderer.RenderHtmlAsPdf(sb.ToString());
// save the document
pdfDocument.SaveAs("output.pdf");
//Dispose the render object
renderer.Dispose();
//Display a message
Console.WriteLine("Report generated successfully!");
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonContract : Contract<Person>
{
public PersonContract(Person person)
{
Requires()
.IsNotNull(person, nameof(person))
.IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
.IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
}
}
}
using IronPdf;
using System;
using System.Linq;
using System.Text;
using Flunt.Validations;
namespace ConsoleApp
{
internal class Program
{
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
var person = new Person { Name = "Jack", Age = -25 };
var contract = new PersonContract(person);
if (contract.IsValid)
{
Console.WriteLine("Person is valid!");
}
else
{
sb.Append("<p>Validation failed: </p>");
foreach (var notification in contract.Notifications)
{
sb.Append($"- {notification.Key}: {notification.Message}");
}
}
var renderer = new IronPdf.HtmlToPdf();
//Set HTML content for the page
var pdfDocument = renderer.RenderHtmlAsPdf(sb.ToString());
// save the document
pdfDocument.SaveAs("output.pdf");
//Dispose the render object
renderer.Dispose();
//Display a message
Console.WriteLine("Report generated successfully!");
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonContract : Contract<Person>
{
public PersonContract(Person person)
{
Requires()
.IsNotNull(person, nameof(person))
.IsNotEmpty(person.Name, nameof(person.Name), "Name is required")
.IsGreaterThan(person.Age, 0, nameof(person.Age), "Age must be a positive number");
}
}
}
以下は上記コードからの実行出力です:
IronPDFとFluntは、ドキュメント作成とデータ検証のワークフローを合理化するためにうまく機能する2つの強力なC#ライブラリです。 IronPDFの高度なPDF生成機能とFluntの強力な検証機能を活用することで、開発者はさまざまなアプリケーションに対して信頼性が高く、効率的で高品質なソリューションを構築できます。 FluntとIronPDFは、デスクトップアプリ、ウェブアプリケーション、クラウドベースのソリューションを開発する際に、ユーザーやステークホルダーのニーズに応える高品質のソフトウェアを作成するために必要なツールを開発者に提供します。
ソフトウェアサポート1年、永久ライセンス、およびライブラリアップグレードがすべて含まれた$749 Liteバンドル。 IronPDFは提供します無料ライセンスの詳細コストとライセンス要件に関する詳細については、IronPDFをご覧ください。 Iron Softwareライブラリの詳細については、以下をご覧ください。Iron Software公式ウェブサイト.