عنوان:

‫نکاتی در مورد ساخت اشیاء انتقال داده (DTO) با استفاده از رکوردها


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۱/۲۵ ۰۹:۴۰
آدرس: www.dntips.ir
این مقاله توضیح می‌دهد که چرا رکوردهای #C برای اشیاء انتقال داده (DTO) ایده‌آل هستند و مثال‌هایی عملی را با استفاده از C# 13 ارائه می‌دهد.

DTOها چیستند و چه مزایایی دارند؟

  • DTOها اشیاء ساده‌ای هستند که داده‌ها را بین لایه‌های مختلف برنامه منتقل می‌کنند.
    • مزایا: کپسوله‌سازی ساختارهای داده پیچیده.
    • جداسازی مدل‌های داخلی و داده‌های خارجی.
    • بهینه‌سازی عملکرد با کاهش حجم داده‌های انتقالی.

مزایای استفاده از رکوردها برای DTOها:

  • خوانایی و اختصار: رکوردها نحوی تمیز و ساده را ارائه می‌دهند.
  • تغییرناپذیری (به‌طور پیش‌فرض): رکوردها به‌طور پیش‌فرض تغییرناپذیر هستند. رکوردهای قابل تغییر را می‌توان با استفاده از دسترسی‌دهنده set ایجاد کرد.
  • تولید خودکار متدها: رکوردها به‌طور خودکار متدهای ضروری مانند مقایسه‌های برابری، ساختارشکنی و ToString را تولید می‌کنند.
  • نحو تمیزتر از طریق رکوردهای موقعیتی: رکوردها از یک نحو مختصر برای تعریف پشتیبانی می‌کنند.

مثال‌ها:

  • تعریف DTO:public record CustomerDto(string FirstName, string LastName, string Email)
  • تغییرناپذیری: تلاش برای تغییر مستقیم یک ویژگی رکورد منجر به خطای کامپایل می‌شود.
  • رکورد قابل تغییر: نحوه ایجاد یک رکورد قابل تغییر را با استفاده از دسترسی‌دهنده‌های set، نشان می‌دهد.
  • مقایسه برابری: رکوردها را می‌توان بر اساس مقادیرشان مقایسه کرد.
  • ساختارشکنی: فیلدهای رکورد را می‌توان به طور مؤثر استخراج کرد.
  • استفاده در لایه سرویس: نحوه استفاده از رکوردها به عنوان DTO در یک لایه سرویس را نشان می‌دهد.

خلاصه:

رکوردهای #C راهی قدرتمند، مختصر و قابل نگهداری را برای تعریف DTOها ارائه می‌دهند. تغییرناپذیری، تولید خودکار متدها و نحو تمیز، آنها را برای سناریوهایی که نیاز به یکپارچگی و سادگی داده‌ها دارند، ایده‌آل می‌سازد. مقاله توصیه می‌کند هنگام تعریف مدل‌های داده ساده، از رکوردها برای DTOها استفاده کنید.


مشاهده مطلب اصلی