۱۳۹۰/۱۱/۲۵

زير نويس فارسي ويديوهاي ساخت برنامه‌هاي مترو توسط سي شارپ و XAML - قسمت آخر


زيرنويس‌هاي فارسي قسمت آخر «Building Windows 8 Metro Apps in C# and XAML» را از اينجا مي‌تونيد دريافت كنيد.

اين قسمت براي كساني كه مي‌خواهند مروري بر مفاهيم Binding موجود در WPF و سيلورلايت داشته باشند و همچنين تفاوت‌هاي آن‌را با نمونه موجود در WinRT بررسي كنند، بسيار مفيد است. در كل سيستم Binding موجود در WinRT يك نمونه ساده شده آنچيزي است كه در سيلورلايت موجود است (و البته سيلورلايت هم يك نمونه ساده شده WPF است!).
براي مثال خاصيت UpdateSourceTrigger موجود در عبارات Binding مرتبط با WPF و سيلورلايت فعلا در WinRT وجود ندارد.
تفاوت ديگر اين است كه هرچند اينترفيس INotifyPropertyChanged در WinRT هم وجود دارد اما نمونه مهياي در فضاي نام جديدي به نام windows.ui.xaml.data توسط WinRT شناسايي مي‌شود و اگر كدهاي ساير فناوري‌هاي مشابه را به سيستم مترو تبديل كنيد، كار نخواهند كرد! چون اين اينترفيس پيشتر در فضاي نام System.ComponentModel تعريف شده بود و هنوز هم حضور دارد (فقط در حد يك تغيير سطر تعاريف فضاهاي نام كفايت مي‌كند).
يك تله ديگر هم در WinRT وجود دارد. در اينجا هم كلاسي به نام DependencyObject وجود دارد كه ... معادل نمونه مشابه WPF و Silverlight نيست و XAML امكان تشخيص خودكار تغييرات خواص آن‌را ندارد.
همچنين اينترفيس INotifyCollectionChanged مرتبط با ObservableCollection موجود در WPF و Silverlight در WinRT فعلا وجود خارجي ندارند (هرچند هنوز در خود دات نت فريم ورك وجود دارند، اما كار نمي‌كنند). به نظر قرار است تا قبل از ارائه نهايي ويندوز 8 در اين مورد تصميم گيري شود. اما در اينجا بايد از IObservableVector استفاده كرد! (كلا اين كلمه Vector ابراز وجود زايد طراحان سي++ مترو است! يعني ما هنوز هم زنده‌ايم و سي++ هنوز هم مهم است!)
نحوه گروه بندي اطلاعات نيز تغيير كرده است و بايد منبع داده‌اي، اينترفيس جديد IGroupInfo را پياده سازي كند. به علاوه CollectionViewSource آن نيز فعلا قابليت‌هاي جستجو و مرتب سازي موجود در WPF و سيلورلايت را ارائه نمي‌دهد.