avatar
مانی

کاربر

  • 1402/02/14
  • 0
  • 102
1402/02/14 |
backend
c-sharp

سوال

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

در فصل هفتم در سی شارپ متوسط قسمت 9 یک متد داریم بدین صورت 

  public ResultDto AddNewContact(AddNewContactDto newContact)
        {
            Contact contact = new Contact()
            {
                Company = newContact.Company,
                CreateAt = DateTime.Now,
                Describtion = newContact.Describtion,
                Name = newContact.Name,
                LastName = newContact.LastName,
                PhoneNumber = newContact.PhoneNumber,
            };
            dataBase.Contacts.Add(contact);
            dataBase.SaveChanges();

            return new ResultDto
            {
                IsSuccess = true,
                Message = $" مخاطب  {contact.Name}   {contact.LastName} در دیتابیس ذخیره شدند",
            };
        }

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

public ResultDto AddNewContact(AddNewContactDto newContact)

متد AddNewContact و آرگومانی که دارد رو نمی فهمم ممنون میشم راهنمایی کنین


با سلام

متد AddNewContact یک متد است که برای اضافه کردن یک مخاطب جدید به دیتابیس طراحی شده است. این متد یک آرگومان از نوع AddNewContactDto می‌گیرد. AddNewContactDto یک کلاس است که شامل اطلاعات لازم برای ایجاد یک مخاطب جدید است. این اطلاعات عبارتند از:

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

AddNewContact متدی است که وظیفه‌ی اصلی آن ایجاد یک نمونه جدید از کلاس Contact است و سپس آن را به دیتابیس اضافه می‌کند. برای این کار، ابتدا یک نمونه جدید از کلاس Contact ایجاد می‌کنیم و مقادیر این نمونه را از آبجکت newContact که از نوع AddNewContactDto است می‌خوانیم.

پس از ایجاد نمونه جدید از کلاس Contact، این نمونه را به لیست Contacts در دیتابیس اضافه می‌کنیم و تغییرات را ذخیره می‌کنیم تا مخاطب جدید به دیتابیس اضافه شود.

در نهایت، متد AddNewContact یک نمونه جدید از کلاس ResultDto باز می‌گرداند که شامل نتیجه عملیات (موفقیت یا شکست) و یک پیام مربوط به نتیجه عملیات است.


Dto چیست؟

DTO یعنی Data Transfer Object، که یک الگوی طراحی در برنامه‌نویسی است. DTO‌ها اغلب برای انتقال داده‌ها بین لایه‌های مختلف یک برنامه یا سیستم استفاده می‌شوند. معمولاً DTO‌ها شامل تعدادی خصوصیات (Properties) هستند که داده‌ها را نمایش می‌دهند، اما رفتار (متدها) را در بر نمی‌گیرند.

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

یک مثال ساده از DTO در زبان C# به شرح زیر است:

 

public class PersonDto
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

در این مثال، PersonDto یک کلاس ساده است که شامل سه خصوصیت (FirstName, LastName و Age) است. این کلاس می‌تواند برای انتقال اطلاعات مربوط به یک شخص بین لایه‌های مختلف استفاده شود، مانند بین لایه دسترسی به داده‌ها (Data Access Layer) و لایه کاربردی (Application Layer) یا بین سرور و کلاینت در یک برنامه تحت وب.

 

اگر از DTO‌ها استفاده نکنید، ممکن است با مشکلاتی در طراحی و پیاده‌سازی برنامه مواجه شوید. برخی از این مشکلات عبارت‌اند از:

  1. وابستگی بین لایه‌ها: بدون استفاده از DTO‌ها، لایه‌های مختلف برنامه ممکن است به یکدیگر وابسته شوند. این وابستگی می‌تواند سبب شود که تغییرات در یک لایه تأثیرات زنجیره‌ای در سایر لایه‌ها داشته باشد و نگه‌داری و توسعه برنامه سخت‌تر شود.

  2. امنیت: بدون استفاده از DTO‌ها، اطلاعات حساس ممکن است به سایر لایه‌ها یا کاربران نمایش داده شود. استفاده از DTO‌ها به شما اجازه می‌دهد تا دقیقاً کنترل کنید کدام اطلاعات به سایر لایه‌ها یا کاربران منتقل می‌شوند.

  3. تغییرات در مدل داده‌ها: اگر از DTO‌ها استفاده نکنید، هر تغییر در مدل داده‌ها ممکن است تأثیرات زنجیره‌ای در سراسر برنامه داشته باشد. با استفاده از DTO‌ها، می‌توانید جداسازی بهتری بین مدل داده‌ها و سایر لایه‌های برنامه ایجاد کنید.

  4. تنظیم داده‌ها برای نمایش: بدون استفاده از DTO‌ها، ممکن است نیاز داشته باشید که داده‌ها را در لایه‌های مختلف برنامه تغییر دهید تا به شکل مناسب برای نمایش یا استفاده در سایر لایه‌ها قرار بگیرند. این کار می‌تواند منجر به افزایش پیچیدگی کد شود. با استفاده از DTO‌ها، می‌توانید داده‌ها را در یک مکان تغییر دهید و به شکل مناسب برای سایر لایه‌ها ارسال کنید



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

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

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