نمایش نتایج 1 تا 35 از 35

نام تاپیک: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

  1. #1
    کاربر تازه وارد آواتار Somayeh_Zamani
    تاریخ عضویت
    دی 1387
    محل زندگی
    Tehran
    پست
    63

    بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام دوستان
    راستش من قسمت نظر و پیشنهاد رو دیدم، و به نظرم نظر و پیشنهاد الکی چیزی از پیش نمی بره بدون عمل!
    خیلی دوست داشتم که دوستان اگر در مورد الگوی mvvm (که برنامه نویسان Wpf از این الگو پیروی می کنند)مطالعه ای داشته اند، اطلاعات خودشون رو در اختیار بقیه هم قرار بدن.
    اگر کسی چیزی بلده استارت بزنه و الا که خودم استارت می زنم

  2. #2
    VIP آواتار رضا عربلو
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    1,597

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    می تونه بحث بسیار مفیدی بشه. امیدوارم که تمامی دوستان در اون شرکت کنند و به موضوع های انحرافی نپردازند.
    (این نقطه شروع خوبی نیست ولی برای دلگرمی شما و دیگر دوستان ترجیح دادم بیاورم تا دوستان علاقه مند به شرکت در بحث بشوند.)
    چیزیکه دست آخ در Model-View-ViewModel pattern به آن می رسیم فریم ورک هایی که آن را پیاده سازی می کنند . (منبع : http://www.japf.fr/2009/10/a-quick-t...vvm-frameworks)


    Cinch
    MVVM Light Toolkit
    MVVM Helpers
    MVVM Foundation
    Caliburn
    Onyx
    Calcium
    nRoute
    Nito MVVM
    Ocean
    Basic MVVM framework
    GoodLight
    آخرین ویرایش به وسیله رضا عربلو : چهارشنبه 02 دی 1388 در 00:32 صبح
    اگر Net. نمی دانید وارد نشوید.

  3. #3
    کاربر تازه وارد آواتار Somayeh_Zamani
    تاریخ عضویت
    دی 1387
    محل زندگی
    Tehran
    پست
    63

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    پس من شروع به معرفی این Pattern می کنم امیدوارم که این تاپیک به تاپیک پربار و مفیدی تبدیل شود.
    اما از همه دوستان خواهش می کنم که:
    1. لطفا از پرداختن به موضوعات انحرافی خودداری کنید و به جای این کار تاپیک جداگانه بزنید، در غیر اینصورت پست شما توسط مدیران، حذف خواهد شد.

    2. این تاپیک یک تاپیک آموزشی به این صورت که یک نفر آموزش بدهد و بقیه نگاه کنند نیست! بلکه همان طور که از اسم آن مشخص است، بحث و تبادل نظر هست. می خواستم از دوستانی که تجربه یا نظری دارند، خواهش کنم که در جهت پربار شدن تاپیک، همراهی کنند.

    3. همچنین از مدیران محترم تالار، تقاضا دارم که در جهت بهبود این تاپیک همکاری کنند.

    4. بعضی از مباحث، پیش نیاز محسوب می شوند مثلا اینکه اصلا Pattern چی هست؟ و یا بحث Routed Events and commands، Bindig، Templates. که نظر من اینست که یا یک تاپیک جداگانه برای پرداختن به این مباحث بزنیم و یا لینکی می ذاریم که دوستان به آن لینک مراجعه کنند و یا به فلان مبحث که در فلان کتاب خوب به آن پرداخته شده است، ارجاع می دهیم.

    5. هر کسی، اگر نمونه کد مفیدی دارد، می توان با قرار دادن کد در اینجا، در شناساندن بهتر این Pattern ، کمکی کرده باشد.

    " پیشاپیش از همکاری و توجه شما سپاسگزارم "
    SoZa

    آخرین ویرایش به وسیله Somayeh_Zamani : شنبه 05 دی 1388 در 12:11 عصر

  4. #4
    کاربر تازه وارد آواتار Somayeh_Zamani
    تاریخ عضویت
    دی 1387
    محل زندگی
    Tehran
    پست
    63

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    Patterns، به بیان ساده؛ یعنی استفاده از Solutionهای ارائه شده برای یک مسئله خاص، در حل مسائل مشابه. به عبارت دیگر با استفاده از Design Patterns، می توانیم به استفاده مجدد از تجربه برسیم (Experience Reuse).
    دوستان توجه داشته باشند که قبلا یک تاپیک هم با عنوان Design Pattern، در همین سایت، ساخته شده بوده.
    http://www.barnamenevis.org/sh...ad.php?t=99235

    همراه با تکنولوژی Wpf مایکروسافت، یک Pattern جدید به نام MVVM) Model-View-ViewModel)، متولد شد. این Pattern، ترکیبی از همان Patternهای قدیمی MVC و MVPهست.
    چرا یک Pattern جدید ارائه شد؟ (این Pattern از قبل ارائه شده بود و این تکنولوژی Wpf بود که با هدف کار با این Pattern، توسط مایکروسافت ارائه شد. و اصلا مایکروسافت Wpfرو برای اجرای MVVMعرضه کرد.)

    1. اول از همه، تکنولوژی Wpf، نوعی از تکنولوژی رو به ما ارائه کرده که به طور کامل می تونه نگرش ما رو نسبت به طراحی و کد تغییر بده. با پیروی از MVVM Pattern که در خورِ این تکنولوژی است، ما می توانیم کاملا به طراحی UI بپردازیم، در حالی که این لایه، هیچ چیز راجع به لایه Model نداند.
    2. نکته دوم، استفاده مجدد هست. مثلا ما به راحتی می توانیم یک Wpf Application رو به یک Silverlight app تبدیل کنیم.

    Model: هر کسی که از قبل بر روی Applicationهای چند لایه کار کرده، می دونه که Model چیه؟ مدل، گروه entityهای موجودِ برنامه است. من این لایه رو معمولا با Linq2Sql یا Entity framework مایکروسافت ایجاد می کنم. شما چطور؟

    View: همان کدهای XAML گرافیکی است که برای تولید UI استفاده می شود و هیچ چیز بیش از آن نیست. (طراحی User Interface یک Application حرفه ای اصلا کار ساده ای نیست. اینکه در نظر بگیریم، UI قراره یک سیستم اساسی رو نمایش بده و در عین حال، نیازهای سلیقه ای و پیش بینی نشده ی کاربرانش رو ارضا کنه، می تونه باعث بشه که UI، تبدیل به فرارترین ناحیه ی بیشتر Applicationها بشه.)

    ViewModel: بر خلاف Presenter در MVP Pattern، یک ViewModel، به هیچ Referenceی به View، نیاز ندارد. View به Propertyهای موجود در ViewModel، بایند می شود. که این Propertyها، همان Propertyهایی هستند که دیتاهای مربوط به آبجکت های لایه Model رو ارائه می دهند. بایندیگ ها بین Viewو ViewModel راحت انجام می شود. یک آبجکتِ ViewModel، به عنوان DataContext یک Set ، View می شود. اگر مقادیرِ Propertyها در ViewModel، تغییری کنه، مقادیر جدید، از طریق Data Binding به صورت خودکار به View اعمال می شه.
    زمانی که کاربر، بر روی یک Button در View، کلیک می کند، یک Command موجود در ViewModel، به منظور انجام عمل درخواست شده، اجرا می شود.
    ViewModel (نه View!)، همه تغییراتی که می خواهیم تو دیتاهای لایه Model بدهیم، اعمال می کند. کلاس های View، اصلا نمی دانند که کلاس های Model، وجود دارند یا نه! این در حالی است که ViewModel و Model هم از View، هیچ خبری ندارند. و در واقع، Model به طور کامل، نسبت به وجود یا عدم وجودِ Viewو ViewModel، بی اطلاع است. (هر لایه ای فقط لایه ی یه دونه پایین تر رو می شناسه تا می رسیم به Model، که فقط خودشو می شناسه!)

    Great
    ! این یعنی یک طراحی بسیار Loosely Coupled) .Loosely Coupled یک اصطلاح متداول در برنامه نویسی است؛ بدین معنا که یک زوج لایه یا یک کوپل لایه، دارای وابستگی و درهم تنیدگی سستی باشند. یعنی در واقع از هم مستقل بوده و جدا کردن این دو لایه از هم، هیچ مشکلی برای دیگری بوجود نیاورد. )


    " اگر فونتش یه کم بد شده بود، عذر می خوام چون تو Word، تایپ کرده بودم و بعد کپی کردم. "

    SoZa
    آخرین ویرایش به وسیله Somayeh_Zamani : شنبه 05 دی 1388 در 12:15 عصر

  5. #5
    کاربر دائمی آواتار mdssoft
    تاریخ عضویت
    خرداد 1386
    محل زندگی
    تهران / ساری
    پست
    392
    بحث بسیار عالی هست و من هم خیلی علاقه مندم.
    این 2 reference هست که من کمی اونا رو مطالعه کردم ، اما راسیتش چیزه زیادی دستگیرم نشد

    http://www.codeproject.com/KB/WPF/Tr...ViewModel.aspx
    http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

    این هم یه فیلم آموزشی در رابطه با MVVM :

    http://blog.lab49.com/archives/2650
    http://blog.lab49.com/archives/2689

    خودم دارم فیلم رو میبینم. خیلی بهتر از مقاله هست.
    آخرین ویرایش به وسیله majid325 : شنبه 17 بهمن 1388 در 04:37 صبح دلیل: هدفمند کردن تاپیک

  6. #6
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    عنوان تاپیک هم گرم هست و هم قابل بحث.
    این روزهای وقت زیادی ندارم ولی سعی میکنم این تاپیک رو دنبال کنم , دیدم تاپیک یه خورده سرد شده گفتم یه نمونه کد ساده که دوستان تازه کار هم زیاد تو پیچ و تابش سر در گم نشن بزارم شاید اشتیاق دوستان به ادامه بحث بیشتر بشه.
    البته سعی میکنم همین نمونه رو یواش یواش کاملش کنم.

    پست های بی محتوا حذف میشوند


    نقل قول نوشته شده توسط Somayeh_Zamani مشاهده تاپیک
    من این لایه رو معمولا با Linq2Sql یا Entity framework مایکروسافت ایجاد می کنم. شما چطور؟
    بهترین انتخاب همون orm هست.
    البته این روزها شرکت های بزرگ برای خودشون یه orMap بهنیه شده مینویسند .

    نقل قول نوشته شده توسط Somayeh_Zamani مشاهده تاپیک

    View: همان کدهای XAML گرافیکی است که برای تولید UI استفاده می شود و هیچ چیز بیش از آن نیست.
    البته نه به این صراحت.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله majid325 : شنبه 17 بهمن 1388 در 04:57 صبح

  7. #7

  8. #8
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام آقاي اويسي واقعا دستتون درد نكنه نمونه ي كامل و جالبي بود
    فقط يه سوالي اگه نخواهيم بعد از اضافه شدن مقادير جديد enable باتن اضافه فرق كنه و بازهم كاربر بتونه يه employee جديد ثبت كنه(بدون خارج شدن از برنامه)بايد چيكار كنيم؟
    يه سوال ديگه اگه بخواهم با تغيير رديف در ديتاگريم مقادير textbox ها هم عوض بشه بايد چيكار كرد؟؟
    ممنون ميشم راهنماييم كنيد تا مشكلم حل بشه اگه نياز شد كدم را هم ميتونم بذارم.
    بازم تشكر

  9. #9
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام، خواهش می کنم
    اگر دقت کرده باشید، برای هر command دو تا event هندل شده:
    1. command_canExecute
    2. command_execute


    execute که مشخصه چی کار میکنه، کارهای لازم برای اجرا شدن command رو انجام میده. مثل عمل insert برای command مربوطه.
    canExecute تو command ها مشخص کننده اینه که این command در چه شرایطی قابلیت اجرا داشته باشه. مثلا insertCommand رو در نظر بگیرید، ما میخوایم که یک employee جدید اضافه کنیم با id = 2. این کار زمانی امکان پذیر خواهد بود که employee دیگه ای با id = 2 در table ما نباشه قبلا. پس اومدیم و در canExecute این قضیه رو چک کردیم و اگر employee با اون id نبود، true برمیگردونیم و اگر هم employee با اون id قبلا بوده false برمیگردونیم.
    حالا این که چرا button مربوط به insert بعد از عمل insert غیر فعال میشه اینه:
    چون مقدار textbox مربوط به id دارای یه مقداری هست که یک employee با اون id الان تو table وجود داره پس عملا نمیشه چنین employee رو دوباره ایجاد کرد و واسه همین button مربوط به insert غیرفعال میشه
    برای اضافه کردن یک employee جدید هم نیازی نیست دوباره برنامه رو run کنید، بلکه کافیه یک مقدار جدید به id در textbox وارد کنید و خواهید دید که insert فعال میشه!

    برای button های update و Delete هم همچین قضیه ای وجود داره و زمانی فعال خواهند بود که یک employee در table، با مقداری که برای id در Textbox نوشته شده، وجود داشته باشه. فرض کنید شما میخواین یک employee با id = 3 رو delete کنید. برای این کار در Textbox مربوط به id مقدار 3 رو وارد می کنید. زمانی که فوکوس از اون textbox خارج میشه،canExecute برای deleteCommand اجرا میشه و اگر employee با اون id وجود داشته باشه، button مربوط به delete فعال میشه و در غیر اینصورت غیر فعال میشه.
    برای update هم مثل delete هست.

    باز هم سوالی بود مطرح کنید.
    موفق باشید

  10. #10
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام و ممنون از اينكه وقت گذاشتيد
    يه سوال ديگه اگه بخواهم با تغيير رديف در ديتاگريم مقادير textbox ها هم عوض بشه بايد چيكار كرد؟؟
    من براي اينكار datacontex اون stackpanel ي كه text box ها داخلش بود و itemssource ديتا گريدم را يك چيز گذاشتم در واقع به جاي observablecollection از يك collectionViewSource استفاده كرده ام آيا اين روش درسته؟
    در اين كه هر دو بايد از يك منبع داده بگيرند شكي نيست اما براي استفاده هاي بعدي استفاده از كدوم(collectionviewsource يا observableCollection) بهتره؟ اصلا تفاوتي داره؟
    و اينكه اگر كاربر بخواد مقداري كه توي textbox نشون داده ميشه را حذف كنه بدون اينكه مجبور باشه دستي چيزي را توي تكست باكس ID بنويسه بايد چه چيزي را به command پاس بدم چون وقتي newEmployee را پاس ميدهم پيغام خطا ظاهر ميشه:
    sequence contains no element
    <<<<<اميدوارم سوالاتم زياد خنده دار نباشه اگرهم هست به بزرگي خودتون و تازه كار بودن من ببخشيد>>>>>>>

  11. #11

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    آموزش MVVM که شامل 5 قسمت است به همراه مثال

    این لینک قسمت اول
    http://vahidnasiri.blogspot.com/2010/04/m-v-vm.html

    بقیه قسمت ها در همین وبلاگ موجود است

  12. #12

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    آموزش آقاي وحيد نصيري هم براي شروع مناسبه http://vahidnasiri.blogspot.com/search/label/MVVM

  13. #13
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام
    اگر کمی دقت کنید هر دو لینک آموزشهای آقای نصیری هست و این آموزش ها قبلا در سایت قرار داده شده

  14. #14

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    تو سايت windowsclient هم يه Video خيلي خوب با موضوع Data-driven پيدا كردم. http://windowsclient.net/learn/video.aspx?v=314683

  15. #15

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    نقل قول نوشته شده توسط majid325 مشاهده تاپیک
    البته این روزها شرکت های بزرگ برای خودشون یه orMap بهنیه شده مینویسند .
    ميتونيد بيشتر توضيح بديد؟

  16. #16

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    يعني هرشركتي براي خودش يك framework مي نويسه كه يكي از وظايف framework ايجاد لايه ارتباط با ديتابيس هستش و معني oram يا Object relation Mapping هم اينه كه شما مي ياييد DataBase رو به صورت Object مي بينيد و باهشان به صورت ابجكتي كار مي كنيد كه از framework هايي كه اين كار رو انجام مي دهند Linq to Sql - entity framework - Plinqo و ... هستند

  17. #17
    کاربر تازه وارد آواتار Somayeh_Zamani
    تاریخ عضویت
    دی 1387
    محل زندگی
    Tehran
    پست
    63

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    عنوان تاپیک هم گرم هست و هم قابل بحث.
    این روزهای وقت زیادی ندارم ولی سعی میکنم این تاپیک رو دنبال کنم , دیدم تاپیک یه خورده سرد شده گفتم یه نمونه کد ساده که دوستان تازه کار هم زیاد تو پیچ و تابش سر در گم نشن بزارم شاید اشتیاق دوستان به ادامه بحث بیشتر بشه.
    البته سعی میکنم همین نمونه رو یواش یواش کاملش کنم.

    پست های بی محتوا حذف میشوند

    نوشته شده توسط Somayeh_Zamani
    من این لایه رو معمولا با Linq2Sql یا Entity framework مایکروسافت ایجاد می کنم. شما چطور؟




    بهترین انتخاب همون orm هست.
    البته این روزها شرکت های بزرگ برای خودشون یه orMap بهنیه شده مینویسند .

    نوشته شده توسط Somayeh_Zamani

    View: همان کدهای XAML گرافیکی است که برای تولید UI استفاده می شود و هیچ چیز بیش از آن نیست.



    البته نه به این صراحت.

    @majid325:
    چرا نه به این صراحت؟!
    آخرین ویرایش به وسیله Somayeh_Zamani : یک شنبه 24 بهمن 1389 در 09:47 صبح

  18. #18
    کاربر دائمی آواتار aghayex
    تاریخ عضویت
    دی 1388
    محل زندگی
    https://telegram.me/Sed_kazem18
    پست
    924

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    من همیشه چیزایی رو که می خوام یاد بگیرم دنبال منابعی می گردم که اونا رو به زبان ساده بیان کنه ( در حد ابتدای ) اما این بحت رو هر چی دنبالش بودم که یه منبع خوب پیدا کنم پیدا نکردم و فقط شد اون منبع آقای نصیری که اونم مثال های نامفهوم بود .
    حالا علت اینکه این بحث MVVM برا من جانیوفتاده رو در موارد زیر می بینم
    1 - این بحث شامل مباحث کلاس ، بایندینگ هست که در این دو بحث من ضعیفم
    2 - عدم وجود منبع روان به صورت کار عملی
    حالا از دوستان این دخواست رو دارم که اگه این توانایی رو دارن همراهی کنن

  19. #19
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    با سلام
    من جدیدا می خوام این الگو رو یاد بگیرم سوال اولم در مورد اینکه کدامیک از Framework های این الگو از بقیه بهتره و سوال دوم در مورد اینکه این الگو تقریبا 30 درصد سرعت برنامه رو افزایش می ده آیا صحت داره و چگونه این کار رو انجام می ده با تشکر

  20. #20
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    با سلام
    کسی که به این سوال ما جواب نداد با خوندن مطالب آقای وحید نصیری فهمیدم که Light Toolkit از بقیه بهتره و یه سوال دیگه داشتم اونم اینه مثلا برای پاسخ به رویداد GotFocus یک TextBox ای که در یک View قرار دارد در کد Xaml این View تکست باکس و با رویدادش به این صورت می نویسند

    <TextBox Name="txt1" Text="Hello" >
    <i:Interaction.Triggers>
    <i:EventTrigger EventName="GotFocus" >
    <cmd:EventToCommand Command="{Binding GotFocusCommand}" PassEventArgsToCommand="True" MustToggleIsEnabledValue="True" />
    </i:EventTrigger>
    </i:Interaction.Triggers>
    </TextBox>

    حال اگه این تکست باکس پنج تا رویداد دیگه هم داشت بایستی برای هر کدوم از این رویدادها یک چنین مفصل نامه نوشت با تشکر

  21. #21

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    نقل قول نوشته شده توسط PetekDincos مشاهده تاپیک
    با سلام
    کسی که به این سوال ما جواب نداد با خوندن مطالب آقای وحید نصیری فهمیدم که Light Toolkit از بقیه بهتره و یه سوال دیگه داشتم اونم اینه مثلا برای پاسخ به رویداد GotFocus یک TextBox ای که در یک View قرار دارد در کد Xaml این View تکست باکس و با رویدادش به این صورت می نویسند

    <TextBox Name="txt1" Text="Hello" >
    <i:Interaction.Triggers>
    <i:EventTrigger EventName="GotFocus" >
    <cmd:EventToCommand Command="{Binding GotFocusCommand}" PassEventArgsToCommand="True" MustToggleIsEnabledValue="True" />
    </i:EventTrigger>
    </i:Interaction.Triggers>
    </TextBox>

    حال اگه این تکست باکس پنج تا رویداد دیگه هم داشت بایستی برای هر کدوم از این رویدادها یک چنین مفصل نامه نوشت با تشکر
    كافيه كه يك EventTrigger ديگه در قسمتInteraction.Triggers بنويسيد


    <TextBox Name="txt1" Text="Hello" >
    <i:Interaction.Triggers>
    <i:EventTrigger EventName="GotFocus" >
    <cmd:EventToCommand Command="{Binding GotFocusCommand}" PassEventArgsToCommand="True" MustToggleIsEnabledValue="True" />
    </i:EventTrigger>


    <i:EventTrigger EventName="Click" >
    <cmd:EventToCommand Command="{Binding ClickCommand}" PassEventArgsToCommand="True" MustToggleIsEnabledValue="True" />
    </i:EventTrigger>

    </i:Interaction.Triggers>
    </TextBox>

  22. #22
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    با سلام
    مثلا 20 تا تکست باکس تو یه View وجود داره آیا باید برای این 20 تا تکست باکس همین کار ها رو تکرار کرد یه راهی وجود نداره که تکرار انجام نشه با تشکر

  23. #23

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام بحث mvvm بحث شیرینیه...
    دوست دارم ادامه بدید.
    چرا نه به این صراحت؟!
    من توی آموزش های آقای نصیری دیدم که یه سری کدها رو میشد توی قسمت Design هم نوشت(قبل از InitializeComponent).

  24. #24

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    نقل قول نوشته شده توسط PetekDincos مشاهده تاپیک
    با سلام
    مثلا 20 تا تکست باکس تو یه View وجود داره آیا باید برای این 20 تا تکست باکس همین کار ها رو تکرار کرد یه راهی وجود نداره که تکرار انجام نشه با تشکر
    بله در حالت استاندارد بايد اين كار رو انجام داد البته مي شه با كمي خلاقيت اين رو هم بهتر نوشت

  25. #25
    کاربر دائمی آواتار farashah_jalal
    تاریخ عضویت
    مهر 1387
    محل زندگی
    یزد - تفت
    سن
    36
    پست
    148

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    با سلام
    امیدوارم این بحث ادامه پیدا کند و من هم به تونم توی این بحث ها سهمی داشته باشم .
    یک پروژه کوچکی را با mvvm و entitiy fram work نوشتم که در خدمت دوستان قرار می دم.
    در این نمونه از linq to entity استفاده شده است. و در بعضی از مواقع هم از sp استفاده شده است.
    اگر سوالی چیزی باشه در خدمتم . موفق باشید .سال نو مبارک
    mvvmpoyan.rar

  26. #26

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    lمباحث این تاپیک بسیار بسیار مفید هست وحیفه این همه مدت بدون پست مونده ...

    لطفا صاحب نظران به اراءه مثال راجع به معماری MVVM و توضیح کامل اون و همچنین سایر Pattern های مطرح تو زمینه WPF بپردازند...

  27. #27
    کاربر دائمی آواتار farashah_jalal
    تاریخ عضویت
    مهر 1387
    محل زندگی
    یزد - تفت
    سن
    36
    پست
    148

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    با سلام
    در این تایپک برای شروع و کار با یان معماری بحث های مفیدی شده است و برای شروع می تونید از اونها استفاده کنید .
    و اگر سوال و یا مشکلی بود می تونید مطرح کنید تا راهنمایتون کنیم.
    با تشکر

  28. #28

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    انگار source تون ناقصه چون فایل sln رو تداره و از قسمت file/open/project هم کردم یه عالمه خطا داد

  29. #29
    کاربر جدید آواتار saraparsa
    تاریخ عضویت
    آذر 1390
    محل زندگی
    مشاورین پارس سیستم
    پست
    5

    Unhappy نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام به همه دوستان و ممنون به خاطر این مبحث مهم و جدید
    راستش من تو شرکتی کار میکنم که ازیک فریم ورک که خریداری کرده اند استفاده میکنند که از تکنولوژی wpf,mvvm استفاده میکنند
    من چندتا مشکل دارم یکی بایند کردن کمبوباکسهایی که به صورت دستی پر میشوند
    دوم بایند کردن لوک آپها
    تو این اواخر هم یک usercontrol نوشتم که نمیدونم چطور داخلش از لایه دیتااکسس استفاده کنم آیا درست استفاده کردنش تو این قسمت?
    و اینکه نمی دونم این usercontrol از چه کلاسی ارث بری کنه چون فرزند نیست و خودش حکم یه فرم رو داره?
    ایکاش اینجا بیشتر در مورد codbehind صحبت شه

  30. #30

  31. #31
    کاربر جدید آواتار saraparsa
    تاریخ عضویت
    آذر 1390
    محل زندگی
    مشاورین پارس سیستم
    پست
    5

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    rastesh frameworkeshon khase khodeshone

  32. #32
    کاربر جدید آواتار saraparsa
    تاریخ عضویت
    آذر 1390
    محل زندگی
    مشاورین پارس سیستم
    پست
    5

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    به هرحال من نحوه استفاده درست و ساخت یک usercontrol را نمی تونید همراه با یک sample برام توضیح بدین؟

  33. #33

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام خدمت دوستان عزیز

    من تازه شروع کردم به یادگیری MVVM و دارم همراه یادگیری یکی از پروژه هام رو بر طبق اون انجام میدم ... حالا تو بعضی تعاریف مشکل دارم و بعضی جاها هم تو پیاده سازی ... میپرسم امیدوارم که دوستان مطلع بدادمون برسن ...

    تو بخش تعاریف :

    1. فرض در طراحی اومدن یه کلاس رو معرفی کردن به نام person با خواص خودش ( firstname , birthday , ..) و گفتن این کلاس متدی داره که مثلا میاد یه محاسبه ای در مورد روز تولد طرف میکنه (() public Boolean CheckBirthDay ) و یه مقدار bool رو بر میگردونه ...

    پر واضحه که این طراحی یه دیتابیس رو هم شامل میشه که توش جدول person هم داریم .... میایم تو MVVM : فرض view یه دیتا گرید ساده است ... viewmodel هم با observablecollection و لایه DAL اومده از کلاس model استفاده کرده و اطلاعات نمایشی رو برای view ردیف کرده ... حالا سوال اینه ... اینا همش برای نمایش اون چیزی هست که مستقیم از دیتابیس میاد ... من دقیقا کجا باید اون محاسبات روی روز تولد کلاس person رو انجام بدم ( که بعد بیام نتیجه bool رو تو view نمایش بدم ؟)؟ ... viewmodel ? ... یا Model ? ... یا اصلا تو یه کلاس جدا ؟ ... این احتمالا همون بخش BLL برنامه است ... تو MVVM این بخش رو کجا قرار میدیم ؟ توضیحات اینترنتی میگه بزارش تو model ... ولی همیشه اموزش ها model رو خیلی ساده با چند تا متغییر تعریف میکنه ! ... متدی اصلا توش نداریم ! ... این یه مثال ساده بود ... فرض متد هایی داریم که خودشون اندازه یه کلاس محاسبات داره ... آیا اونا رو هم باید بزاریم تو Model یا جایی دیگه ؟ ...

    public class Model: 
    {
    public string FirstName{ get; set; }
    public string LastName{ get; set; }
    }


    2. هر برنامه ای که با دیتابیس کار میکنه باید بتونه یه کلاس اماده کنه برای CRUD با دیتابیس ... تو بعضی اموزش ها بهش میگن Data Access Layer و بعضی جاها Repository .... یا شایدم من درست فکر نمی کنم ... ولی کار این دو تا دقیقا همینه ... حالا این لایه رو وقتی ایجاد کردیم کجای معماری قرار میگیره ... یعنی همونطور که model نباید از viewmodel خبر داشته باشه و viewmodel از view ... الان این لایه دقیقا چطوره ؟ ... ایا میشه ازش تو viewmodel هم استفاده کرد ؟ ... یه جا میگن باید viewmodel با مدل در ارتباط باشه بعد model بیاد با DAL در ارتباط باشه ... یه جایی دیگه خودشون میان برای پرکردن observablecollection مستقیما داخل viewmodel از DAL استفاده میکنن !!!

    تو بخش پیاده سازی :
    1. ( شبیه سوال اخر بخش تعاریف ) وقتی یه کلاس model داریم ... چطوری باید تو viewmodel یک observablecollection رو از اطلاعات دیتابیس پر کنیم ؟ ... مستقیم بری از LoadData مثلا تو DAL استفاده کنیم یا یه کلاس که اینجوری معرفی شده :

    public Class Models : ObservableCollection<Model>


    که بعد تو این کلاس بیایم از لایه دسترسی استفاده کنیم ؟ ... میدونم هر دو نوعش میشه ولی کدومش مناسبتره ... کدومش باعث میشه مقصود اصلی MVVM که جداسازی لایه ها از هم و اجرای unittest رو هر کدومشون بهتر اجرا بشه ؟

    2. برای استفاده از فیلتر کردن اطلاعات میاد میگه اینجوری کنین :

    <Window.Resources>
    ...
    <CollectionViewSource Source="{Binding Things}" x:Key="X_CVS"/>
    </Window.Resources>

    که خود Things یه observablecollection هست ... بعد اینطور که متوجه شدم میگه باید یه نمونه از این CollectionViewSource رو بفرستیم برای viewmodel تا روش فیلتر و غیره رو اجرا کنیم ... چطوری باید اینو بفرستیم به viewmodel در حالی که ارجاع مستقیمی از view به viewmodel تو codebehind اون نباید باشه ؟

    یه سوال جدا ... من کار طراحی این نرم افزار رو بر طبق اصول oop و با ایجاد نمودارهای فعالیت و یوزکیس و بعدش هم طراحی کلاس براش شروع کردم ... اون موقع اصلا قصد نوشتن برنامه چند لایه رو نداشتم ... بعد موقع ساخت با MVVM اشنا شدم ... حالا به نظرتون باید بشینم دوباره کلاس های برنامه رو از اول با دید برنامه نویسی چند لایه طراحی کنم یا از همین کلاس ها هم میشه استفاده کرد ... مچ کردنشون کم کم داره اذیتم می کنه ... اونجا تعاریف یه چیز دیگه بود اینجا یه چیز دیگه ... دقیقا نمی دونم کدوم قسمت رو کجای MVVM بزارم
    آخرین ویرایش به وسیله morteza_2009 : یک شنبه 19 آبان 1392 در 21:03 عصر

  34. #34
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    سلام

    داخل مدل نباید متد تعریف کنید. هر کاری که لازمه با مدل ها انجام بگیره توی ViewModel انجام بدید. میتونید Bussines Logic رو داخل ViewModel قرار بدید یا اینکه یک لایه جدا تعریف کنید (مثلا Service) و از اون داخل ViewModel استفاده کنید. اما اجباری به جدا کردن BL از VM وجود نداره.
    برای کار با دیتابیس شما یک لایه (مثلا Repository) ایجاد کنید و ازش تو VM (یا اگر لایه BL جداگانه دارید، در BL) استفاده کنید. هر چند اگر مستقیم از داخل VM هم با Entity Framework کار کنید، MVVM رو نقض نکردید. اما جدا کردنش طراحی شما رو بهتر میکنه.

    سوال دومتون در مورد فیلتر کردن اینا رو درست متوجه نشدم لطفا بیشتر توضیح بدید.

    در مورد سوال آخرتون هم باید بگم که اصولی بخواید کار کنید باید طراحی کلاس ها و دیاگرام ها و ارتباطاتشون رو باید اصلاح کنید بعد برید سراغ پیاده سازی هاشون.

  35. #35

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    http://www.codeproject.com/Articles/...Grid-with-MVVMممنون که پاسخ دادید .... اون فیلتر رو از این ادرس اموزشی گرفتم .... توش توضیح داده چیکار کنیم ولی خودش اومده از یه فریم ورک استفاده کرده .... میخوام راه ساده فرستادن collectionviewsource از view به view model رو بدونم بدون اینکه mvvm رو زیر پا بزارم

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •