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

Advanced Features - Reuse 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 - Reuse Types

בשיעור זה לומדים על אפשרות Reuse Types בהגדרות ה-Service Reference של WCF: במקום שהפרוקסי ייווצר עם מחלקה משוכפלת משלו, מסמנים להשתמש מחדש בטיפוסים מתוך ספריית ה-References, וכך הלקוח והשירות עובדים מול אותה מחלקה משותפת.

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

1. יצירת הפתרון: נוצר פתרון בשם Reuse Types עם ארבעה פרויקטים, BusinessEntitiesLibrary שבו נפתח קובץ Class1.cs חדש, CalculatorLibrary עם ICalculator.cs ו-Calculator.cs, ConsoleHost עם Program.cs, ו-WinFormConsumer עם Service References, app.config, CalculatorForm.cs ו-Program.cs.
2. מחלקת העסקים: בקובץ NumberInfo.cs תחת המרחב BusinessEntitiesLibrary נכתבה public class NumberInfo עם שלושה מאפיינים אוטומטיים, Number מטיפוס int, ו-IsPositive ו-IsEven מטיפוס bool.
3. הרחבת החוזה: ב-ICalculator.cs נצפו המאפיין [serviceContract] מעל public interface ICalculator עם ההערה Interface = Contract, חמש הפעולות Add, Sub, Mul, Div ו-Avg שכל אחת מקבלת שני מספרים כפולים, ופעולה חדשה עם [OperationContract] בשם GetNumberInfo שמקבלת מספר שלם ומחזירה NumberInfo.
4. מימוש השירות: ב-Calculator.cs הוספה השורה using BusinessEntitiesLibrary, ובמחלקה public class Calculator : ICalculator מומשו הפעולות, כאשר Add מחזירה num1 + num2, Avg מחזירה (num1 + num2) / 2.0, ו-GetNumberInfo יוצרת NumberInfo חדשה, מציבה ב-Number את המספר שהתקבל, את IsPositive לפי בדיקה אם המספר חיובי ואת IsEven לפי שארית החלוקה ב-2.
5. הפניה לספרייה: דרך חלון Add Reference בלשונית Projects נוספה הפניה מ-CalculatorLibrary לפרויקט BusinessEntitiesLibrary, כך שהשירות יוכל להחזיר את הטיפוס המשותף.
6. הוספת הרפרנס הראשונה: ב-WinFormConsumer נפתח חלון Add Service Reference עם הכתובת http://127.0.0.1:6065/WSDL ושם מרחב ברירת מחדל ServiceReference1, ומכפתור Advanced נפתח מסך Service Reference Settings שבו נצפו Access level מסוג Public, Collection type מסוג System.Array, Dictionary collection type מסוג System.Collections.Generic.Dictionary, וסימון של Reuse types in referenced assemblies כאשר תחילה נבחרה האפשרות Reuse types in all referenced assemblies ולאחר מכן האפשרות Reuse types in specified referenced assemblies עם סימון כל ההרכבות שברשימה, ובהן BusinessEntitiesLibrary.
7. פרוקסי עם מחלקה משוכפלת: ב-Reference.cs שנוצר תחת המרחב WinFormConsumer.CalculatorDemo נצפה שהפרוקסי יצר מחלקה משלו בשם NumberInfo, מסומנת עם DataContractAttribute עם השם NumberInfo, עם שדות פנימיים עבור IsEven, IsPositive ו-Number ועם מימוש של ExtensionData, כלומר שכפול של הטיפוס שכבר קיים בספרייה.
8. קוד הלקוח: ב-btnAdd_Click של CalculatorForm.cs הושאר הקוד הישן עם CalculatorClient service = new CalculatorClient() וקריאה ל-service.Add עם הצגת התוצאה, והטולטיפ של IntelliSense הראה שהפעולה GetNumberInfo של הפרוקסי מחזירה את ה-NumberInfo המשוכפל של הפרוקסי עצמו ולא את זו של הספרייה.
9. שימוש בפעולה החדשה: הקוד ב-btnAdd_Click שוכתב ל-CalculatorClient service = new CalculatorClient(), int num1 = Convert.ToInt32(txtNum1.Text), NumberInfo numberInfo = service.GetNumberInfo(num1) ו-service.Close().
10. הפעלת השימוש מחדש בטיפוסים: דרך Configure Service Reference על הרפרנס הקיים נפתח שוב מסך ההגדרות עם הכתובת http://127.0.0.1:6065/WSDL, סומנה האפשרות Reuse types in specified referenced assemblies, וברשימת ההרכבות סומן גם BusinessEntitiesLibrary לצד ההרכבות המערכתיות, וההגדרות אושרו.
11. פרוקסי משופץ: ב-Reference.cs שנוצר מחדש נצפה שהפעולה GetNumberInfo מחזירה כעת BusinessEntitiesLibrary.NumberInfo, שהחוזה ממומש עם ICalculatorChannel ומחלקת CalculatorClient שיורשת מ-ClientBase והפעולה Add קוראת ל-base.Channel.Add עם num1 ו-num2, כלומר המחלקה המשוכפלת נעלמה והפרוקסי משתמש בטיפוס המשותף מהספרייה.
12. הרצה ראשונה: ב-CalculatorForm.cs התווסף השימוש ב-BusinessEntitiesLibrary, הוזן המספר 123 בשדה First number, הבנייה הסתיימה עם Build succeeded, וה-MessageBox הציג 123, Is Positive: True, Is Even: False.
13. העברת ההצגה לטיפוס המשותף: ב-NumberInfo.cs של הספרייה נוספה פעולה public void ShowData() שמציגה ב-MessageBox את המספר עם ערכי IsPositive ו-IsEven, וב-btnAdd_Click הקריאה להצגה הוחלפה ב-numberInfo.ShowData(), והרצה עם המספר 1234 הציגה 1234, Is Positive: True, Is Even: True, כלומר השינוי בטיפוס המשותף שוקף מיד בצד הלקוח ללא יצירה מחדש של הפרוקסי.

בסיום השיעור הפרוקסי בצד הלקוח נוצר מחדש כך שהוא עושה שימוש מחדש בטיפוס NumberInfo מתוך ספריית BusinessEntitiesLibrary במקום לשכפל אותו, והלקוח קיבל והציג את האובייקט המשותף עם הערכים שחושבו בשירות.
סקר שוק נכון לתאריך – 01/09/2011

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

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


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

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


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

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


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

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



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

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

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


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