ورود

View Full Version : سوال: برنامه #C ای بهتر است یا WPF؟



forodo
سه شنبه 11 شهریور 1393, 01:59 صبح
سلام
من 24 ساعت نمیشه که چند فیلم آموزشی درباره wpf نگاه کردم و می خواستم بدونم برنامه هایی که با سی شارپ نوشته شده اند بهتر است یا wpf؟
از هر لحاظ: مثلاً گرافیک که خوب اصلاً بحثی درش نیست که سی شارپ جلوی wpf لنگ می ندازه.
در مورد سرعت چطور؟
در مورد باز بودن دست در کدنویسی و کلاس بندی و ...
و ...
می خوام بدونم آیا یه برنامه سنگین اتوماسیون اداری که توش کریستال ریپورت هم داره و با بانک اس کیوال کار می کنه رو با wpf هم میشه نوشت که هیچ مشکلی نداشته باشه.
با تشکر

MMR_1234
سه شنبه 11 شهریور 1393, 05:38 صبح
ممکنه فیلمها رو اینجا بزاری تا ما هم بتونیم ازش استفاده کنیم

Mori Bone
سه شنبه 11 شهریور 1393, 08:29 صبح
سلام.
wpf هم سرعتش بیشتره و هم گرافیکش. کد نویسیش(C#) به نظر من خیلی فرق نداره. فقط تنها چیزی که باید یاد بگیری زمل(xaml) هست و قواعد طراحی درست یک برنامه(بهترین شکل استفاده از کنترل ها)

forodo
سه شنبه 11 شهریور 1393, 10:24 صبح
پس همه چیزش نسبت به برنامه هایی که فقط با #C نوشته می شه بهتره؟
توی ویندوز xp هم برنامه هاش اجرا می شه؟
هیچ محدودیتی توی اجرای برنامه هاش توی ویندوزهای مختلف وجود نداره؟

elec60
سه شنبه 11 شهریور 1393, 12:10 عصر
WPF كه زبان برنامه نويسي نيست كه با #C مقايسه ش كردي!! بايد با Winform مقايسه ش كني.
زبان سي شارپ تو WPF خيلي كم با Winform فرق داره، البته تمام قابليتهاشو داره و يسري چيز اضافه هم داره، مثلا DependencyProperty و RoutedEvent

Mori Bone
سه شنبه 11 شهریور 1393, 12:12 عصر
WPF كه زبان برنامه نويسي نيست كه با #C مقايسه ش كردي!! بايد با Winform مقايسه ش كني.
زبان سي شارپ تو WPF خيلي كم با Winform فرق داره، البته تمام قابليتهاشو داره و يسري چيز اضافه هم داره، مثلا DependencyProperty و RoutedEvent
خوب شد اینو گفتین من یادم رفت توی پستم یاد آوری کنم. ممنون

forodo
سه شنبه 11 شهریور 1393, 14:57 عصر
WPF كه زبان برنامه نويسي نيست كه با #C مقايسه ش كردي!! بايد با Winform مقايسه ش كني.
زبان سي شارپ تو WPF خيلي كم با Winform فرق داره، البته تمام قابليتهاشو داره و يسري چيز اضافه هم داره، مثلا DependencyProperty و RoutedEvent
بله حواسم نبود.
اصلاح می کنم.
توی ویندوز xp هم برنامه هاش اجرا می شه؟
هیچ محدودیتی توی اجرای برنامه های WPf Application توی ویندوزهای مختلف وجود نداره؟

Mori Bone
سه شنبه 11 شهریور 1393, 15:00 عصر
من خودم تست کردم به طور کامل روی xp اجرا شد

forodo
سه شنبه 11 شهریور 1393, 16:05 عصر
پس کلاً دیگه اگه قراره برنامه ای تحت ویندوز بنویسیم اون برنامه Wpf Application باشه چون هم ظاهرش که نگو که win Application نسبت بهش تعطیله و هم سرعتش بهتره و هم فکر کنم یه جا خوندم که دیگه CPU کامپیوتر رو درگیر نمی کنه که اینم خیلی خوبه.
پس اگه از الان من هر برنامه ای که می خوام بنویسم رو با WPF بنویسم که توی اون با بانک اطلاعاتی در ارتباط باشه و گزارش گیری توش داشته باشه، هیچ مشکلی که تا الان برای برنامه های Win App پیش نیومده برای اون هم پیش نخواهد اومد.
چون من دارم با همون زبان محبوبم #C کار میکنم ولی می تونم ظاهر خفنیییییییییییی هم به کنترلهام بدم، که چی می خوام!!!!!!!!!!!!!!!!!!!!
یعنی اگر با WPF باشه، پس فردا برنامه امو نگند که اگه با WPF نمی نوشتی فلان مشکل پیش نمی یومد.
لطفاً جواب درستی بدید چون واقعاً می خوام اگه جوابای سوالای بالا OK بود دیگه ای WIN APP برم به WPF.
اگر هم چیزه دیگه ای هست که بنده نگفتم لطفاً بفرمائید.

SabaSabouhi
یک شنبه 20 مهر 1393, 14:34 عصر
سلام
WPF کمی از WinForm کندتر به نظر می‌رسه، اما این مشکل کاملاً قابل چشم‌پوشی هست.
جدا بودن XAML و کد امتیاز بسیار خوبی هست به‌ویژه اگر تیم طراحی و گرافیست جداگانه وجود داشته باشد.
امکان Binding در WPF فوق‌العاده هست. کنترل‌های بسیار انعطاف‌پذیر، کارا و زیبا را می‌تونید به راحتی در WPF تولید کنید.
برای نوشتن WPF دانش فنی بیشتری نسبت به WinForm نیاز دارید، بخصوص اگه لازم باشه که کنترل هم بنویسید.
اما واقعاً با WinForm قابل مقایسه نیست، در واقع باید WinForm رو فراموش کرد.
با توجه به این که هر جایی که DotNetFramework 3.0 به بالا رو بتونید نصب کنید، WPF هم اجرا می‌شود.
فقط توجه داشته باشید که DotNet Framework 4.5 به بالا روی Windows XP نصب نخواهد شد.

صبا صبوحی

elec60
دوشنبه 21 مهر 1393, 00:04 صبح
سلام
WPF کمی از WinForm کندتر به نظر می‌رسه، اما این مشکل کاملاً قابل چشم‌پوشی هست.
جدا بودن XAML و کد امتیاز بسیار خوبی هست به‌ویژه اگر تیم طراحی و گرافیست جداگانه وجود داشته باشد.
امکان Binding در WPF فوق‌العاده هست. کنترل‌های بسیار انعطاف‌پذیر، کارا و زیبا را می‌تونید به راحتی در WPF تولید کنید.
برای نوشتن WPF دانش فنی بیشتری نسبت به WinForm نیاز دارید، بخصوص اگه لازم باشه که کنترل هم بنویسید.
اما واقعاً با WinForm قابل مقایسه نیست، در واقع باید WinForm رو فراموش کرد.
با توجه به این که هر جایی که DotNetFramework 3.0 به بالا رو بتونید نصب کنید، WPF هم اجرا می‌شود.
فقط توجه داشته باشید که DotNet Framework 4.5 به بالا روی Windows XP نصب نخواهد شد.

صبا صبوحی

با این همه صفحه وب مربوط به توسعه دهندگان WPF بیش از سه ساله آپدیت نشده و آینده WPF مشخص نیست!! این ویندوز ۸ مزخرف که اومد کلا باعث شد مایکروسافت مردد باشه که WPF رو توسعه بده یا نه! اما با اومدن ویندوز ۱۰ شاید WPF دوباره توسعه پیدا کنه. البته در هر صورت #C و XAML همواره توسعه پیدا خواهند کرد.

Mori Bone
دوشنبه 21 مهر 1393, 08:29 صبح
WPF کمی از WinForm کندتر به نظر می‌رسه، اما این مشکل کاملاً قابل چشم‌پوشی هست.
من کاملا با این حرفتون مخالفم. سرعت wpf به مراتب بیشتره از winform application

ppp1486
دوشنبه 21 مهر 1393, 09:13 صبح
دوست عزیز من هم WinForm هم Wpf کار کردم واقعیتش وقتی Wpf رو یاد گرفتم پشیمون شدم که چرا زودتر نرفتم دنبال یادگیری Wpf انصافا تو اکثر زمینه ها بهتر و برتر از WinForm هست

Boy_nn
دوشنبه 21 مهر 1393, 21:08 عصر
دوستان عزیز من سه ساله دارن wpf کار می کنم قبل از اونم winform کار کردم
در مورد wpf دو تا بحث همیشه وجود داره
1- مقایسه با winform : به نظرمن خیلی سر تر هست چه بخوای به برنامه کوچک بنویسی چه برنامه بزرگ
2- آینده : قطعا winform به آخر خط رسیده ولی wpf در ابتدای راه هست نمی گم که ماکروسافت 100% wpf رو به همین صورت ادامه میده ولی اگه هم بخواد تغییری بده xaml رو که مهمترین قسمت wpf هست حفظ می کنه
به نظر من winform مال گذشته هست

elec60
سه شنبه 22 مهر 1393, 09:01 صبح
اگه مدتی WPF کار کنين و علاوه بر گرافيک فوق العاده قدرتمندش درگير مفاهيم DependencyProperty و RoutedEvents بشين و با DataBinding قدرتمند WPF کار کنين دیگه مثل من Windows form رو رها میکنین و اصلا حالتون ازش بهم میخوره.

MMR_1234
چهارشنبه 23 مهر 1393, 05:49 صبح
خبری از فیلم های آموزشی نشد

elec60
چهارشنبه 23 مهر 1393, 22:16 عصر
ظاهرا مایکروسافت WPF رو رها نکرده:لبخندساده:

The .NET Framework vNext
We are releasing an early build of the .NET Framework vNext with Visual Studio CTP 3. This early release includes a relatively small number of changes beyond what we shipped in the .NET Framework 4.5.2 (http://blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx). Today’s release includes a handful of bug fixes, including many for WPF.

RIG000
پنج شنبه 24 مهر 1393, 13:55 عصر
من یه سوال دارم ؟ ایا نیاز هست که مثلا از telerik یا devexpress تو wpf استفاده شه؟ ایا اصلا شدنی هست تو این اینترفیس؟
ایا کافی هست همین حالت عادی و پیش فرض گرافیکیش برای زیبایی یک صفحه؟

RIG000
پنج شنبه 24 مهر 1393, 13:56 عصر
لینک های اموزشی ازش دارید بذارید؟

Mori Bone
پنج شنبه 24 مهر 1393, 14:06 عصر
ظاهرا مایکروسافت WPF رو رها نکرده:لبخندساده:

The .NET Framework vNext


We are releasing an early build of the .NET Framework vNext with Visual Studio CTP 3. This early release includes a relatively small number of changes beyond what we shipped in the .NET Framework 4.5.2 (http://blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx). Today’s release includes a handful of bug fixes, including many for WPF.


مگه کسی گفت رها شده؟:متعجب: ماکروسافت به علت طرف داری ار این تکنولوژی در آمریکا ، بیش ار پیش دنباله ارتقای این تکنولوژیه



خبری از فیلم های آموزشی نشد
فیلم های wpf از شرکته لیندا تو اینترنت ریخته ها



من یه سوال دارم ؟ ایا نیاز هست که مثلا از telerik یا devexpress تو wpf استفاده شه؟ ایا اصلا شدنی هست تو این اینترفیس؟
ایا کافی هست همین حالت عادی و پیش فرض گرافیکیش برای زیبایی یک صفحه؟

چه مرضیه از کامپوننت استفاده شه. اگه می خواستیم از این آتوآشغالو استفاده کنیم که نمیومدیم دنباله wpf که.
این کامپوننت ها برای کسی که یه پروژه wpf رو داره می سازه. حالا، حوصله ی ساخت یه دکمه رو نداره. نه اینکه بیاد تمام نرم افزارشو بر مبنای این کامپوننت ها پیاده سازی کنه.

RIG000
پنج شنبه 24 مهر 1393, 14:16 عصر
اولین بار هست که یه wpf رو اجرا کردم...
این که خودش یه فتو شاپه!!!!!!
قدرت گرافیکی بالایی باید داشته باشه.....

RIG000
پنج شنبه 24 مهر 1393, 14:22 عصر
ایا اکمانش هست در زمان اجرا مثلابا event اومد کد design رو تغییر داد . تا کنترل حالت دیگه بگیره . البته فکر کنم حتما میشه . گفتم یهویی نشه که خیلی ضایعست

Mori Bone
پنج شنبه 24 مهر 1393, 14:30 عصر
اولین بار هست که یه wpf رو اجرا کردم...
این که خودش یه فتو شاپه!!!!!!
قدرت گرافیکی بالایی باید داشته باشه.....

wpf مبتنی بر گرافیک هست. نسبت استفاده از کارت گرافیک به cpu به نظر من 70 به 20 هست.


ایا اکمانش هست در زمان اجرا مثلابا event اومد کد design رو تغییر داد . تا کنترل حالت دیگه بگیره . البته فکر کنم حتما میشه . گفتم یهویی نشه که خیلی ضایعست
اگه می خواین توی زمان اجرا کدهاتون رو عوض کنید که فکر کنم vs تمام فایل هارو قفل میکنه. فکر میکنید چرا برای هر کنترل مشخصه یا property در نظر گرفته اند؟ چون در زمان اجرا بشه خواص یه کنترل رو عوض کرد

birtemp
یک شنبه 27 مهر 1393, 18:33 عصر
مگه کسی گفت رها شده؟:متعجب: ماکروسافت به علت طرف داری ار این تکنولوژی در آمریکا ، بیش ار پیش دنباله ارتقای این تکنولوژیه



فیلم های wpf از شرکته لیندا تو اینترنت ریخته ها




چه مرضیه از کامپوننت استفاده شه. اگه می خواستیم از این آتوآشغالو استفاده کنیم که نمیومدیم دنباله wpf که.
این کامپوننت ها برای کسی که یه پروژه wpf رو داره می سازه. حالا، حوصله ی ساخت یه دکمه رو نداره. نه اینکه بیاد تمام نرم افزارشو بر مبنای این کامپوننت ها پیاده سازی کنه.

آی گفتی مرتضی. اگه قرار بود از کامپوننت های اینچنینی مزخرف استفاده کنیم و خودمون رو به اینا محدود کنیم که چرا میمومدیم طرف زمل. در واقع زمل اومده تا ما خودمون سازنده همه چیز برنام باشیم (بدون اتکا به کامپوننت). اگه تو زمل حرفه ای بشین خیلی راحت میتونین کنترل های پیشرفته تر با ظاهری فوق العاده درست کنین.
درضمن یه چیز هم در مورد استفاده از زمل تو پروژه ها بگم (از بهتر بودن یا نبودنش): استفاده از زمل تو یه پروژه ممکنه برنامه رو نسبت به وینفرم خیلی کم کند کنه ولی اگه به تکنیک های بهینه سازی زمل آشنا بشین میتونین سرعت برنامه رو و همچنین از لحاظ پردازشی و استفاده از حافظه خیلی بهینه کنین.
نظر بنده در مورد زمل : خیلی خیلی خیلی عالیه. شب و روزم زمله

elec60
دوشنبه 28 مهر 1393, 13:54 عصر
آی گفتی مرتضی. اگه قرار بود از کامپوننت های اینچنینی مزخرف استفاده کنیم و خودمون رو به اینا محدود کنیم که چرا میمومدیم طرف زمل. در واقع زمل اومده تا ما خودمون سازنده همه چیز برنام باشیم (بدون اتکا به کامپوننت). اگه تو زمل حرفه ای بشین خیلی راحت میتونین کنترل های پیشرفته تر با ظاهری فوق العاده درست کنین.
درضمن یه چیز هم در مورد استفاده از زمل تو پروژه ها بگم (از بهتر بودن یا نبودنش): استفاده از زمل تو یه پروژه ممکنه برنامه رو نسبت به وینفرم خیلی کم کند کنه ولی اگه به تکنیک های بهینه سازی زمل آشنا بشین میتونین سرعت برنامه رو و همچنین از لحاظ پردازشی و استفاده از حافظه خیلی بهینه کنین.
نظر بنده در مورد زمل : خیلی خیلی خیلی عالیه. شب و روزم زمله

آقا كتاب WPF 4.5 استاد بزرگ ADAM NATHAN رو داري؟
من WPF 4.0 اين مولف رو دارم اما 4.5 اش رو گير نياوردم!

birtemp
دوشنبه 28 مهر 1393, 21:15 عصر
آقا كتاب WPF 4.5 استاد بزرگ ADAM NATHAN رو داري؟
من WPF 4.0 اين مولف رو دارم اما 4.5 اش رو گير نياوردم!

من زبانم زیاد خوب نیست واسه همینم کتاب زیاد نیگا نمیکنم چه برسه برم دنبالش :D

alireza264
چهارشنبه 14 آبان 1393, 00:54 صبح
سلام بنظرم اساتید نکات اصلی و مهم رو گفتن و منم یه نکته اضافه می کنم
در wpf بخش Xaml که به رابط کاربر اختصاص داره در سمت کلاینت و بخش کد نویسی که به پردازش دادها اختصاص داره در سمت سرور انجام میشه به همین دلیل امنیت و سرعت اجرا در شبکه بسیار بالاتر از windowsform هستش و معنی دیگش اینه که میشه در wpf خصوصیات و مقدار هاو ... اشیا فرم رو در xaml پیاده سازی کرد . که این باعث میشه که نمایش انیمشین بدون فرا خوانی مد گرافیگ با زیبایی و سرعت بیشتری نسبت به windowsform اجرا بشه
البته در wpf برای برنامه نویسان windowsform این امکان وجود داره که ابزارهای Xaml رو با کد نویسی ایجاد کنند که یه کار زمانبر و نسبتا پیچیده میشه

alireza264
جمعه 16 آبان 1393, 02:39 صبح
پس کلاً دیگه اگه قراره برنامه ای تحت ویندوز بنویسیم اون برنامه Wpf Application باشه چون هم ظاهرش که نگو که win Application نسبت بهش تعطیله و هم سرعتش بهتره و هم فکر کنم یه جا خوندم که دیگه CPU کامپیوتر رو درگیر نمی کنه که اینم خیلی خوبه.
پس اگه از الان من هر برنامه ای که می خوام بنویسم رو با WPF بنویسم که توی اون با بانک اطلاعاتی در ارتباط باشه و گزارش گیری توش داشته باشه، هیچ مشکلی که تا الان برای برنامه های Win App پیش نیومده برای اون هم پیش نخواهد اومد.
چون من دارم با همون زبان محبوبم #C کار میکنم ولی می تونم ظاهر خفنیییییییییییی هم به کنترلهام بدم، که چی می خوام!!!!!!!!!!!!!!!!!!!!
یعنی اگر با WPF باشه، پس فردا برنامه امو نگند که اگه با WPF نمی نوشتی فلان مشکل پیش نمی یومد.
لطفاً جواب درستی بدید چون واقعاً می خوام اگه جوابای سوالای بالا OK بود دیگه ای WIN APP برم به WPF.
اگر هم چیزه دیگه ای هست که بنده نگفتم لطفاً بفرمائید.

sqlserver و crysrtal Report و Wpf همگی از محصولات مایکروسافت هستن و برای کار با دات نت ساخته شدن
در wpf کلیه امور رابط کاربر یعنی xaml در کارت گرافیگ انجام میشه و cpu بخش کد نویسی رو انجام میده
مشکلی که ممکنه بهش بربخوری استفاده از برنامه در ویندوز Xp هستش که در این صورت برنامه نباید 64 بیتی باشه و نت فریم 4 یا کمتر استفاده کنی

alireza264
جمعه 16 آبان 1393, 02:50 صبح
ایا اکمانش هست در زمان اجرا مثلابا event اومد کد design رو تغییر داد . تا کنترل حالت دیگه بگیره . البته فکر کنم حتما میشه . گفتم یهویی نشه که خیلی ضایعست

بله اما اگه منظورت تغییر خصوصیت ظاهری باشه به سادگی امکان پذیره برای این شما بایذ style های رو از نوع شی مورد نظر قبلا تعریف کرده باشین بعد در زمان اجرا هز وقت که خواستین style شی رو به دلخواه عوض کنین البته این تغریف رو باید xaml نوشت اما هم با کد نویسی و هم xaml میشه تغییر رو فر خوانی کرد
تعریف یه style برای button
<!-- BOTON -->
<Style x:Key="BlackButton" TargetType="{x:Type Button}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate x:Name="tmpltButton">
<Grid>
<Border x:Name="BaseRectangle"
Background="{StaticResource BaseColor}"
CornerRadius="10,0,10,0">
</Border>
<Border x:Name="GlassRectangle"
Background="{StaticResource GlassFX}"
CornerRadius="10,0,10,0">
</Border>
<Border x:Name="GlowRectangle"
Background="{StaticResource GlowFX}"
CornerRadius="10,0,10,0"
Opacity="0">
</Border>
<Border x:Name="ButtonBorder"
CornerRadius="10,0,10,0"
BorderBrush="Black"
Opacity="1"
BorderThickness="1">
</Border>
<ContentPresenter x:Name="ButtonContent"
Opacity=".7"
Content="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="center"
VerticalAlignment="center">
</ContentPresenter>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Button.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource GlowOut}"></BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Button.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource GlowIn}"></BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Button.LostFocus">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource GlowOut}"></BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Button.GotFocus">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource GlowIn}"></BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<Trigger Property="Button.IsPressed" Value="True">
<Setter Property="Background" TargetName="GlowRectangle" Value="{StaticResource GlowFXPressed}"></Setter>
<Setter Property="Opacity" TargetName="ButtonContent" Value="1"></Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" TargetName="ButtonContent" Value=".3"></Setter>
<Setter Property="Opacity" TargetName="ButtonBorder" Value=".5"></Setter>
<Setter Property="Background" TargetName="GlassRectangle" Value="{StaticResource GlassFXDisabled}"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

نحوه استفاده
[</"{Button Content="Add" Style="{StaticResource BlackButton>