Ir para o conteúdo do rodapé
AJUDA DO .NET

Flunt C# (Como funciona para desenvolvedores)

No ambiente atual de desenvolvimento de software, produzir documentação de alta qualidade e garantir a integridade dos dados são tarefas essenciais. Neste artigo, veremos como combinar as poderosas bibliotecas C#, Flunt C# e IronPDF, para aprimorar os fluxos de trabalho de validação de dados e criação de documentos. Os desenvolvedores podem criar soluções eficazes e confiáveis ​​para uma variedade de aplicativos de software , utilizando os recursos sofisticados de produção de PDF do IronPDF e os robustos recursos de validação do Flunt.

Como usar o Flunt em C

  1. Crie um novo projeto de console em C#.
  2. Instale o pacote Flunt a partir do NuGet.
  3. Importe o namespace e faça com que a classe seja herdada.
  4. Adicione a validação ao modelo de dados.
  5. Realize as verificações de validação e exiba o resultado.

Entendendo o Flunt em C

O Flunt, um .NET Framework versátil e leve, foi criado para facilitar o desenvolvimento de padrões de validação e notificação fluentes em aplicações C#. O código torna-se mais legível e fácil de manter quando os desenvolvedores usam o Flunt para construir regras de validação e lógica de negócios de forma fluida e expressiva. Com a ampla gama de técnicas e extensões de validação integradas do Flunt, os desenvolvedores podem validar facilmente estruturas de dados complexas, como objetos e coleções.

Além disso, o Flunt é uma ferramenta útil para aumentar a confiabilidade e a robustez de aplicativos de biblioteca .NET , pois se integra facilmente com bases de código e frameworks existentes. Em suma, o Flunt incentiva uma abordagem declarativa para validação e tratamento de erros, permitindo que os desenvolvedores escrevam um código mais limpo e robusto.

Recursos do Flunt em C

Interface Fluent: O Flunt oferece uma interface legível e concisa para a criação de regras de validação, o que simplifica a expressão de lógicas de validação complexas.

Validação encadeável: Cenários de validação encadeáveis ​​podem ser criados com pouco código, conectando regras de validação de forma natural.

Validadores integrados: O Flunt vem com diversos validadores integrados para tipos de dados usados ​​com frequência, incluindo datas, números inteiros, strings e coleções. A sintaxe fluente permite a fácil aplicação desses validadores às propriedades.

Regras de Validação Personalizadas: Ao expandir o framework Flunt, os desenvolvedores podem adicionar regras de validação personalizadas que permitem a adaptação da lógica de validação a requisitos específicos do domínio.

Sistema de Notificação: Para reportar problemas de validação e coletar mensagens de erro, o Flunt oferece um sistema de notificação. Isso facilita para os desenvolvedores informar os usuários ou outros componentes do aplicativo sobre falhas de validação.

Integração com frameworks: O Flunt se conecta facilmente com frameworks e bibliotecas conhecidos, incluindo Entity Framework e ASP.NET Core, simplificando a adição de lógica de validação a projetos já existentes.

Testabilidade: O Flunt facilita o desenvolvimento orientado a testes (TDD) ao oferecer uma divisão clara entre o código do aplicativo e a lógica de validação, simplificando a realização de testes unitários das regras de validação.

Código aberto e comunidade próspera: Um grupo de desenvolvedores mantém o Flunt ativamente, tornando-o de código aberto. Isso garante a manutenção contínua, melhorias e suporte para a estrutura.

Primeiros passos com o Flunt em C

Configurando o Flunt em projetos C

Os namespaces Notifications e Validation fazem parte da Flunt Base Class Library e devem estar acessíveis por padrão em seu projeto C#. O Flunt acelera a validação de programas em C# ao fornecer uma interface flexível para definir e aplicar regras de validação. O suporte para um código mais limpo, maior legibilidade e tratamento completo de erros facilita a validação de entradas do usuário, objetos de domínio e solicitações de API.

Implementando o Flunt no Console do Windows e em Formulários

O Flunt é implementado por diversos tipos de aplicações C#, incluindo aplicações de console do Windows, aplicações web e Windows Forms (WinForms). Embora cada estrutura tenha uma implementação diferente, o conceito geral é sempre o mesmo.

Flunt C# (Como funciona para desenvolvedores): Figura 1 - Pesquise por Flunt com o Gerenciador de Pacotes do Visual Studio e instale-o

Exemplo de Flunt C

Você pode usar o seguinte código Flunt assim que ele estiver instalado. Este é um exemplo simples que mostra como usar o Flunt para construir regras de validação:

using System;
using Flunt.Validations;

public class Program
{
    static void Main(string[] args)
    {
        var person = new Person { Name = "Jack", Age = -25 };
        var contract = new PersonContract(person);

        // Perform 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 System;
using Flunt.Validations;

public class Program
{
    static void Main(string[] args)
    {
        var person = new Person { Name = "Jack", Age = -25 };
        var contract = new PersonContract(person);

        // Perform 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");
    }
}
Imports System
Imports Flunt.Validations

Public Class Program
	Shared Sub Main(ByVal args() As String)
		Dim person As New Person With {
			.Name = "Jack",
			.Age = -25
		}
		Dim contract = New PersonContract(person)

		' Perform validation checks
		If contract.IsValid Then
			Console.WriteLine("Person is valid!")
		Else
			Console.WriteLine("Validation failed:")
			For Each notification In contract.Notifications
				Console.WriteLine($"- {notification.Key}: {notification.Message}")
			Next notification
		End If
	End Sub
End Class

Public Class Person
	Public Property Name() As String
	Public Property Age() As Integer
End Class

Public Class PersonContract
	Inherits Contract(Of Person)

	Public Sub New(ByVal person As 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")
	End Sub
End Class
$vbLabelText   $csharpLabel

Person Classe: Representa uma entidade com propriedades Name e Age.

PersonContract: Esta classe deriva do conceito fundamental do Flunt de Contract<t>. Usando o método Requires, o construtor recebe um objeto Person e fornece regras de validação. Requires oferece um método encadeável para definir múltiplas validações. As validações são realizadas por métodos como IsNotNull, IsNotEmpty, IsGreaterThan. Cada regra de validação possui uma mensagem de erro personalizada associada.

Validação: Semelhante a um exemplo FluentValidation, isso cria uma instância de um objeto PersonContract e um objeto Person. Os resultados da validação são mostrados pelo atributo IsValid do contrato. As notificações de sucesso ou falha, bem como mensagens de erro específicas, são exibidas com base no resultado da validação.

Operações Fluentes

Para validação e tratamento de notificações em aplicações C#, o Flunt oferece diversas operações, tais como:

Criação de regras de validação: Para criar regras de validação para atributos como campos obrigatórios, tipos de dados, intervalos de valores, comprimento máximo e comprimento mínimo, utilize a interface fluente.

Executando a validação: Para garantir a integridade dos dados e a conformidade com a lógica de negócios, valide os objetos de acordo com regras predefinidas.

Gerenciando erros de validação: Anote e registre os erros de validação como alertas e responda a eles de forma educada, fornecendo mensagens de erro aos usuários ou registrando os erros para fins de solução de problemas.

Lógica de Validação Personalizada: Utilize regras de validação exclusivas para estender o Flunt em resposta a circunstâncias de validação complexas ou requisitos de domínio específicos.

Integração com frameworks: Para aprimorar os recursos de validação em aplicações atuais, o Flunt pode ser integrado facilmente a diversos frameworks e bibliotecas .NET conhecidos, incluindo Entity Framework, ASP.NET Core e muito mais.

Integrando o Flunt com o IronPDF

Os desenvolvedores podem aproveitar os pontos fortes de ambas as tecnologias para acelerar a validação da lógica de negócios e a criação de documentos em aplicativos C#, integrando o Flunt ao IronPDF. Os desenvolvedores podem tornar os aplicativos mais confiáveis ​​e fáceis de usar utilizando o IronPDF para criar documentos PDF após validar os dados de entrada com o Flunt.

Instale o IronPDF

  • Inicie o projeto do Visual Studio.
  • Selecione "Ferramentas" > "Gerenciador de Pacotes NuGet " > "Console do Gerenciador de Pacotes".
  • Insira este comando no Console do Gerenciador de Pacotes:
Install-Package IronPdf
  • Como alternativa, você pode usar o Gerenciador de Pacotes NuGet para Soluções para instalar o IronPDF e outros pacotes NuGet necessários.
  • Clique no botão "Instalar" após explorar e selecionar o pacote IronPDF nos resultados da pesquisa. A instalação e o download serão gerenciados pelo Visual Studio.

Flunt C# (How It Works For Developers): Figure 2 - Install IronPDF using the Manage NuGet Package for Solution by searching IronPdf in the search bar of NuGet Package Manager, then select the project and click on the Install button.

  • A instalação do pacote IronPDF e de quaisquer dependências necessárias para o seu projeto será feita pelo NuGet.
  • Após a instalação, o IronPDF estará disponível para uso em seu projeto.

Instale através do site do NuGet.

Para saber mais sobre os recursos, a compatibilidade e outras opções de download do IronPDF, consulte a página de detalhes do pacote NuGet no site do NuGet .

Utilize DLL para instalar

Como alternativa, você pode utilizar o arquivo DLL do IronPDF para incluí-lo diretamente em seu projeto. Para obter o arquivo ZIP contendo a DLL, visite a seguinte página de download do IronPDF ZIP . Após descompactar o arquivo DLL, inclua-o em seu projeto.

Implementando a lógica

Vamos criar uma aplicação básica em C# que utiliza o IronPDF para a criação de PDFs e o Flunt para a validação de dados. Neste exemplo, usaremos o Flunt para validar a entrada do usuário em um formulário de cadastro e o IronPDF para criar um documento PDF com um resumo dos dados do usuário que foram verificados.

  1. Classe Pessoa: Uma classe Pessoa com atributos para nome e idade é definida. Validamos os dados da Pessoa em relação a regras de validação predefinidas usando a interface fluente do Flunt no construtor.
  2. Gerar PDF: Um método chamado RenderHtmlAsPdf é definido e aceita um objeto User como entrada. Esta função renderiza o texto HTML que representa o resumo do registro do usuário em um documento PDF usando a classe HtmlToPdf do IronPDF.
  3. Método Principal: Usando dados de exemplo da classe Pessoa, criamos uma instância da classe Usuário no método Principal. Em seguida, usamos o atributo IsValid do Flunt para determinar se os dados da Pessoa são legítimos. Para criar o documento PDF, invocamos o método IronPDF se os dados estiverem corretos. Caso contrário, os problemas de validação serão exibidos no console.

Desenvolvemos um fluxo de trabalho rápido para avaliar a entrada do usuário e gerar documentos PDF em um aplicativo C#, combinando o IronPDF para geração de PDF com o Flunt para validação de dados. Este método garante a integridade dos dados, gera documentos de qualidade profissional e incentiva a escrita de código claro, legível e de fácil manutenção. Para saber mais sobre as funcionalidades do IronPDF, consulte a página de documentação . Abaixo segue um exemplo de trecho de código.

using IronPdf;
using System;
using System.Linq;
using System.Text;
using Flunt.Validations;

namespace ConsoleApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // StringBuilder for HTML content
            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!");
                sb.Append("<p>Person is valid!</p>");
            }
            else
            {
                sb.Append("<p>Validation failed: </p>");
                foreach (var notification in contract.Notifications)
                {
                    sb.Append($"- {notification.Key}: {notification.Message}<br>");
                }
            }

            var renderer = new HtmlToPdf();
            // Set HTML content for the page
            var pdfDocument = renderer.RenderHtmlAsPdf(sb.ToString());
            // Save the document
            pdfDocument.SaveAs("output.pdf");
            // Dispose the renderer 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 for HTML content
            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!");
                sb.Append("<p>Person is valid!</p>");
            }
            else
            {
                sb.Append("<p>Validation failed: </p>");
                foreach (var notification in contract.Notifications)
                {
                    sb.Append($"- {notification.Key}: {notification.Message}<br>");
                }
            }

            var renderer = new HtmlToPdf();
            // Set HTML content for the page
            var pdfDocument = renderer.RenderHtmlAsPdf(sb.ToString());
            // Save the document
            pdfDocument.SaveAs("output.pdf");
            // Dispose the renderer 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");
        }
    }
}
Imports IronPdf
Imports System
Imports System.Linq
Imports System.Text
Imports Flunt.Validations

Namespace ConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' StringBuilder for HTML content
			Dim sb As New StringBuilder()
			Dim person As New Person With {
				.Name = "Jack",
				.Age = -25
			}
			Dim contract = New PersonContract(person)

			If contract.IsValid Then
				Console.WriteLine("Person is valid!")
				sb.Append("<p>Person is valid!</p>")
			Else
				sb.Append("<p>Validation failed: </p>")
				For Each notification In contract.Notifications
					sb.Append($"- {notification.Key}: {notification.Message}<br>")
				Next notification
			End If

			Dim renderer = New HtmlToPdf()
			' Set HTML content for the page
			Dim pdfDocument = renderer.RenderHtmlAsPdf(sb.ToString())
			' Save the document
			pdfDocument.SaveAs("output.pdf")
			' Dispose the renderer object
			renderer.Dispose()
			' Display a message
			Console.WriteLine("Report generated successfully!")
		End Sub
	End Class

	Public Class Person
		Public Property Name() As String
		Public Property Age() As Integer
	End Class

	Public Class PersonContract
		Inherits Contract(Of Person)

		Public Sub New(ByVal person As 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")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Abaixo está o resultado da execução do código acima:

Flunt C# (Como funciona para desenvolvedores): Figura 3 - Exemplo de saída do código acima utilizando Flunt e IronPDF

Conclusão

IronPDF e Flunt são duas bibliotecas C# robustas que funcionam bem juntas para otimizar os fluxos de trabalho de criação de documentos e validação de dados. Com os recursos sofisticados de produção de PDF do IronPDF e as robustas capacidades de validação do Flunt, os desenvolvedores podem criar soluções confiáveis, eficazes e de alta qualidade para uma variedade de aplicações. Flunt e IronPDF fornecem aos desenvolvedores as ferramentas necessárias para criar softwares de alta qualidade que atendam às necessidades dos usuários e das partes interessadas, seja no desenvolvimento de aplicativos para desktop, aplicativos web ou soluções baseadas em nuvem.

Um ano de suporte de software, uma licença permanente e uma atualização da biblioteca estão incluídos no pacote $799 Lite. A IronPDF fornece detalhes gratuitos sobre a licença do IronPDF. Para mais informações sobre custos e requisitos de licenciamento, entre em contato conosco. Para obter informações adicionais sobre as bibliotecas da Iron Software , visite o site oficial da Iron Software .

Perguntas frequentes

Como o Flunt C# pode melhorar os processos de validação na minha aplicação?

Flunt C# aprimora os processos de validação ao fornecer uma interface fluente que permite aos desenvolvedores criar regras de validação complexas de forma legível e de fácil manutenção. Ele oferece suporte a cenários de validação encadeáveis e se integra perfeitamente a frameworks como ASP.NET Core e Entity Framework.

Quais são os passos envolvidos na configuração do Flunt C# para validação?

Para configurar o Flunt C# para validação, você precisa criar um novo projeto C#, instalar o pacote Flunt do NuGet, importar o namespace necessário e herdar a classe base para construir suas regras e lógica de validação.

Como o IronPDF se integra ao Flunt C# para aprimorar a criação de documentos?

O IronPDF pode ser usado em conjunto com o Flunt C# para validar os dados de entrada antes de gerar PDFs. Isso garante que apenas dados válidos sejam utilizados, melhorando a confiabilidade dos documentos resultantes. Após a validação, o IronPDF permite que você crie documentos PDF de qualidade profissional programaticamente.

Quais são os benefícios de usar o Flunt C# no desenvolvimento orientado a testes?

O Flunt C# oferece suporte ao desenvolvimento orientado a testes (TDD) ao permitir uma separação clara entre a lógica de validação e o código da aplicação. Essa separação permite que os desenvolvedores escrevam e executem facilmente testes unitários para as regras de validação, garantindo a correção e a robustez da aplicação.

O Flunt C# consegue lidar com regras de validação personalizadas?

Sim, o Flunt C# permite que os desenvolvedores definam regras de validação personalizadas para atender a requisitos específicos da aplicação. Essa flexibilidade ajuda a lidar com cenários de validação únicos que não são cobertos pelos validadores integrados.

Qual é o processo para instalar o IronPDF em um projeto C#?

Para instalar o IronPDF, abra seu projeto do Visual Studio, navegue até 'Ferramentas' > 'Gerenciador de Pacotes NuGet' > 'Console do Gerenciador de Pacotes' e execute o comando Install-Package IronPDF . Como alternativa, você pode usar o Gerenciador de Pacotes NuGet para Soluções para adicionar o IronPDF ao seu projeto.

Qual o papel do sistema de notificações no Flunt C#?

O sistema de notificações do Flunt C# foi projetado para capturar e relatar erros de validação. Ele permite que os desenvolvedores coletem mensagens de erro e feedback, que podem ser usados para informar usuários ou outros componentes do aplicativo sobre problemas de validação.

O Flunt C# é adequado para uso em projetos de código aberto?

Sim, o Flunt C# é de código aberto e mantido por uma comunidade de desenvolvedores. Isso o torna uma escolha confiável para projetos de código aberto, oferecendo atualizações e suporte contínuos.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim