PDA

View Full Version : سوال: آیا میتوان از wpf در پروژه های بزرگ استفاده کرد



amir3321
دوشنبه 07 آذر 1390, 11:20 صبح
با سلام خدمت اساتید محترم
می خواستم بدونم آیا می توان از wpf در یک پروژه بزرگ شامل چندین زیر پروژه استفاده کرد من چند وقتی شروع به یادگیری wpf کردم آیا مزیت wpf فقط در زیباتر شدن برنامه هاست یا در عملکرد و نحوه بهتر برنامه نویسی هم تاثیر بسزای دارد چون من باز هنگامی که می خوام در زمان اجرا بعضی کنترل ها را تغییر بدهم نیاز به استفاده از کدنویسی سی شارپ دارم دیگر اینکه یک مشکل بزرگ من وجود خطاهای زیاد در مرحله طراحی فرم است که بعضا در هنگام استفاده از component ها نیز بیشتر می شود که حتی مجبور به خذف و نصب دوباره ویژوال استودیو شدم و دیگر اینکه آیا این نوع برنامه نویسی نسبت به winform از منابع سیستم بیشتر استفاده می کند و باعث سنگین تر شدن برنامه و کندی در زمان اجرا می گردد خواهشمندم اساتید محترم در این مورد راهنمایی بفرمائید

Amir Oveisi
دوشنبه 07 آذر 1390, 13:14 عصر
می خواستم بدونم آیا می توان از wpf در یک پروژه بزرگ شامل چندین زیر پروژه استفاده کرد
بله! چرا كه نه؟ هر چيزي كه scale اش در دات نت بگنجه با WPF هم ميشه پيادش كرد.


آیا مزیت wpf فقط در زیباتر شدن برنامه هاست یا در عملکرد و نحوه بهتر برنامه نویسی هم تاثیر بسزای دارد؟
خير فقط زيبايي ظاهري نيست. برنامه هاي WPF زيبايي باطني هم دارند به شرطي كه با مفاهيم اوليه و پايه معماري برنامه هاي WPF به خوبي آشنا شده باشيد. مفاهيم جديدي مثل dependency object ها dependency property ها routed event ها content control ها و ... كه در كل موجب شدن WPF يك فريمورك بر روي بستر دات نت به حساب بياد بطوريكه به عنوان مثال كليه كنترل هاش جدا از كنترل هاي Win Form ها هست و بسيار قدرتمند تر و منعطف تر و در عين حال سبك تر و سريع تر از اونا.


هنگامی که می خوام در زمان اجرا بعضی کنترل ها را تغییر بدهم نیاز به استفاده از کدنویسی سی شارپ دارم دیگر اینکه یک مشکل بزرگ من وجود خطاهای زیاد در مرحله طراحی فرم است که بعضا در هنگام استفاده از component ها نیز بیشتر می شود که حتی مجبور به خذف و نصب دوباره ویژوال استودیو شدم
اين مساله دلايل زيادي ميتونه داشته باشه كه معمولا مهم ترين عاملش كمبود دانش در مورد روش درست حل مساله است و ممكنه هميشه و در هر پلتفرمي به وجود بياد و مختص WPF نيست.


آیا این نوع برنامه نویسی نسبت به winform از منابع سیستم بیشتر استفاده می کند و باعث سنگین تر شدن برنامه و کندی در زمان اجرا می گردد
دقت كنيد كه هر برنامه اي با هر تكنولوژي كه باشه و درست طراحي و ساخته نشده باشه مشكلاتي از قبيل مصرف بيهوده منابع سيستم و كندي در اجرا خواهد داشت. اما با فرض بر اين كه اين مورد رعايت شده باشه، WPF چون از سيستم رندرينگ direct x استفاده ميكنه در زمينه سرعت در رندر ظاهر برنامه مسلما از Win Form ها سريع تر خواهد بود و قابليت هاي بسيار زيادي در مقايسه با Win Form ها داره. از طرفي به دليل وجود سيستم Binding فوق العاده قدرتمند، در برنامه هايي كه مبتني بر داده (Data Driven) باشند كارايي بسيار بهتري نسبت به Win Form خواهد داشت.

alimomen54
چهارشنبه 28 دی 1390, 23:06 عصر
سلام
WPFبا وجود MVVM است که معنا پیدا می کند. قدرت واقعی آن در استفاده بیشتر و بهتر از مفهوم Binding است.

Amir Oveisi
پنج شنبه 29 دی 1390, 23:39 عصر
سلام
WPFبا وجود MVVM است که معنا پیدا می کند. قدرت واقعی آن در استفاده بیشتر و بهتر از مفهوم Binding است.

نه الزاما.

wantonboy13
یک شنبه 02 بهمن 1390, 03:54 صبح
سلام ، یه سوالی برام پیش اومده... من زیاد با wpf سر و کار نداشتم ، فقط در حدی که بدونم برا ایجاد قابلیت های گرافیکی بهتر پدید اومده... من دیدم خیلی ها میان مثلاً کار گرافیکی رو با نرم افزار blend انجام میدن (مثل expression web که کار html رو انجام میده و بعد میتونیم داخل vs بیاریم)..
میخوام بدونم این blend فقط برای اپلیکشین های ویندوزی هستش و به درد وب نمی خوره؟ فرقش با silverlight چیه ؟ و در کل میخوام بدونم اگه بخوایم در سطح وب از انیمیشن های گرافیکی استفاده کنیم - به راحتی کار با Blend - باید چیکار کنیم ؟
با تشکر...

Amir Oveisi
یک شنبه 02 بهمن 1390, 12:25 عصر
تو سوالتون همه چیز رو با هم قاطی کردید!
expression studio یک مجموعه نرم افزاری هست که شامل نرم افزارهایی مثل expression blend و expression web و expression designer هست.
expression blend برای ساخت برنامه های wpf و silverlight استفاده میشه که قابلیت ارتباط با vs رو هم داره ولی الزامی به استفاده از اون نیست و میشه به تنهایی با خود VS و یا خود expression blend‌ هم برنامه های wpf یا silverlight رو ایجاد کرد.
expression web یک IDE برای ساختن برنامه های تحت وب هست و یه سری امکاناتی بهتون میده که تو VS‌ مستقیما وجود نداره اما فقط برای طراحی UI استفاده میشه.
expression designer هم برای ساخت شکل های گرافیکی استفاده میشه که قابلیت استفاده شدن در expression blend‌ رو دارند و میتونه فایل های psd‌ رو هم بخونه و تبدیل کنه به path‌ که بشه تو expression blend ازش استفاده کرد.
با این توضیحات امیدورام مسایل براتون روشن شده باشه.
برای کارهای انیمیشن تو وب هم میتونید از Flash‌ یا Silverlight یا jscript یا html5 استفاده کنید.

wantonboy13
یک شنبه 02 بهمن 1390, 16:36 عصر
تو سوالتون همه چیز رو با هم قاطی کردید!
expression studio یک مجموعه نرم افزاری هست که شامل نرم افزارهایی مثل expression blend و expression web و expression designer هست.
expression blend برای ساخت برنامه های wpf و silverlight استفاده میشه که قابلیت ارتباط با vs رو هم داره ولی الزامی به استفاده از اون نیست و میشه به تنهایی با خود VS و یا خود expression blend‌ هم برنامه های wpf یا silverlight رو ایجاد کرد.
expression web یک IDE برای ساختن برنامه های تحت وب هست و یه سری امکاناتی بهتون میده که تو VS‌ مستقیما وجود نداره اما فقط برای طراحی UI استفاده میشه.
expression designer هم برای ساخت شکل های گرافیکی استفاده میشه که قابلیت استفاده شدن در expression blend‌ رو دارند و میتونه فایل های psd‌ رو هم بخونه و تبدیل کنه به path‌ که بشه تو expression blend ازش استفاده کرد.
با این توضیحات امیدورام مسایل براتون روشن شده باشه.
برای کارهای انیمیشن تو وب هم میتونید از Flash‌ یا Silverlight یا jscript یا html5 استفاده کنید.

اون مجموعه Expression رو که خدمتش ارادت داریم ! فقط یه چیزی میخواستم شبیه فلش منتها به جا اکشن اسکریپت بشه با c# کار کرد... jscript و html5 خیلی انعطاف پذیر مثه انیمیشن نیستند...فک کنم با این تفاسیر باید برم سراغ silverlight...البته از نرم افزارهای Expression بیشتر به خاطر intellisense ضعیف vs استفاده میکنم...

Amir Oveisi
یک شنبه 02 بهمن 1390, 23:13 عصر
البته از نرم افزارهای Expression بیشتر به خاطر intellisense ضعیف vs استفاده میکنم
تا جایی که من دیدم VS بهتر بوده تو این کار نسبت به بقیه.

straightfaceman
شنبه 20 مهر 1392, 07:54 صبح
خب ببین من مثلا الان دارم یه پروژه مینویسم که توش از انیمیشن های زیادی استفاده میشه.یعنی میشه گفت یه پروژه بیشتر گرافیکیه.خودم میخواستم mvvm بزنم اما دیدم واقعا کارم زیاد میشه.bind کردن همه ی location ها و چیزای دیگه یه عالمه property تو view model ایجاد میکنه.دیگه دیدم تو همون code behind کد بزنم راحت تره.حالا اگه دوستان نظری دارن خوشحال میشم کمک کنن

Amir Oveisi
شنبه 20 مهر 1392, 13:44 عصر
ببینید MVVM رو هر جا اصلا درست نیست استفاده کنید، هر ابزاری باید در جای خودش استفاده بشه.
معمولا تو کارهایی که نیاز دارید بعدا گسترشش بدید یا در طول زمان تغییراتی روش اعمال کنید و اینکه Data Driven باشه اون برنامه، انتخاب مناسب همون MVVM هست اما در کارهایی مثل کار شما به نظرم درست نیست از MVVM استفاده بشه. (البته باید اطلاع بیشتری از کارتون داشته باشم تا دقیق تر بگم)
در نهایت اینجوری میگم که یه پشه رو هم میشه با پشه کش کشت هم میشه با تانک کشت! اما هیچ عقل سلیمی نمیاد با تانک پشه بکشه!