מחשבות על ASP.NET MVC Services

10 בפברואר 2011

תגיות: , ,
אין תגובות

מחשבות על ASP.NET MVC Services

בפעם הראשונה שראיתי מצגת על הטכנולוגיה WCF, תפס את עיני השקף הבא:

clip_image001

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

clip_image002

במילים פשוטות אין "Unified Programming Model" ויש פה 5 טכנולוגיות שונות שנשענות על WCF. מה קרה? למה כל פעם מבטיחים לנו הבטחות זו הטכנולוגיה… ואחרי מספר שנים מעטות הדברים משתנים. אני מאמין שאנחנו צריכים להבין את היסטוריה כדי לחזות את העתיד. לכן אני אנסה להסביר למה צצו לנו 5 טכנולוגיות חדשות וזה לא הסוף.

ע"פ דעתי הכוח של WCF זה ביצירת תקשורת בין שתי נקודות ( מאובטחת, אמינה וטרנזקציונית ) ע"י API פשוט שמסתיר את המורכבות בפיתוח Service , שאר הטכנולוגיות נשענות על יכולות אלו אך מתמקדות בדברים נוספים:

1. Web Http Services
מתמקד רק בערוץ של ה-HTTP ולכן היכולות שהוא מוסיף זה בעיקר היכולת לעבוד ב- REST ועם JSON.

2. WCF Data Services & WCF RIA Services
טכנולוגיות אלו נשענות על סעיף 1 ומוסיפות את התמקדות בהעברת הנתונים מנקודה לנקודה (OData). כלומר כותבים פחות Operation ומתמקדים יותר במידע, תקינות המידע וסכרון המידע בין השרת ללקוח.

3. WCF Workflow Services
מתמקד בתהליכים, ולא ב-Operation כמו שרות רגיל. אפשר להרחיב עוד, לא בפוסט זה.

ועכשיו לקו התחתון:

כתבתי את הקדמה זו כדי שאני אוכל להסביר לכם למה הדבר הבא זה ASP.NET MVC Services . ( ואני מקווה שמיקרוסופט יאמצו את השם ).

הנחות יסוד:

1. אני מדבר רק על שירותים שעובדים ב- HTTP.

2. שירותים שרצים תחת ASP.NET.

מה הצורך ב- ASP.NET MVC Services?

clip_image003

הצורך בלכתוב Service אחד שיכול ע"פ הצרכן להחזיר או מידע בלבד,( כלומר מחלקה ע"פ איזה מנוע של Serialization שתבחרו, (SOAP, JSON, או מידע + תבנית שיוצרת View, שזה הכוח של ה-Controller שיכול לעבד את הבקשה ולהכין את המדיע לעיבוד ע"פ התבנית שתבנו ב-View באמצעות ה-Rezor למשל. כך אני מקבל שרות אחד בלבד שאם צריך הוא יכול להחזיר את המידע בתוך תבנית.

דוגמא:

נניח שבניתי שרות שמחזיר את רשימת העובדים שיש להם יום הולדת באותו חודש. אם הצרכן הוא WPF או Silverlight אני אחזיר את המידע כמידע בלבד, לעומת זאת אם הצרכן הוא דפדפן אני אחזיר את המידע בתוך HTML. ומה אם הצרכן הוא אפליקציה וורד? אני יכול להחזיר את המידע כ-Open XML ולקבל מסמך וורד מעוצב עם רשימת העובדים שיש להם יום הולדת.

סיכום:

אני מאמין ש-WCF יישאר איתנו עוד הרבה זמן כתשתית של תקשורת… ומעליו ימשיכו לצמוח סוגים שונים של שירותים שנותנים הרבה יותר מסתם להעביר מידע.

אשמח לשמוע את דעתכם J

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *