Using Smart CLR Property as object repository

Sunday, December 4, 2016

the next scenario can be Simple, yet during development it is hard to change design so tricks like that can be awesome. Consider the following entity. public class Cat { public string Name; } public class Dog { public string Name; } class Wrapper { public bool isDog; private Dog dog = new Dog() {Name = "Snoopi" }; private Cat cat = new Cat() {Name = "Tom" }; public string Name { get { ...

Prism 6 from ground up by 10 minutes

Sunday, April 3, 2016

In this post we will build a small app using Prism 6 and Unity together with all necessary  tools. One of the commonly known issues  with Prism is the different between versions and dlls. So I choose in the demo to use the last nugget package and to trust it. Than to manipulate all around it, Well surprising way, installing unity for Prism 6 was include automatically all Prism 6 dependencies which reduce any computability  issues Well, Prism architecture is simple, A. We have Shell which is the main window and probably the only window in the application. B. We have Regions inside the Shel and they would...

Repository Design Pattern

Tuesday, April 14, 2015

הרבה זמן לא הייתי באזור הזה של לכתוב על תבניות עיצוב בעברית אבל יצא לי לאחרונה לחשוב ולהתעסק הרבה מול מנגנוני DB אז מנצל את ההזדמנות להרחיב את הסדרה שלי על תבניות עיצוב בתכנה והפעם על Repository. כרעיון הוא פשוט מאוד ולא מורכב: יש לנו שכבת נתונים, יש לנו ממשק לוגי שצורך את שכבת הנתונים, לא תמיד המבנה שלנו בקוד עבור האובייקטים הוא זהה למבנה שלהם ברמת בסיס הנתונים, לדוגמא שדות שונים, טבלאות עזר, ענייני אבטחה ותאימות, גרסאות שונות של נתונים היינו מאוד רוצים ששכבת התכנה תוכל לרוץ בצורה נוחה למשתמש (המתכנת) מול שכבת הנתונים ובנוסף גם להרוויח ענייני תחזוקה ואבטחה כמו כל דוגמא אחרת...

Views Locator or Navigation Service for MVVM

Wednesday, November 12, 2014

Many frameworks of MVVM provide Views Service Locator , which allow you to inject any view in .any place without reference or dependencies between libraries .Actually , it is not very hard to write one of your own if needed :For example lets try that :Base contract fro the service public interface IAppNavigationService { object ResolveView(string key); void SignView(string key, Type viewType); List<string> getAllKeys(); } :A simple version of implementation public class AppNavigationService : IAppNavigationService { ...

StateFull vs. StateLess

Sunday, August 31, 2014

.StateFull and StateLess are about Computers Architecture and Design Patter .There is a large scale of concepts around this terminology But in other point of view it is daily used when we are coding In origin the terminology is token from a computer or more specifically an Program ,like the Web model there is about architecture like MVC, HTTP, ASP etc .But we can face it almost in every step at our coding In present, computer programs are about user friendship as much as we can .This is generally came with statefull condition where we talking on it :But statefull isn’t only on a program it could...

Interpreter Design Pattern

Thursday, December 19, 2013

אינטרפרטר הוא מתרגם , שפת ביניים שמייצגת אלגוריתם או UI וניתנת לקריאה ע"י פלטפורמות שונות. אינטרפרטר מקובל גם כתחליף לקומפיילר וכאן הכוונה למשהו קצת אחר, במקום לקמפל את הקוד ולהופכו לקוד מכונה בינארי אני מבצע פקודה אחת בכל פעם ולא את כל הקוד. מי שעדיין עובד בשיטה כזאת זה (JavaScript וזה דיון אחר בזמן אחר..) לגופו של עניין אני יכול להציג "שיטוח אובייקטים" (סריליזציה) כסוג של  ,Interpreter כמו גם לטעון שכל שפות התגיות שמתארות נתונים (  XML,Xaml,HTML )כי כל מה שמציג הקוד (MarkUp בשפה המקצועית) זה איך הולך הUI שלי להראות,  או איך בונים את ההיררכיה של האובייקט וזה מאפשר לי להעביר...
אין תגובות

MVVM – Part 10 PRISM real world Starter

Saturday, October 5, 2013

הגענו לפרק העשירי והאחרון במדריך שלי לMVVM. הפעם נדגים כיצד בונים תכנית מבוססת על ארכיטקטורת MVVM מורכבת, (מה שנקרא composite application) באמצעות Prism library.   נתחיל מזה שנוריד את הגרסה האחרונה של הספרייה מאתר הבית שלהם,(אני בוחר בגרסה המתאימה ל.NET 4.5) כי אני עובד עם VS2012 כדי להוריד קבצים מקודפלקס יכול להיות שתצטרכו חשבון וזה סתם מומלץ.   בכל מקרה כנסו לפה תורידו גרסה ונמשיך.   מה שצריך בנוסף זה dll של Unity כי כאמור באפליקציה מודולרית צריך IOC קונטיינר והתשתית של פריזם מגיעה עם תמיכה מובנית בMEF או UNITY...
אין תגובות

ארכיטקטורת שכבות בתכנה למתחילים

Thursday, July 25, 2013

כל תכנה שנפגוש בעולם האמיתי מבוססת על ארכיטקטורת שכבות כזאת או אחרת, המוכרת ביותר כמובן מוכרת בשם  Three-Tier-Applicationז"א שלש שכבות במבנה של DAL-BL-UI היכרות עם המבנה, הרעיון והשיטה היא מאוד רלוונטית לכל פיתוח באשר הוא.   מה זה? תבנית עיצוב בסיסית שמגדירה הפרדת האפליקציה ל שכבת נתונים, שכבת לוגיקה, ושכבת ממשק משתמש. (כאמור בהגדרה הביסיסית, ככל שהתכנה מורכבת יותר ייתכנו שכבות נוספות) למה זה טוב?   תחזוקה: ניתן להחליף או לתקן מימוש פנימי של שכבה אחת בארכיטקטורה בלי לשנות שכבה אחרת. נוחות פיתוח:...
2 תגובות

Observer Pattern VS. Mediator Pattern

Friday, June 28, 2013

שאלה שנפוצה מאוד,    אם תפקיד הObserver הוא ליידע אובייקט X כאשר אובייקט Y שינה מצב אז מה משמעות הMediator שכאמור תפקידו לתווך בין שני אובייקטים ולהעביר מסרים??   לחידוד העניין ממליץ לקפוץ אחורה ולקרוא על Mediator כאן, ועל Observer כאן.   אז נחדד כמה הבדלים: Observer שזה בעצם Event מתנהג ביחס של אחד ל N,  כשגם יכול להיות 0 בצד הN , ז"א שאנו מגדירים תשתית לרישום לאירוע ומי שירצה יירשם ויאזין.   מול זה ניצב המדיאטור שתפקידו זה אינקפסולציה והפרדה...
אין תגובות

Mediator Design Pattern

Saturday, June 15, 2013

בתרגום חפשי "המתווך" , או מילים גסות יותר.. תבנית המדיאטור מספקת תקשורת בין רכיבים בלי קשר ישיר , זאת אומרת אמורה לעזור לנו בהפרדת תלות בין רכיבים בתכנה. לדוגמא יש לנו את רכיב X , ואת רכיב Y , Y מנסה לדבר עם X אבל הוא לא מכיר אותו כלל, נניח עקב שיקולי ארכיטקטורה שונים ישנה הפרדה בין רכיבים. ועדיין נרצה ליצור קשר בין הרכיבים. לא ממש קשר אלא יותר בכיוון קבלת מידע. ונסביר: רפרנס לקובץ אומר בד"כ שאני רוצה להשתמש במידע שנמצא שם, אבל לפעמים כל מה שחסר לנו שזה חיווי...
אין תגובות