سفارش تبلیغ
صبا
طول ناحیه در قالب بزرگتر از حد مجاز

View Model
CRUD با استفاده از View Model
پوشه ای به نام ViewModels به پروژه ایجاد کرده و کلاسی تحت عنوان MainPageModel.cs به آن اضافه کنید. تمامی کدهای زیر را در آن جایگزین کنید:
ادامه مطلب...

اولین دیدگاه را شما بگذارید Silverlight ، MVVM ، Expression Blend ،

  

Model
CRUD با استفاده از View Model
یک پوشه جدید با نام Models ایجاد کنید و یک کلاس با نام TasksModel.cs در آن قراردهید و کد های زیر را در آن جایگزین کنید.
ادامه مطلب...

اولین دیدگاه را شما بگذارید Silverlight ، MVVM ، Expression Blend ،

  

پروژه Silverlight

CRUD با استفاده از View Model
حالا بریم سراغ پروژه RIATasks  در قسمت Silverlight. ابتدا نیاز هست که یک reference از پروژه Silverlight به web service ای که درست کردیم ایجاد کنیم.
سپس باید یک Model برای فراخوانی وب سرویس ایجاد کنیم و همچنین یک کلاس پشتیبان ICommand ایجاد خواهیم کرد که به این اجازه رو می دهد که به آسانی رویدادها را در View Model بالا بیاوریم.
ادامه مطلب...

اولین دیدگاه را شما بگذارید Silverlight ، MVVM ، Expression Blend ،

  

ایجاد Data Layer
تصویر 20 - CRUD با استفاده از View Model
یک کلاس از نوع Linq to SQL به سایت RIATasks.Web تحت عنوان RIATasksDB.dbml اضافه کنید.
نکته: شما می توانید از Entity Framework به جای Linq to SQL ( یا هر نوع تکنولوژی دیگری که به Data دسترسی دارد) استفاده کنید. دلیل انتخاب Linq to SQL در این پروژه سهولت ایجاد تنظیمات آن می باشد.
ادامه مطلب...

اولین دیدگاه را شما بگذارید Silverlight ، MVVM ، Expression Blend ،

  

ساخت برنامه
شما برای ایجاد برنامه به نرم افزارهای زیر احتیاج دارید:

 

  1. Visual Studio 2010     یا بالاتر
  2. Expression Blend 4  یا بالاتر
  3. SQL Server2005 یا بالاتر

 

تنظیمات مربوط به دیتابیس

تصویر 9 - CRUD با استفاده از View Model

یک دیتابیس جدید تحت RIATasks ایجاد کنید.

تصویر 10 - CRUD با استفاده از View Model
با استفاده از اسکریپت زیر جدولی با نام Tasks ایجاد کنید:
ادامه مطلب...

اولین دیدگاه را شما بگذارید Silverlight ، MVVM ، Expression Blend ،

  

یک مثال ساده از CRUD در Silverlight

تصویر 1 - CRUD با استفاده از View Model
دلیل نوشتن این فایل آموزشی این بود که می دیدم دوستان در رابطه با موضوع این مقاله مشکل داشته و منبع مناسبی (حداقل فارسی) برای این موضوع پیدا نمی کردند. دوستان مطمئناً وقت زیادی را برای آموزش Silverlight سپری کرده اند اما همه می دانیم که کتابهای آموزشی به طور مفصل و عملی این روش ها را آموزش نمی دهند و برای آموزش قدم به قدم آن نیز نیاز به زمان زیادی هست. پس ما یک میانبر برای شما ایجاد کرده ایم.

در ضمن در این مقاله روش استفاده از View Model نیز آموزش داده شده است و بنده اعتقاد دارم که استفاده از این روش میزان کد نویسی شما را کاهش می دهد (که احتمالا شما انتظار آن را نداشتید) به بنده اعتماد کنید. اجازه دهید که شروع کنیم:
ادامه مطلب...

اولین دیدگاه را شما بگذارید Silverlight ، MVVM ، Expression Blend ،

  

مزایای استفاده از الگوی M-V-VM

  • جدا سازی لایه ها از یکدیگر: به این صورت تغییرات صورت گرفته در هر کدام از لایه ها به علت عدم تنیدگی در دیگری، با سهولت بیشتری صورت خواهد گرفت و نگهداری برنامه را در دراز مدت ساده تر خواهد کرد.
  • امکان فعالیت تیمی بهتر : با توجه به جداسازی لایه ها، طراح رابط کاربر و برنام ه نویس ها همزمان می توانند کارهای خویش را انجام دهند (شکل 6).
  • تهیه آزمون های واحد : همیشه تهیه ی آزمون واحد برای UI و کدهای event driven کاری بسیار مشکل است. اما در اینجا ViewModel را به سادگی می توان با کمک آزمون های خودکار بررسی کرد و میزان کدهای View به حداقل ممکن می رسد.
  • پشتیبانی بهتر از چندین View: با توجه به جدا سازی لای ههای مختلف برنامه، امکان تهیه برنامه هایی که به سادگی قابل تبدیل به WPF و یا Silverlight هستند را خواهید داشت. همچنین می توان برای مثال دو View مختلف را ارائه داد به صورتیکه از یک ViewModel استفاده م یکنند و تفاوت آن ها در نحوه ی نمایش و قالب بندی اطلاعات ارائه شده توسط ViewModel است، بدون اینکه نیازی به تکرار کدها در برنامه وجود داشته باشد. به این صورت تغییر و یا تعویض یک View بدون تغییری در کدهای برنامه میسر خواهد شد.
  • سادگی استفاده از کنترل های WPF و Silverlight : کنترل های بصری WPF و Silverlight اساسا جهت کار با این الگو طراحی شد هاند و بسیاری از قابلیت های آن ها با کمک الگوی M-V-VM بهتر نمایان خواهند شد.
  • Blendability : به قابلیت ایجاد و ویرایش داد ههای آزمایشی در زمان طراحی رابط کاربر در Expression Blend ( و یا حتی طراح Visual Studio ) جهت مشاهد هی بهتر و نزدیک به واقعیت View تولید شده گفته م یشود که توسط این الگو بهتر از پیش میسر خواهد شد.
    مدل سازی M-V-VM شکل 7
    شکل شش - یکی از مزایای الگوی M-V-VM امکان کار همزمان طراح رابط کاربر برنامه و برنامه نویس ها در یک تیم است.

ادامه مطلب...

نظر() Silverlight ، MVVM ، Expression Blend ،

  

M-V-VM چیست؟

M-V-VM یا Model-View-ViewModel یکی از الگوهای محبوب طراحی رابط کاربر در WPF و Silverlight می باشد که توسط Jhon Gossman از تیم WPF ایجاد شده است و قدرت خود را مدیون توانمندی های BINGING پیشرفته WPF و SILVERLIGHT است. به کمک آن می توان VIEW (یا همان قسمتی از برنامه که کاربر با آن سر و کار دارد) را از کدهای مرتبط با داده ها و منطق برنامه مجزا ساخت. به این صورت در یک تیم افرادی می توانند بر روی VIEW در EXPRESSION BLEND کار کرده و همزمان تعدادی دیگر در VS.NET مشغول تهیه قسمت ViewModel ها باشند.

 

مدل سازی M-V-VM شکل 1

  مدل سازی M-V-VM شکل 2

شکل یک - نمایی از قرارگیری و نحوه تعامل لایه های مختلف در یک برنامه با الگوی M-V-VM

ادامه مطلب...

نظر() Silverlight ، MVVM ، Expression Blend ،

  

 

چگونه می توان کلاس یا متدی و .. بنویسیم که با انواع داده ها کار کند .به طور مثال تابعی بنویسیم که پارامترهای ورودی آن هم از نوع  int و هم از نوع float باشد و یا کلاسی بنویسید که هم پارامتر های int را بپذیرد و هم string (یا هر نوع سفارشی مانند اشیایی که شما از کلاسهای سفارشی خود ایجاد می کنید). حتما می خواهید چندین متد یا چندین کلاس بنویسید و یا فکر می کنید باید override کنید .
اینگونه نیست .از زمان اریه dot net 2 
چند سالی می گذرد ، اما یکی از قابلیتهایی که در آن زمان اضافه شد Generic ها بود ، که تا به امروز هم استفاده فراوانی دارد ها Generic . ساختار گرامری جدیدی به دات نت اضافه کرده اند .مثلا می توانید یک کلاس کلی بنویسید بدون اینکه مشخص کنید که چه نوع داده ای رامی پذیرد .البته این کل ماجرا نیست بلکه به نظر بنده generic ها پاسخی هستند به برخی از نیازها و سواالات زیر:

 

  1. آیا می توان interfaces, classes, methods, events and delegates. داشته باشیم که بتواند انواع مختلف داده را بپذیرد؟
  2. آیا می توان آرایه یا لیستی از عناصر گوناگون داشته باشیم که بتواند انواع مختلف داده ها را در خود ذخیره کند ؟
  3. آیا می توان بدون پیاده سازی مجدد یک الگوریتم آن را با ساختار داده ای متفاوت دیگری بکار ببریم؟

 


سوالات فراوان است اما بنده به همان سه سوال بالا اکتفا می کنم  و وارد بحث خواهم شد ، ابتدا تعریف

تعریف generic

یککلاس یا متد و یا اینترفیس و غیره شبیه یککلاس) یا متد و یا اینترفیس و غیره( عادی تعریف می شود ، با این تفاوت که بعد از نام کلاس ، نوع generic مشخص می گردد. نوع داده ای generic بوسیله کلاس می توانند به عنوان نوع داده یک عضو از کلاس یا به عنوان نوع داده پارامتری متدها استفاده شوند.
http://s1.picofile.com/alaalawi/Documents/oop/generic.pdf.html

 


نظر() هزار و یک نکته در سی شارپ ،

  

 کــوچـــه
(اثری ماندگار از زنده یاد فریدون مشیری):
 بی تو، مهتاب‌شبی، باز از آن کوچه گذشتم،؛
همه تن چشم شدم، خیره به دنبال تو گشتم،؛
شوق دیدار تو لبریز شد از جام وجودم،؛
 شدم آن عاشق دیوانه که بودم.؛
 در نهانخانة جانم، گل یاد تو، درخشید باغ صد خاطره خندید،؛
 عطر صد خاطره پیچید:؛
یادم آمد که شبی باهم از آن کوچه گذشتیم
پر گشودیم و در آن خلوت دلخواسته گشتیم
 ساعتی بر لب آن جوی نشستیم.؛
تو، همه راز جهان ریخته در چشم سیاهت.؛
 من همه، محو تماشای نگاهت.؛
آسمان صاف و شب آرام بخت خندان و زمان رام
 خوشه ی ماه فرو ریخته در آب
شاخه‌ها دست برآورده به مهتاب
 شب و صحرا و گل و سنگ همه دل داده به آواز شباهنگ
یادم آید، تو به من گفتی:؛ از این عشق حذر کن!؛
لحظه‌ای چند بر این آب نظر کن،؛
آب، آیینة عشق گذران است،؛
 تو که امروز نگاهت به نگاهی نگران است،؛
 باش فردا، که دلت با دگران است!؛
تا فراموش کنی، چندی از این شهر سفر کن!؛
با تو گفتم:‌ حذر از عشق!؟ ندانم!؛
 سفر از پیش تو؟ هرگز نتوانم، نتوانم!؛
 روز اول، که دل من به تمنای تو پر زد،؛
چون کبوتر، لب بام تو نشستم
تو به من سنگ زدی، من نه رمیدم، نه گسستم،؛
باز گفتم که : تو صیادی و من آهوی دشتم
 تا به دام تو درافتم همه جا گشتم و گشتم
حذر از عشق ندانم، نتوانم!؛
اشکی از شاخه فرو ریخت
مرغ شب، ناله ی تلخی زد و بگریخت
اشک در چشم تو لرزید،؛
ماه بر عشق تو خندید!؛
 یادم آید که: دگر از تو جوابی نشنیدم
پای در دامن اندوه کشیدم.؛
 نگسستم، نرمیدم.؛
رفت در ظلمت غم، آن شب و شب‌های دگر هم،؛
 نه گرفتی دگر از عاشق آزرده خبر هم،؛
 نه کنی دیگر از آن کوچه گذر هم
 بی تو، اما، به چه حالی من از آن کوچه گذشتم!؛  
 
 
 
کــوچـــه
(سروده "هما میرافشار" (پاسخی به اثر فریدون مشیری
 بی تو طوفان زد? دشت جنونم
صید افتاده به خونم
تو چه‌سان می‌گذری غافل از اندوه درونم؟
بی من از کوچه گذر کردی و رفتی
 بی من از شهر سفر کردی و رفتی
قطره‌ای اشک درخشید به چشمان سیاهم
 تا خم کوچه به دنبال تو لغزید نگاهم
تو ندیدی ... نگهت هیچ نیفتاد به راهی که گذشتی
 چون در خانه ببستم، دگر از پا نشستم
گوئیا زلزله آمد،
گوئیا خانه فروریخت
 سر من بی تو من در همه شهر غریبم
بی تو، کس نشنود از این دل بشکسته صدائی
بر نخیزد دگر از مرغک پر بسته نوائی
تو همه بود و نبودی
 تو همه شعر و سرودی
چه گریزی ز بر من که ز کوی‌ات نگریزم
گر بمیرم ز غم دل به تو هرگز نستیزم
 من و یک لحظه جدایی؟! نتوانم، نتوانم بی تو من زنده نمانم
 
 
 و این هم آخرین شعر فریدون مشیری در پیری در باب کوچه!؛
دوستی می گفت شعر کوچه ات؛ همچنان روشنگر دلهای ماست!؛ گفتمش:
از کوچه دیگر دم مزن!؛
زانکه شعر و عشق از کوچه جداست!؛
نیک بنگر هر طرف در هر گذر؛ نام خون آلوده ای بر کوچه هاست!؛

اولین دیدگاه را شما بگذارید از هر دری سخنی ،

  

مشخصات مدیر وبلاگ

محمد محمدی پیروز [33]

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

لوگوی دوستان


ویرایش

طراحی پوسته توسط تیم پارسی بلاگ