WCF 4.0 – Kind Attribute & Standard Endpoint

1 בדצמבר 2009

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

WCF 4.0 – Kind Attribute & Standard Endpoint

מבין כל השיפורים בקבצי הקונפיג בגירסה 4 של WCF ( מאמר טוב בנושא ), אני הכי אוהב את ה- KIND. אני ביום יום מתעסק בבנית תשתיות ל-WCF וה-KIND נותן לי דרך להגדיר Endpoint תשתיתי שהמפתח של ה- Service לא צריך להיות מודע לו. לדוגמא : <"endpoint kind="mexEndpoint> כאשר מוסיפים את ה- MexEndpoint השרות שלי מקבל יכולות חדשות שבונה ה- Service לא עשה כלום, וקיבל ע"י הוספת EP תשתיתי יכולות חדשות.

MS נותנות לנו מספר EP תשתיתים אודותם נדון בפוסטים הבאים.

  • mexEndpoint
  •  discoveryEndpoint
  •  announcementEndpoint
  •  udpDiscoveryEndpoint
  •  udpAnnouncementEndpoint
  •  webHttpEndpoint

בפוסט זה אני רוצה להסביר איך אפשר לבנות KIND משלנו או במילים פשוטות StandardEndpoint, ויותר חשוב מזה מה הוא מסוגל לעשות ולמה הוא כל כך טוב לאנשי תשתיות.

KIND טוב לתשתיות !

הוא מאפשר לבוני התשתית לבודד קטע פונקציונלי בתוך EP עם קשר לשרות ( לדוגמא MEX ) מבלי שבונה השרות יהיה מודע לתשתית.

איך ה-KIND עושה את מה שהוא עושה?

כדי להשפיע על ה- Pipeline של WCF הכל צריך להיות בתוך ה- ServiceDescription. ה – KIND למעשה הוא מחלקה שיורשת מ- ServiceEndpoint והוא נכנס ל- ServiceDescription כ- EP לכל דבר. כ- EP הוא יכול להגדיר את הפרמטים הבאים בקובץ ה- CONFIG:

· Address

· Binding

· Contract

· bindingConfiguration

· endpointConfiguration

או במילים אחרות, הוא יכול להגדיר כל אחד ואחד מה- properties של המחלקה ServiceEndpoint, כלומר גם Behaviors. נקודה חשובה להבחנה: SE מסוגל לרדת למטה ( לחוזה ולמתודות ) אך לא לעלות למעלה ל- ServiceDescription.

clip_image002

כתוצאה מכך, כאשר מגדירים למשל את <"endpoint kind = "udpDiscoveryEndpoint> עדיין חייבים להוסיף את ה- Behavior מסוג <serviceDiscovery /> ידנית ל- serviceBehaviors.

clip_image004

איך אפשר לבנות KIND משלנו ?

1. יורשים את המחלקה ServiceEndpoint.

2. יורשים את StandardEndpointElement כדי שיהיה אפשר להשתמש במחלקה שבנינו בסעיף 1 ב- Config File.

3. ב – Config File צריך ללמד את WCF שיש אלמנט חדש.
clip_image006

4. מצ"ב דוגמאת קוד.

אשמח לענות לשאלות לכל מי שרוצה, אני זמין גם בקבוצה שלי בלינקדאין – I Love C# אשמח אם תצטרפו.

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

כתיבת תגובה

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