آشنایی با الگوی IOC یا Inversion of Control (واگذاری مسئولیت)
کلاس Kid را با تعریف زیر در نظر بگیرید. هدف از آن نگهداری اطلاعات فرزندان یک شخص خاص می‌باشد:namespace IOCBeginnerGuide{ class Kid { private int _age; private string _name; public Kid(int age, string name) { _age = age; _name = name; } public override string ToString() { return "KID's Age: " + _age + ", Kid's Name: " + _name; } }}اکنون کلاس والد را با توجه به اینکه در حی ...
آشنایی با الگوی MVVM
حدود یک سال قبل الگوی MVVM زیاد معروف نبود (Model-View-ViewModel pattern). اما در 6 ماه اخیر، این الگو به یک متدولوژی جدی توسعه برنامه‌های WPF و سیلورلایت تبدیل شده. نمی‌شود به یک وبلاگ خوب WPF سر زد و خبری از این روش نباشد. حتی فریم ورک‌هایی هم برای آن طراحی شده که لیست آن‌ها را در این مقاله می‌توانید مشاهده نمائید.مزایای این الگو چیست؟ جدا سازی Model و View تولید کدهایی با قابلیت تست بالا فایل‌های code-behind ایی با حداقل کدو ...اگر علاق ...
Dependency Injection
در ادامه مباحث بهتر کد بنویسیم و الگوهایی که در این رابطه معرفی شدند، اخیرا کتابی از انتشارات manning منتشر شده تحت عنوان Dependency Injection . هر چند به ظاهر این کتاب برای جاوا کارها تهیه شده اما قسمت عمده‌ای از آن برای سایر زبان‌های برنامه نویسی دیگر نیز قابل استفاده است.DESCRIPTIONIn object-oriented programming, a central program normally controls other objects in a module, library, or framework. With dependency injection, this pattern ...
در هم تنیدگی کدهای خود را کمتر کنید
مطلب "آشنایی با الگوی MVP" مقدمه‌ی کوتاهی بود بر یکی از روش‌هایی که توسط آن می‌توان گره خوردگی کدهای خود را کمتر، نگهداری طولانی مدت و اعمال تغییرات بعدی به آن‌ها را ساده‌تر کرده و همچنین امکان استفاده مجدد از کدهای موجود را فراهم آورد. در همین ارتباط ویدیویی تحت عنوان Decoupling Your Code, By Example را می‌توانید از آدرس زیر دریافت کنید:دریافت (90Mb, 44mins)ماخذ
آشنایی با الگوی MVP
پروژه‌های زیادی را می‌توان یافت که اگر سورس کدهای آن‌ها را بررسی کنیم، یک اسپاگتی کد تمام عیار را در آن‌ها می‌توان مشاهده نمود. منطق برنامه، قسمت دسترسی به داده‌ها، کار با رابط کاربر، غیره و غیره همگی درون کدهای یک یا چند فرم خلاصه شده‌اند و آنچنان به هم گره خورده‌اند که هر گونه تغییر یا اعمال درخواست‌های جدید کاربران، سبب از کار افتادن قسمت دیگری از برنامه می‌شود.همچنین از کدهای حاصل در یک پروژه، در پروژه‌‌های دیگر نیز نمی‌توان استفاده کر ...