סרוויסים: wcf, webapi, odata וכו'
שלום וברכה.
1. תיאור המקרה
המקרה פשוט מאד: יישום שרת-לקוח, כשהלקוח הוא WPF. אני מפתח את השרת והלקוח באותו מחשב, באותו סולושיין, ואחר כך פורס את הסרוויס לIIS, ואת הקליינט למחשב היעד.
א. בתחילה בניתי את הסרוויס בWCF, ועשיתי בקליינט סרוויס-רפרנס. הכל טוב ויפה.
ב. אחר כך רציתי להוסיף כלכולייטד פרופרטיז למודלים, וזה לא אפשרי אם המודלים מוגדרים בסרוויס. [הסרוויס-רפרנס יוצר בקליינט מודלים עצמאיים, שאינם מכירים את הקוד של המודלים שבסרוויס]
לכן הוספתי פרוייקט שלישי - DAL - שבו מוגדרים המודלים, והוספתי רפרנס גם לסרוויס וגם לקליינט לפרוייקט הDAL.
גם זה עבד טוב ויפה, אם כי שאינני יודע האם זו הדרך הסטנדרטית.
ג. כל זה היה טוב ונוח כאשר הסרוויס היה בעיקר דוחות מנורמלים ומעובדים. אבל עכשיו אני צריך להוסיף גם גישה למודלים עצמם, CURD, ובעיקר תמיכה בLINQ.
למשל: בקליינט יש טופס טרנזקציות, והמשתמש יכול לפלטר לפי תאריך, סטטוס, שם וכו'. הפילטרים אמורים לעבור לסרוויס, שיפלטר את הORM.
השאלה שלי איך לעשות את זה.
2. דיון
ד. מחיפוש ברשת למדתי שיש דבר שנקרא OData שאמור לספק את הפונקציונליות הזו, והשילוב של זה בתוך WCF נקרא WCF Data Services, שהיום הוא כבר מיושן ולא מפותח. במקום זה, עדיף להשתמש בWebApi.
ה. פה בפורום, היה לא מזמן דיון בענין, ומשום מה זה הוצג כWebApi vs OData. לכאורה, לפי מה שראיתי, אינם דברים שונים, אלא OData מספק את הפונקציונליות הנדרשת לWebApi.
אודה לכם אם תעשו לי סדר, ותמליצו לי על הגישה הטובה
בברכה ובתודה.
שלום וברכה.
1. תיאור המקרה
המקרה פשוט מאד: יישום שרת-לקוח, כשהלקוח הוא WPF. אני מפתח את השרת והלקוח באותו מחשב, באותו סולושיין, ואחר כך פורס את הסרוויס לIIS, ואת הקליינט למחשב היעד.
א. בתחילה בניתי את הסרוויס בWCF, ועשיתי בקליינט סרוויס-רפרנס. הכל טוב ויפה.
ב. אחר כך רציתי להוסיף כלכולייטד פרופרטיז למודלים, וזה לא אפשרי אם המודלים מוגדרים בסרוויס. [הסרוויס-רפרנס יוצר בקליינט מודלים עצמאיים, שאינם מכירים את הקוד של המודלים שבסרוויס]
לכן הוספתי פרוייקט שלישי - DAL - שבו מוגדרים המודלים, והוספתי רפרנס גם לסרוויס וגם לקליינט לפרוייקט הDAL.
גם זה עבד טוב ויפה, אם כי שאינני יודע האם זו הדרך הסטנדרטית.
ג. כל זה היה טוב ונוח כאשר הסרוויס היה בעיקר דוחות מנורמלים ומעובדים. אבל עכשיו אני צריך להוסיף גם גישה למודלים עצמם, CURD, ובעיקר תמיכה בLINQ.
למשל: בקליינט יש טופס טרנזקציות, והמשתמש יכול לפלטר לפי תאריך, סטטוס, שם וכו'. הפילטרים אמורים לעבור לסרוויס, שיפלטר את הORM.
השאלה שלי איך לעשות את זה.
2. דיון
ד. מחיפוש ברשת למדתי שיש דבר שנקרא OData שאמור לספק את הפונקציונליות הזו, והשילוב של זה בתוך WCF נקרא WCF Data Services, שהיום הוא כבר מיושן ולא מפותח. במקום זה, עדיף להשתמש בWebApi.
ה. פה בפורום, היה לא מזמן דיון בענין, ומשום מה זה הוצג כWebApi vs OData. לכאורה, לפי מה שראיתי, אינם דברים שונים, אלא OData מספק את הפונקציונליות הנדרשת לWebApi.
אודה לכם אם תעשו לי סדר, ותמליצו לי על הגישה הטובה
בברכה ובתודה.