صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 45

نام تاپیک: استفاده از الگوی M-V-VM

  1. #1

    استفاده از الگوی M-V-VM

    سلام من میخوام از الگوی M-V-VM استفاده بکنم ولی یه سوال پیش اومده واسم:

    در عکس زیر قسمت سمت راست الگوی M-V-VM رو داره یا قسمت سمت چپ؟

    نمیدونم از کدومیکش استفاده بکنم.خیلی گیرم انداخته لطفا راهنمایی کنید؟
    عکس های ضمیمه عکس های ضمیمه

  2. #2

    نقل قول: استفاده از الگوی M-V-VM

    کاری به سوالهای بی جوابم ندارم.
    ولی فکر نکنم توی تالار WPF کسی تردد داشته باشه.مسئولین نمیخوان فکری بکنن؟من این صفحه اول تالار رو که رفرش میکنم از بس که اساتید و مدیران جواب نمیدن روی تاپیک ها گرد و خاک نشسته.
    مدیران کجای مجلسند؟این همه تاپیک بی جواب و جواب دار بی نتیجه.

  3. #3

    نقل قول: استفاده از الگوی M-V-VM

    کاری به سوالهای بی جوابم ندارم.
    ولی فکر نکنم توی تالار WPF کسی تردد داشته باشه.مسئولین نمیخوان فکری بکنن؟من این صفحه اول تالار رو که رفرش میکنم از بس که اساتید و مدیران جواب نمیدن روی تاپیک ها گرد و خاک نشسته.
    من هم با شما موافقم تالار Silverlight - WPF یکی از بدترین ها برای سوال پرسیدن و جواب گرفتن است
    هر سوالی که پرسیدم بدون جواب ماند و تازه اگر هم کسی جواب داده فاقد محتوای فنی است
    من یک سوال دارم . آیا کسی روی این زمینه ها کار نمیکنه و یا اینکه این مباحث سیلورلایت و WPF در حال منسوخ شدن است؟
    و یا اینکه کاربران تمایلی به اشتراک گذاشتن تجربیات خود با دیگران ندارند؟

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1388
    محل زندگی
    دماوند
    سن
    32
    پست
    287

    نقل قول: استفاده از الگوی M-V-VM

    سلام - هر دوتاشون درست هستن. توی شکل سمت راست که ساختار پروژه های MVVM Ligth این جوری هستش (البته برا من فکر کنم پوشه Design) رو هم نداشت . ولی به نظر من که سمت چپ درست تر هستش.

  5. #5

    نقل قول: استفاده از الگوی M-V-VM

    ممنون ولی مطابق با توضیحات اقای نصیری توی اون pdf نیست ، چرا اینطوریه ؟یعنی ویژوال استودیو من اگر عکسش رو بهتون نشون بدم ، تمپلت هایی که داره اصلا این WPF Model-View Application رو نداره.اصلا پیداش نمیکنم.چکا رکنم درست بشه؟
    عکس های ضمیمه عکس های ضمیمه

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

    نقل قول: استفاده از الگوی M-V-VM

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

  7. #7

    نقل قول: استفاده از الگوی M-V-VM

    اره نصبش کردم و نتیجه اش رو هم توی عکس بالا میتونید ببینید.ولی همه چیز رو میاره به غیر از اون چیزی که دنبالشم.چیزی به ذهنتوتن میرسه.از خود ویژوال من تمپلت های WPF رو دانلود کردم ولی نمیارتش.دیگه نمیدونم چیکار کنم.شما پیشنهادی ندارین؟

  8. #8

    نقل قول: استفاده از الگوی M-V-VM

    نقل قول نوشته شده توسط Ehsan Programmer مشاهده تاپیک
    من هم با شما موافقم تالار Silverlight - WPF یکی از بدترین ها برای سوال پرسیدن و جواب گرفتن است
    هر سوالی که پرسیدم بدون جواب ماند و تازه اگر هم کسی جواب داده فاقد محتوای فنی است
    من یک سوال دارم . آیا کسی روی این زمینه ها کار نمیکنه و یا اینکه این مباحث سیلورلایت و WPF در حال منسوخ شدن است؟
    و یا اینکه کاربران تمایلی به اشتراک گذاشتن تجربیات خود با دیگران ندارند؟
    این عکس ها رو ببینید.در مورد این که میگین در حال منسوخ شدن هستش.کاری به سلایق کاری دوستان ندارم ولی ادم دلش میاد از این طرز برنامه نویسی اونم با این رابط کاربری بگذره ؟ شما دلت میاد جدا؟

    این عکس ها رو ببیند و خودتون قضاوت کنید.به نظرم توی برنامه نوشتن چند تا چیز رعایت بشه خیلی نرم افزار حرفه ایی میتونه باشه.
    1 - رابط کاربری قوی مثل این عکسها و نمونه دیگر این عکسها( توی اینترنت سرچ نمونه های خوشگلترش هم هست)
    2 - الگوی M- V -VM
    3 - مباحث شی گرایی
    4 - .....
    البته از هر کدومش در جای خودش بطور صحیح استفاده بشه نرم افزار حرفه ایی میتونه باشه.


    هر کی دلیل داره تنها نیست.
    عکس های ضمیمه عکس های ضمیمه

  9. #9
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: استفاده از الگوی M-V-VM

    اقا من چند روزه وقتم را گذاشتم برای همین wpf و روش mvvm و استفاده از entity framework کلا دارم از این روش خسته میشم اخه خیلی درکش برام سخت شده و تو مباحث اولیه این روش مانده ام خیلی دلم میخواهد این روش را کامل یاد بیگرم کلی پی دی اف و فیلم دان زدم اخر متوجه نمیشم باید چه کرد ؟

    یک نفر با ای دی من تماس بگیره منو راه بندازه : alaydyn

  10. #10

    نقل قول: استفاده از الگوی M-V-VM

    سلام این لینک میگه توی دو هفته بهتون WPF رو یاد میدم.یه نگاهی بندازین بدک نیست.

    http://www.wpftutorial.net/LearnWPFin14Days.html

  11. #11
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: استفاده از الگوی M-V-VM

    این لینک را دیده ام مشکل من اصل مطلب هستش یعنی binding و استفاده از بانک و mvvm دیگه استفاده از stackpanel یا grid مشکلی ندارم

  12. #12

    نقل قول: استفاده از الگوی M-V-VM

    نقل قول نوشته شده توسط noroozifar مشاهده تاپیک
    استفاده از بانک و mvvm
    این WPF Model-View Application توی ویژوال شما هستش ؟
    اگه اره چطوری اوردینش من نتونستم بیارمش چیکار کنم؟

  13. #13
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: استفاده از الگوی M-V-VM

    برای من mvvmViewModel(wpf با سی شارپ هستش حالا کاربرد این چی هستش؟

  14. #14

    نقل قول: استفاده از الگوی M-V-VM

    با استفاده از این تمپلیت میتونید این الگو ( mvvm ) رو توی نرم افزارتون پیاده سازی کنید.

    حالا چطوری به تمپلیت هاتون اضافه کردین یا اینکه خودش بود ؟

  15. #15
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: استفاده از الگوی M-V-VM

    من MVVM Light Toolkit V3 را نصب کردم یک پروژه باز کردم زدم new items و بعد دیدم تو قسمت WPF هستش شما تا چه اندازه تو مبحث WPF پیشرفت کرده اید ایا میتونید با بانک اطلاعاتی مخصوص entity framework کار کنید داخلش ... میتونید binding را انجام بدید طلاعات بین بانک داد و ستد کنید

  16. #16

    نقل قول: استفاده از الگوی M-V-VM

    سلام این لینک رو ببینید به نظرم این مثال رو خوب متوجه بشیم مشکلمون توی این قضیه حله حداقل کار اینه که پایه رو یاد گرفتیم.
    http://rongchaua.net/blog/c-mvvm-and-entity-framework/

    یه نمونه برنامه هم خودش گذاشته ولی یه خطای میگیره من نفهمیدم چیکارش کنم.اگه فهمیدین بگین ، یاد بگیریم

  17. #17
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: استفاده از الگوی M-V-VM

    مثالش کامل نیستش

    دارم سعی میکنم این روش را اد بگیرم اما خیلی ها میگن از زمانش گذشته یعنی منسوخ شده است اگر هستش بهتره روش کار نکنیم ؟

    وقت نظاریم روش ؟

    به جای اون وقت روی یک تکنولوژی دیگه بزاریم حالا نمیدونم چی ؟

  18. #18

    نقل قول: استفاده از الگوی M-V-VM

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

    اما خیلی ها میگن از زمانش گذشته یعنی منسوخ شده است اگر هستش بهتره روش کار نکنیم ؟

    وقت نظاریم روش ؟

    به جای اون وقت روی یک تکنولوژی دیگه بزاریم حالا نمیدونم چی ؟
    ببینید من 2 تا سوال دارم؟
    1 - توی ایران منسوخ شده یا غیر از ایران ؟
    2 - تکنولوژی بهتر ازینِ مایکروسافت واسه کار با دیتابیس چیه ؟(جنبه سوالی داره نه انکاری)
    3 -

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

    نقل قول: استفاده از الگوی M-V-VM

    تو ایران من کسی نمیشناسم کلا با این wpf کار کنه پس باید هم در اینجا هم در جهان منسوخ شده باشه احتمالا چون تاپیکش هم که خوابیده اما ویدئوهای که میبینم بیشضتر بر روی wcf و wpf با هم کار میکنند باز هم نمیدونم

    تکنولوژی کار با بانک الان به نظرم بهترینش entity fream work , linq to sql هستش بالاخر ادمهای که تجربه تو کار دارند باید بیاند ما را راهنمایی کنند که اونها هم هر گز به این تاپیکها سر نمیزنند سر هم بزنند راهنمایی نمیکنند

  20. #20
    کاربر دائمی آواتار d_derakhshani
    تاریخ عضویت
    آبان 1389
    محل زندگی
    تهران، d.derakhshani@yahoo.com
    پست
    510

    نقل قول: استفاده از الگوی M-V-VM

    نقل قول نوشته شده توسط noroozifar مشاهده تاپیک
    تو ایران من کسی نمیشناسم کلا با این wpf کار کنه پس باید هم در اینجا هم در جهان منسوخ شده باشه احتمالا چون تاپیکش هم که خوابیده اما ویدئوهای که میبینم بیشضتر بر روی wcf و wpf با هم کار میکنند باز هم نمیدونم

    تکنولوژی کار با بانک الان به نظرم بهترینش entity fream work , linq to sql هستش بالاخر ادمهای که تجربه تو کار دارند باید بیاند ما را راهنمایی کنند که اونها هم هر گز به این تاپیکها سر نمیزنند سر هم بزنند راهنمایی نمیکنند
    آگه شما نمیشناسید دلیل نمیشه که نیست. من جز خودم شرکت های زیادی رو میشناسم که دارن با wpf برنامه هاشون رو تولید می کنن و بازار بسیار خوبی هم داره. مثل WPF وضعیت Silverlight هم همینطوره.
    فقط من نمیدونم سطح این تالار چرا انقدر پایینه که آدم رغبت نمی کنه به سوالها جواب بده.
    تو یکی از پست ها در تالار ASP.Net توضیح دادم فروم برای یادگیری از صفر نیست. برای رفع مشکله. اگه دوستانی که WPF کار می کنن برن یک کتاب بخونن(اونم کامل) و بعد بیان اگه مشکلی داشتن اینجا بیان کنن انقدر سطح این تالار یا تالار های مشابه پایین نمیاد.(البته اگه آموزشی هم تو تالار داده میشه کمتر کسی میره کامل بخونه تا خوب مسلط بشه و باز میان همون سوالها رو میپرسن)

  21. #21
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post توضیح کوتاه

    پترن MVVM پترن جدیدیه، فدیمی حرف عجیبیه!!!
    پترن MVVM بعد از پترنای MVC (که می شه گفت بهترین پترن برای Web Developing هست) و MVP معرفی شده و مایکروسافت تو WPF از نسخه ی 3 دات نت فریم وورک داره پشتیبانی مناسبی ازش می کنه که با استفاده از قابلیت data binding واقعا کار باهاش بهتر و قابلیت گسترش پذیری برنامه ها رو به شدت افزایش داده.
    Entity Framework هم یه ORM به حساب میاد که توسط مایکروسافت ارائه شده، کار باهاش خیلی ساده س و واسه پروژه های کوچیک خیلی مناسب تره. البته بهتره که وقتی با EF آشنا شدین سراغ NHibernate برین (البته نظر شخصیه منه، من هم با EF کار می کنم و هم Nhibernate که دوممی خیلی ترجیح می دم. به خاطر قابلیتای Mapping، بودن یا نبودن Lazy Loading، خوندن یا نوشتن گروهی، multi queries، کش و....)
    واسه یاد گرفتن EF سایت MSDN Blog یه مثال راحت داره که بد نیس با اون شروع کنین، کتابم کم نیس راجبش
    http://blogs.msdn.com/b/adonet/archi...lkthrough.aspx

  22. #22
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post Start!

    خیلی خوبه که وقتی با WPF کار می کنین برنامه تونو با پترن MVVM توسعه بدین ولی واسه شروع شما باید اول با مفهوم Binding تو این محیط آشناشین. مفهموم Binding و DataContext که همراه اونه رو یاد گرفتین تازه کار شروع می شه. کتابای WPF کلی درباره این مبحث توضیح دادن.
    با WPF می تونین پترن MVC رم پیاده کنین چون وقتی binding یاد بگیرین دیگه این چیزا سخت نیست ولی برای WPF مناسب نیست (برعکس وب). پترن MVP خیلی شبیه MVVM هس اونجا Presenter هس اینجا ViewModel ولی ارتباط اینا با Veiw و نوعشون فرق داره! تو MVP مشکل tightly couple وجود داره (رابطه ی بیش اندازه ی کلاس ها با هم که فقط با کمک interfaceها می شه کاهشش داد. البته راه هایی مثل استفاده از DIها هم هس) ولی تو MVVm ما با کمک Databinding و commandها داده های کاربرو به ViewModel می دیم و Modelهاهم هیچ اطلاعی از ViewModelها ندارن
    یا خودتون می خواین MVVM رو پیاده کنین که کار سختی نیس ولی درس نیس! یا از ابزارای آماده ای که داره گسترش پیدا می کنه باید استفاده کنین. به خاطر این می گم درس نیس که وقتی بعضیا دارن وقت می ذارن و هی باگارم برطرف می کنن چرا وقتتونو طلف کنین (البته برای استفاده از ااوناهم باید مفاهیم بدونین)
    اگه با Prism آشناشین خیلی خوبه
    http://compositewpf.codeplex.com/
    البته تست MVVM ین پروژهرو هم می تونین از اینجا دانلود کنین: (باید ویژوالتون 2010 باشه) http://visualstudiogallery.msdn.micr...7-8e8d57eb9942

    MVVM Foundation
    http://mvvmfoundation.codeplex.com/

    MVVM Light Toolkit
    http://mvvmlight.codeplex.com/

  23. #23
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1385
    محل زندگی
    ساکن ارومیه
    پست
    85

    نقل قول: استفاده از الگوی M-V-VM

    من میدونم مشکل این دوستمون چیه. من خودم هم موقع یادگیری سیلورلایت دچار این مساله بودم. بحث MVVM چون مفهومیه واقعا نیاز به درک عمیق تری داره. اما در بقیه مباحث چون روش مطرحه، بالاخره با sample مساله حل میشه. من خودم هم با اینکه آموزش های آقای نصیری در مورد MVVM رو خوندم که مفصل هم بود، واقعا واسم جا نیفتاد.مدت زیادی روی این مبحث وقت گذاشتم ولی... کتاب های دیگه هم که در حد معرفی و آشنایی گفتن. به همین دلیل نتونستیم تو پروژه ای که کار میکردم ازش استفاده کنم و دیگه هم فرصت پیگیری پیش نیومد.
    در مورد منسوخ شدن هم ... تا جاییکه من میدونم بحث اصلی اینه که توی ویندوز 8 برنامه نویسی بر اساس دات نت نیست. به همین دلیل هم میگن که در آینده wpf جایی نداره. البته باید توجه داشت که روش کلی کار با xaml که اساس طراحی در wpf هست همچنان در ویندوز 8 وجود داره.
    در مورد سیلورلایت هم چون اکثر مرورگرهای موبایل و تبلت به خاطر حفظ باطری از افزونه ها ( مثل فلش و سیلورلایت) پشتیبانی نمی کنند، این شایعه راه افتاده که نسخه 5 آخرین نسخه سیلورلایته. البته تا جایی که من میدونم خود مایکروسافت تا حالا این مورد رو تکذیب نکرده!!

    خلاصه اینجوری!

  24. #24
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Thumbs up Sample

    واسه نوشتن یه برنامه ی ساده با کمک MVVM این مثال واقعا خوبه
    https://rachel53461.wordpress.com/20...lemvvmexample/

  25. #25
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post بحث

    نقل قول نوشته شده توسط sasansara مشاهده تاپیک
    من میدونم مشکل این دوستمون چیه. من خودم هم موقع یادگیری سیلورلایت دچار این مساله بودم. بحث MVVM چون مفهومیه واقعا نیاز به درک عمیق تری داره. اما در بقیه مباحث چون روش مطرحه، بالاخره با sample مساله حل میشه. من خودم هم با اینکه آموزش های آقای نصیری در مورد MVVM رو خوندم که مفصل هم بود، واقعا واسم جا نیفتاد.مدت زیادی روی این مبحث وقت گذاشتم ولی... کتاب های دیگه هم که در حد معرفی و آشنایی گفتن. به همین دلیل نتونستیم تو پروژه ای که کار میکردم ازش استفاده کنم و دیگه هم فرصت پیگیری پیش نیومد.
    در مورد منسوخ شدن هم ... تا جاییکه من میدونم بحث اصلی اینه که توی ویندوز 8 برنامه نویسی بر اساس دات نت نیست. به همین دلیل هم میگن که در آینده wpf جایی نداره. البته باید توجه داشت که روش کلی کار با xaml که اساس طراحی در wpf هست همچنان در ویندوز 8 وجود داره.
    در مورد سیلورلایت هم چون اکثر مرورگرهای موبایل و تبلت به خاطر حفظ باطری از افزونه ها ( مثل فلش و سیلورلایت) پشتیبانی نمی کنند، این شایعه راه افتاده که نسخه 5 آخرین نسخه سیلورلایته. البته تا جایی که من میدونم خود مایکروسافت تا حالا این مورد رو تکذیب نکرده!!

    خلاصه اینجوری!
    آره تا مفاهیم جا بیفته کار زیاد می بره :)
    توی کنفرانس PDC 2010 یه حرفایی شد از مرگ سیلورلایت! این ترس برای فلش هم در فضای وب هس! وقتیم یه کمپانی مثل اپل از فلش و سیلورلایت پشتیبانی نمیکه خب ترسناکه! بازار HTML5 هم که داغه و همین HTML5 باعث این حرفاس به نظر من!
    ولی WPF یه framework واقعا خوب برای توسعه ی نرم افزاره. قابلیت انعطاف بالا، استایل ها، انیمیشن (خود DirectX دیگه!)، commandها و ... و به نظر من بهترین framework واسه ی توسعه ی نرم افزارهای desktop. الان مایکروسافت کلی از نرم افزارهای کلیدی خودشو آورده رو WPF
    Visual Studio
    WebMatrix
    و حتی Expression.
    اینو بخونین به اون عکسم دقت کنین: http://www.zdnet.com/blog/microsoft/...r-future/10611

  26. #26

    نقل قول: استفاده از الگوی M-V-VM

    سلام
    من در حد آشنایی میدونم هر کدوم چه کاهایی میکنن ولی نمیتونم یه نرم افزار ساده بنویسم چون روند کار دستم نیومده چون تحقیق کردم ولی نمونه ننوشتم . چون تحقیقم منو راه ننداخته.اینجا میطلبه یکی بیاد ادم رو راه بندازه.همینطور بقیه دوستان.

    باتوجه به اموزشهای موجود چه فارسی و چه انگلیسی که هر کدومشون مشکلات خودشون رو دارن و اون مشکلاتِ اموزشیها توی یادگیری MVVM در WPF کمک انچنانی نمیکنه به یه برنامه نویس (البته یه برنامه نویس نه من ).
    به نظرتون بهتر نیست یکی از اقایونی که این مطلب واسش جا افتاده بیاد یه اموزش پروژه محور به بچه ها یاد بده.(البته مصور)
    که توش چند تا مبحث لحاظ شده باشه
    1 - MVVM
    2 - Entity FramWork
    بعدش با توجه استقبال بچه ها مبحث ORM رو اموزش داده بشه.

  27. #27
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post

    سلام
    این کاری که شما می گین خوبه ولی زمان گیره! الانم آموزشارو دیدین دیگه، یکی میاد از کتابا یا سایتا یه sample انتخاب می کنه بدون اینکه ذکر منبع کنه و در نظر بگیره که این sample واسه جا انداختن چه مطلبیه! به نام خودش یه چی می ده بیرون! اگه سایتاییم مثل Stack OverFlow دیده باشین می بینین بحث آموزش جایی مطرحه که تو کتابا خوب پرداخت نشده باشه و یا نمونه ی خوبی وجود نداشته باشه. کلا آموزش گذاشتن واقعا زمان بره.
    الان شما با همون لیبکی که گذاشتم EF رو یاد بگیرین (تو محیط کنسول) که فک می کنم یه روز براش کافی باشه (البته اگه نیاز به کار با DB تو پروژه هاتون دارید!) شما اول این کار کنین بعد اگه جایی از کد یا مفهوم مشکل داشتین بپرسین شاید این قلق کد براتون غریب باشه:
    var allFoods = from p in db.Products
    where p.CategoryId == "FOOD"
    orderby p.Name
    select p;

    یا شاید Data Annotations نشناسین، شما اون وخ بیا اینارو بپرس. بعد این که این روش یاد گرفتین خودم یه راه ساده تر کار با EF بهتون یاد می دم ولی این نیازه. باور کنین خودتونین که می تونین واسه خودتون کاری کنین درسته باید ذکات دانشو داد :) ولی واسه آموزش خیلی وخ باید کنار گذاشت. دوستان ایشالا ابن کارم می کنن.

  28. #28
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    نقل قول: استفاده از الگوی M-V-VM

    شما اول همین مثال ساده رو پیاده کنید که توش از هیچ ابزاری استفاده نشده (https://rachel53461.wordpress.com/20...lemvvmexample/) بعد اگه تونسین اجراش کنید ابزارای این کارو همین جا ادامه می دیم. این پروژه ام که فقط آموزشیو ساده س از ابزارا استفاده کرده (http://apuntanotas.codeplex.com)


    بعدشم واسه شروع کارم پیشنهاد می کنم Visual Studio 2010 SP1 که آخرین نسخه ی کامل VS.
    بعد Nuget رو نصب کنید (http://nuget.org/)
    با کمک همون Nuget پکیچ MVVM Light نصب کنید.
    این Nuget ربطی به برنامه ی WPF شما نداره یه ابزاره که به VS اضافه می شه و کار با ابزارای دیگه رو که به کار پروژه ی شما میادو راحت تر می کنه!

  29. #29

    نقل قول: استفاده از الگوی M-V-VM

    نقل قول نوشته شده توسط sahebgharan مشاهده تاپیک
    شما اول همین مثال ساده رو پیاده کنید که توش از هیچ ابزاری استفاده نشده (https://rachel53461.wordpress.com/20...lemvvmexample/)
    ممنون
    این لینک خسته هستش.وارد سایت نمیشه.

    انگار IP ایران رو ساپورت نمیکنه.V.P.N میخواد
    آخرین ویرایش به وسیله m.bibjan : دوشنبه 11 اردیبهشت 1391 در 12:08 عصر

  30. #30
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    نقل قول: استفاده از الگوی M-V-VM

    نقل قول نوشته شده توسط m.bibjan مشاهده تاپیک
    ممنون
    این لینک خسته هستش.وارد سایت نمیشه.

    انگار IP ایران رو ساپورت نمیکنه.V.P.N میخواد
    دامنه های وردپرس خیلی وقته فیل//ترن!

  31. #31
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post قسمت 1

    من متن اون لینک اینجا می ذارم:
    A Simple MVVM Example

    In my opinion, if you are using WPF or Silverlight you should be using the MVVM design pattern. It is perfectly suited to the technology and allows you to keep your code clean and easy to maintain.

    The problem is, there are a lot of online resources for MVVM, each with their own way of implementing the design pattern and it can be overwhelming. I would like to present MVVM in the simplest way possible using just the basics.

    So lets start at the beginning.
    MVVM

    MVVM is short for Model-View-ViewModel.

    Models are simple class objects that hold data. They should only contain properties and property validation. They are not responsible for getting data, saving data, click events, complex calculations, business rules, or any of that stuff.

    Views are the UI used to display data. In most cases, they can be DataTemplates which is simply a template that tells the application how to display a class. It is OK to put code behind your view IF that code is related to the View only, such as setting focus or running animations.

    ViewModels are where the magic happens. This is where the majority of your code-behind goes: data access, click events, complex calculations, business rules validation, etc. They are typically built to reflect a View. For example, if a View contains a ListBox of objects, a Selected object, and a Save button, the ViewModel will have an ObservableCollection ObectList, Model SelectedObject, and ICommand SaveCommand.

  32. #32
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    قسمت 2

    MVVM Example
    I’ve put together a small sample showing these 3 layers and how they relate to each other. You’ll notice that other than property/method names, none of the objects need to know anything about the others. Once the interfaces have been designed, each layer can be built completely independent of the others.
    Sample Model
    For this example I’ve used a Product Model. You’ll notice that the only thing this class contains is properties and change notification code.
    Usually I would also implement IDataErrorInfo here for property validation, however I have left this out for now.

    public class ProductModel : ObservableObject
    {
    #region Fields

    private int _productId;
    private string _productName;
    private decimal _unitPrice;

    #endregion // Fields

    #region Properties

    public int ProductId
    {
    get { return _productId; }
    set
    {
    if (value != _productId)
    {
    _productId = value;
    OnPropertyChanged("ProductId");
    }
    }
    }

    public string ProductName
    {
    get { return _productName; }
    set
    {
    if (value != _productName)
    {
    _productName = value;
    OnPropertyChanged("ProductName");
    }
    }
    }

    public decimal UnitPrice
    {
    get { return _unitPrice; }
    set
    {
    if (value != _unitPrice)
    {
    _unitPrice = value;
    OnPropertyChanged("UnitPrice");
    }
    }
    }

    #endregion // Properties
    }

  33. #33
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post قسمت 3

    The class inherits from ObservableObject, which is a custom class I use to avoid having to rewrite the property change notification code repeatedly. I would actually recommend looking into Microsoft PRISM’s NotificationObject or MVVM Light’s ViewModelBase which does the same thing once you are comfortable with MVVM, but for now I wanted to keep 3rd party libraries out of this and to show the code.
    public abstract class ObservableObject : INotifyPropertyChanged
    {
    #region INotifyPropertyChanged Members

    /// <summary>
    /// Raises the PropertyChange event for the property specified
    /// </summary>
    /// <param name="propertyName">Property name to update. Is case-sensitive.</param>
    public virtual void RaisePropertyChanged(string propertyName)
    {
    this.VerifyPropertyName(propertyName);
    OnPropertyChanged(propertyName);
    }

    /// <summary>
    /// Raised when a property on this object has a new value.
    /// </summary>
    public event PropertyChangedEventHandler PropertyChanged;

    /// <summary>
    /// Raises this object's PropertyChanged event.
    /// </summary>
    /// <param name="propertyName">The property that has a new value.</param>
    protected virtual void OnPropertyChanged(string propertyName)
    {
    this.VerifyPropertyName(propertyName);

    PropertyChangedEventHandler handler = this.PropertyChanged;
    if (handler != null)
    {
    var e = new PropertyChangedEventArgs(propertyName);
    handler(this, e);
    }
    }

    #endregion // INotifyPropertyChanged Members

    #region Debugging Aides

    /// <summary>
    /// Warns the developer if this object does not have
    /// a public property with the specified name. This
    /// method does not exist in a Release build.
    /// </summary>
    [Conditional("DEBUG")]
    [DebuggerStepThrough]
    public virtual void VerifyPropertyName(string propertyName)
    {
    // Verify that the property name matches a real,
    // public, instance property on this object.
    if (TypeDescriptor.GetProperties(this)[propertyName] == null)
    {
    string msg = "Invalid property name: " + propertyName;

    if (this.ThrowOnInvalidPropertyName)
    throw new Exception(msg);
    else
    Debug.Fail(msg);
    }
    }

    /// <summary>
    /// Returns whether an exception is thrown, or if a Debug.Fail() is used
    /// when an invalid property name is passed to the VerifyPropertyName method.
    /// The default value is false, but subclasses used by unit tests might
    /// override this property's getter to return true.
    /// </summary>
    protected virtual bool ThrowOnInvalidPropertyName { get; private set; }

    #endregion // Debugging Aides
    }

  34. #34
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post قسمت 4

    n addition to the INotifyPropertyChanged methods, there is also a debug method to validate the PropertyName. This is because the PropertyChange notification gets passed in as a String, and I have caught myself forgetting to change this string when I change the name of a Property.
    Note: The PropertyChanged notification exists to alert the View that a value has changed so it knows to update. I have seen suggestions to drop it from the Model and to expose the Model’s properties to the View from the ViewModel instead of the Model, however I find in most cases this complicates things and requires extra coding. Exposing the Model to the View via the ViewModel is much simpler, although either method is valid.
    Sample ViewModel
    I am doing the ViewModel next because I need it before I can create the View. This should contain everything the User would need to interact with the page. Right now it contains 4 properties: a ProductModel, a GetProduct command, a SaveProduct command, an a ProductId used for looking up a product.
    public class ProductViewModel : ObservableObject
    {
    #region Fields

    private int _productId;
    private ProductModel _currentProduct;
    private ICommand _getProductCommand;
    private ICommand _saveProductCommand;

    #endregion

    #region Public Properties/Commands

    public ProductModel CurrentProduct
    {
    get { return _currentProduct; }
    set
    {
    if (value != _currentProduct)
    {
    _currentProduct = value;
    OnPropertyChanged("CurrentProduct");
    }
    }
    }

    public ICommand SaveProductCommand
    {
    get
    {
    if (_saveProductCommand == null)
    {
    _saveProductCommand = new RelayCommand(
    param => SaveProduct(),
    param => (CurrentProduct != null)
    );
    }
    return _saveProductCommand;
    }
    }

    public ICommand GetProductCommand
    {
    get
    {
    if (_getProductCommand == null)
    {
    _getProductCommand = new RelayCommand(
    param => GetProduct(),
    param => ProductId > 0
    );
    }
    return _getProductCommand;
    }
    }

    public int ProductId
    {
    get { return _productId; }
    set
    {
    if (value != _productId)
    {
    _productId = value;
    OnPropertyChanged("ProductId");
    }
    }
    }

    #endregion

    #region Private Helpers

    private void GetProduct()
    {
    // You should get the product from the database
    // but for now we'll just return a new object
    ProductModel p = new ProductModel();
    p.ProductId = ProductId;
    p.ProductName = "Test Product";
    p.UnitPrice = 10.00;
    CurrentProduct = p;
    }

    private void SaveProduct()
    {
    // You would implement your Product save here
    }

    #endregion
    }

  35. #35
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post قسمت 5

    There is another new class here: the RelayCommand. This is essential for MVVM to work. It is a command that is meant to be executed by other classes to run code in this class by invoking delegates. Once again, I’d recommend checking out the MVVM Light Toolkit’s version of this command when you are more comfortable with MVVM, but I wanted to keep this simple so have included this code here.
    /// <summary>
    /// A command whose sole purpose is to relay its functionality to other
    /// objects by invoking delegates. The default return value for the
    /// CanExecute method is 'true'.
    /// </summary>
    public class RelayCommand : ICommand
    {
    #region Fields

    readonly Action<object> _execute;
    readonly Predicate<object> _canExecute;

    #endregion // Fields

    #region Constructors

    /// <summary>
    /// Creates a new command that can always execute.
    /// </summary>
    /// <param name="execute">The execution logic.</param>
    public RelayCommand(Action<object> execute)
    : this(execute, null)
    {
    }

    /// <summary>
    /// Creates a new command.
    /// </summary>
    /// <param name="execute">The execution logic.</param>
    /// <param name="canExecute">The execution status logic.</param>
    public RelayCommand(Action<object> execute, Predicate<object> canExecute)
    {
    if (execute == null)
    throw new ArgumentNullException("execute");

    _execute = execute;
    _canExecute = canExecute;
    }

    #endregion // Constructors

    #region ICommand Members

    [DebuggerStepThrough]
    public bool CanExecute(object parameters)
    {
    return _canExecute == null ? true : _canExecute(parameters);
    }

    public event EventHandler CanExecuteChanged
    {
    add { CommandManager.RequerySuggested += value; }
    remove { CommandManager.RequerySuggested -= value; }
    }

    public void Execute(object parameters)
    {
    _execute(parameters);
    }

    #endregion // ICommand Members
    }

  36. #36
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post قسمت 6

    Sample View
    And now the Views. These are DataTemplates which define how a class should be displayed to the User. There are many ways to add these templates to your application, but the simplest way is to just add them to the startup window’s Resources.
    <Window.Resources>
    <DataTemplate DataType="{x:Type local:ProductModel}">
    <Border BorderBrush="Black" BorderThickness="1" Padding="20">
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition />
    <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
    <RowDefinition />
    <RowDefinition />
    <RowDefinition />
    </Grid.RowDefinitions>

    <TextBlock Grid.Column="0" Grid.Row="0" Text="ID" VerticalAlignment="Center" />
    <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding ProductId}" />

    <TextBlock Grid.Column="0" Grid.Row="1" Text="Name" VerticalAlignment="Center" />
    <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding ProductName}" />

    <TextBlock Grid.Column="0" Grid.Row="2" Text="Unit Price" VerticalAlignment="Center" />
    <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding UnitPrice}" />

    </Grid>
    </Border>
    </DataTemplate>

    <DataTemplate DataType="{x:Type local:ProductViewModel}">
    <DockPanel Margin="20">
    <DockPanel DockPanel.Dock="Top">
    <TextBlock Margin="10,2" DockPanel.Dock="Left" Text="Enter Product Id" VerticalAlignment="Center" />

    <TextBox Margin="10,2" Width="50" VerticalAlignment="Center" Text="{Binding Path=ProductId, UpdateSourceTrigger=PropertyChanged}" />

    <Button Content="Save Product" DockPanel.Dock="Right" Margin="10,2" VerticalAlignment="Center"
    Command="{Binding Path=SaveProductCommand}" Width="100" />

    <Button Content="Get Product" DockPanel.Dock="Right" Margin="10,2" VerticalAlignment="Center"
    Command="{Binding Path=GetProductCommand}" IsDefault="True" Width="100" />
    </DockPanel>

    <ContentControl Margin="20,10" Content="{Binding Path=CurrentProduct}" />
    </DockPanel>
    </DataTemplate>
    </Window.Resources>

    The View defines two DataTemplates: one for the ProductModel, and one for the ProductViewModel. You’ll need to add a namespace reference to the Window definition pointing to your Views/ViewModels so you can define the DataTypes. Each DataTemplate only binds to properties belonging to the class it is made for.
    In the ViewModel template, there is a ContentControl that is bound to ProductViewModel.CurrentProduct. When this control tries to display the CurrentProduct, it will use the ProductModel DataTemplate.

  37. #37
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    Post قسمت 7

    Starting the Sample
    And finally, to start the application add the following on startup:
    MainWindow app = new MainWindow();
    ProductViewModel viewModel = new ProductViewModel();
    app.DataContext = viewModel;
    app.Show();

    This is found in the code behind the startup file – usually App.xaml.cs.
    This creates your Window (the one with the DataTemplates defined in Window.Resources), creates a ViewModel, and it sets the Window’s DataContext to the ViewModel.
    And there you have it. A basic look at MVVM.
    UPDATE
    Sample code can be found here.
    Notes
    There are many other ways to do the things shown here, but I wanted to give you a good starting point before you start diving into the confusing world of MVVM.
    The important thing to remember about using MVVM is your Forms, Pages, Buttons, TextBoxes, etc (the Views) are NOT your application. Your ViewModels are. The Views are merely a user-friendly way to interact with your ViewModels.
    So if you want to change pages, you should not be changing pages in the View, but instead you should be setting something like the AppViewModel.CurrentPage = YourPageViewModel. If you want to run a Save method, you don’t put that behind a button’s Click event, but rather bind the Button.Command to a ViewModel’s ICommand property.
    I started with Josh Smith’s article on MVVM, which was a good read but for a beginner like me, some of these concepts flew right over my head.
    I’ve never done a blog or tutorial before, but I noticed there is a lot of confusion about what MVVM is and how to use it. Since I struggled through the maze of material online to figure out what MVVM is and how its used, I thought I’d try and write a simpler explanation. I hope this clarifies things a bit and doesn’t make it worse

  38. #38
    کاربر تازه وارد آواتار sahebgharan
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    کرج
    پست
    61

    نقل قول: استفاده از الگوی M-V-VM

    لینک دانلود سورس کد: http://www.mediafire.com/?2a8gwjtq58hsj86
    Developer's Guide to Microsoft Prism: http://msdn.microsoft.com/en-us/library/gg406140.aspx
    MVVM Light Toolkit: http://mvvmlight.codeplex.com/
    Josh Smith’s article on MVVM: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

  39. #39

    نقل قول: استفاده از الگوی M-V-VM

    دوست عزیز، رغبت نیست که آموزشهای فارسی رو یاد بگیرن اونوقت...! برای آموزش انگلیسی توی سایت codeproject کلمه MVVM رو جستجو کنید تا مقالات تصویری از در و دیوار شروع به باریدن بکنه!

  40. #40
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: استفاده از الگوی M-V-VM

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

صفحه 1 از 2 12 آخرآخر

تاپیک های مشابه

  1. پاسخ: 25
    آخرین پست: سه شنبه 10 تیر 1393, 00:14 صبح
  2. حرفه ای: استفاده از الگوی سینگلتون در Entity Framework
    نوشته شده توسط wild_honey در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: چهارشنبه 15 شهریور 1391, 10:29 صبح
  3. پاسخ: 16
    آخرین پست: شنبه 11 مهر 1388, 12:09 عصر

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

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