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

יצירת Service ב-Windows

קורסים למנהלי רשת מסלול מנהלי רשת
עם התמחות בשרתי מיקרוסופט
מסלול סייבר והאקינג - 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
יצירת Service ב-Windows

בשיעור זה לומדים לארח את שירות ה-WCF כשירות Windows (Windows Service): יוצרים פרויקט Windows Service חדש, מעבירים את קוד האירוח אל OnStart ואל OnStop, מגדירים מתקין (ProjectInstaller), בונים את הפרויקט ב-Release, מתקינים את השירות עם installutil ולבסוף מסירים אותו מהמערכת.

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

1. הוספת הפרויקט: בפתרון Windows Service Host נוסף פרויקט חדש מסוג Windows Service בשם CalculatorWinService מתוך קטגוריית Visual C# > Windows בדיאלוג Add New Project.
2. מחלקת השירות: בקובץ CalculatorService.cs שנוצר אוטומטית הוגדר public partial class CalculatorService : ServiceBase עם בנאי הקורא ל-InitializeComponent ושתי פעולות דריסה: OnStart(string[] args) ו-OnStop.
3. העברת קוד האירוח אל OnStart: הוגדר שדה ServiceHost myHost = null, וכל קוד האירוח מהשיעור הקודם הועבר לתוך OnStart: הכתובת http://127.0.0.1:6065/MyCalculator, יצירת BasicHttpBinding, Type contract = typeof(ICalculator), myHost = new ServiceHost(typeof(Calculator)), AddServiceEndpoint לפי מודל ABC, ServiceMetadataBehavior עם behavior.HttpGetUrl = new Uri("http://127.0.0.1:6065/WSDL") ו-behavior.HttpGetEnabled = true, הוספת ההתנהגות דרך myHost.Description.Behaviors.Add ולבסוף myHost.Open().
4. סגירת השירות ב-OnStop: נכתב if (myHost != null && myHost.State != CommunicationState.Closed) myHost.Close(), כלומר המארח נסגר רק אם הוא אינו null ואינו כבר במצב Closed.
5. הגדרת המתקין: נפתח ProjectInstaller.cs שנוצר אוטומטית ובו שני רכיבים: serviceProcessInstaller1 ו-serviceInstaller1. בחלון ה-Properties של serviceInstaller1 הוגדר DisplayName = CalculatorService ו-StartType = Automatic, כלומר השירות יופעל אוטומטית עם עליית המערכת.
6. בנייה ב-Release: בוצע Rebuild לפרויקט והבנייה הסתיימה בהצלחה, ובתיקייה bin\Release נוצרו CalculatorWinService.exe ו-CalculatorLibrary.dll.
7. העתקה וניסיון הרצה ישיר: קבצי הפלט הועתקו לתיקייה C:\CalculatorService, וניסיון הרצה ישיר של CalculatorWinService.exe הציג את הודעת Windows Service Start Failure: Cannot start service from the command line or a debugger. A Windows Service must first be installed (using installutil.exe) and then started with the ServerExplorer, Windows Services Administrative tool or the NET START command.
8. שורת הפקודה של Visual Studio: נפתח Visual Studio Command Prompt (2010) שמגדיר את סביבת הכלים של Microsoft Visual Studio 2010 x86.
9. התקנה ראשונה שנכשלה: הרצת installutil.exe על CalculatorWinService.exe הציגה חריג System.IO.FileNotFoundException עם ההודעה Could not load file or assembly או אחת מתלותיה, כלומר The system cannot find the file specified.
10. התקנה מוצלחת: בהרצה החוזרת התקין installutil את השירות בהצלחה: נוצר EventLog source בשם CalculatorService ביומן Application, הוצג The Commit phase completed successfully והוצג המשפט The transacted install has completed.
11. הסרת השירות: הרצת installutil.exe עם /u הסירה את השירות מהמערכת: הוצגו Removing EventLog source CalculatorService ו-The uninstall has completed.

בסיום השיעור הוכן פרויקט Windows Service מלא המארח את שירות ה-WCF בתוך OnStart וסוגר אותו ב-OnStop, עם מתקין המגדיר את שם התצוגה וסוג ההפעלה של השירות, והשירות הותקן והוסר בפועל באמצעות installutil.
סקר שוק נכון לתאריך – 01/09/2011

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

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


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

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


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

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


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

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



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

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

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


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

קורס WCF

המונח WCF מבטא את ראשי התיבות הבאות : Windows Communication Foundation. זמן רב טרם הגיח לעולם ה- WCF הייתה אפשרות לכתוב אפליקציות מבוזרת, היינו אפליקציות אשר בצד אחד נמצא הלקוח ובצד השני קיים שרת, ומתקיימת סוג של תקשורת ביניהם. תקשורת זו נערכה במגוון רחב של דרכים, אחת הנפוצות היא לא אחרת מאשר WebService. אולם מלבדה ניתן למצוא עוד לא מעט דרכים כמו למשל Remoting ועוד.

מה זה WCF?

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

מה לומדים במהלך הקורס?

על פניו הכול נשמע מאד פשוט כל כך פשוט עד שנראה כי הצורך להירשם אל קורס WCF הופך למיותר. אולם יש לזכור כי בפועל כל מי שאיננו מכיר WCF יכול להיתקל בלא מעט קשיים בכל הנושא של קובץ הקונפיג. על כן ההמלצה שלנו היא לברר אחר קורס WCF בין אם מקוון ובין אם כזה שמועבר במוסד לימוד על מנת ללמוד כשורה כיצד לעשות שימוש נכון ב- WCF. במהלך הקורס ילמדו התלמידים כמה נושאים מרכזיים כדלקמן: משמעות של Service, מה זה Contract ומה השוני בין ServiceContract ו- OperationContract, כיצד להתחיל לכתוב ב- Service ומה זה DataContract ו- DataMember.

מה זה Service?

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