ได้เลย! 😎 ฉันจะสรุป Library ยอดนิยมใน C# พร้อมตัวอย่างโค้ด และคำอธิบายแบบเข้าใจง่าย แบ่งตามประเภทการใช้งาน
1️⃣ Newtonsoft.Json (JSON Serialization / Deserialization)
คำอธิบาย: ใช้สำหรับแปลง Object → JSON หรือ JSON → Object
ติดตั้ง: Install-Package Newtonsoft.Json
ตัวอย่าง:
using Newtonsoft.Json;
// สร้าง object
var person = new { Name = "Jen", Age = 25 };
// Object → JSON
string json = JsonConvert.SerializeObject(person);
Console.WriteLine(json); // {"Name":"Jen","Age":25}
// JSON → Object
var obj = JsonConvert.DeserializeObject<dynamic>(json);
Console.WriteLine(obj.Name); // Jen
2️⃣ Dapper (Micro ORM สำหรับ Database)
คำอธิบาย: ใช้สำหรับ query database แบบเร็ว ง่าย และ lightweight
ติดตั้ง: Install-Package Dapper
ตัวอย่าง:
using Dapper;
using System.Data.SqlClient;
string connectionString = "Server=.;Database=TestDb;Trusted_Connection=True;";
using var connection = new SqlConnection(connectionString);
var users = connection.Query<User>("SELECT * FROM Users WHERE Age > @Age", new { Age = 20 });
foreach(var user in users)
{
Console.WriteLine($"{user.Id}: {user.Name}");
}
3️⃣ Serilog (Logging)
คำอธิบาย: ใช้สำหรับเก็บ log ในแอป เช่น console, file หรือ database
ติดตั้ง: Install-Package Serilog
และ Install-Package Serilog.Sinks.File
ตัวอย่าง:
using Serilog;
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("logs/log.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();
Log.Information("Hello Serilog!");
Log.Warning("Something might be wrong!");
Log.Error("Something went wrong!");
4️⃣ AutoMapper (Mapping Object ↔ Object)
คำอธิบาย: ใช้สำหรับ mapping data จาก object หนึ่งไปอีก object หนึ่ง เช่น DTO ↔ Entity
ติดตั้ง: Install-Package AutoMapper
ตัวอย่าง:
using AutoMapper;
public class User { public string Name { get; set; } public int Age { get; set; } }
public class UserDto { public string Name { get; set; } }
var config = new MapperConfiguration(cfg => cfg.CreateMap<User, UserDto>());
var mapper = config.CreateMapper();
var user = new User { Name = "Jen", Age = 25 };
var userDto = mapper.Map<UserDto>(user);
Console.WriteLine(userDto.Name); // Jen
5️⃣ FluentValidation (Validation)
คำอธิบาย: ใช้สำหรับตรวจสอบค่าใน object ง่ายและอ่านง่าย
ติดตั้ง: Install-Package FluentValidation
ตัวอย่าง:
using FluentValidation;
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public class UserValidator : AbstractValidator<User>
{
public UserValidator()
{
RuleFor(user => user.Name).NotEmpty().WithMessage("Name is required");
RuleFor(user => user.Age).InclusiveBetween(18, 60).WithMessage("Age must be 18-60");
}
}
var user = new User { Name = "", Age = 17 };
var validator = new UserValidator();
var result = validator.Validate(user);
foreach(var error in result.Errors)
{
Console.WriteLine(error.ErrorMessage);
}
6️⃣ HttpClient / RestSharp (HTTP Requests)
คำอธิบาย: ใช้สำหรับเรียก API ภายนอก
RestSharp ติดตั้ง: Install-Package RestSharp
ตัวอย่าง RestSharp:
using RestSharp;
var client = new RestClient("https://jsonplaceholder.typicode.com");
var request = new RestRequest("/posts/1", Method.Get);
var response = client.Execute(request);
Console.WriteLine(response.Content);
7️⃣ EPPlus (Excel Handling)
คำอธิบาย: ใช้สร้าง / อ่าน Excel ไฟล์ (.xlsx)
ติดตั้ง: Install-Package EPPlus
ตัวอย่าง:
using OfficeOpenXml;
using System.IO;
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using var package = new ExcelPackage();
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
worksheet.Cells[1, 1].Value = "Name";
worksheet.Cells[1, 2].Value = "Age";
worksheet.Cells[2, 1].Value = "Jen";
worksheet.Cells[2, 2].Value = 25;
package.SaveAs(new FileInfo("test.xlsx"));
💡 สรุป:
-
JSON → Newtonsoft.Json
-
DB Query → Dapper / EF Core
-
Logging → Serilog
-
Mapping → AutoMapper
-
Validation → FluentValidation
-
HTTP Request → HttpClient / RestSharp
-
Excel → EPPlus
ถ้าอยาก ฉันสามารถทำ ตาราง Library C# ยอดนิยม + ความสามารถ + ตัวอย่างโค้ดสั้น ๆ ให้ดูง่าย ๆ เหมือน Cheat Sheet ให้เลย
คุณอยากให้ทำแบบนั้นไหม?