MVVM Part 8 – the MEF Library

Friday, February 22, 2013

אחרי שעשינו היכרות בסיסית עם Unity, נשלים את התמונה עם הContainer הפופולרי הנוסף הלא הוא MEF את קוד המקור שלMEF  אפשר להוריד מכאן, ובכל מקרה הספרייה המצאת לכם בכך מקרה בתוך דוט נט 4 ומעלה. פשוט הוסיפו רפרנס לDLL בשם System.ComponentModel.Composition,MEF רואי לציין ש  כספרייה נחשבת כתומכת גם באובייקטים של Third Party. זאת אומרת ניתן להכיל אותה ולבצע "הזרקת התנהגות" גם עם קונטרולים של יצרן פרטי וצורת העבודה היא לכאורה דינמית יותר מ Unity בזה שאני לא רושם בקוד תלות בטייפ מסויים אלא משתמש בAttribute ומוסיף מתי שבא לי איפה שבא לי. השימוש בAttribute מוכר כMarker Interface Pattern,  וMEF זאת דוגמא נהדרת מה אפשר לעשות עם Attribute ואנחנו לא עושים...
אין תגובות

Inversion Of Control – IOC

Tuesday, January 29, 2013

IOC Design Pattern בעבר כתבתי על dependency injection ולמעשה IOC  או בשמו המלא Inversion of Control שזה נשמע כמו "היפוך שליטה" זה חלק מהעניין. איפה הבעיה: נניח שיש לי אובייקט A ויש לי אובייקט B, אובייקט B מחזיק אצלו משתנה מסוג A כפרופרטי. זה דבר מקובל שנמצא בכל ספריית קוד. הבעיה הקטנה פה היא שיתכן מצב שבו תהיה תלות מוחלטת של אובייקט B באובייקט A וזה לא טוב לנו. בשביל הדוגמא נניח שיש לי קוד שמתאר כלב. לכל כלב (חמוד) יש שדה שמתאר את הבעלים שלו. בקונסטרקטור של הכלב  אני יוצר אינסטנס של הבעלים ומאתחל את המשתנה הפנימי: public class Dog     {         private Owner _owner;         public Dog()         {             _owner...
תגובה אחת

MVC

Monday, December 10, 2012

MVC  יחד עם עוד כמה תבניות כמו MVVM  נחשבת יותר כתבנית ארכיטקטורה ולא כתבנית עיצוב קלאסית, אבל לנו לא משנה הפילוסופיה אלא התכל'ס ולכן נציג אותה כרגיל בצורה הפשוטה ביותר. אקדים ואומר שזה רלוונטי בעיקר למתחי WEB  ששם התבנית מיושמת היום היטב ופחות באפליקציות דסקטופ (בוודאי אפליקציות מהדור החדש) בטכנולוגיות Microsoft כך או כך הבנת השיטה יכולה לתרום הרבה למפתחים מתחילים על תכנון מערכת ועל תקשורת בין שכבות.. אני אישית פגשתי את MVC  לפני שידעתי כלום על תבניות עיצוב וזה שדרג בהרבה את החשיבה שלי על העולם התכנוני. אז מה זה MVC?  הרעיון אומר הפרדת צד הלקוח לגמרי מצד השרת וכל התקשורת ביניהם תהיה באמצעות מרכז פיקוח שנקרא Controller. התרשים...
7 תגובות

Depndency Injection

Thursday, October 25, 2012

  Dependency Injection או  "הזרקת  תלות\התנהגות" היא תבנית שיומושית מאוד, משתמשים בה ביום יום גם בלי ההכרות עם ההגדרה המקצועית. הרעיון בבסיסו אומר שאיזור מסוים בתכנית יודע להריץ קטע קוד שמקבל מבחוץ בלי לדעת מה המימוש ומה עושה הקוד החיצוני, כל שנצרך הוא החזקת רפרנס לאינטרפייס(חוזה) מהסוג המבוקש והפעלת הפונקציה\ות  שלו. בזמן ריצה נקבל בקונסטרקטור איזשהוא אינסטנס מסוג החוזה ונעבוד על פיו.   נחשוב על דוגמא שימושית: א.      אני בונה ממשק כניסה בסיסי למערכת בנקאית. ב.      אני רוצה לבצע כניסה ברמות גישה שונות בהתאם למשתמש. ג.       נפשט את זה לרמה של פקיד רגיל ומנהל. ד.      מסך הכניסה שלי זהה לכולם. ה.      מערכת אימות הסיסמאות (bankWorkerGenerator בדוגמא) תבדוק את הסיסמא ותחזיר בהתאם מופע של עובד\מנהל, שוב כדי לפשט עניינים נניח שהסיסמא היא manager\ worker. כיון ששניהם מהווים מימוש של...
2 תגובות