مدیریت صفحهبندی مجموعه دادهها با `PagedListResult`
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۱۷ ۰۹:۲۳
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
PagedListResult یک ابزار متمرکز برای استانداردسازی صفحهبندی، مرتبسازی، جستجو و فیلتر کردن دادهها در سمت سرور در .NET است. این کتابخانه با تعریف قراردادهای قوی (مدلهای درخواست و نتیجه) و مجموعهای از توسعههای پرس و جو، یک خط لوله واضح از درخواست به اجرا و سپس نتیجه را ارائه میدهد.
هدف اصلی این پروژه، حذف منطق تکراری صفحهبندی در APIها و سرویسهای برنامه است، در حالی که رفتار پرس و جو را صریح، قابل آزمایش و قابل توسعه نگه میدارد. این کتابخانه بر اساس چندین اصل طراحی ثابت بنا شده است، از جمله صفحهبندی مبتنی بر قرارداد، اجرای متمرکز بر IQueryable و جداسازی دغدغهها.
ساختار این کتابخانه به چندین پروژه تقسیم شده است که هر کدام مسئولیت محدودی دارند. پروژه PagedListResult.DataModels به عنوان پایه و اساس کل راه حل عمل میکند و هیچ منطق اجرای پرس و جویی ندارد. هدف اصلی آن تعریف قراردادهای پایدار و قابل سریالسازی است که آنچه مصرفکننده میخواهد و آنچه سیستم برمیگرداند را توصیف میکنند.
مدل PagedRequest، ریشه تجمیع ورودی صفحهبندی است و تمام اهداف پرس و جو را در یک شی واحد جمعآوری میکند. این مدل شامل مسئولیتهایی مانند نرمالسازی شاخص صفحه، تعریف اندازه صفحه، تعریف مرتبسازی اختیاری، تعریف جستجوی اختیاری و مجموعه فیلتر اختیاری است.
صفحهبندی به صورت منطقی بیان میشود، نه به صورت اجرایی. Page نشاندهنده شاخص صفحه درخواستی و PageSize نشاندهنده اندازه منطقی صفحه است. لایههای اجرا تصمیم میگیرند که چگونه این موارد را به عملیات Skip و Take ترجمه کنند.