Menu
עברית Русский
מכללת פרקטיקיו
- מתחילים ללמוד חינם -
קורסי תכנות / סייבר / ניהול רשת

Advanced Features - Collection Types

קורסים למנהלי רשת מסלול מנהלי רשת
עם התמחות בשרתי מיקרוסופט
מסלול סייבר והאקינג - Hacking מסלול תקשורת ואבטחת מידע
Cisco CCNA & FortiGate & Checkpoint
מומחה ווירטואליזציה
VMware & Hyper-V
מסלול לינוקס ו-DevOps מומחה ענן של אמזון - AWS מומחה ענן של מיקרוסופט - Azure מומחה ענן של גוגל - GCP מומחה שרתי SCCM - System Center
של מיקרוסופט לארגונים גדולים
קורסי תכנות מסלול Full Stack דוט-נט
יסודות התכנות
מסלול Full Stack דוט-נט
צד שרת - Backend
מסלול Full Stack דוט-נט
צד לקוח - Frontend
מסלול Full Stack Node.JS קורסי תכנות נוספים
Java / Python / PHP
מפתח אפליקציות - אנדרואיד - אייפון מפתח משחקי מחשב - Unity מפתח תוכנות לוונדוס - WinForms מסלול DBA - דטה אנליסט
התמחות במסדי נתונים – SQL
בדיקות תוכנה - QA בדיקות תוכנה - QA - אוטומציה בדיקות תוכנה - QA - בדיקות ידניות בדיקות תוכנה - QA - קורסים נוספים המלצות תלמידים על PracticU
Advanced Features - Collection Types

בשיעור זה לומדים כיצד WCF מעביר טיפוסי אוספים (Collection Types) בין השירות ללקוח: נחשף חוזה שמחזיר Hashtable ומערך כפולים, רואים שה-Hashtable מתקבל בצד הלקוח כמילון מסוג Dictionary, ובהגדרות המתקדמות של ה-Service Reference בוחרים את טיפוס האוסף שייווצר בפרוקסי.

שלבי העבודה המוצגים בשיעור:

1. פתיחת הפתרון: נפתח פתרון בשם Collection Types ובו שלושה פרויקטים, CalculatorLibrary עם ICalculator.cs ו-References, ConsoleHost עם Program.cs, ו-WinFormConsumer עם Service References, app.config, CalculatorForm.cs ו-Program.cs, ובקובץ החוזה נצפה המאפיין [serviceContract] מעל public interface ICalculator עם ההערה Interface = Contract.
2. שינוי שם הקבצים: בעת שינוי שם הקובץ הופיע דיאלוג ששאל אם לבצע rename לכל ההפניות לאלמנט הקוד ICalculator בפרויקט, אושרה התשובה החיובית, וכך הקובץ ICalculator.cs הפך ל-IArrayServices.cs והקובץ Calculator.cs הפך ל-ArrayServices.cs.
3. החוזה המעודכן: ב-IArrayServices.cs נצפה public interface IArrayServices עם המאפיין [serviceContract], שאליו נוספה פעולה חדשה [OperationContract] double[] Reverse(double[] array) לצד הפעולות הקיימות Sub, Mul, Div ו-Avg.
4. פעולה להחזרת אוסף: הוספה השורה using System.Collections, ולחוזה נוספה פעולה נוספת עם [OperationContract] שמחזירה ArrayList בשם Get1To10Numbers, אשר בהמשך שונתה להחזיר Hashtable.
5. מימוש הופך מערך: בקובץ ArrayServices.cs שהמחלקה ArrayServices מממשת את IArrayServices מולאו הגופים במקום NotImplementedException, וב-Reverse נכתבה לולאה שמחליפה איברים משני קצוות המערך: tmp = array[i], אחר כך array[i] = array[array.Length - 1 - i], והשורה המשלימה מציבה את הערך השמור באינדקס הנגדי, ובסוף הפעולה מבוצע return array.
6. מימוש ה-Hashtable: ב-Get1To10Numbers נכתב Hashtable hashtable = new Hashtable() ועשר שורות הוספה מ-hashtable.Add(1, "One") ועד hashtable.Add(10, "Ten"), ובסוף מוחזר ה-hashtable.
7. עדכון המארח: ב-Program.cs של ConsoleHost עודכנה הכתובת ל-http://127.0.0.1:6065/ArrayServices, נשמר ה-BasicHttpBinding, נכתבו Type contract = typeof(IArrayServices) ו-myHost = new ServiceHost(typeof(ArrayServices)), בוצעו AddServiceEndpoint, הגדרת ServiceMetadataBehavior עם HttpGetEnabled והוספה ל-Behaviors, ולאחר Open הודפסו בלולאת foreach הכתובות של נקודות הקצה, כאשר בשלב זה ה-MEX עדיין היה זמין בניגוד לשיעור הקודם.
8. ניסיון הוספה כושל: נפתח חלון Add Service Reference מול הכתובת http://127.0.0.1:6065/WSDL, והניסיון הראשון נכשל בהודעת שגיאה על כך שלא נמצאו שירותים בכתובת, משום שהמארח עדיין לא רץ.
9. הוספה מוצלחת: לאחר הפעלת המארח נמצאו בדיאלוג השירות ArrayServices והחוזה IArrayServices עם הפעולות Get1To10Numbers ו-Reverse, הוצגה ההודעה 1 service(s) found at address http://127.0.0.1:6065/WSDL., שם המרחב הוגדר ArrayServicesDemo, והרפרנס נוסף תחת Service References.
10. צריכת ה-Hashtable בלקוח: ב-btnAdd_Click של CalculatorForm.cs נכתב ArrayServicesClient service = new ArrayServicesClient() וטולטיפ של IntelliSense הציג שהפעולה מוגדרת בפרוקסי להחזיר מילון מטיפוס Dictionary עם מפתח וערך מטיפוס object, כלומר ה-Hashtable שהשירות מחזיר מתקבל בצד הלקוח כמילון, ונכתבו Hashtable hashtable = service.Get1To10Numbers(), string data = "", ולולאת foreach (object key in hashtable.Keys) שמצברת data += key + " --> " + hashtable[key] + "\n", ואז service.Close() ו-MessageBox.Show(data).
11. הגדרות מתקדמות: הרפרנס הוסר ונוסף מחדש דרך הדיאלוג, ובמסך Service Reference Settings שנפתח מכפתור Advanced נצפו Access level מסוג Public, סימון של Reuse types in referenced assemblies, ותיבת Collection type עם רשימת טיפוסי אוסף שבהם List, Dictionary, SortedList, Hashtable ועוד, כאשר List הודגש, ותחת Dictionary collection type נצפה System.Collections.Generic.Dictionary.
12. הרצה ראשונה: הבנייה הסתיימה עם Build succeeded, במעצב הטפסים נבחר הכפתור שכותרתו Show Hashtable Values, ובהרצה הציג ה-MessageBox את השורות 10 --> Ten, 9 --> Nine וכך הלאה עד 1 --> One, כלומר סדר המנייה של ה-Hashtable היה הפוך.
13. כפתור שני עם רשימה: במעצב נוסף כפתור נוסף, וב-btnShowListValues_Click נכתבו ArrayServicesClient service = new ArrayServicesClient(), רשימה מטיפוס List של double בשם numbers עם הערכים 1.1, 2.2, 3.3 ו-4.4, ורשימת תוצאה מטיפוס List של double שמתקבלת מ-service.Reverse(numbers), ולולאת foreach (double num in result) על התוצאה.
14. לולאת for וסיכום הרצה: הלולאה שונתה ללולאת for שרצה מאפס ועד result.Count עם data += result[i] + "\n", ובהרצה הציג ה-MessageBox את הערכים 4.4, 3.3, 2.2 ו-1.1 בסדר הפוך, בהתאם לפעולת ה-Reverse של השירות.

בסיום השיעור השירות חשף פעולות שמחזירות מערך כפולים הפוך ו-Hashtable שנבנה מ-1 עד 10, הלקוח צרך את ה-Hashtable כמילון Dictionary והציג את הזוגות בסדר הפוך, והודגם שימוש בהגדרות המתקדמות של ה-Service Reference לבחירת טיפוס האוסף שנוצר בפרוקסי.
סקר שוק נכון לתאריך – 01/09/2011

הסבר קצר על שיטת הלימוד אונליין

צילמנו בסרטונים את כל ההרצאות של הקורס, כי ללמוד בכיתה לא נוח וגם יקר.
קורס בכיתה עולה מעל מ-17 אלף ₪ ואצלנו בסרטונים רק 350 ש"ח לחודש.
אם משהו לא ברור בסרטון תמיד אפשר להתקשר למרצה ולדבר איתו ישירות בטלפון.
המרצה זמין גם בווטסאפ וגם בצ'אט באתר המכללה.


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

לסיכום: יש מרכז בחינות מורשה בתל-אביב, שכולם מגיעים אליו מכל הארץ ועושים שם מבחני הסמכה הבינלאומיים ומי שעובר את המבחן מקבל את התעודה ולא חשוב להם איפה ואיך למדת.


מה לעשות אם לא מבינים משהו בסרט?

פשוט מאוד, מתקשרים למכללה ומדברים ישירות עם המרצה. אפשר גם להתכתב עם המרצה במייל או בווטסאפ או בצ'אט באתר.


האם יש לכם כיתות לימוד רגילות?

להשכיר כיתה + לשלם משכורת למרצה = 17 אלף ש"ח עלות הקורס לתלמיד.
אצלנו בסרטונים מקבלים אותו חומר לימוד
ואפילו יותר, כי אין מגבלה של זמן למרצה (כמו שיש בכיתה),
בנוסף מקבלים בדיוק אותה תעודה בינלאומית,
כי מבחן הוא מבחן אחיד לכולם המתבצע במרכז בחינות מורשה
והכי חשוב שמקבלים את אותם המרצים, שמלמדים בכיתה רגילה,
רק שצילמנו אותם בסרטונים
והמחיר בסרטונים רק 350 ש"ח ולא 17 אלף כמו בכיתה רגילה.



קיימים במכללה שני מסלולי לימוד:
  1. מסלול לימוד חופשי, בלי תעודה, להעשרת ידע כללי.
    מסלול לימוד חופשי, מתאים בעיקר למי שעובד בתחום וכבר יש לו תעודות והוא לא רוצה עוד מבחנים ותעודות.

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

בסיום קורס ניתן לקבל תעודות הבאות:
1. תעודה של המכללה - מותנה בהגשת פרוייקט גמר בסוף הקורס
2. תעודת הסמכה בינלאומית של מיקרוסופט העולמית - מותנה במעבר מוצלח של מבחן הסמכה חיצוני של מיקרוסופט (מבחן זה מתבצע כל שבוע במרכז בחינות מורשה בתל-אביב)


מידע כללי:
1. חומר הלימוד מורכב ממאגר עצום ומסודר מאוד של סרטים מקצועיים, הניתנים לצפיה מהבית. מאגר זה כולל הרצאות מוקלטות בעברית בצורה מסודרת ע"י המרצים הטובים ביותר. רשימת הסרטים המלאה נמצאת בתפריט בצד ימין.
2. כל סטודנט במכללה מקבל שם וסיסמה לצורך גישה לשרת הקבצים שלנו.
השרת מכיל את כל התוכנות הדרושות ללימוד וכן חומר עזר
3. הקורסים מועברים בהתאם לסילבוסים של החברות המובילות: Microsoft, Cisco