Chat Application + Data Base סוג הפרויקט: WinForms Application, Class Libraries. הדרישה: אפליקציית צ'אט בין מחשבים. ידע נדרש: • Delegates & Events • עבודה עם TCP בעזרת המחלקות: TcpClient, TcpListener • Serialization • Threading • עבודה עם טפסים
כיצד האפליקציה תעבוד? במערכת תהיה אפליקציה אשר תותקן אצל משתמש המעוניין להשתתף בצ'אט ולשוחח עם משתמשים אחרים ברשת. לאפליקציה זו נקרא "צד הלקוח”. בעזרת אפליקציית הלקוח המשתמש יוכל לשלוח הודעות לשאר המשתתפים בצ'אט ולקבל מהם הודעות בחזרה.
כיצד אפליקציית צד הלקוח מתקשרת עם מחשבים אחרים ? (שולחת ומקבל הודעות) אפליקציית צד הלקוח לא יכולה לדעת אילו משתמשים נוספים קיימים ברשת (מה כתובת ה- IP שלהם) אשר משתתפים בצ'אט. כאשר אנו רוצים לשלוח הודעה שתגיע לכל המשתתפים, במקום לשלוח את ההודעה לכל המשתתפים (אנחנו הרי לא יודעים מי בכל זמן נתון מחובר לצ'אט) יהיה נבון אם נצור "מוקד" הודעות, אליו נשלח את ההודעה והוא יפיץ את ההודעה שלנו לשאר המשתתפים. על המוקד כמובן לדעת בכל זמן נתון מי כרגע מחובר לצ'אט. כאן נכנסת אפליקציית "צד השרת".
כיצד תעבוד אפליקציית "צד השרת"? יש לכתוב אפליקציה נוספת (צד השרת) שתהווה את מוקד ההודעות. כל משתתף בצ'אט יצטרך להתחבר לשרת ולתקשר מולו. כלומר, נשלח את ההודעות שלנו לשרת, אשר יפיץ אותן לכל שאר המשתתפים, ובחזרה נקבל ממנו את ההודעות שמשתתפים אחרים שלחו דרכו אלינו.
פונקציונאליות: צד הלקוח • האפליקציה תאפשר למשתמש לבחור: o כתובת ה- IP ומספר ה- Port של המחשב המריץ את אפליקציית השרת. o שם משתמש (כינוי), בכדי שמשתמשים אחרים ידעו ממי הם קיבלו את ההודעה. o צבע הגופן, כך שהודעות ממשתתף מסוים יופיעו בצבע שהוא בחר – יש להשתמש ב-Color • האפליקציה תאפשר למשתמש להקליד הודעה ולשלוח אותה לשרת. • האפליקציה תציג את כל ההודעות שהשרת שולח למשתמש. • אפשרות להתנתק ולהתחבר שוב לצ'אט.
אתגר : מערכת צד הלקוח תאפשר משלוח הודעות פרטיות בין משתמשים על ידי שימוש בשם הלקוח שאליו מיועדת ההודעה.
צד השרת • האפליקציה תאפשר למפעיל תוכנת השרת לבחור את כתובת ה- IP ומספר ה- Port של המחשב המריץ את אפליקציית השרת. • בצד השרת יהיה ניתן לראות את שמות כל המשתתפים בצ'אט בכל רגע נתון, בנוסף יהיה ניתן לצפות בהיסטוריה של פעילות ההתחברות וההתנתקות בצ'אט – לכל פריט בהיסטוריה יש לפרט: (1) מה הפעולה (התחברות או התנתקות) (2) מתי (3) מי.
-שינוי שמשפיע גם על צד הלקוח וגם על צד השרת: -1. יש לאפשר אך ורק למשתמשים רשומים להשתמש בשירות. ניתן לרשום משתמש דרך מערכת ה Client, וניתן בנפרד להתחבר עם שם משתמש קיים דרך מערכת ה-client. רישום והתחברות הן שתי פעולות שונות. -שדות משתמש : -• ID -• User name -• Last connection date -• Is Connected
-שינויים שמשפיעים רק על צד השרת: -2. את כל ההודעות אשר נשלחות במערכת יש לשמור ב DB בתבנית הבאה : -• ID -• Message Text -• UserID -• Sent date -• Recipient id (למקרה של שליחת הודעה פרטית) – אתגר
-3. יש לייצר מסכים עבור הServer המאפשרים חיפוש של הודעות על פי מילת חיפוש או תאריך. -4. יש לאפשר חיפוש משתמשים על פי ID או UserName -5. יש לאפשר מחיקה של משתמש.