بحث و گفتگو در مورد تاپیک آموزش WPF
با سلام
با هماهنگی قبلی که با مدیر بخش به عمل آمده ، این تاپیک به منظور بحث و گفتگو و بیان اشکالات و ایرادات ، تاپیک مربوط به آموزش WPF ایجاد شده است. دوستانی که در مورد مطالب تاپیک مذکور، سوال دارند، و ... را در این تاپیک مطرح کنند.
نکته مهم : طبیعی است که فعالیت در این تاپیک نیز بایستی تحت قوانین سایت باشد و عنوان تاپیک باعث به انحراف کشیده شدن تاپیک نشود
با تشکر
مهدی کیانی
1 ضمیمه
قسمت اول آموزش به فرمت HTML
با سلام خدمت همگی .
من به صورت offline داشتم مقاله آقای کیانی رو می خوندم که تصمیم گرفتم برای خودم اون رو به صورت Html در بیارم ، تا هر وقت لازم بود دوباره یه مروری کنم. بعد تصمیم گرفتم اون رو برای شما هم بزارم .
حالا هم قسمت اول آموزش WPF رو با اجازه آقای کیانی به صورت Html براتون می زارم.
ببینید چطور شده ، نظرتون رو بگید تا اگر خوب هست ادامه بدم.
باز هم از آقای کیانی به خاطر مقاله خوبشون ممنونم .
یا علی
نقل قول: آموزش WPF (مقدماتی تا پیشرفته)
جالب بود که یکی پیدا شد در مورد WPF بنویسه این فقدان تو فاروم های فارسی واقعا" احساس میشد ضمن تشکر از شما و مطلب مفیدتون متاسفانه وقت نکردم کامل مطالب رو بخونم ولی همونهایی که فرمودید احساس میکنم که یه جاهایی نقص داره امیدوارم اصلاح بشه (امیدوارم از جسارت من برداشت بد نکنید!)
چند تا از مصالبی که احساس کردم ناقص هست
1/ بحث Attached Proeprty که این وابسته است به نوع داده جدیدی به اسم DependencyObject که برخلاف کلاسهای قبلی در دات نت تمام کلاس ها ار DependencyObject ارث بری دارن و بحث دیگری که بوسط میاد DependencyProperty هست که واقعا" اگه بری تو بهرش خیلی جالب و برای خودش دنیاییه :)) (در WWF هم وجود داره) اینکه چی و به چه درد میخوره جاش اینجا نیست
2/کنترلها در WPF ما چندیدن کنترل داریم با انواع مختلف که اینهم باز بحث بزرگی هست
3/ اضافه کردن NameSpace ها به XAML چیزی که شما فرمودید درست است ولی xmlns های اصلی xaml رو ببینید شاید بخواید شما هم همچین xmlns داشته باشید با چیزی که شما فرمودید امکان پذیر نیست ولی میتونید با اضافه کردن Attribute به کلاستون این امکان رو فراهم کنی
[assembly: XmlnsDefinition("http://xaparoxmlns.WinFxDeveloper.com/Components/iRibbon", "ZaparoSys.Control.Primitives.iRibbonBase")]
4/بحث Container ها هم ناقص بود اگه مورد 2 که ذکر شد رو بیان کنید این بحث هم خود بخود حل میشه
و چند تا مورد دیگه که اگه رسیدگی بشه خیلی خوب میشه متشکر
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
نقل قول:
نوشته شده توسط
r.kiani
سلام
ممنون
WPF خودش بر اساس Direct بنا شده.. در واقع معنی درست ترش اینه که در پایین ترین سطح توسط یک سری API همه چیز تحویل Direct3D میشه.. پست شماره 9 را در تاپیک آموزش نگاه کنید.. شکل معماری WPF ...
ولی چون این دسترسی به DIrect و استفاده از ان مستقیم نیست وبه صورت Manage شده هست، طبیعتا سرعتش از زمانی که شما مستقیما از اون استفاده کنید یکیم کمتره.. البته این فقط در برنامه هایی که نیاز به رندر realTime دارن.. مثل بازی های 3 بعدی پر حجم و .. اون جا باید از خود Direct به صورت مستقیم استفاده کرد.
ولی در بقیه موارد چیزی از اون کم نداره..
و ایضا هیچ نیازی به یادگیری Direct نیست.. چون شما با Direct در WPF کار نمی کنید. بلکه شما با WPF کار می کنید و این WPF هیت که نیازهای شما را به موتور Direct میفرسته..
ایجاد اشکال، افکت های مختلف دو بعدی و سه بعدی، انیمیشن و .. همه چیز برای شما به صورت کد ها و کلاس ها آماده نوشته شده و فقط شما باید نحوه استفاده از ان ها را یاد بگیرید..
موفق باشید
Adam Nathan تو کتابش در این مورد توضیح جالبی داده جتما" مطالعه کنید
نقل قول: آموزش WPF (مقدماتی تا پیشرفته)
نقل قول:
نوشته شده توسط
WinFx Developer
جالب بود که یکی پیدا شد در مورد WPF بنویسه این فقدان تو فاروم های فارسی واقعا" احساس میشد ضمن تشکر از شما و مطلب مفیدتون متاسفانه وقت نکردم کامل مطالب رو بخونم ولی همونهایی که فرمودید احساس میکنم که یه جاهایی نقص داره امیدوارم اصلاح بشه (امیدوارم از جسارت من برداشت بد نکنید!)
چند تا از مصالبی که احساس کردم ناقص هست
1/ بحث Attached Proeprty که این وابسته است به نوع داده جدیدی به اسم DependencyObject که برخلاف کلاسهای قبلی در دات نت تمام کلاس ها ار DependencyObject ارث بری دارن و بحث دیگری که بوسط میاد DependencyProperty هست که واقعا" اگه بری تو بهرش خیلی جالب و برای خودش دنیاییه :)) (در WWF هم وجود داره) اینکه چی و به چه درد میخوره جاش اینجا نیست
2/کنترلها در WPF ما چندیدن کنترل داریم با انواع مختلف که اینهم باز بحث بزرگی هست
3/ اضافه کردن NameSpace ها به XAML چیزی که شما فرمودید درست است ولی xmlns های اصلی xaml رو ببینید شاید بخواید شما هم همچین xmlns داشته باشید با چیزی که شما فرمودید امکان پذیر نیست ولی میتونید با اضافه کردن Attribute به کلاستون این امکان رو فراهم کنی
[assembly: XmlnsDefinition("http://xaparoxmlns.WinFxDeveloper.com/Components/iRibbon", "ZaparoSys.Control.Primitives.iRibbonBase")]
4/بحث Container ها هم ناقص بود اگه مورد 2 که ذکر شد رو بیان کنید این بحث هم خود بخود حل میشه
و چند تا مورد دیگه که اگه رسیدگی بشه خیلی خوب میشه متشکر
سلام دوست عزیز
ورودتون را به سایت تبریک می گم..
قبل از هر چیز، حتما یک مرتبه قوانین سایت را مطالعه کنید و نیز قوانینی که برای برخی از تاپیک ها، ( مانند WPF) و بسیاری تاپیک های دیگر که با همانگی مدیران بخش مربوطه، اتخاذ می گردد و غالبا در اولین پست تاپیک قرار می گیرد، را نیز سعی کنید رعایت نمایید
پست شما نیز به همین دلیل از خود تاپیک WPF به این قسمت انتقال یافته است
و اما در مورد مباحثی که مطرح کرده اید:
مسلما اینجا یک فروم می باشد و علاوه بر این تاپیک های آموزشی که بر روی نت قرار می گیرند، نمی توانند مانند یک کلاس درس باشند که همه مطالب گفته شود. غالبا در این گونه آموزش ها، خلاصه مطالب گفته می شود، و بقیه زاه به عهده خود خواننده می باشد.
دلیلش هم این هست، جمع آوری مطالب، ترجمه آنها، دسته بندی آنها، نوشتند مثال های تست شده، و موارد دیگر همگی نیاز به وقت دارند، و من و امسال من هم بابت این کگار پولی دریافت نمی کنیم که بخواهیم همه وقتمان را بر روی این موضوع صرف کنیم. پس در حد امکان و وقت، مطالب قرار داده می شوند.
مطالبی که بعضا هنوز شما در مباحث نمی بینید، به این دلیل است که هنوز وقت بیان آن ها فرا نرسیده است. اگر چه، شما همه پست ها را می خواندید، متوجه این موضوع می شدید که مطالبی از جمله DependencyProperty ها، Routed Event ها و بسیاری مطالب دیگر، نیز جزء آموزش قرار خواهند گرفت. البته در زمان خود.
در کل اگر شما پست اول تاپیک را با دقت میخواندید، جواب خیلی از این مطالب را پیدا می کردید.
انشاءالله که شما نیز بتوانید با رعایت قوانین سایت، که نظارت شدیدی نیز از طرف مدیران سایت بر روی آن ها اعمال می شود، به جرگه کاربران دائم و فعال و مفید این سایت بپیوندید.
موفق باشید
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
ممنون جناب کیانی درست می فرمایید من خودم در یکی از انجمن ها همین بحث WPF رو مطرح کردم که به علت استقبال کم از ادامه منصرف شدم قبول دارم که بابت اینکار پول نمیگیریم و وقت خودمون رو هدر ندهیم ولی خوب اگه یسری چیزها مطرح بشن به علمی تر شدن مطلب کمک میکنه در مورد DependencyProperty شما بحث AttachedProperty رو مطرح کردید بهتر بود قبلش DependencyProperty و DependencyObject رو معرفی میکردید اینطوری به فهم مطلب کمک شایانی میکرد بهر حال باز هم ممنون خوب شما و امثال شما میتونن به بروزرسانی فرومهای فارسی کمک شایانی بکنند!
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
آقای کیانی سلام.....
نقل قول:
من و امسال من هم بابت این کگار پولی دریافت نمی کنیم که بخواهیم همه وقتمان را بر روی این موضوع صرف کنیم. پس در حد امکان و وقت، مطالب قرار داده می شوند.
خوب چرا از افرادی که در این زمینه اطلاعاتی دارن و می تونن بهتون کمک کنن کمک نمیگیرید.می دونم که یه درس رو در آن واحد نمیتونه بیش از یک استاد تدریس کنه ولی میتونه مطالب اساتید دیگه رو برای کامل تر شدن مبحثش به کار بگیره......
اافراد(البته اگه وجود داشته باشن که دارن...) مقاله هاشون رو برای شما pm بدن و شما با دسته بندی و مرتب کردن مطالبشون بحثتون رو ادامه بدید که مشکل وقتتون هم تا حدودی رفع بشه.......
چون به قول دوست عزیزمون جناب WinFx Developer
نقل قول:
شما و امثال شما میتونن به بروزرسانی فرومهای فارسی کمک شایانی بکنند
حالا بروز رسانی فروم که نه چون یه خورده کلیه و دوستان زیادی در این مورد کمک می کنن.همون بروز رسانی مطالب وسیع آموزشی بهتره.......
موفق باشید.....
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
من برای یه جا یه Presentation داشتم در مورد WPF که قرار بود یه مرور کلی در موردش داشته باشم در این Presentation یه مثال هم ارائه شد (اخه مثال بیس بود , بعضی مطالب با مثال توضیح داده میشد) در اولین فرصت اون رو اینجا میزارم امیدوارم مفید باشه!(خیلی از مطالبی که شما در مقالتتون ارائه دادید رو شامل میشه)
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
نقل قول:
نوشته شده توسط
sajjadlove
آقای کیانی سلام.....
خوب چرا از افرادی که در این زمینه اطلاعاتی دارن و می تونن بهتون کمک کنن کمک نمیگیرید.می دونم که یه درس رو در آن واحد نمیتونه بیش از یک استاد تدریس کنه ولی میتونه مطالب اساتید دیگه رو برای کامل تر شدن مبحثش به کار بگیره......
اافراد(البته اگه وجود داشته باشن که دارن...) مقاله هاشون رو برای شما pm بدن و شما با دسته بندی و مرتب کردن مطالبشون بحثتون رو ادامه بدید که مشکل وقتتون هم تا حدودی رفع بشه.......
.
سلام
سجاد جان شما هم به ظاهر، اولین پست تاپیک WPF را با دقت نخواندید
من بخشی از اون را اینجا می گذارم
نقل قول:
نوشته شده توسط
مهدی کیانی
4) دوستانی که قصد همکاری در آموزش را دارند، مطالب خود را یا با پیغام خصوصی و یا با ایمیل من که در امضای من موجوده، به دست من برسانند، تا در زمان معین آن را در تاپیک قرار دهم. پس خواهشا از قرار دادن لینک ها و نکته های مختلف و متعدد در این تاپیک خود داری کنید و آن ها را در صورت لزوم در تاپیک نکات که در اعلانات این بخش قرار داره، قرار دهید. این به این دلیل است که می خواهم مطالب به صورت سلسله وار بیان شوند و از هرج و مرج در تاپیک جلوگیری شود.
دوستان عزیز، اگر با قرار دادن، مطالب متعدد و حاشیه ای در تاپیک هایی که جنبه آموزشی دارند، مخالفت می شود و توسط مدیران یا پاک می گردد، یا به مکان مناسب تری انتقال پیدا می کنند، به این دلیل نیست که آن تاپیک، ارثیه پدری ایجاد کننده آن می باشد، بلکه صرفا و صرفا به این دلیل است که از هرج و مرج درون تاپیک جلوگیری شود، تا تاپیک مذکور، جنبه آموزشی بودن خودش را از دست ندهد. این موضوع نه تنها شامل تاپیک آموزش WPF بلکه شامل تاپیک های دیگری از جمله تاپیک آموزش سی شارپ که جدیدا دوست خوبم، آقا مسعود، اونو ایجاد کرده اند، و تاپیک های دیگر نیز شامل می شود.
توجه:
دوستانی که مایل به همکاری در زمینه آموزشی WPF دارند، با پیغام خصوصی آمادگی خودشان را اعلام کنند،
موفق و موید باشید
مهدی کیانی
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
پس اگر اموزشی پس
نقل قول:
دوستانی که مایل به همکاری در زمینه آموزشی WPF دارند، با پیغام خصوصی آمادگی خودشان را اعلام کنند،
این جمله این رو میرسونه که ما مطلب رو بدیم به اقای کیانی بعد ایشون بزار ادامه تاپیکشون...
این درسته بنظر شما؟
جناب مداح خود شما چنین کاری میکنید؟
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
نقل قول:
نوشته شده توسط
WinFx Developer
پس اگر اموزشی پس
این جمله این رو میرسونه که ما مطلب رو بدیم به اقای کیانی بعد ایشون بزار ادامه تاپیکشون...
این درسته بنظر شما؟
جناب مداح خود شما چنین کاری میکنید؟
دلیل این امر را بار ها و بار ها یاداور شدم. اینکه می خواهم، مطالب به صورت سلسله وار و ترتیبی که دارند بیان شوند.. دوست عزیز اگر به پست های تاپیک WPF نکاه کنید، متوجه خواهید شد که هر پست دارای یک عنوان می باشد. مطالب آموزشی به چندین بخش و هر بخش به چندین قسمت تقسیم بندی می شودن و تا مطالب یک بخش کاملا تمام نشود ( در آن حد که برنامه ریزی شده)، مطالب بخش بعدی شروع نخواهند شد.. این جزء قوانین نوشتن می باشد.
شما که انتظار ندارید، که وقتی کتابی راجع به WPF مطالعه می کنید، در فصل اول یک مطلب راجع به مقدمه WPF بخوانید و مطلب بعدی همان فصل در رابطه با Layout ها، مطلب بعدی در رابطه با .....
کمی تامل ...
و نیز اهداف وسیع تری در پشت این آموزش ها می باشد که با همانگی مدیران می باشد و لزومی ندارد که اینجا مطرح گردد
یقینا مطالبی که دوستان برای من خواهند فرستاد، با نام خودشان در تاپیک قرار خواهد گفت!!!
طبیعتا و 100 درصد اگر بنده هم بخواهم به فرض، مطلبی را در ادامه تاپیک آموزش سی شارپ بنویسم، همینطوری صبح که پاشدم، مطلبم را پست نمی کنم. بلکه مطلب را برای ایجاد کننده تاپیک می فرستم. ایشون بر اساس ترتیبی که در آموزش دارند، مطلب بنده را چنانچه صلاح دیدند، به موقع با نام خود من و به دست ایشون در تاپیک درج خواهد شد.. و چنانچه صلاح ندیدند، من می توانم آن مطلب ره در قالب یک مقاله وبا نام خودم در بخش مقالات سایت در اخنیار دوستان قرار دهم.
موفق باشید
نقل قول: بحث و گفتگو در مورد تاپیک آموزش WPF
خوب جناب کیانی اگه اجازه ایراد متنتون رو بگم با اجازه;)
1/ 1 فلسفه وجودی WPF در یه جمله خلاصه میشه
نقل قول:
Designer And Developer Work With Together
در مدلها قبلی WinApp چیزی که طراح میخواست با چیزی که برنامه نویس پیاده سازی میکرد زمین تا اسمون فرق داشت ولی با ظهور WPF و XAML این تفاوت به صفر میرسه
2/WPF چیزه جدیدی بشما ارائه میده سیستم نمایشی Vector Base هست یعنی همه چیز رو یه Vector میبینه برای همین شما هر چقدر هم رو کنترلها و تصاویز Zoom داشته باشید افت کیفیت رو مشاهده نمیکنید
3/ من این رو قبول ندارم
نقل قول:
WPF از تمامی قدرت DirectX جهت ایجاد گرافیک های 2 بعد، 3 بعدی، ایجاد انیمیشن ها، استفاده می کند.
اگه قرار بود این باشه در SP1 دات نت 3.5 WPF با DirectX یکپارچه نمیشد
4/
نقل قول:
یک برنامه نویس WPF حرفه ای حتی المقدور از خواص Width و Height اشیاء برای چیدمان آن ها استفاده نخواهد کرد. یقینا برایتان غیر قابل تصور است. به این دلیل که تا الان هر عنصری که در برنامه خود استفاده کرده اید، پس از نامگذاری آن اقدام به ایجاد سایز مناسب آن نمده اید. اما در نمونه برنامه ها و بخش های آتی خواهید دید، که کمترین استفاده را از این دو خاصیت خواهیم کرد. این موضوع به دلیل ماهیت WPF و غیر وابسته بودن به رزولوشن صفحه نمایش می باشد که در قسمت بعدی بیشتر به شرح آن خواهم پرداخت.
در همه جا سازگار نیست مثال در یه Canvas شما یه Button بدون تعیین سایز بده ببین چی بهت نشون میده
5/
نقل قول:
طراحی واسط های کاربری در مدل های برنامه نویسی قبل از WPF (برنامه های ویندوزی ) همیشه با بخش کد و منطق برنامه درگیر بوده است. در بهترین حالت، در دات نت فریم ورک 2.0، هر فرم که به عنوان بالاترین آبجکت و به عنوان پدر تمامی آبجکت ها در برنامه های استفاده می شد، دراای دو کلاس مجزا بود.(هست) یکی از این کلاس ها که دارای متدی به نام InitializedComponents بود، (هست). این متد وظیفه طراحی فرم و آبجکت های درون آن را بر عهده داشت. به محض قرار گیری آبجکتی مانند Button بر روی فرم، کدهایی درون متد مذکور به صورت اتوماتیک و توسط خود محیط برنامه نویسی ویژوال استودیو نوشته می شد. این کد ها مربوط به نحوه قرار گیری آبجکت مورد نطر بر روی فرم بود.(هست). و کلاس دیگر معمولا برای کد نویسی و ایجاد منطق برنامه و مشخص کردن عملکرد فم مربوطه و آبجکت های مربوطه به کار می رفت.(می رود). این مسئله ممکن است هیچ ایرادی در یک نگاه سطحی به همراه نداشته باشد. اما در گروه های برنامه نویسی، این یک معضل می باشد. به این دلیل که همیشه طراح با کد نویس درگیر است. این مشکل زمانی بیشتر خود را نشان می دهد که طراح برنامه، ( منظور از طراح، گرافیست برنامه می باشد) از کد نویسی و منطق های برنامه نویسی اطلاعات چندانی نداشته باشد
.
این موضوع با ورود ASP.NET 2.0 و به وجود آمدن مبحث Code Behind که منطق برنامه را از طراحی آن جدا می کرد، تا حدی مرتفع گردید. البته کماکان برای برنامه های ویندوزی هیچ راه حل مناسبی وجود نداشت.
این رو رد میکنم در WPF هم باز InitializeComponent وجود داره و دقیقا" کاری شبیه WinApp ها داره برای اطلاع بیشتر توصیه میکنم کتاب Application = Code + Markup رو مطالعه کنید و بحث طراحی در جای دیگه وجود داره اون هم بحث Resource ها و Style ها رو میطلبه اینکه چه جوری یه طراح و برنامه نویس باهم کار میکنن رو بعد از مطالعه دو بحث فوق خواهید یافت
6/XAML هم فکر کنم بشه با گفتن یه جمله ساده به خواننده فهماند
نقل قول:
XAML is Supper HTML
XAML یه زبانه نشانه کذاری هست و در حالت عادی Parse میشه ولی ایا همین برای برنامه نویس WPF کافیه؟
خیر در XAML شما امکان کد نویسی رو هم دارید ان یکی از امکانات جالب XAML است
برای اطلاعات بیشتر رجوع شود به XAML in Nutshell
7/
نقل قول:
سعی کنید، عادت به استفاده از روش دوم ( روش د ) در تنظیم خواص آبجکت ها کنید. البته این موضوع بیشتر برای زمانی استفاده می شود که بخواهید از خواص پیچیده و ترکیبی برای یک آبجکت استفاده کنید.( این موضوع را کمی جلوتر خواهید دید). ولی به عنوان نمونه برای مثال فوق، بهتر است که از روش ( ج ) به جای روش ( د) استفاده گردد.
این عادت رو باید بهتر کرد اون هم با Resource ها
8/ جای Markup Extension ها خالیه واقعا" کمبود اونها احساس میشه
منتظر بقیه مطالبتون هستیم با تشکر WinFx
نقل قول: آموزش WPF (مقدماتی تا پیشرفته)
نقل قول:
نوشته شده توسط
WinFx Developer
تمام کلاس ها ار DependencyObject ارث بری دارن ر
خود کلاس Dependency Object نیز از کلاسی به نام Dispatcher Object ارث بری می کنه. پس در بالاترین سطح ، کلاس Dispatcher قرار دارد نه کلاس Dependency