Sign in
|
Join
|
Help
אלעד כץ | Elad Katz
לגו של גדולים
עמוד הבית
טופס יצירת קשר
RSS 2.0
Atom 1.0
RSS-תגובות ב
חפש
תגיות
actions
Android
Architecture
asp.net mvc
Behaviors
beta
binding
Blend
Blendability
CES
CSS3
dart
Dependency Injection
DEV
DRY
ECMA Script 5
ENG
fix
Flash
Flex
forum
free
GUI
HEB
hebrew
HTML5
html6 ecma script
IOC
iOS
ipad
ITPRO
javascipt
javascript
javascript 4
jqGrid
jquery
jQuery Mobile
JS
knockoutjs
knouckoutjs
MarkupExtension
Messenger
metro
mix2011
MVC
MVVM
MVVM Light
Navigation
OFFTOPIC
Performace
Prism
scriptsharp
sdp11
sdp12
Sela
SEO
session
Silverlight
slides
SOLID
sql
SRP
SVG
Tapuz
TECH
Tricks
triggerAction
ui
Unit Testing
Unity
ux
VIDEO
View
ViewModel
ViewModelLocator
VisualStateMachine
vs10
vs11
vs2012
w3c
wdcil
web-standards
win8
win8rp
Windows Phone 7
WinJS
winrt
WP7
WP7.5
WPF
XAML
ארכיון
August 2012 (4)
July 2012 (3)
June 2012 (10)
May 2012 (5)
April 2012 (4)
March 2012 (4)
February 2012 (7)
January 2012 (5)
December 2011 (10)
November 2011 (8)
October 2011 (2)
September 2011 (1)
August 2011 (1)
June 2011 (2)
May 2011 (1)
April 2011 (2)
February 2011 (5)
January 2011 (3)
November 2010 (5)
October 2010 (2)
August 2010 (2)
March 2010 (2)
על הבלוג
ניווט
Home
All Posts
RSS
Popular Tags
Browse by Tags
All Tags
»
MVVM
(
RSS
)
actions
Architecture
Behaviors
Blend
Blendability
dart
DEV
DRY
ENG
GUI
HEB
HTML5
IOC
knockoutjs
Messenger
MVC
MVVM Light
Navigation
OFFTOPIC
Prism
Sela
SEO
Silverlight
SOLID
SRP
TECH
Tricks
VIDEO
View
ViewModel
ViewModelLocator
VisualStateMachine
win8
WinJS
WPF
XAML
Behaviors חלק 8 - איך מממשים Drag and Drop ב MVVM ע"י שימוש ב Behaviors
14 August 12 06:42 PM
|
eladkatz
|
2 comment(s)
בפוסט הקודם ראינו איך נראית הדרך הנאיבית לממש Drag and Drop ב WPF. בפוסט הנוכחי נראה איך לממש Drag and Drop ע”י Behaviors בצורה שהיא נוחה ל MVVM. כתיבת ה Behavior בדומה לפוסט הקודם, המטרה שלנו היא לאפשר פעולת Drag and Drop מהמלבן לכפתור: הפעם, במקום להרשם ב CodeBehind לארוע, נעשה זאת ע”י Behavior. ניצור Behavior חדש בשם DraggableBehavior, שאפשר לחבר על כל אלמנט שיורש מ FrameworkElement: 1: public class DraggableBehavior : Behavior<FrameworkElement> 2: { 3: 4: 5: } נממש את המתודה OnAttached...
Behaviors חלק 7 - איך מממשים Drag and Drop ב WPF ע"י Code Behind
14 August 12 06:42 PM
|
eladkatz
| with
no comments
בפוסט הקודם ראינו איך פותרים את בעיית ה Commands ב MVVM ע”י שימוש ב Behaviors . בפוסטים הבאים נתחיל לחקור הרבה בעיות ש Behaviors מפשטים, כשנתחיל עם Drag and Drop. אחת הפעולות הסטנדרטיות שמממשים לעיתים קרובות היא Drag and Drop. לממש Drag and Drop ב WPF יחסית קל היות ויש תמיכה טובה מאוד של התשתית עבור זה, אבל יחד עם זאת הפתרון הבסיסי עדיין רחוק מלהיות אלגנטי. כדוגמא, ניקח את המסך הבא, בו נרצה לממש Drag and Drop מהמלבן לעבר הכפתור. פעולת ה Drag and Drop תתחיל כשנמקם את סמן העכבר מעל למלבן, נלחץ על הכפתור...
Behaviors חלק 6– פתרון בעיית ה Commands ב MVVM
10 August 12 05:47 PM
|
eladkatz
|
1 comment(s)
בפוסט הקודם ראינו איך כותבים Action מאפס בעצמנו . בפוסט הנוכחי נראה את אחד השימושים הכי שימושיים ב Actions – ולמעשה איך נפתרת אחת הבעיות המציקות בשימוש ב Commands תחת MVVM. בעיית ה Commands. תחת MVVM, הדרך היחידה לחבר בין ה View לבין ה ViewModel זה על ידי Binding ו Commands. כך מתקבלת הפרדה טובה יותר מאשר הייתה לפני כן. בגדול, המידע יעבור בין ה ViewModel ל View ע”י Binding, ופעולות יעברו מה View ל ViewModel על ידי Commands. כדוגמא, ניצור חלון שמחובר ל ViewModel. ב ViewModel נגדיר Command בסיסי (אני...
Behaviors - חלק 0 - למה זה הפיצ'ר החשוב ביותר ב WPF4, ולמה הוא קריטי למימוש של MVVM
08 June 12 09:29 AM
|
eladkatz
| with
no comments
הפיצ’ר החזק ביותר שהתוסף ל WPF4 – התנהגויות (Behaviors) הוא פיצ’ר שמפתיע בחוזק שלו. Behaviors מאפשרים הוספת התנהגות “מבחוץ” לקונטרולים, (טיפה מזכיר את Extension Methods שיכולים להוסיף למחלקות קיימות ב C#). את ההתנהגויות הללו אפשר לכתוב על מנת להרחיב פונקציונאליות של קונטרולים קיימים, בצורה מאוד ריוזאבילית (reuse קוד גבוה מאוד). (כדוגמא – בפוסט הקודם הזה אפשר לראות איך בכמה שניות אפשר להוסיף התנהגות של גרירה לאלמנטים בחלון). את ההתנהגויות הללו אפשר להוסיף לקונטרולים בצורה דקלרטיבית (ע”י XAML, ללא...
Behaviors חלק 3 - יצירת ב Custom Behavior משלנו
08 June 12 09:13 AM
|
eladkatz
| with
no comments
בפוסט הקודם ראינו איך להשתמש ב Behaviors מתוך ויז'ואל סטודיו הכח האמיתי בשימוש ב Behaviors מגיע מיצירת Behaviors משלנו, כשבפוסטים מתקדמים יותר נראה איך אפשר להוסיף התנהגויות מאוד מורכבות. על מנת ליצור behavior, יש לממש את המחלקה Behavior של T. כשבמקום T נשים את מחלקת הבסיס אליה נרצה לחבר את ה Behavior. לדוגמא: public class HighlightBehavior : Behavior<Control> { } ה Behavior יחובר למחלקה קונטרול, מה שאומר שאפשר להשתמש ב Behavior הזה בכל מחלקה שיורשת מקונטרול. החלק החשוב במחלקה הזו היא המתודה...
Behaviors חלק 2 - הוספה מויז'ואל סטודיו
06 June 12 04:12 PM
|
eladkatz
|
6 comment(s)
בפוסט הקודם ראינו איך להוסיף Behaviors דרך בלנד, בפוסט הזה נוסיף Behaviors דרך ויז’ואל סטודיו. נפתח פרוייקט חדש, ונוסיף רפרנסים לשני DLL-ים: (שימו לב כי זה נמצא תחת Extensions, היות וזה חלק מה SDK של בלנד) 1. System.Windows.Interactivity – ה-DLL הראשי של Behaviors - במידה ובלנד לא מותקן, גם ה SDK יהיה חסר – אפשר להוריד אותו מכאן: http://www.microsoft.com/en-us/download/details.aspx?id=10801 2. Microsoft.Expression.Interactions – ב DLL הזה יש כמה Behaviors שכבר מוכנים (אנחנו הולכים להשתמש בשניים כאלו...
Behaviors חלק 1 - שימוש בבלנד
05 June 12 08:24 PM
|
eladkatz
|
1 comment(s)
בפוסט הקודם ראינו למה Behaviors זה פיצ'ר כל כך משמעותי וחזק. הפיצ’ר המשמעותי ביותר שהתוסף בגרסה 4 של WPF הוא ללא ספק Behaviors. ל - Behaviors יש הרבה מאוד כוח, ומאפשר פיתוח הרבה יותר אלגנטי. בנוסף, כמעט כל בעיה ב MVVM נפתרת ע”י שימוש יצירתי ב Behaviors. הפוסט הזה הוא פוסט ראשון בסדרת פוסטים על Behaviors. איך מוסיפים Behaviors בצורה הכי פשוטה? – אם אתם עדיין לא משתמשים ב Blend, בהחלט הגיע הזמן להתחיל.. (כדאי מאוד לראות ב 720p) בפוסט הבא נראה איך מוסיפם Behaviors מתוך ויז'ואל סטודיו
עשר הטעויות הנפוצות ביותר ב MVVM שכמעט כל אחד נופל בהן
29 April 12 10:54 AM
|
eladkatz
|
3 comment(s)
קיבלתי לא מעט תגובות על הפוסט הקודם שלי – הפיכת ה Code behind ל ViewModel ב WPF – כשחלקן גרמו לי לחשוב עוד פעם כמה חסר תיעוד מסודר של MVVM. יש המון חומר כתוב באינטרנט, אבל רובו המוחלט לא מסודר, לא מדוייק, ואפילו לפעמים ממש מטעה. המצב עד כדי כך מורכב שכמעט לא יוצא לי לייעץ בחברה בה לא נופלים לטעות כזו או אחרת, היות ולא מעט טעויות השתרשו כפתרונות לגיטימיים במהלך השנתיים האחרונות. שתי תגובות קלאסיות שקיבלתי יותר מפעם אחת היו: 1. “ב MVVM לפעמים ה ViewModel משרת כמה View-ים, והדרך שהצגת בפוסט מאפשרת רק...
איך לגרום ל WPF להתנהג כאילו ש MVVM באמת נתמך מהקופסא - להחליף בין ה Code Behind ל ViewModel !
24 April 12 07:07 PM
|
eladkatz
|
3 comment(s)
יוצא לי ללמד MVVM לעיתים די קרובות, וכמעט תמיד עולה השאלה למה WPF לא תומך בזה “בילט אין”. הרי CodeBehind ו ViewModel בסופו של יום מאוד דומים, ההבדל הוא רק ש ViewModel הוא מחלקה נפרדת לחלוטין ולפיכך ההפרדה בין הלוגיקה לבין הUI חזקה יותר. כשמממשים MVVM, ויזו’ואל סטודיו לא יודע על הקישור בין ה View לבין ה ViewModel, ולפיכך אי אפשר לעבור ביניהם בקלות ע”י לחיצה על F7 כמו שאפשר בין ה View ל CodeBehind שלו. בנוסף, היה נחמד אם ויז’ואל סטודיו היה מציג את ה ViewModel “מתחת” ל View, כמו שהוא עושה ל CodeBehind...
טיפ WPF - איך לגרום ל ToggleButtons להתנהג כמו קבוצה? איך לממש את זה ב MVVM ?
04 April 12 09:01 PM
|
eladkatz
|
3 comment(s)
לקוח שאל אותי לאחרונה איך אפשר להשתמש ב Toggle Button כך שרק אחד יהיה בחור בכל רגע נתון, ושבמידה ולוחצים על אחר אז הכפתור הקודם לא יהיה בחור יותר, זה בערך המצב אליו הוא רצה להגיע: רק שבמימוש הנאיבי הראשוני שום דבר לא מונע מהכפתורים להיות לחוצים כמה ביחד: < UniformGrid Rows ="6" Columns ="2" HorizontalAlignment ="Left" > < UniformGrid.Resources > < Style TargetType ="ToggleButton" > < Setter Property ="Margin" Value ="2"...
איך מוסיפים עמודות בזמן ריצה לגריד ב - MVVM, ואיך Behaviors מאפשר לנו לפתור בעיות מורכבות ב MVVM
12 March 12 04:18 PM
|
eladkatz
|
2 comment(s)
איך מוסיפים עמודות בזמן ריצה לגריד ב – MVVM? בפוסט הקודם הראיתי איך אפשר להוסיף עמודות דינאמיות, שידועות רק בזמן ריצה לגריד. הבעיה היא שהמאפיין (Property) של העמודות – Columns לא תומך ב Data binding, ולפיכך אי אפשר לשלוט בזה מה ViewModel… אז מה עושים במידה ורוצים לכתוב ב MVVM ? הדרך הטובה ביותר לפתור בעיות מהסוג הזה היא או לרשת מ DataGrid ולהוסיף לו פונקציונאליות, או להוסיף את הפונקציונאליות ע”י הגדרת Behavior. עקרונית, שתי הדרכים די מקבילות. בדרך כלל אני משתמש ב Behavior על מנת להוסיף פונקצינאליות...
תכנות לחלונות 8 - מבוא ל WinJS
17 December 11 02:05 AM
|
eladkatz
|
1 comment(s)
פוסט זה הוא חלק מסדרת הפוסטים “תכנות לחלונות 8 בHTML5”. מה זה WinJS ? הספריה החשובה ביותר בתכנות לחלונות 8 נקראת WinJS וחלק גדול מהפוסטים הקרובים יתמקדו בה. הרוב המוחלט של ה-Patterns ב-WinJS יראה מאוד מוכר למתכנתי ג’אווה סקריפט מיומנים, ולמעשה אפשר לומר ש-WinJS כוללת בתוכה פונקציונליות מקבילה לשלוש ספריות מוכרות (או המקבילות שלהן): 1. ספריית Utilities (כגון- jQuery) – הספרייה שלמעשה הפכה לכמעט סטנדרט, מאפשרת לבחור אלמנטים ב-DOM ולפעול עליהם, ומספקת לא מעט מתודות עזר כלליות כגון עבודה עם Ajax...
SDP 2011 - ההרצאה שלי על MVVM וארכיטקטורת תוכנה
14 February 11 11:13 PM
|
eladkatz
|
2 comment(s)
ב13-16 למרץ יתקיים כנס מקצועני התוכנה השנתי של סלע עם המון הרצאות מרתקות מהמומחים של סלע, במגוון רחב של תחומים. ההרצאה שלי – MVVM – The Holy Grail of UI Architecture תתקיים ב16.3 ותתמקד בDesign Pattern הכי מדובר בשנה האחרונה לאפליקציות חכמות ב WPF וב Silverlight. אם רציתם לדעת על מה כל הבאז, ולראות הדגמה חייה של הכוח הגדול מאחורי מה שמחליף את MVC כארכיטקטורת הקליינט החזקה ביותר היום, אשמח לראותכם. תצביעו להרצאה ואולי תקבלו כרטיסים חינם! לצד ההרצאות (כ-30 הרצאות!) יהיו 8 מסלולים של ימי...
MVVM: How to show a dialog box from the ViewModel using Behaviors
06 February 11 07:19 PM
|
eladkatz
|
19 comment(s)
Behaviors seems like the killer feature for every possible problem we used to have with MVVM. Thank god for WPF4 Showing a Message Box is one of those navigational problems that comes with MVVM. It’s something that we want the ViewModel to control, but yet we don’t want the ViewModel to contain any hard reference to the View. My solution uses the Messenger class from MVVMLight toolkit, but can easily be adjusted to use Prism’s EventAggregator. Lauren Bugnion suggested a solution a while ago which...
איך מממשים MVVM ? זה הרבה יותר פשוט ממה שחושבים.
04 February 11 05:55 PM
|
eladkatz
|
9 comment(s)
לממש MVVM הרבה יותר קל ממה שנשמע. משום מה יצא לDesign Pattern הזה שם של Design Pattern מורכב, ולפי דעתי זו סתם חוסר הבנה. הDesign Pattern במהותו פשוט עד טריוויאלי. בפוסט הקודם דיברתי על הסיבות לממש MVVM, ועל הפואנטה שעומדת מאחורי הDesignPattern הזה. העליתי גם שאלה – מה גורם להפרדה של XAML ו Code Behind לא להוות הפרדה מספיק טובה. אז האמת שההפרדה של XAML ו CodeBehind כבר לא ממש רעה, רק שהבעיה היא שהם לא ממש מופרדים – הם למעשה מהווים ביחד מחלקה אחת, ולכן שינויים באחד מהם לעיתים מאוד קרובות "ישברו"...
More Posts
Next page »