PDA

View Full Version : سوال: پروژه های بزرگ و سنگین با سی شارپ یا WPF ؟



ppp1486
جمعه 18 بهمن 1392, 16:00 عصر
درود بر دوستان عزیز خسته نباشید
یه سوال داشتم از شما دوستان یه پروژه ای بزرگی و سنگین (سنگین از نظر کدنویسی و تعداد فرم ها و از نظر دیتابیس )گرفتیم چند نفر هستیم بهتره پروژه رو با WPF نوشته بنویسیم یا با windows form ؟؟؟؟
لطفا راهنمایی جامع و کاملی بفرمایید
ممنونم

مهران موسوی
جمعه 18 بهمن 1392, 16:40 عصر
استفاده از WPF مزایایی از جلمه بهره مندی از قدرت فریم ورک هایی همچون prism و ... رو به همراه داره .

همچنین میتونید از الگوی MVVM به بهترین شکل بهره مند بشید.

در نهایت اگر با WPF کار کنید و از Design Pattern های موجود استفاده لازم رو بببرید پروژه ی قابل انعاطف و توسعه پذیری رو میتونید جمع کنید و این هم از باب نگهداری به نفع شماست هم میتونه تجربه ای قوی در زمینه یک پروژه توسعه پذیر و Unit Testable برای شما باشه

موفق باشید :چشمک:

ppp1486
جمعه 18 بهمن 1392, 19:23 عصر
خیلی ممنونم از نظرتون مهران جان
دوستان نظر دیگه ای ندارن؟؟؟ می خوام جمع بندی از نظر دوستان داشته باشم

Mani_rf
جمعه 18 بهمن 1392, 20:12 عصر
البته اگر تو استفاده از WPF مهارت نداری برای انجام پروژه بزرگ و تحویل به مشتری سراغ اون نرو چون خیلی با Windows Application فرق داره و خیلی جاها میبینه که یک کار کوچیکی که تو Windows Application با عوض کرن یک خاصیت انجام میدادی الان کلا به این راحتی امکان پذیر نیست و باید ساعت ها وقت بگذاری تا براش راه حل پیدا کنی.

ppp1486
جمعه 18 بهمن 1392, 20:20 عصر
ممنونم
ولی تا اونجایی که من می دونم فک کنم تفاوت WPF و windows application و تو تگ های Xaml هست بقیه اش که مثه سی شارپه یا من دارم اشتباه می کنم ؟؟؟؟

mthreat.info
جمعه 18 بهمن 1392, 20:26 عصر
البته میشه محاسبات رو تو WinForm انجام داد و تو wpf اونو نشون داد فقط باید برای هر چیزی که میخواهید نشون داده باشه نیاز به یک متغییر public دارید که محاسبات winform رو به اون متغییر ها پاس بدید ، تو wpf بعضی از آیتم ها فرق میکنه و بعضی ها هم کلا یه کار دیگه انجام میدن

angoori
جمعه 18 بهمن 1392, 20:47 عصر
wpf کار کردن باهاش یکم سخته.یعنی ریزه کاری خیلی زیاد داره.اگه پروژتون کارای گرافیکی و محاسبات گرافیکی داره 100 درصد از wpf استفاده کنین وگرنه بهتر از همون win form استفاده کنین.
تو wpf ممکنه برای یه کار ساده خیلی درگیر بشین.اگه کارتون گرافیکی نیست wpf رو بزارین کنار.

ppp1486
جمعه 18 بهمن 1392, 20:54 عصر
من شنیدم سرعت WPF از Winform بالاتره درسته یا شایعه هست؟؟؟ اگه درسته از چه نظر بالاتره؟؟؟

angoori
جمعه 18 بهمن 1392, 21:12 عصر
برای کارهای گرافیکی.چون از directx استفاده میکنه.

mthreat.info
جمعه 18 بهمن 1392, 22:38 عصر
برای کارهای گرافیکی.چون از directx استفاده میکنه.
و از gpu به جای cpu استفاده میکنه

Mani_rf
شنبه 19 بهمن 1392, 09:59 صبح
ممنونم
ولی تا اونجایی که من می دونم فک کنم تفاوت WPF و windows application و تو تگ های Xaml هست بقیه اش که مثه سی شارپه یا من دارم اشتباه می کنم ؟؟؟؟

نه اینطوری نیست، خیلی چیزاش تفاوت داره. یک نمونه ساده این که شما توی ویندوز فرم میتونید یک BaseForm درست کنید و همه فرم هاتون از اون ارث ببرن و حتی کنترل های روی اون هم شکل Base بشن اما تو WPF چنین چیزی نیست، از فرم نمیشه ارث بری کرد، فقط میتونید از کلاسی ارث بری کنید که اون کلاس از Windows ارث برده. این یعنی سورس ارثبری شما نمی تونه Xaml داشته باشه.

Boy_nn
شنبه 19 بهمن 1392, 13:57 عصر
wpf کار کردن باهاش یکم سخته.یعنی ریزه کاری خیلی زیاد داره.اگه پروژتون کارای گرافیکی و محاسبات گرافیکی داره 100 درصد از wpf استفاده کنین وگرنه بهتر از همون win form استفاده کنین.
تو wpf ممکنه برای یه کار ساده خیلی درگیر بشین.اگه کارتون گرافیکی نیست wpf رو بزارین کنار.

اولا" که Wpf فقط برای تازه کارا سخته ولی اگه راه بیفتی متوجه میشی خیلی از winFrom راحتتر به نظر من حتی اگه کار گرافیکی هم نداشته باشید بهتره که از Wpf استفاده کنید



البته میشه محاسبات رو تو WinForm انجام داد و تو wpf اونو نشون داد فقط باید برای هر چیزی که میخواهید نشون داده باشه نیاز به یک متغییر public دارید که محاسبات winform رو به اون متغییر ها پاس بدید ، تو wpf بعضی از آیتم ها فرق میکنه و بعضی ها هم کلا یه کار دیگه انجام میدن

من WinFrom کار کردم محاسبات توی کلاس ها انجام میشه نه با کنترلهای فرم های Winfrom که از این نظر فرقی با Wpf نداره پس لزومی برای اینکار وجود نداره




ممنونم
ولی تا اونجایی که من می دونم فک کنم تفاوت WPF و windows application و تو تگ های Xaml هست بقیه اش که مثه سی شارپه یا من دارم اشتباه می کنم ؟؟؟؟
بله دقیقا مثل هم می مونن غیر از بحث گرافیک و کنترل ها که اصلا" با هم قابل مقایسه نیستند






البته اگر تو استفاده از WPF مهارت نداری برای انجام پروژه بزرگ و تحویل به مشتری سراغ اون نرو چون خیلی با Windows Application فرق داره و خیلی جاها میبینه که یک کار کوچیکی که تو Windows Application با عوض کرن یک خاصیت انجام میدادی الان کلا به این راحتی امکان پذیر نیست و باید ساعت ها وقت بگذاری تا براش راه حل پیدا کنی.

خوب طبیعی هست که کسی که با wpf و یا هر پلتفرم آشنایی نداشته باشه مدتی طول می کشه تا آشنا بشه ولی مطمئن باشید وقتی آشنا بشید سرعت کارتون خیلی از WinFrom بهتر میشه






نه اینطوری نیست، خیلی چیزاش تفاوت داره. یک نمونه ساده این که شما توی ویندوز فرم میتونید یک BaseForm درست کنید و همه فرم هاتون از اون ارث ببرن و حتی کنترل های روی اون هم شکل Base بشن اما تو WPF چنین چیزی نیست، از فرم نمیشه ارث بری کرد، فقط میتونید از کلاسی ارث بری کنید که اون کلاس از Windows ارث برده. این یعنی سورس ارثبری شما نمی تونه Xaml داشته باشه.
ارث بری در wfp خیلی بهتر از WinFrom انجام میشه و بحث Theme در همه کنترل های خیلی بهتر و روون تر انجام میشه و جالیبه قضیه اینجاست که هیچ ارتباطی با کد نویسی نداره(تا کار نکنید متوجه نمیشی چی میگم)

Boy_nn
شنبه 19 بهمن 1392, 14:04 عصر
غیر از بحثهای بالا چند نکته دیگه هم هست
1- عمر WinFrom تقریبا" تموم شده و به داس پیوسته
2-قدرت کنترل ها توی Wpf خیلی زیاده و هر کنترلی رو که بخواهید می تونید طراحی کنید -- کنترل های Wpf شاید در نگاه اول خیلی ساده به نظر برسن ولی هر توع طراحی و تغییر بخوای به راحتی می تونی اعمال کنی و کنترل های مورد نیازتو بسازی و احتیاجی به استفاده از کامپوننت نداره
3-بحث ارث بری کنترلها توی Wpf خیلی زیاده و کلا Wpf روی تم سازی خیلی قوی هست

Mani_rf
شنبه 19 بهمن 1392, 17:29 عصر
دوست عزیز
این حرفت رو قبول دارم که " Wpf فقط برای تازه کارا سخته" و "طبیعی هست که کسی که با wpf و یا هر پلتفرم آشنایی نداشته باشه مدتی طول می کشه تا آشنا بشه"
ولی


نقل قول نوشته شده توسط ppp1486 مشاهده تاپیک
ممنونم
ولی تا اونجایی که من می دونم فک کنم تفاوت WPF و windows application و تو تگ های Xaml هست بقیه اش که مثه سی شارپه یا من دارم اشتباه می کنم ؟؟؟؟

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


نه اینطوری نیست، یکسری مفاهیم هم عوض شده، منظورم این نیست که کاری رو میشه تو Win Form کرد که تو WPF نمیشه، میگم که نحوه انجام دادن بعضی کار ها به شکلی تغییر کرده که باید برای پیدا کردن روش انجام ساعت ها وقت بگذاری.
چندتا مثال ساده:

کنترل Timer : تو WPF حذف شده و باید با یک سری روش ها پیاده سازیش کنی
Application.DoEvents : تو ویندوز فرم به راحتی کنترل فرم رو به ویندوز برمیگردوند تا مسیج هایی توی صف رو پردازش کنه و فرم تو حلقه هنگ نکنه ولی تو WPF؟
تغییر در کنترل های فرم در Thread : در حالت عادی امکان پذیر نیست چون 2تا ترد متفاوت هستند و به هم دسترسی ندارن، تو ویندوز فرم یک پروپرتی رو تغییر میدید و همه چیز درست میشه، اما تو WPF؟
و.... که خودت بهتر میدونی و نیاز به گفتن نیست.

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



ارث بری در wfp خیلی بهتر از WinFrom انجام میشه و بحث Theme در همه کنترل های خیلی بهتر و روون تر انجام میشه و جالیبه قضیه اینجاست که هیچ ارتباطی با کد نویسی نداره(تا کار نکنید متوجه نمیشی چی میگم)

3-بحث ارث بری کنترلها توی Wpf خیلی زیاده و کلا Wpf روی تم سازی خیلی قوی هست


مفهموم ارث بری به WPF ارتباطی نداره که بهتر یا بدتر از Windows App باشه، مربوط میشه به برنامه نویسی شی گرا که لایه UI هم از اون پشتیبانی میکنه.
بحث Theme هم به ارثبری ارتباطی نداره برمیگرده به Resource ها که توی WPF واقعا قویتر شده و این که توی ویندوز فرم چیزی به اسم تم و استایل وجود نداشت (البته به صورت پیشفرض) که تو WPF به وجود اومده + اینکه منظور من فقط مثال زدن بود وگرنه شما فرض کن بخای همه فرم های شما از یک فرم Base ارث ببرن که اون فرم Base شامل یک CollectionViewSource یکسان باشه که بشه توی فریم ورک اختصاصی خودت یک سری کار ها باهاش انجام بدی، وقتی تو ارثبری از فرم Xaml نداری حداقل به این راحتی که من گفتم نمیتونی این کار رو بکنی که البته توی ویندوز فرم میتونستی.

همه اینها به این معنی نیست که Win Form بهتر یا راحت تر از WPF باشه، به این معنیه که WPF برای کسایی که تازه میخوان باهاش شروع کنن به راحتی کار کردن با ویندوز فرم نیست.
مطمعنا WPF جالب تر، رون تر و جذاب تر از Win Form هست و دست طراح رو بی نهایت باز تر کرده .

مسله مهم اینه که سوال اصلی دوستمون این بود که


پروژه ای بزرگی و سنگین (سنگین از نظر کدنویسی و تعداد فرم ها و از نظر دیتابیس )گرفتیم چند نفر هستیم بهتره پروژه رو با WPF نوشته بنویسیم یا با windows form ؟؟؟؟

ما هم جواب دادیم اگر به WPF تسلط نداری سراغ اون نرو که به مشکل میخوری. نه گفتیم بد تره و نه بهتر.

درنهایت هم نظرات مختلف رو خوندی، حالا تصمیم به خودته...
موفق باشی

ppp1486
شنبه 19 بهمن 1392, 18:23 عصر
یه سوال از دوستان داشتم حالا اشکالی داره برم سراغ WPF در کنار پروژه یاد بگیرم ؟؟؟ چون من شنیدم Win form داره می پیونده به خاطره ها چون وقت برای پروژه به اندازه کافی دارم نظر دوستان چیه؟؟؟

Mani_rf
شنبه 19 بهمن 1392, 21:01 عصر
یه سوال از دوستان داشتم حالا اشکالی داره برم سراغ WPF در کنار پروژه یاد بگیرم ؟؟؟ چون من شنیدم Win form داره می پیونده به خاطره ها چون وقت برای پروژه به اندازه کافی دارم نظر دوستان چیه؟؟؟

پیوستن ویندوز فرم به تاریخ فقط یک توهم متصبانه است. من به شما اطمینان میدم که حداقل تا 10 سال آینده شما با ویندوز فرم برخورد خواهی داشت. همونطور که با Consol application ها هنوز مواجه هستی،
ویندوز XP سال 2002 به بازار اومد و مایکروسافت تا سال 2012 رسما ازش پشتیبانی کرد، یعنی 10 سال.
ویندوز 7 و 8 هم هنوز دارن بر پایه ویندوز اپلیکشن ها کار میکنن، فقط ویندوز 8 داره خودشو نم نم سوق میده به سمت App های به شکل جدید.
این رو در نظر بگیرد که الان چند درصد از برناهم ها دارن از Win32 استفاده میکنن!
این رو در نظر بگیرید که WPF یعنی برنامه نویسی به یکی از دو زبان VB.Net یا #C ، تو شرایطی که زبان های دیگه مثل جاوا، دلفی، ++C و... دارن برای ویندوز برنامه تولید میکنن
این رو در نظر بگیرید که چند درصد از برنامه های برزگ مثل تمام محصولات Adobe دارن بدون استفاده از WPF نوشته میشن و اگر بخوان هیچین تغییری بدن چه هزینه ای براشون داره
این رو درنظر بگیرید که اگر بخواید کد Native بنویسید WPF کلا کارایی نداره
و...
نتیجه:
WPF برای .Net کار هایی که میخوان برای ویندوز XP SP2 به بالا برنامه بنویسن و از عوامل گرافیکی اون استفاده کنن تکنولوژی خوبیه ولی مایکروسافت هرگز نمیتونه همه رو مجبور کنه که بیان و با WPF کار کنن. حداقل به این زودی نمیتونه

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

ppp1486
یک شنبه 20 بهمن 1392, 13:50 عصر
ممنون از همه دوستان که منو یاری کردن
اگر امکانش هست یه منبع کامل و جامعی برای WPF معرفی کنید حدالامکان اگه زبان اصلی باشه خیلی خوبه ، ولی فارسی هم باشه کامل باشه مشکلی نیست ممنونم

سوداگر
یک شنبه 20 بهمن 1392, 17:03 عصر
http://www.wpftutorial.net
البته نویسنده سایت کتابهای wpf unleashed و wpf control development رو برای یادگیری سفارش کرده بود.

Mani_rf
یک شنبه 20 بهمن 1392, 17:09 عصر
این کتاب هم خیلی خوبه.

http://it-ebooks.info/images/ebooks/6/pro_wpf_4.5_in_c_4th_edition.jpg (http://it-ebooks.info/book/1551/)

http://it-ebooks.info/images/ebooks/6/pro_wpf_4.5_in_vb.jpg (http://it-ebooks.info/book/1552/)