PDA

View Full Version : آغاز یادگیری WPF در #C



cardano7
سه شنبه 04 خرداد 1389, 00:30 صبح
سلام

من #C نویس هستم. اما می خواهم WPF رو هم یاد بگیرم. نه برای اینکه اون رو جدا برای خودش استفاده کرد. بلکه برای اینکه از اون در #C بهره گرفت.
مشکل من اینه که خیلی ها که WPF را آموزش میدند اون را به عنوان یک برنامه ی مستقل به کار می برند. ببنید من نمی خوام اون کاری رو که در #C می تونم راحت انجام بدم رو برم دوباره توی WPF انجام بدم. فقط می خوام بتونم با اون کاری بکنم که در #C به امکاناتی قوی تر از گذشته مجهز شد.
به نظر شما چه چیزهایی را باید مطالعه کنم؟ اگر لینک Tutorial ی در این زمینه برای یادگیری WPF جهت استفاده در #C سراغ دارید و بهم معرفی کنید، ممنون میشم.
به نظر شما آیا یادگیری WPF با این نگاه ارزشی داره یا اصلا بی خیال WPF بشم؟


پیشاپیش ممنون

Amir Oveisi
سه شنبه 04 خرداد 1389, 01:25 صبح
با سلام
دوست عزیز همانطور که میدونید C#‎ یکی از زبان های برنامه نویسی برای ایجاد برنامه های تحت پلتفرم دات نت هست و بدون دات نت، صحبت از C#‎ چیزی جز چند تا keyword و syntax نخواهد بود.

بحث اصلی استفاده از دات نت فریمورک هست و همه زبان های تحت دات نت برای این بوجود اومدن که از امکانات دات نت استفاده کنن.
اما در مورد WPF باید عرض کنم که WPF یک تکنولوژی هست که در دات نت 3.5 به بعد به کتابخانه دات نت اضافه شده. از دات نت 3.5 به بعد (البته در دات نت 3 هم همینطور) ما دو نوغ متفاوت Application می تونیم داشته باشیم، Windows App و WPF App.
هر دوی این Application ها بر روی پلتفرم دات نت اجرا می شوند و از کتابخانه های دات نت استفاده می کنند. Win App که همون Application های قبلی هستند که در اون Form داشتیم و اینا ...
اما یک سری تفاوت هایی دارند که من اینجا همش رو نمیتونم توضیح بدم اما به یک موردش که لازمه اشاره می کنم. در WPF App کدهای لازم برای طراحی رابط کاربری با کدهای XAML (بخوانید Zamel) نوشته می شوند (که شبیه کدهای XML است) در حالیکه در Win App رابط کاربری با کدهای C#‎ یا VB (یا هر زبان تحت دات نت دیگر) نوشته می شود.
در WPF App برای کنترل برنامه، مدیریت رویداد ها و ... باید مانند Win App کد نویسی کرد که این کار را می توان با زبان های C#‎ یا VB (یا هر زبان تحت دات نت دیگر) انجام داد.

بنابراین این جملات شما بی معنی جلوه می کنند:


نه برای اینکه اون رو جدا برای خودش استفاده کرد. بلکه برای اینکه از اون در C#‎‎ بهره گرفت.
منظورتون از #C همون Win App هست؟


بنید من نمی خوام اون کاری رو که در C#‎‎ می تونم راحت انجام بدم رو برم دوباره توی WPF انجام بدم
منظورتون از #C همون Win App هست؟


فقط می خوام بتونم با اون کاری بکنم که در C#‎‎ به امکاناتی قوی تر از گذشته مجهز شد.
منظورتون از #C همون Win App هست؟


گر لینک Tutorial ی در این زمینه برای یادگیری WPF جهت استفاده در C#‎‎ سراغ دارید
منظورتون از #C همون Win App هست؟

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

موفق باشید

Cybersilent
سه شنبه 04 خرداد 1389, 08:14 صبح
به اين تاپيك هم يه سر بزنيد يه چيزاي جالبي مي بينيد
http://www.barnamenevis.org/forum/showthread.php?t=220351

cardano7
سه شنبه 04 خرداد 1389, 09:05 صبح
خوب مگه #C هم یک نوع برنامه ی تولید کننده ی Win App نیست؟
منظور من هم همون هست.

amir-yeketaz
سه شنبه 04 خرداد 1389, 10:16 صبح
در WPF App برای کنترل برنامه، مدیریت رویداد ها و ... باید مانند Win App کد نویسی کرد که این کار را می توان با زبان های C#‎‎ یا VB (یا هر زبان تحت دات نت دیگر) انجام داد.

من منظورتون رو درست متوجه نميشم ...
من اگه بخوام تو C# مبتي بر ويندوز يه فرم داشته باشم كه بتونم تو يه فرم بسازم با امكانات wpf بايد چيكار كنم ؟؟؟
فكر ميكنم اين سوال خيلي ها باشه ...
البته من هنوز چيز زيادي در مورد wpf نميدونم ولي فرم هاي گرافيكي كه باهاش ساخته شده رو ديدم و ميخوام كه تو كار با WinApp سي شارپ ازش استفاده كنم
مگه wpf برايه اينكار ساخته نشده يا كه wpf يه چيزيه مشتق شده از قسمت WinApp سي شارپ كه فكر نكنم اينجوري باشه ...
كلا بيشتر توضيح بدين :لبخند:

ممنون

M.YasPro
سه شنبه 04 خرداد 1389, 10:33 صبح
WPF بحث و گفتگو درباره Windows Presentation Foundation ، نسل بعدی واسط کاربری مایکروسافت
(http://barnamenevis.biz/forum/forumdisplay.php?f=142)

جواب سوالاتون اینجا هست

Amir Oveisi
سه شنبه 04 خرداد 1389, 11:52 صبح
من اگه بخوام تو C#‎ مبتي بر ويندوز يه فرم داشته باشم كه بتونم تو يه فرم بسازم با امكانات wpf بايد چيكار كنم ؟؟؟

سلام
دوست گرامی بنده منظور شما از C# مبتنی بر ویندوز را متوجه نمیشم.
C# یکی از زبان های تحت دات نت هست و به Win App یا WPF App هیچ ارتباطی نداره.


خوب مگه C#‎ هم یک نوع برنامه ی تولید کننده ی Win App نیست؟

جمله شما مثل این میمونه که بگید مگه با ترانزیستور نمیشه رادیو ساخت؟ پس من منظورم از ترانزیستور همون رادیو بوده!
دقت داشته باشید که C# یک زبان برنامه نویسی هست و یک زبان برنامه نویسی ذاتا یک نرم افزار نیست (یا همون برنامه از دید شما) بلکه فقط یک سری قواعد و قوانین کدنویسی هست. این IDE (یا محیط توسعه ) هست که نرم افزاریه برای برنامه نویسی با اون زبان. مثلا Visual Studio یک IDE برای زبان C# محسوب میشه. پس دقت داشته باشید که Visual Studio همان C# نیست، C# همان Win App نیست و C# برنامه ای برای تولید Win App یا WPF App نیست. بلکه Visual Studio یک IDE (یا محیط توسعه) است، C# فقط یک زبان برنامه نویسی است و این دات نت فریمورک است که می توان با آن Win App و WPF App ساخت.

خواهش می کنم در این زمینه بیشتر مطالعه نمایید.

موفق باشید

پ.ن
میشه از کنترل های ایجاد شده در WPF توی Win App هم استفاده کرد که در لینکی که دوستان قرار دارن فکر کنم در موردش بحث شده.

cardano7
سه شنبه 04 خرداد 1389, 11:55 صبح
WPF بحث و گفتگو درباره Windows Presentation Foundation ، نسل بعدی واسط کاربری مایکروسافت
(http://barnamenevis.biz/forum/forumdisplay.php?f=142)

جواب سوالاتون اینجا هست

آخه مشکل همین جاست.
تو پست اول هم همین رو گفتم که می خواهیم از دید یک #C نویس به WPF نگاه کنیم نه از دید یک WPF نویس!

شما فرض کنید می خواهم برای شروع یک Button طراحی کنم. یک Button ی که شکلش متوازی الاضلاع باشه. و می خوام اون را در یک برنامه ی #C به شکل winApp هم به کار ببرم.
از کجا باید شروع کنم؟ و آیا اصلا WPF برای انجام چنین کاری به درد من می خوره یا نه؟

در هیچ یک از Tutorial ها ندیدم که هدف اونا استفاده از WPF در میان یک WinApp باشه.

Afshin160
سه شنبه 04 خرداد 1389, 12:26 عصر
سلام ..
با تشكر از bermooda (http://www.barnamenevis.org/forum/member.php?u=17736)

دوست عزيز من از WPF چيز زيادي بلد نيستم و با توضيحات bermooda (http://www.barnamenevis.org/forum/member.php?u=17736) تقريبا" متوجه شدم . براي اينكه بيشتر متوجه بشي اول بايد WPF را بشناسي اون وقت سوالتو اصلاح مي كني .

حتما اين تاپيك را بخوان تا متوجه نوع سوالتون بشي http://www.barnamenevis.org/forum/showthread.php?t=102127&page=4

شايد منظور شما اين بوده آيا مي توان لينكي بين پروژه win app , WPF APP ايجاد كرد يا فرم يكي را در يكي ديگه فراخواني كرد .

cardano7
سه شنبه 04 خرداد 1389, 13:09 عصر
فکر کنم بحث به حاشیه کشیده شد. خوب من اگه در مورد WPF اطلاعات کافی داشته بودم که دیگه چنین سوالی مطرح نمی کرد.
این لینک معرفی شده فکر نکنم اون چیزی باشه که من می خواهم. من به دنبال WPF Tutorial نیستم. به دنبال این هستم که در C# Windows Application هام چه استفاده یی می تونم از WPF بکنم؟

بگذارید مسئله را بازتر کنم.
فرض کنید که من بخواهم همون کنترلی را که گفتم طراحی کنم.
حالا باید توی WPF چی بنویسم؟ اگه قرار باشه مثل #C کد بنویسم که دیگه دلیلی برای کار با WPF ندارم. WPF چه امکاناتی در این مورد به من میده؟

amir-yeketaz
سه شنبه 04 خرداد 1389, 13:14 عصر
جمله شما مثل این میمونه که بگید مگه با ترانزیستور نمیشه رادیو ساخت؟ پس من منظورم از ترانزیستور همون رادیو بوده!
دقت داشته باشید که C#‎‎‎ یک زبان برنامه نویسی هست و یک زبان برنامه نویسی ذاتا یک نرم افزار نیست (یا همون برنامه از دید شما) بلکه فقط یک سری قواعد و قوانین کدنویسی هست. این IDE (یا محیط توسعه ) هست که نرم افزاریه برای برنامه نویسی با اون زبان. مثلا Visual Studio یک IDE برای زبان C#‎‎‎ محسوب میشه. پس دقت داشته باشید که Visual Studio همان C#‎‎‎ نیست، C#‎‎‎ همان Win App نیست و C#‎‎‎ برنامه ای برای تولید Win App یا WPF App نیست. بلکه Visual Studio یک IDE (یا محیط توسعه) است، C#‎‎‎ فقط یک زبان برنامه نویسی است و این دات نت فریمورک است که می توان با آن Win App و WPF App ساخت.
ببخشيد ولي ايني كه ميگينو كاملا ميدونم ولي شايد منظورمو بد رسوندم !!!!!!!!!!!!
شايد مشكل من از اونجاست كه هنوز با wpf كار نكردم و فقط مي خواستم يه آشنايي فعلا داشته باشم تا بعد كه بخوام خودشو ياد بگيرم ...


پ.ن
میشه از کنترل های ایجاد شده در WPF توی Win App هم استفاده کرد که در لینکی که دوستان قرار دارن فکر کنم در موردش بحث شده.
من فقط اين تيكه رو ميخواستم بدونم .... بعد يه سوال : مگه اين كنترل هاي ايجاد شده تو wpf برايه اين كار ساخته نشدن كه بشه از اونا در برنامه نويسي استفاده كرد كه برنامه رو بشه خوشگل تر كرد! خوب حالا چرا ميگين "ميشه"؟
مگه كاربرد ديگه اي هم داره ...
بازم ممنون

homan1374
سه شنبه 04 خرداد 1389, 15:53 عصر
من فقط اين تيكه رو ميخواستم بدونم ....خوب حالا چرا ميگين "ميشه"؟
مگه كاربرد ديگه اي هم داره ...

بله میشه از کنترل های ساخته شده در Wpf در Win App هم استفاده کرد این کار توسط یه کنترل
به نام ElementHost امکان پذیره البته اضافه کردن کنترل ساخته شده در Wpf به toollbox شاید یکمی سخت باشه ولی از قسمت new item و انتخاب گزینه Wpf Usercontrol میتونید خودتون یه کنترل بسازید
و به کمک ElementHost از اون در برنامه Win app استفاده کنید



بعد يه سوال : مگه اين كنترل هاي ايجاد شده تو wpf برايه اين كار ساخته نشدن كه بشه از اونا در برنامه نويسي استفاده كرد كه برنامه رو بشه خوشگل تر كرد!


دقت داشته باشید که شما در Wpf میتونید با زبان C# برنامه نویسی کنید
فقط Wpf این اجازه رو به شما میده که Gui برنامه رو به طور دلخواه طراحی کنید
یعنی شما لازم نیست که کنترل رو تو Wpf بسازین وبعد تو Win app از اون استفاده کنید
کنترل ساخته شده تو Wpf همون ویژگی ها و رویداد های کنترل های Win App رو دارن
و میتونن همون جا استفاده بشن

amir-yeketaz
چهارشنبه 05 خرداد 1389, 12:02 عصر
دقت داشته باشید که شما در Wpf میتونید با زبان C#‎ برنامه نویسی کنید
فقط Wpf این اجازه رو به شما میده که Gui برنامه رو به طور دلخواه طراحی کنید
یعنی شما لازم نیست که کنترل رو تو Wpf بسازین وبعد تو Win app از اون استفاده کنید
کنترل ساخته شده تو Wpf همون ویژگی ها و رویداد های کنترل های Win App رو دارن
و میتونن همون جا استفاده بشن
واقعا ممنون ...
امروز خودم هم يه نگاهي بهش انداختم ولي تو قسمت toolbox اون بعضي toolbox ها رو نداره و بخاطره همين اين سوالو پرسيدم ...
اون چيزي كه من ديدم در نگاه اول به نظر مياد gui كار حالت xaml داره و بقيشم كدنويسي درون اونه ولي خوب يه سري تفاوتايي با WinApp داره ...

Amir Oveisi
چهارشنبه 23 تیر 1389, 20:48 عصر
من فقط اين تيكه رو ميخواستم بدونم .... بعد يه سوال : مگه اين كنترل هاي ايجاد شده تو wpf برايه اين كار ساخته نشدن كه بشه از اونا در برنامه نويسي استفاده كرد كه برنامه رو بشه خوشگل تر كرد! خوب حالا چرا ميگين "ميشه"؟
مگه كاربرد ديگه اي هم داره ...

نه به هیچ وجه هدف از ایجاد WPF Application ، استفاده از کنترل های خوشگل اون در Win Application نیست.
WPF علاوه بر اینکه امکان ایجاد GUI های بسیار قوی رو به برنامه نویس میده، قابلیت های بسیار عالی برای تولید برنامه های مبتنی بر داده (Data Driven) داره که به خاطر وجود Data Binding فوق العاده قدرتمند در WPF هست. علاوه بر اون WPF App کدهای تولید GUI رو از کد های Logic برنامه جدا کرده و این باعث میشه که یک پروژه توسط دو تیم بصورت موازی پیش بره که یک تیم گرافیست بر روی تولید GUI با کدهای XAML (بخوانید زمل) و یک تیم برنامه نویس بر روی تولید منطق برنامه با کدهای #C یا VB .NET و ... کار می کنند و در آخر با منطبق کردن کار این دو گروه برنامه تولید میشه.
در ضمن اگر در این کار از الگوی MVVM استفاده بشه مزیت های بسیار زیاد دیگری هم خواهد داشت که اینجا مکان مناسبی برای بحث در این مورد نیست.

پس فراموش نکنید که WPF App کاملا مستقل از Win App است و کلا نباید با دید Win App در موردش فکر کنید چون که تفاوت های بنیادی زیادی دارن.
قبل از مطالعه کافی در مورد WPF فکر نکنم به نتیجه جالبی از این بحث برسیم.

موفق باشید