locked
יתרונות ב- WCF REST SERVICE RRS feed

  • שאלה

  • אהלן,

    אני בונה wcf rest service עם יכולות פילטור ומיון 
    בעבר ראיתי שימוש של פקדים של TELERIK שידעו לעשות binding ל- wcf rest service ולייצר dynamic linq queries  למיון ופילטור מול ה- source
    וכך בעצם ליצר ממשק עשיר של מידע שיודע להציג למיין ולפלטר מידע מבלי לכתוב קוד כלל
    השאלה שלי היא : האם משהו מכיר מימוש כזה למשל של פקד grid שניתן לעשות זאת או שזה יכולת מובנת של פקדים של telerik בלבד?

    שאלה נוספת הייתי שמח לשמוע מה היתרונות  שניתן להגדיר אותם כ- feature killer של restful services שלא קשורים ל- Interoperability כי הריי גם web service סטנדרטי נותן יכולות Interoperability מספקות .

    תודה שלומי 

    יום שלישי 31 יולי 2012 12:55

תשובות

  • הי שלומי,

    ראשית, כפי שציינת, שימוש ב-WCF עם dynamic linq ידרוש ממך הרבה עבודה ולכן כפתרון הוא יותר מורכב.

    לגבי שני השחקנים שנותרו - data service או web api נפרוט את זה לשני חלקים:

    1. תמיכה ב-odata - התמיכה של data services ב-odata היא יותר רחבה מזו של web api. מאחר ו-web api היא יחסית חדשה, היא לא תומכת עדיין (אני מקווה שזה ישתנה) בחלק מהפרוטוקול, כגון שימוש ב-projections וב-extend. אם אתה רוצה שאילתות כמה שיותר גמישות, גם בחלק של ה-Select (איך יראה הייצוג) ובגם בחלק של ה-from (שימוש ב-joins), אז data services יותר מתאים

    2. חשיפת השירות לפעולות שאינן OData - במקרה של data services התשתית היא WCF ולכן האפשרות להרחיב את השירות בעצם מאפשרת לך לעשות כל מה ש-WCF נותן לך ברמת contracts (שימוש ב-data contract, service contract וכו'). במקרה של web api, אתה יכול להרחיב את השירות מעבר לתמיכה ב-odata ע"י הוספת פעולות שנגישות באמצעות http verbs.

    אם עיקר הצורך שלך הוא בגמישות השאילתא, מה שמצריך שימוש נרחב ב-odata, הייתי דובק כרגע בטכנולוגיה שמממשת את הפרוטוקול לתומו (data services).


    Please mark posts as answers/helpful if it answers your question.
    Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
    Visit my blog: http://blogs.microsoft.co.il/blogs/idof

    • סומן כתשובה על-ידי shlomihassan שבת 04 אוגוסט 2012 12:47
    שבת 04 אוגוסט 2012 08:42
    מנחה דיון

כל התגובות

  • האם היכולת שאני מחפש נקראת ODATA
    בעבר שעשיתי משהו כזה .net 4  לא יצא  ואם כן מה ההבדל בין מימוש wcf עם rest לבין odata?
    הנושא מאוד מעניין אותי ואשמח לשמוע עליו מאנשים שמכירים את הטכנולוגיה והשתמשו בה
    כמובן איך הוא מבחינת Interoperability ומבחינת binding ל- controls

    תודה שלומי

    יום שלישי 31 יולי 2012 13:36
  • הי שלומי,

    אם ברצונך לייצר שירות גמיש שיודע לקבל הגדרות פילטור ומיון, אבל OData זה פתרון מתאים וניתן להשגה באמצעות WCF Data Services.

    אתה יכול לקרוא על OData כאן:

    http://www.odata.org/

    הגישה ה-REST-ית מדבר על אופן השימוש ב-HTTP לטיפול בפעולות CRUD ומיפוי נכון של RPC ל-HTTP Verbs. הסטנדרט של OData לוקח חלק מההגדרות של REST ומשתית באמצעותן פרוטוקול לתשאול ועדכון מידע. אתה יכול לחשוב על REST כעל הטכניקה ועל ODATA כעל פרוטוקול ספציפי שמשתמש בטכניקת REST.

    החסרון היחיד של ODATA זה בכל הנוגע ל-binding לפקדים - צריך לעבוד יחסית קשה בשביל לעשות binding נכון לתרחישים מתקדמים. לדוגמה OData תומך ב-paging ע"י query string, אבל לא תמיד ניתן לטעון לפקדים מידע חלקי תוך כדי ביצוע Paging בהם (תלוי מאוד בסביבה).


    Please mark posts as answers/helpful if it answers your question.
    Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
    Visit my blog: http://blogs.microsoft.co.il/blogs/idof

    • סומן כתשובה על-ידי shlomihassan יום רביעי 01 אוגוסט 2012 10:28
    • סימון כתשובה בוטל על-ידי shlomihassan יום רביעי 01 אוגוסט 2012 10:28
    יום שלישי 31 יולי 2012 21:43
    מנחה דיון
  • היי עידו,

    תודה עבור התשובה המהירה

    האמת שאני מעט מבולבל מכיוון שמאז שחקרתי על הפתרונות שמיקרוסופט מציעה בתחום הזה אני מבין שיש 3 שחקנים התחום הזה שליפת מידע ב- 

    1) wcf + rest + dynemic linq - המון עבודה על מנת לספק יכולות שליפה מלאות מעל ה- cache

    2) data service עם reflection provider

    3)  WEBAPI

    לא ברור לי במה לבחור למקרה שלי 
    לא מובן על פי מה לבחור עבודה המקרה שלי כולם יכולים לתת את היכולות אותם אני מחפש

    האם יש לך הצעה במה להשתמש עבור המקרה שלי

    תודה שלומי

    יום רביעי 01 אוגוסט 2012 10:43
  • הי שלומי,

    ראשית, כפי שציינת, שימוש ב-WCF עם dynamic linq ידרוש ממך הרבה עבודה ולכן כפתרון הוא יותר מורכב.

    לגבי שני השחקנים שנותרו - data service או web api נפרוט את זה לשני חלקים:

    1. תמיכה ב-odata - התמיכה של data services ב-odata היא יותר רחבה מזו של web api. מאחר ו-web api היא יחסית חדשה, היא לא תומכת עדיין (אני מקווה שזה ישתנה) בחלק מהפרוטוקול, כגון שימוש ב-projections וב-extend. אם אתה רוצה שאילתות כמה שיותר גמישות, גם בחלק של ה-Select (איך יראה הייצוג) ובגם בחלק של ה-from (שימוש ב-joins), אז data services יותר מתאים

    2. חשיפת השירות לפעולות שאינן OData - במקרה של data services התשתית היא WCF ולכן האפשרות להרחיב את השירות בעצם מאפשרת לך לעשות כל מה ש-WCF נותן לך ברמת contracts (שימוש ב-data contract, service contract וכו'). במקרה של web api, אתה יכול להרחיב את השירות מעבר לתמיכה ב-odata ע"י הוספת פעולות שנגישות באמצעות http verbs.

    אם עיקר הצורך שלך הוא בגמישות השאילתא, מה שמצריך שימוש נרחב ב-odata, הייתי דובק כרגע בטכנולוגיה שמממשת את הפרוטוקול לתומו (data services).


    Please mark posts as answers/helpful if it answers your question.
    Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
    Visit my blog: http://blogs.microsoft.co.il/blogs/idof

    • סומן כתשובה על-ידי shlomihassan שבת 04 אוגוסט 2012 12:47
    שבת 04 אוגוסט 2012 08:42
    מנחה דיון
  • עידו ,

    המון תודה על התשובה 
    זו הייתה הרגשתי על פי המחקר שלי בנושא ורציתי לאשש זאת עם משהו נוסף
    עזרת לי מאוד

    שלומי

    שבת 04 אוגוסט 2012 22:15