WCF 4 (Windows Communication Foundation) for Beginner – part 9

23 בינואר 2011

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


 


ללמוד WCF פרק 9 – כתיבה של web style services חלק 2

 

 

נושאים בפרק 9:


סיכום הפרק הקודם.

שימוש במנגנון ה – caching של asp.net

הפעלה של השירות בעזרת ScriptManager גם כשהשירות יושב בשרת אחר מהדף המשתמש בו.

בפרק הבא.

 

 

סיכום הפרק הקודם.


בפרק 8 ראינו כיצד ניתן לכתוב web style services בעזרת הגדרה של webHttp behavior והגדרת המאפיינים שלו, כמו כן הכרנו את System.ServiceModel.Web.dll שמגדיר את WebGet ו – WebInvoke שבעזרתם ניתן לקבוע כיצד יהיה ניתן להפעיל את השירות ובאיזה פורמטים (JSON, XML), בפרק זה נראה עוד כמה דברים מעניינים בנושא.

 

 

שימוש במנגנון ה – caching של asp.net


אחד הדברים הבנויים באפליקצייות web זה מנגנון ה – caching, מסתבר שכתובים web style service ניתן להשתמש במנגון המובנה של asp.net כדי לייעל את ביצועי השרת.

 

ראשית יש להוסיף ל – service את AspNetCompatibilityRequirements כך:

 



[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]


public class Calc : ICalc


 


 


למתודות שאנחנו רוצים להשתמש ב – cache יש להוסיף את AspNetCacheProfile כך:

 



[AspNetCacheProfile("CalcCache")]


public int Add(int a, int b)


{


    return (a) + (b);


}


 


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

 



<system.web>


  <caching>


    <outputCacheSettings>


      <outputCacheProfiles>


        <add name="CalcCache" duration="30" varyByParam="*"/>


      </outputCacheProfiles>


    </outputCacheSettings>


  </caching>


</system.web


 


המאפיין duration משפיע כמה שניות המידע ישמר במטמון, והמאפיין varyByParam משפיע כמה עותקים של הפניות ישמרו בזיכרון (כגרע הגדרתי * מכיוון שאני רוצה שכל פנייה לשירות אם פרמטרים אחרים ב – query string יחזירו תוצאות שונות, למידע נוסף)

 

דבר נוסף שצריך להוסיף בקונפיג (בתוך system.ServiceModel) הוא את המקטע הבא:

 



<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>


 

 


לאחר השינויים הללו גלישה לשירות עם אותם פרמטרים בטווח של 30 שניות תחזיר את התוצאה של החישוב מתוך המטמון ולא תפעיל את השירות לחינם.

 

 

הפעלה של השירות בעזרת ScriptManager גם כשהשירות יושב בשרת אחר מהדף המשתמש בו.


בפרק 7 ראינו כיצד אפשר להפעיל את השירות מ – javascript בעזרת ScriptManager, כידוע ל – AJAX יש חיסרון אחד – והוא – שלא ניתן להפעיל WebService ב – AJAX כשה – WebService ממוקם בשרת אחר מאשר הדף שמנסה להפעיל אותו, (פיתרון חלקי לבעייה)

ב – WCF אפשר לפנות לשירות מרוחק בעזרת ההגדרה הבאה בקונפיג:

 



<webHttpBinding>


  <binding crossDomainScriptAccessEnabled="true">


  </binding>


</webHttpBinding>


 



<endpointBehaviors>


  <behavior>


    <webHttp />


    <enableWebScript  />


  </behavior>


</endpointBehaviors>


 


(כמובן שכל חלק צריך להיות במקום המתאים בקונפיג)

 

 

בפרק הבא.


בפרק הבא נראה דוגמא ליצירת RSS Feed בעזרת WCF.

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

כתיבת תגובה

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