avatar
مانی

کاربر

  • 1402/02/13
  • 0
  • 60
1402/02/13 |
backend
c-sharp

مشکل در یادگیری

با سلام و احترام

در قسمت ویدئو فصل 7 قسمت 8 که عنوان Detail Contact دارد سوال دارم در این قسمت شما از یک کلاس در پوشه Dto به نام ContactDetailDto استفاده کردید سوال من اینجاست که در ابتدا چرا ؟ چون مگر نمی شد

 public ContactDetialDto GetContactDetail(int Id)
        {
            var contact = dataBase.Contacts.Find(Id);
        }

بنویسیم و در پایان یک return  هم داشته باشیم البته من می خواستم که از MessageBox استفاده کنم که نمی شد در کلاس ContactService ازش استفاده کرد که من استنباطم از استفاده از این کلاس ینی ContactDetailDto  یک دلیلش می تونه همین باشه

چون خیلی فکرم رو درگیر کرده بود گفتم سوال کنم ممنون میشم توضیح بدین

 


یکی از دلایل استفاده از کلاس‌های DTO (Data Transfer Object) در برنامه‌های توسعه داده شده، جداسازی منطق دامین (Domain Logic) از منطق برنامه (Application Logic) است. از این کلاس‌ها برای انتقال داده‌ها بین لایه‌های مختلف برنامه استفاده می‌شود.

در این مورد، ContactDetailDto یک DTO است که به منظور انتقال اطلاعات مربوط به اطلاعات مخاطب ایجاد شده است. استفاده از این DTO به شما امکان می‌دهد تا فقط داده‌های مورد نیاز و مرتبط با جزئیات مخاطب را بین لایه‌ها منتقل کنید.

برای مثال، در این کدا، شما ابتدا یک Contactرا براساس شناسه آن از پایگاه داده پیدا می‌کنید. سپس از طریق ContactDetailDto، فقط اطلاعات مورد نیاز در مورد جزئیات Contact را برمی‌گردانید.

در مورد استفاده از MessageBox، این امکان در کلاس‌هایی مثل ContactService معمولاً نیست چون این نوع کلاس‌ها معمولاً برای انجام عملیات‌های مرتبط با داده‌ها و پایگاه داده استفاده می‌شوند و از جنبه‌های مرتبط با رابط کاربری جدا هستند.

بنابراین، استفاده از کلاس ContactDetailDto در این سناریو به شما امکان می‌دهد تا منطق برنامه‌ی خود را بهتر سازماندهی کنید و کد تمیزتر و قابل تست‌تری داشته باشید. 



پاسخی برای این باگ ارسال کنید

لطفا کدها را درون قطعه کد ارسال نمایید

برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری