龙空技术网

10 个最常用的 .NET 库

码上尽宝 3741

前言:

现时咱们对“apachejames30邮件服务器”大致比较注重,你们都需要了解一些“apachejames30邮件服务器”的相关知识。那么小编在网上收集了一些对于“apachejames30邮件服务器””的相关资讯,希望同学们能喜欢,我们快快来学习一下吧!

推荐 10 个我在项目中必用也最好用的 .NET 库。这些库都得到了广泛的认可,并且在.NET 开发中被广泛使用。能极大的帮助我们提高代码开发效率和质量。

1.Newtonsoft.Json

GitHub - JamesNK/Newtonsoft.Json: Json.NET is a popular high-performance JSON framework for .NET

Newtonsoft.Json 是一个用于.NET 平台的流行的 JSON 序列化和反序列化库。它可以帮助你将.NET 对象序列化成 JSON 字符串,也可以将 JSON 字符串反序列化成.NET 对象。使用该库,您可以方便地将.NET 应用程序与其他 JSON API 集成。

// 将.NET 对象序列化成 JSON 字符串string json = JsonConvert.SerializeObject(obj);// 将 JSON 字符串反序列化成.NET 对象var obj = JsonConvert.DeserializeObject<MyClass>(json);
2 Autofac

GitHub - autofac/Autofac: An addictive .NET IoC container

Autofac 是一个轻量级的 IoC(Inversion of Control)容器,它可以帮助.NET 开发人员管理应用程序中的组件依赖关系。使用该库,您可以轻松地实现依赖注入和依赖反转,从而更方便地扩展和测试.NET 应用程序。

// 注册服务和组件var builder = new ContainerBuilder();builder.RegisterType<MyService>().As<IMyService>();builder.RegisterType<MyComponent>().As<IMyComponent>();var container = builder.Build();// 获取实例var service = container.Resolve<IMyService>();var component = container.Resolve<IMyComponent>();
3 AutoMapper

GitHub - AutoMapper/AutoMapper: A convention-based object-object mapper in .NET.

AutoMapper 是一个用于.NET 平台的对象映射工具,它可以帮助.NET 开发人员快速地从一个对象映射到另一个对象。使用该库,您可以避免手动编写大量的对象映射代码。

// 定义映射配置var config = new MapperConfiguration(cfg =>{    cfg.CreateMap<MyClass, MyDto>();});// 进行对象映射var mapper = config.CreateMapper();var dto = mapper.Map<MyDto>(obj);
4 log4net & NLog

GitHub - apache/logging-log4net: Mirror of This is the Apache log4net logging project git repository.

GitHub - NLog/NLog: NLog - Advanced and Structured Logging for Various .NET Platforms

log4net 是一个用于.NET 平台的日志记录工具,它可以帮助.NET 开发人员记录应用程序的日志信息。使用该库,您可以轻松地在应用程序中添加日志记录功能,并帮助您及时发现和解决程序中的问题。

// 创建日志记录器var logger = LogManager.GetLogger(typeof(MyClass));// 写入日志信息logger.Error("An error occurred.");

NLog

// NLog: Setup NLog for Dependency injection    builder.Logging.ClearProviders();    builder.Host.UseNLog();
5 ImageSharp

GitHub - SixLabors/ImageSharp: A modern, cross-platform, 2D Graphics library for .NET

ImageSharp 是一个全新的、功能齐全的、完全托管的、跨平台的 2D 图形库。ImageSharp 旨在简化图像处理,为您带来了一个功能强大而又非常简单的 API。

byte[] brushData = TestFile.Create(TestImages.Png.Ducky).Bytes;        using Image<TPixel> image = provider.GetImage();        using Image brushImage = provider.PixelType == PixelTypes.Rgba32                                      ? Image.Load<Bgra32>(brushData)                                      : Image.Load<Rgba32>(brushData);        image.Mutate(c => c.DrawImage(brushImage, 0.5f));        image.DebugSave(provider, appendSourceFileOrDescription: false);
6 FluentValidation

GitHub - FluentValidation/FluentValidation: A popular .NET validation library for building strongly-typed validation rules.

.NET 的验证库,它使用流畅的界面和 lambda 表达式来构建强类型验证规则。

using FluentValidation;public class CustomerValidator: AbstractValidator<Customer> {  public CustomerValidator() {    RuleFor(x => x.Surname).NotEmpty();    RuleFor(x => x.Forename).NotEmpty().WithMessage("Please specify a first name");    RuleFor(x => x.Discount).NotEqual(0).When(x => x.HasDiscount);    RuleFor(x => x.Address).Length(20, 250);    RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");  }  private bool BeAValidPostcode(string postcode) {    // custom postcode validating logic goes here  }}var customer = new Customer();var validator = new CustomerValidator();// Execute the validatorValidationResult results = validator.Validate(customer);// Inspect any validation failures.bool success = results.IsValid;List<ValidationFailure> failures = results.Errors;
7 Dapper

Dapper 是一种简单,快速且具有高效处理来自ADO.NET的ORM 框架。Dapper可归类为一个微型对象关系映射器(ORM),可让您在.NET 6应用程序中轻松地进行SQL查询和映射.

var rows = connection.Query("select 1 A, 2 B union all select 3, 4").AsList();var count = connection.Execute(@"insert MyTable(colA, colB) values (@a, @b)",    new[] { new { a=1, b=1 }, new { a=2, b=2 }, new { a=3, b=3 } }  );
8 Flurl

GitHub - tmenier/Flurl: Fluent URL builder and testable HTTP client for .NET

Flurl 是一个现代的、流畅的、异步的、可测试的、可移植的、充满流行语的 URL 构建器和 HTTP 客户端库

var result = await ";    .AppendPathSegment("person")    .SetQueryParams(new { api_key = "xyz" })    .WithOAuthBearerToken("my_oauth_token")    .PostJsonAsync(new { first_name = firstName, last_name = lastName })    .ReceiveJson<T>();
9 MediatR

MediatR是一个.NET 6的消息总线库,它能够帮助您将应用程序的行为转化为消息,可使命令、事件和查询等不同的消息类型在您的应用程序中更加明确和一致。MediatR通常在.NET 6 web应用程序中用于处理CQRS(命令查询职责分离体系结构)中的命令和查询

// 定义请求类型:public record MyQuery(string Name) : IRequest<MyResponse>;// 定义处理程序:public class MyQueryHandler : IRequestHandler<MyQuery, MyResponse>{    public async Task<MyResponse> Handle(MyQuery request, CancellationToken cancellationToken)    {        var result = await SomeService.DoWork(request.Name);        return new MyResponse(result);    }}// 发送查询消息:var mediator = serviceProvider.GetService<IMediator>();var response = await mediator.Send(new MyQuery("my_param"));
10 StackExchange.Redis

StackExchange.Redis是一个.NET 6开源的Redis客户端库,能够帮助您快速连接和操作Redis服务器。此库通常用于.NET 6 web应用程序中处理缓存数据.

// 连接到Redis:var redis = ConnectionMultiplexer.Connect("localhost");// 获取Redis键值:var db = redis.GetDatabase();var value = db.StringGet("mykey");// 设置Redis键值:db.StringSet("mykey", "myvalue");

这些10个类库是我项目中必不可少的,包括序列号,日志,orm,验证,redis操作,api请求,DI,DTO映射,图片处理,其中MediatR作为领域驱动开发必备类库,可以说这些大大提高代码的可重用性、可维护性和一致性,同时也能够简化开发和降低风险。当然还有其他优秀如Quartz,CAP 等在稍大点分布式项目中也会用到。

欢迎大家一起讨论10个你项目中必不可少的十个.NET类库。

标签: #apachejames30邮件服务器