View Full Version : سوال: پیاده سازی view model
hamidhws
پنج شنبه 02 آبان 1392, 00:57 صبح
سلام
من دارم روی یه پروژه کار میکنم و قسمت view و model رو انجام دادم ولی برای view model یه سوال دارم
راستش من میخوام تمام کدهای مربوط به طراحی رابط کاربری توی همون view انجام بشه و view model فقط و فقط برای کار با data باشه. برای اینکار طراحی view model به چه صورته؟
aghayex
پنج شنبه 02 آبان 1392, 10:22 صبح
من یه پروِِژه ی نسبتا بزرگ رو با این مدل نوشتم و در اون انرژی و زمان منو چند برابر هدر داد .
این مدل برا کارهای تیمی مناسب هست .
این مدل برای زمانی مناسب هست که طراحی برنامه تون طوری هست که دو یا چند فرم می تونن از بیشتر کد های هم استفاده کنن و شما هم بیایید یه ویو مدل رو برا دو یا چند ویو در نظر بیری که معمولا این طور نیست .
در ایران و بخصوص بعضی از افراد در این سایت ، خوب از این مدل صحبت می کنن اما کسی نیست که کامل راهنماییتون کنه و این نشون میده که یا کسی عملی کار نکرده و یا نمی خوان بگن .
در این مدل قواعد خاصی هست مثلا برا نشون دادن یه openfiledialog شما باید یه اینترفیس و یه کلاس رابط درست کنی و بعد در برنامه اون کلاس رو صدا بزنی در صورتی که در حالت عادی با یک خط تمام این کارها رو انجام می دی و تمرکز کار از دستت در نمیاد
در کل بهتون سفارش می کنم که سراغ این روش نرید
hamidhws
پنج شنبه 02 آبان 1392, 13:02 عصر
سلام
روشی که من استفاده کردم فکر میکنم با کمی دستکاری همراه بوده و دقیقا مشابه الگوی mvvm نیست . ولی من واقعا از کاری که کردم راضیم. یجورایی یه کار ابتکاری هم هست و دقیقا طبق استاندارد mvvm پیش نرفتم و تمام هدفم این بود که با کمترین کد و کمترین پیچیدگی بیشترین بازده رو دریافت کنم.
تمام قسمت های view به صورت کاملا مجزا از هم و بصورت user control طراحی شدن و تمامی اونها رو از طریق یک کلاس استاتیک بهم وصل کردم (یعنی به راحتی میتونم از طریق کلاس واسط به تمام کنترل های یه user control دیگه دسترسی پیدا کنم)
تا اینجای کار به نظرم همه چیز عالیه فقط برای قسمت دسترسی به دیتا (دریاقت اطلاعات از سمت سرور ) یه الگوی مناسب میخوام که اونو کاملا از view جدا کنه
نظر من کلاس هایی در view model هست که در ارتباط با model و wcf اطلاعات رو از بانک دریافت و درون لیست هایی (observecollection) ذخیره میکنن
در view من فقط از طریق صدا زدن رویداد های که در view model هست اطلاعات رو دریافت میکنم (view model میتونه به کلاس واسط مدیریت view من هم دسترسی پیدا کنه و براحتی در هر زمان دیتاگرید های منو توی تمام user control ها آپدیت کنه!)
توی الگوی mvvm . شما code behind رو از طریق icommand به view model انتقال میدید که راستش از نظر من اصلا جالب نبود ! من view رو به ده ها user control و کاملا مجزا از هم طراجی کردم که در اجرا یکپارچه با هم کار میکنن . دلیلی نمیبینم code behnid خودم رو که مربوط به رابط کاربری هست به view model انتقال بدم!
به هر حال من روش خودمو بیشتر دوس دارم
ممنون از نظراتتون دوست عزیز
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.