PracticU

Client-Server Projects

בלי כתוביותעם כתוביות
PracticU › קורס WCF - תקשורת למתקדמים בדוט-נט › Client-Server Projects
מילון מושגים:
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.
שירות - תוכנה שרצה ברקע ומספקת פונקציונליות לרכיבים אחרים, לרוב ללא ממשק משתמש, ומופעלת אוטומטית עם המערכת.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
ממשק - נקודת מגע בין רכיבים: ממשק משתמש שבו אדם מפעיל תוכנה, או ממשק תכנותי שמגדיר אילו פעולות רכיב אחד חושף לאחר.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.

Client-Server Projects
בשיעור בונים את פרויקטי מערכת ה-WCF בתוך Solution אחד, ומראים איזה תפקיד ממלא כל פרויקט.
הפרויקטים
1. ספריית השירות (Calculator Library): פרויקט Class Library שמייצר DLL. הוא מכיל את הממשק ICalculator עם הפונקציות add, subtract, multiply ו-division, ומחלקה Calculator שמממשת אותו. גם הממשק וגם המחלקה הם public.
2. ההוסט (ConsoleHost): פרויקט Console Application שמצרף את ה-DLL וחושף את השירות.
3. הצרכן (WinForm Consumer): פרויקט Windows Forms שמתחבר לשירות דרך ההוסט. הוא לא מצורף ל-DLL באופן רגיל, אלא דרך Add Service Reference בשלב מאוחר יותר.
הגדרת ההפעלה
1. פרויקט מסוג Class Library לא ניתן להרצה ישירה, ולכן הוא לא יכול להיות פרויקט ההפעלה.
2. בתכונות ה-Solution בוחרים Multiple startup projects, כך שההוסט רץ ראשון והצרכן אחריו.
הכנה לחשיפה
ממשק השירות חייב להיות public, וכל מחלקה שמשמשת את השירות צריכה להיות public גם היא. ההכנה הזאת היא הבסיס לשלבי החשיפה שבאים אחריה.
השיעור הבא בקורס: Console Self Host

פרקי ההרצאה: Client-Server Projects

  1. 00:00

    פרויקטי Solution של מערכת WCF

  2. 00:54

    יצירת ספריית DLL עבור השירות

  3. 02:11

    הגדרת פעולות החשבון בממשק

  4. 02:48

    מימוש המחלקה Calculator

תמלול ההרצאה: Client-Server Projects

הטקסט המלא של הדקות הראשונות בהרצאה «Client-Server Projects» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:20

    כעת אנחנו הולכים לראות אילו פרויקטים משתתפים במערכת של Client Server של WCF. בגלל שיש לי פה מספר פרויקטים, הדבר הראשון שפתחתי זה קובץ Solution Rack.

  2. 00:32

    זה מאפשר לי להגדיר תיקייה שבתוכה היו כל הפרויקטים, וקובץ SLN ששולט על כל הפרויקטים. אם אני לוחץ עליו דאבל קליק הוא אמור לפתוח לי את כל הפרויקטים בוויז'ל סטודיו בבת אחת, מפני שכל הפרויקטים השונים האלה קשורים לאותה מערכת,

  3. 00:46

    והמערכת הזאת נבנית ב-WCF. הדבר הראשון שאני מוסיף ל-Solution זה פרויקט חדש ואני מוסיף New Project.

  4. 00:56

    הפרויקט הראשון, כמו שראינו בווידאו הקודם, Class Library מייצרת לי DLL. בואו נניח שאני יוצר פרויקט שמתאר לי קלקולטור ואני כותב Calculator Library וזה השם של ה-DLL שהוא בעצם ה-Service שלי.

  5. 01:18

    עכשיו, המערכת יצרה לי פרויקט DLL, אני רואה שיש לי קלאס אחת. הדבר הראשון שאני עושה, אני משנה את הקלאס הזאת ל-Interface. בואו נקרא לאינטרפייס הזה iCלקולטור, נשנה את השם ל-iCלקולטור גם בקוד ומקלאס נשנה ל-interface.

  6. 01:43

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

  7. 02:03

    אז כל מחלקה שיש לי בשירות קודם כל יש לי איזשהו אינטרפייס, שחושף אותה החוצה. אז בואו נחשוב איזה פונקציות אני רוצה בתוך האינטרפייס.

  8. 02:12

    ואני רוצה שתהיה לי פונקציה public, מחבירה double, נקראת add, מקבלת double, num1, double, num2.

  9. 02:27

    נשכפל את הפונקציה הזאת כך שתהיה לי פה גם subtract, multiply ו-division. וכעת יש לנו אינטרפייס שחושף את הפונקציונליות שהשירות רוצה לחשוף לעולם.

  10. 02:41

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

  11. 02:58

    קלאס הזאת צריכה להיות public בכדי להיחשף מחוץ לdll וכמובן צריכה לממש את האינטרפייס i-קלקולטור ובואו נממש את הפונקציות פה אני רוצה להחזיר את num1 ועוד num2 כאן אני רוצה להחזיר את num1 פחות num2 יש לנו כאן כפל ויש לנו כאן חילוק וסיימתי להגדיר את הקלאס שמממשת את האינטרפייס וכעת הקלאס הזאת

לקורס המלא: קורס WCF אונליין בדוט-נט

ההרצאה הקודמת: רכיבי Client-Server ב-WCF

ההרצאה הבאה: Console Self Host

הרצאות קשורות מקורסים אחרים

  • Client-Server Architecture - חלק 1
  • הדגמה של NAP Client
  • עבודה עם מספר פרויקטים - Multiple Projects - DLL
  • Linux Container on Server 2019

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • פרויקט מעשי ב-#C - תוכנת צייר
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C