בזמן האחרון יש קרב בין אנשי Silverlight ל-HTML 5 למי יש "גדול יותר". ברצוני להזכיר לכם שכשיצא SL אמרו שהוא "יהרוג" את פלאש, וזה לא קרה. שיצא דוט-נט אמרו שה-COM יעלם מהעולם, וזה לא קרה... הדברים הם לא שחור ולבן, וצריך לבחון כל אפלקציה באיזה טכנולוגיה הכי נכון לפתח אותה בהקשר של משתמשים, והמכשירים שאמורים להריץ אותה. (יש עוד אספקטים שצריך לבדוק אך לא על זה אני רוצה לכתוב ).
אותי בעיקר מעסיק בזמן האחרון האםXAML הוא כל כך טוב כמו שהוא נראה? מאפשר לנו להפריד בין איך הפקד, המסך נראה ובין הלוגיקה של הפקד, מסך. במילים פשוטות הפקדים חסרי ויזואל כי אפשר לתת להם בפרופרטי Template איזה לוק שרוצים. נשמע טוב, נראה טוב אז איפה הבעיה? או, אז על זה אני רוצה לכתוב...
הבעיה שזה מסובך מדי...
לאחר אין ספור סדנאות שאני עושה בנושא ועבודה עם זאמליסטים הגעתי למסקנה הבאה:
ה-XAML מסובך מדי כי כשאתה רוצה לעצב פקד אתה עורך את פרופרטי Template ע"י פקדים אחרים. לדוגמא: נניח שאני רוצה ליצר את הפקד הבא:
| מצב פתוח:  | מצב סגור:  |
כדי לבנות את הפקד אקורדיון אני צריך לחשוב האם יש פה ListBox בתוך ListBox או אולי אני אשתמש ב-Expander, איזה חלק שייך ל- ItemContainerStyleואיזה חלק שייך ל- ItemTemplate, בקיצור יום לימודים ארוך כדי לבנות את זה ב- Blend. נראה אותכם מסבירים את זה למעצב או תכנת HTML... לא נראה לי.
עכשיו נשווה את זה ל-HTML עם עבודה עם JQuery.
1. עיצוב שני DIV’s:
מצב סגור:

מצב פתוח:

2. תיכנות תבניות ה-DIV באופן דינמי ע"פ המידע שרוצים להציג.
אפשר ע"י Asp.Net MVC. למשל זה הקוד שיש לי בדף שמציג את הקורסים ע"פ נושאים באקורדיון באתר Expert Days.

הקוד רץ בלולאה ומיצר את ה-DIV שמייצגים את המצב הסגור ( "courseCnt" ) ו-DIV שמייצג את המצב הפתוח ("course_open") ובתוך לולאה הזו יש עוד לולאה שמיצרת את ה-DIV’s שמייצגים את הקורסים.
3. חיבור האקורדיון ללוגיקה, JQuery.

וזהו. לא צריך יום לימודים ארוך (אפשר לראות תיעוד באתר של JQuery).
סיכום:
העבודה עם XAML מחיבת שליטה מלאה ביכולות הפקד והיכרות טובה עם כל סוגי ה-Templates שיש לו. כלומר ב-XAML יש עימוד ועיצוב ביחד עם לוגיקה, מעצם הבחירה של פקד מסוים לשימוש בתוך תבנית של פקד אחר בגלל היכולות שהוא מביא לשולחן. למשל אם תרצו שבתוך ה- ComboBox יהיה כפתור שעושה מחיקה לבחירה של ה- ComboBox אז אתם תבחרו ב-Button ולא בRectangle –, אין לו Click או Command פרופרטי. כתוצאה מכך נדרשת רמה גבוהה ב-XAML על מנת ליצר Styleלים איכותים.
עבודה עם HTML ו-CSS פשוטה יותר, וה-JQuery פשוט יתחבר ל-HTML ויכניס בו "חיים", נכון שאני מעדיף לכתוב דוט-נט, שפה שעוברת קומפילציה ולא עם JQuery, אך אי אפשר להתעלם מהעובדה הפשוטה שמאז שיצא WPF אין הרבה XAMLליסטים טובים, כי זה פשוט מסובך מדי...