ViewModel چیست؟

در این قسمت از دوره پیشرفته  Entity Framework Core 9 برسی میکنیم که، ViewModel چیست؟ در معماری‌های نرم‌افزار، ViewModel یک شیء است که برای مدیریت داده‌هایی استفاده می‌شود. و در رابط کاربری نمایش داده میشوند. به بیان دیگر، ViewModel پل ارتباطی بین مدل – Model و لایه نمایش – View است و داده‌هایی را فراهم می‌کند که View برای نمایش به کاربر نیاز دارد.

ViewModel چیست؟

ViewModel چیست؟

ویژگی‌های ViewModel

به طور خلاصه، ViewModel دارای ویژگی‌های زیر است:

  • داده‌های مورد نیاز ویو را فراهم میکند. ViewModel‌ تنها شامل داده‌هایی هستند که به صورت مستقیم در رابط کاربری نمایش داده می‌شوند. این داده‌ها ممکن است دقیقاً مطابق با ساختار Model دیتابیس نباشند و به شکل ساده‌تر یا قابل نمایش‌تری سازماندهی شده باشند.
  • نمایش داده‌ها را تسهیل میکند. ViewModel‌ها می‌توانند داده‌ها را از چندین Model ترکیب کنند و اطلاعات را به شکل دقیق‌تری برای نمایش در UI فراهم کنند. برای مثال، اگر برای نمایش یک صفحه کاربری نیاز به اطلاعات حساب کاربری و سفارشات کاربر باشد، ViewModel می‌تواند این داده‌ها را ترکیب کند.
  • منطق کسب‌وکار را از منطق نمایش جدا میکند. استفاده از ViewModel به جدا شدن منطق کسب‌وکار – Business Logic از منطق نمایش – Presentation Logic کمک می‌کند. این جداسازی باعث می‌شود که برنامه‌ها ساختارمندتر و قابل نگهداری‌تر شوند.
  • امنیت داده‌ها را مدیریت میکند. با استفاده از ViewModel، می‌توان فقط داده‌های ضروری و مورد نیاز برای View را در آن تعریف کرد و از ارسال مستقیم داده‌های حساس Model به View جلوگیری کرد.
  • اعتبارسنجی داده‌ها را انجام میدهد. در ViewModel می‌توان قوانین اعتبارسنجی (Validation) تعریف کرد تا داده‌هایی که کاربر وارد می‌کند پیش از ارسال به Model و ذخیره در دیتابیس بررسی شوند.

چرا از ViewModel به جای Model در View استفاده میکنیم ؟

استفاده از ViewModel‌ها بهترین شیوه برای کنترل داده‌ها و نمایش آن‌ها در UI است، به ویژه در پروژه‌های حرفه‌ای و بزرگ که نیاز به حفظ امنیت، انعطاف‌پذیری و سادگی در نگهداری دارند.

  • جداسازی مسئولیت‌ها: در معماری‌های صحیح نرم‌افزار، بهتر است هر لایه وظیفه خاص خود را داشته باشد. Model‌ها نمایانگر داده‌های اصلی دیتابیس هستند و بهتر است مسئولیت منطق کسب و کار و نمایش داده‌ها را نداشته باشند. ViewModel‌ها مخصوص انتقال داده بین لایه‌ها و نمایش در UI طراحی می‌شوند و به این ترتیب، ساختار برنامه تمیزتر و قابل نگهداری‌تر خواهد بود.
  • امنیت داده‌ها: استفاده مستقیم از Model ممکن است منجر به نشت داده‌های حساس شود. به عنوان مثال، ممکن است ستون‌هایی در Model وجود داشته باشد که نیازی به نمایش یا ارسال آن‌ها به کاربر نیست. با استفاده از ViewModel، می‌توان تنها داده‌های ضروری را به UI منتقل کرد.
  • جلوگیری از تغییرات ناخواسته در دیتابیس: در صورتی که Model‌های اصلی مستقیماً به عنوان ViewModel استفاده شوند، ممکن است کاربر تغییراتی ناخواسته در اطلاعات اصلی دیتابیس ایجاد کند. ViewModel‌ها این امکان را می‌دهند که اطلاعات نمایش داده شده بدون ارتباط مستقیم با دیتابیس مدیریت شوند.
  • افزایش انعطاف‌پذیری: ViewModel‌ها امکان ترکیب داده‌ها از چند Model را فراهم می‌کنند، بدون اینکه نیازی به تغییر ساختار دیتابیس داشته باشیم. به این ترتیب، انعطاف‌پذیری بیشتری برای نمایش اطلاعات پیچیده‌تر به کاربر به دست می‌آید.
  • سادگی در اعتبارسنجی: اعتبارسنجی داده‌ها (Validation) را می‌توان به صورت جداگانه روی ViewModel انجام داد، بدون این که تغییرات در Model دیتابیس انجام شود. این باعث می‌شود که اعتبارسنجی‌های مختلفی برای نمایش و ورود داده‌ها در UI داشته باشیم که مستقل از Model اصلی هستند. بنابراین، استفاده از ViewModel‌ها بهترین شیوه برای کنترل داده‌ها و نمایش آن‌ها در UI است، به ویژه در پروژه‌های حرفه‌ای و بزرگ که نیاز به حفظ امنیت، انعطاف‌پذیری و سادگی در نگهداری دارند.

دانلود فایل ارائه

خرید از تهران آی تی به صورت آنلاین میباشد و لینک دانلود به صورت خودکار برای شما ایمیل میشود. همه گزینه‌ها همان فایل کامل را به شما می‌دهند. تفاوت فقط در نحوه جبران هزینه است؛ انتخاب با وجدان شماست. چنانچه نیاز به هرگونه سوال و یا کمک در خرید آنلاین داشتید با شماره 09121486770 تماس بگیرید. شماره کارت ما 6362141104352035 به نام محمدرضا احدیان میباشد.

دانلود فایل ارائه

مشاهده در آپارات یا یوتیوب

محتوای ویدیویی این صفحه در سایت قابل مشاهده است. اما اگر عادت دارید توی پلتفرم آپارات یا یوتیوب ویدیوها را مشاهده کنید، می‌توانید از دکمه‌های زیر استفاده کنید.

تماشای ویدیوی ViewModel چیست؟ در آپارات و یوتیوب

اشتراک‌گذاری با یک کلیک

با یک کلیک، محتوای این صفحه را در شبکه‌های اجتماعی، ایمیل یا پیام‌رسان‌های مورد علاقه‌تان به‌سرعت به اشتراک بگذارید.

اشتراک‌گذاری صفحه ViewModel چیست؟ در شبکه‌های اجتماعی

نظرات ارزشمند شما

نظرات شما برای ما ارزشمند است و آنها را میخوانیم و پاسخ میدهیم.

تصویر alamir

سلام من عملیات مایگریشن رو بعد از ایجاد ویو مدل انجام دادم ولی در dbset فقط مدل اصلی developers را اضافه کردم با این حال ویو مدل listdevelopersviewmodel هم به دیتابیس اضافه شد چرا؟

فرم افزودن دیدگاه

با ارسال نظرات خود ما را در ایجاد محتوای بهتر کمک کنید.

با خدمات تهران آی تی آشنا شوید

تهران آی تی با افتخار خدمات زیر را ارائه می‌دهد.