Dev Academy 4
הסתיים לו "Dev Academy 4" ואני כל כולי כבר בהכנות לסדר הפסח. התגובות להרצאה בכנס היו מעולות וגם אני נהניתי מאד מהקהל ומתהליך ההכנה לכנס. תהליך ההכנה כולל בחירת הנושא, איסוף מידע מכל מקורות האפשריים, הכרות מעמיקה עם ספריות וגרסאות שהשתחררו בימים האחרונים ממש, הגדרת המסר המרכזי שאותו רוצים להעביר, תכנון ובנית Demo מתאים, חזרות, מדידת זמנים ותיקונים. נתבקשתי ע"י מיקרוסופט להציג את WF4.0 ללא התיחסות ל Workflows Services . הכותרת שבחרתי להרצאה היא "WF 4.0 Asynchronous Programming" . אני עוסק ב Workflows כבר תקופה ארוכה. גרסת 2010 לא הביאה רעיון חדש אבל הפנים והגוף החדשים לגמרי של 4.0 WF מאפשרים לימוד ויסום הרעיונות ביתר קלות. בהרצאה זאת בחרתי להמחיש את היחודיות והכח הפנימי שטמון בארכיטקטורת ה Workflows הלא הוא היכולת להריץ קריאות אסינכרוניות עם זמן תגובה ארוך במיוחד. למשל: הפעלת קריאה לשרות מסוים ולפונקציה שאמורה להחזיר נתון מסוים או לשלוח הודעת callback לכשהתהליך יסתיים. הכל טוב וידוע רק שבישומים מסוימים הזמן הנדרש (בין שליחת הבקשה לקבלת התשובה) יכול לקחת גם מספר דקות או שבועות או בכלל. מודל רגיל של Request\Response לא יעשה את העבודה ומודל הודעות חד כיווניות דורש טיפול בהודעות כדי לבדוק מאיין באה ההודעה ולאן פנייה מועדות. לעומת זאת, או בנוסף, מנגנון הWorkflows , בשיטוף עם מסד נתונים מתאים, יעצור את זרימת הקוד אחרי הבקשה, יסמן אותו (Bookmark) ויוריד את כל המופע מהזכרון לתוך מסד הנתונים. לבסוף, וללא הגבלת זמן, כשתגיע תשובה מהשרות יבנה המופע מחדש וימשיך ליזרום בקוד הלאה החל מהמקום שבו סומן לו לעצור קודם לכן. אפשר לצפות בהקלטת ההרצאה ולהוריד את דוגמאות הקוד מכאן