Validation là 1 phần quan trọng của API. Khi sử dụng Clean Architect hoặc bất kỳ design pattern hiện đại nào, chúng ta thường tách phần Validation và Business Logic ra thành những thành phần riêng biệt. Giả sử với đoạn code sau, nếu không validate PageIndex thì thỉnh thoảng đoạn code sẽ gây ra exception nếu PageIndex < 0 public class GetAuthorQueryHandler : IRequestHandler<GetAuthorQuery, List<AuthorModel>> { private readonly IAuthorRepository _authorRepository; public GetAuthorQueryHandler(IAuthorRepository authorRepository) { _authorRepository = authorRepository; } public async Task<List<AuthorModel>> Handle(GetAuthorQuery request, CancellationToken cancellationToken) { if(request.PageIndex < 0) throw new Exception("PageIndex is invalid") return _authorRepository.GetAuthors(request.PageSize, request.PageIndex); } } Để phân tách phần Validation, chúng ta sẽ áp dụng mẫu thiết kế cross-cutting concern. Trong ASP.NET Core, điều nà
Lịch sử Bootstrap Bootstrap là một framework front-end phát triển bởi Twitter vào năm 2011 bởi Mark Otto và Jacob Thornton. Ban đầu, nó được gọi là "Twitter Blueprint" và được sử dụng bên trong Twitter để tạo giao diện cho ứng dụng Web của họ. Sau đó, Twitter quyết định chia sẻ nó với cộng đồng phát triển Ngày 19 tháng 8 năm 2011, Bootstrap chính thức được phát hành. Bootstrap 2 ra mắt vào tháng 1 năm 2012 với nhiều cải tiến và tính năng mới. Phiên bản này đã cải thiện hệ thống lưới, tương tác trang Web và hỗ trợ trình duyệt tốt hơn. Tiếp đến Bootstrap 3 được phát hành vào tháng 8 năm 2013 và đưa ra các tính năng Responsive Design, tương thích với các thiết bị di động, và nhiều thành phần giao diện mới. Bootstrap 4 đã mất một thời gian dài để phát triển, ra mắt vào tháng 1 năm 2018 với nhiều cải tiến lớn. Bootstrap 4 cải thiện hệ thống grid, tối ưu hóa CSS, hỗ trợ Flexbox, và đem lại nhiều tính năng và sự linh hoạt hơn cho người phát triển. Đến nay Bootstrap đã nhận được sự ủ