API באקסס
-
המדריך של avr416 לא לגמרי עדכני מבחינת התמונות אבל עדכני לחלוטין מבחינת התוכן.
אבל אל תימנע מלשאול פה כל שאלה.
אני יעשה לך פה מדריכון אחר קצרצר:
בתפריט File (קובץ)
לחץ על New Project... (פרוייקט חדש)
שם בצד שמאל בחר בעץ בVisual C# ותחתיה בWindows Classic Desktop
בצד הימני בחר בWPF App.
למטה בName שים שם שתבחר באנגלית (תתחיל לכתוב באנגלית, רק אנגלית. גם אם אתה לא יודע תכתוב איות אנגלי למשל AniLomedTichnut או Ani_Lomed_Tichnut).
לחץ על OK.אחרי שהוא גומר לעבוד, לחץ על F5, ותהנה מהתוכנה הראשונה שלך, תכתוב לי שעברת את השלב הזה.
נ.ב. תמיד בכללי לימוד השפות תכנות משתדלים להתרכז קודם בשפה ולא בכלים. אבל אני בעד להתחיל מהדברים המדליקים שנותנים מוטיבציה. לכן התחלתי באופן שונה מהמדריך ההוא.
פורסם במקור בפורום CODE613 ב29/03/2017 15:09 (+03:00)
-
סתם שאלה (לא להרגיז חלילה)
למה לא להשתמש בוויזואל בייסיק שגם נמצא בעורך ההוא?
מה ייתן לי C# שזה ללמוד את השפה מהתחלה?פורסם במקור בפורום CODE613 ב29/03/2017 15:11 (+03:00)
-
@מצפה לגדול
סתם שאלה (לא להרגיז חלילה)
למה לא להשתמש בוויזואל בייסיק שגם נמצא בעורך ההוא?
מה ייתן לי C# שזה ללמוד את השפה מהתחלה?אתה צודק שVB נוחה בהרבה למתחילים. אבל יש לה חסרונות בלימוד בשלב המתקדם, שאז הגמישות שלה מבלבלת.
אם היית יודע VBA טוב, אז הייתי מבין שאתה רוצה להמשיך כך, אך בגלל שבכל מקרה אתה בשלב לימודי אני מאוד ממליץ לך על השפה בה"א הידיעה.
אבל תוכל בהחלט לבחור בVB, שיקול שלך, גם תוכל אח"כ לעבור לC# בקלות כמו שרוב מתכנתי VB עושים בשלב מסויים.אני מחכה להמשיך במדריך שלי, תעדכן אותי.
פורסם במקור בפורום CODE613 ב29/03/2017 15:14 (+03:00)
-
@דוד ל.ט.
המדריך של avr416 לא לגמרי עדכני מבחינת התמונות אבל עדכני לחלוטין מבחינת התוכן.
אבל אל תימנע מלשאול פה כל שאלה.
אני יעשה לך פה מדריכון אחר קצרצר:
בתפריט File (קובץ)
לחץ על New Project... (פרוייקט חדש)
שם בצד שמאל בחר בעץ בVisual C# ותחתיה בWindows Classic Desktop
בצד הימני בחר בWPF App.
למטה בName שים שם שתבחר באנגלית (תתחיל לכתוב באנגלית, רק אנגלית. גם אם אתה לא יודע תכתוב איות אנגלי למשל AniLomedTichnut או Ani_Lomed_Tichnut).
לחץ על OK.אחרי שהוא גומר לעבוד, לחץ על F5, ותהנה מהתוכנה הראשונה שלך, תכתוב לי שעברת את השלב הזה.
נ.ב. תמיד בכללי לימוד השפות תכנות משתדלים להתרכז קודם בשפה ולא בכלים. אבל אני בעד להתחיל מהדברים המדליקים שנותנים מוטיבציה. לכן התחלתי באופן שונה מהמדריך ההוא.
דוד, לו הייתי יודע שיש לך כזו מוטיבציה ללמד C#, הייתי יותר משקיע בזה ומשגע אותך
אולי אחרי פסח, כרגע אני מתקדם בפייטון.פורסם במקור בפורום CODE613 ב29/03/2017 15:15 (+03:00)
-
@מצפה לגדול
טוב התקנתי,
מה הלאה?
אני לא יודע אנגלית...
יש לך איזה פרוייקט שעיזור לי להבין מי הרביץ למי ומי נגד מי שם?
או לפחות איזו הדרכה למושגים ראשונים?אם אתה בנטפרי, תעבור על המדריכים פה
http://video-tov.ml/?tag=לימוד סי שארפפורסם במקור בפורום CODE613 ב29/03/2017 17:56 (+03:00)
-
@דוד ל.ט.
המדריך של avr416 לא לגמרי עדכני מבחינת התמונות אבל עדכני לחלוטין מבחינת התוכן.
אבל אל תימנע מלשאול פה כל שאלה.
אני יעשה לך פה מדריכון אחר קצרצר:
בתפריט File (קובץ)
לחץ על New Project... (פרוייקט חדש)
שם בצד שמאל בחר בעץ בVisual C# ותחתיה בWindows Classic Desktop
בצד הימני בחר בWPF App.
למטה בName שים שם שתבחר באנגלית (תתחיל לכתוב באנגלית, רק אנגלית. גם אם אתה לא יודע תכתוב איות אנגלי למשל AniLomedTichnut או Ani_Lomed_Tichnut).
לחץ על OK.אחרי שהוא גומר לעבוד, לחץ על F5, ותהנה מהתוכנה הראשונה שלך, תכתוב לי שעברת את השלב הזה.
נ.ב. תמיד בכללי לימוד השפות תכנות משתדלים להתרכז קודם בשפה ולא בכלים. אבל אני בעד להתחיל מהדברים המדליקים שנותנים מוטיבציה. לכן התחלתי באופן שונה מהמדריך ההוא.
תודה.
איך אני זז שם?שיחקתי קצת ב'קונסול', אבל זה משעמם בלי ויזואלי...
ובמה שאתה הבאת WPF App לאן זזים?
יש שם דאטה בייס או משהו מעניין להתחיל?פורסם במקור בפורום CODE613 ב30/03/2017 15:47 (+03:00)
-
@מצפה לגדול
שיחקתי קצת ב'קונסול', אבל זה משעמם בלי ויזואלי...
ובמה שאתה הבאת WPF App לאן זזים?
יש שם דאטה בייס או משהו מעניין להתחיל?אם הרצת וראית חלון חמוד, מצויין.
כעת עליך ללמוד טיפונת קוד וOOP.
יש לך בצד שמאל חלון בשם Solution Explorer. (בעברית סייר ה"פתרון" כשפתרון הכוונה פרוייקט אב שיש לו פרוייקט בן אחד או יותר - במקרה שלך אחד).
יש שמה את הקבצים של הפרוייקט - עליך להכיר אותם. אבל לפני שאני ממשיך חובה עלי לדעת אם אתה בC# או בVB. תגיד לי ואמשיך.פורסם במקור בפורום CODE613 ב30/03/2017 17:39 (+03:00)
-
@דוד ל.ט.
@מצפה לגדול
שיחקתי קצת ב'קונסול', אבל זה משעמם בלי ויזואלי...
ובמה שאתה הבאת WPF App לאן זזים?
יש שם דאטה בייס או משהו מעניין להתחיל?אם הרצת וראית חלון חמוד, מצויין.
כעת עליך ללמוד טיפונת קוד וOOP.
יש לך בצד שמאל חלון בשם Solution Explorer. (בעברית סייר ה"פתרון" כשפתרון הכוונה פרוייקט אב שיש לו פרוייקט בן אחד או יותר - במקרה שלך אחד).
יש שמה את הקבצים של הפרוייקט - עליך להכיר אותם. אבל לפני שאני ממשיך חובה עלי לדעת אם אתה בC# או בVB. תגיד לי ואמשיך.אם תשמע שאני בVB לא תענה לי?...
סתם, תודה על העזרה, אני בC#.
(אם כי דווקא ניסיתי לשחק בVB וזה מגרש הרבה יותר מוכר לי,
אבל הבנתי שזה שפה שעבר זמנה)
ומה המשמעות של הסימנים }, ו;?
איפה צריך לשים אותם ואיפה לא?
בVB היה Function, ו End Function,
פה אני מבין שזה שונה,
תודה.פורסם במקור בפורום CODE613 ב30/03/2017 20:24 (+03:00)
-
אני גם מעודד לעבור ל C# מ VB.
אני זוכר לפני שנים רבות שדוד אמר לי ש"אומרים" ש C# יותר קריאה מ VB.
אמרתי לו שטויות זה לא נכון. VB יותר קריאה.
היום שאני ב JS (תחביר דומה ל C#/C) אני אומר לכם ש C# יותר קריאה מ VB.
וכנראה שעל פי האמת זה תלוי מה אתה רגיל.פורסם במקור בפורום CODE613 ב30/03/2017 21:29 (+03:00)
-
גם לעניין מסדי נתונים?
אני רגיל למסדי נתונים של אקסס, ששם לבנות מערכת לישיבה שלמה זה לא הרבה עבודה.
ואיך זה יהיה בC#?פורסם במקור בפורום CODE613 ב30/03/2017 21:33 (+03:00)
-
@מצפה לגדול
גם לעניין מסדי נתונים?
אני רגיל למסדי נתונים של אקסס, ששם לבנות מערכת לישיבה שלמה זה לא הרבה עבודה.
ואיך זה יהיה בC#?C# זה במקום הVBA, לא במקום המסד. ותתחיל להרגיע כי אם כל דקה תשאל על המסד, אני ישלח אותך לשם חזרה
@מצפה לגדול
ומה המשמעות של הסימנים }, ו;?
איפה צריך לשים אותם ואיפה לא?
בVB היה Function, ו End Function,
פה אני מבין שזה שונה,
תודה.לאט! אתה בC#. אין בעיה.
תראה את הsolution explorer הוא מכיל את מבנה הקבצים בפרוייקט מבחינה לוגית - כלומר זה לא נראה ככה בתיקיה אלא זה מסודר לפי ההקשר והתפקיד.
אני אתן לך סקירה ברפרוף על הפריטים. הראשון בעץ זה ה"פתרון", תחתיו יש את ה"פרוייקט" (אמור להיות בסמל של השפה C#, וזה מלמד שכל הפרוייקט חייב להיות בשפה אחת). "פתרון" יכול להכיל כמה פרוייקטים מכל סוג.
תחת הפרוייקט יש ת-מ-י-ד:
Properties
זה מאפייני הפרוייקט, בעיקר בנושא ההידור (יצירת הפלט המוכן שזה קובץ בר הרצה או אתר וכו') המילה הידור נקראת גם קומפילציה שזה באנגלית compilation.
Reference
רשימת תלויות של הפרוייקט בספריות של אחרים ובעיקרם סביבת .net (סביבה שבלעדיה התוכנה שתיצור לא תרוץ, מותקנת על כל מחשב מויסטה ואילך, ומכילה רבבות ספריות שימושיות).שאר הפריטים בפרוייקט הם משתנים, ובמקרה שלך נמתקד בשתיים:
app.xaml שמייצג שתי קבצים: אחד כשמו app.cs ובן זוגו app.xaml.cs
MainWindow.xaml אותו דבר, מייצג קובץ נוסף ששמו MainWindow.xaml.csטוב אני חייב להפסיק אני ימשיך מאוחר יותר להסביר.
פורסם במקור בפורום CODE613 ב30/03/2017 22:12 (+03:00)
-
@דוד ל.ט.
טוב אני חייב להפסיק אני אמשיך מאוחר יותר להסביר.
תודה, אני מחכה
פורסם במקור בפורום CODE613 ב30/03/2017 22:15 (+03:00)
-
@דוד ל.ט.
שאר הפריטים בפרוייקט הם משתנים, ובמקרה שלך נמתקד בשתיים:
app.xaml שמייצג שתי קבצים: אחד כשמו app.cs ובן זוגו app.xaml.cs
MainWindow.xaml אותו דבר, מייצג קובץ נוסף ששמו MainWindow.xaml.csאז שתי הפריטים האלו כעת יהיו בפוקוס שלנו. הראשון (app) הוא אחד לכל "אפליקציית WPF" שזה סוג הפרוייקט בו התחלנו.
הפריט הזה למעשה מייצג מחלקה (תכף אפרש מה זה מחלקה) בשם Application שהיא מנהלת את האפליקציה - היא גם נקודת ההתחלה של התוכנית כשהיא רצה.השני, הוא מייצג את החלון שרואים כשמקישים F5. יכולים להיות כמה סוגי חלונות באפליקציה (כל סוג יכול להופיע כמה פעמים שרוצים בחיי האפליקציה אבל הסוג הוא אותו אחד). בפרוייקט שלנו יש רק אחד והוא הראשי - א. נטען אוטומטית בהפעלת התוכנה (לאפוקי האחרים שנטענים רק כשתכתוב קוד לטעון אותם) ב. סגירתו סוגרת את התוכנה כולה. שמו מסמל על כך כי main זה ראשי.
פתח את הקוד של MainWindow.xaml.cs ונתחיל לשחק.
הקוד נראה ככה (כמעט), חסר קצת בהתחלה כמה שורות:using System.Windows; namespace ProjectName { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } }
יש בקוד הזה כמה מקטעים. אין צורך להבין כלום בינתיים, אבל אני לא אמנע מסיקור עיתונאי:
הקטע הראשן זה using שזה טכניקה לקיצור הקלדה (בקוד שלי מחקתי את רובם, בשביל שייכנס פה בקלות).
אח"כ מגיעים בלוקים - קטעים שמתוחמים ע"י {} שזה המקבילה של C# לEnd של VB.
הבלוקים האלה, 3 במספרם, הם שלושה סוגים. האב הוא namespace שזה טכניקה לסידור נוח של הקוד שקשורה לusing דלעיל, הבן class זה מחלקה (שזה אבן הבניין של C#) אני אסביר על זה בהמשך. הבלוק הכי פנימי זה מתודה (sub של VB) מסוג בנאי (counstractor) - שוב, אל תנסה להבין כי זה לא חשוב כעת.כעת תשכח את כל ההקדמות העיתונאיות וניגש לתכלס:
בC# אין משמעות לשורות. כלומר מבחינת הביצוע תוכל לכתוב את כל הקוד בשורה אחת (ברררר..). מה שמפריד בין פקודה לפקודה זה נקודה פסיק (;) אם היית יודע כמה אלפי שורות קוד כתבתי בVB ואיך היה קשה לי להתרגל...
נכתוב שורה ראשונה, תשים שורה חדשה תחת שורה 12, ותכתוב שמה:Title = "מתי נתחיל כבר לעשות משהו עם מסדי נתונים";
תריץ (F5 או הסמל הירוק בסרגל הכלים) ותעדכן אותי שאתה אחרי.
פורסם במקור בפורום CODE613 ב31/03/2017 00:52 (+03:00)
-
OK
תודה!פורסם במקור בפורום CODE613 ב31/03/2017 10:56 (+03:00)
-
כעת נעשה כמה שלבים ברציפות:
א. נקבע משתנה. בVB כותביםdim shem_sheba_li as string
וזה אומר שהקצנו מזהה לישות מסוג "מחרוזת תווים". המזהה הוא "shem_sheba_li" והמילה dim היא מילת מפתח שמשמעותה הצהרת מזהה חדש.
בC# כותבים בדרך אחרת:string shem_sheba_li;
בלי הצהרה אין משתנה (בשונה מאפשרות שהייתה בVBA).
אחרי שהצהרנו, אפשר להציב בו ערךshem_sheba_li = "טקסט.... ממש ממש מיוחד";
אחרי שהצבנו בו ערך ניתן להשתמש בו כערך להשמה במאפיין Title דלעיל שמקבל כערך string:
Title = shem_sheba_li;
כעת נעיז ונלמד על פונקציה. בC# אין sub (פרוצדורה) וfunction, אלא הכל אותו תחביר.
מה ההבדל בVB בין sub לfunction? ההבדל היבש הוא שfunction יכול להחזיר ערך, וsub לא.
בC# בשביל לציין פונקציה מציינים ככה:
כותרת עם א. ערך מוחזר (מספר או קטסט) ב. שם שמזהה את הפונקציה ג. סוגרים שבהם יכולים להיות 0 או יותר ארגומנטים
אחרי זה בלוק {} שבתוכו יכולות להיות כמה משפטים (שורה הנגמרת בנקודה פסיק) שעושים כל מה שרוצים, חייבת להיות בכל מקרה החזרת ערך תואם למה שהוצהר בכותרת.
דוגמא:string my_first_function() { return "הערך המוחזר"; }
כתבתי בשורה אחת לנוחות.
הפקודה return מחזירה ערך ומסיימת את הפונקציה. אחרי מגיע טקסט שזה string וזה תואם את מה שהצהרנו שmy_first_function מחזיר מחרוזת תווים (למה "מחרוזת תוים" ולא סתם טקסט? מה זה האקדמאיות הריקה הזו? עוד תלמד לראות שזה פני המציאות ולא מילים גבוהות ריקות אבל עוד חזון למועד - בתכלס תוכל להגיד טקסט).איך כותבים פרוצדורה = sub = בלוק פקודות שלא מחזיר שום ערך? אותו דבר כמו פונקציה רק במקום ערך מחזר כותבים void שמשמעותו כלום.
אז נכתוב כעת כזו פונקציה:void ktov_koteret() { Title = "טקסט זה הוצב ע\"י פונקציית void"; }
(הקו הלוכסן מבטל את המשמעות של המרכאות כסיום מחרוזת).
תוסיף את השורה האחרונה מתחת לבלוק של public MainWindow(),
ותחליף או תוסיף מתחת לשורה שכתבנו קודם (בפוסט הקודם), בשורה הזו:ktov_koteret();
תריץ ותבדוק שהכל הולך טוב. אם כן נתקדם (שאלות בשמחה, אבל רק על מה שלמדנו לא על איך לעשות או על המשך הלימוד)
נוסיף לפונקציה שלנו ארגומנטים כך שהיא תיראה ככה:void ktov_koteret(string parameter_ma_lasim_bakoteret) { Title = parameter_ma_lasim_bakoteret; }
ואת שורת הקריאה תשנה לככה:
ktov_koteret("זה כבר העברת רך כפרמטר");
שים לב שהצהרת ארגומנט דומה להצהרת פונקציה: סוג ערך שאחריו מגיע מזהה לשימוש עם הערך בגוף הפונקציה.
כעת נערבב מה שלמדנו:public MainWindow() { InitializeComponent(); string po_ani_sam_text; po_ani_sam_text = "מתי נתחיל כבר לעשות משהו עם מסדי נתונים"; shimuy_coteret_hachalon(po_ani_sam_text); } void shimuy_coteret_hachalon(string parameter_kolsheu) { Title = parameter_kolsheu; }
כעת שאלות אם יש, ו/או אישור התקדמות.
פורסם במקור בפורום CODE613 ב31/03/2017 12:03 (+03:00)
-
OK
פורסם במקור בפורום CODE613 ב31/03/2017 12:19 (+03:00)
-
האות הראשונה כן.
(כך לפי איזה ספר שאני קורא תוך כדי)
הרבה יתקן אותי אם אני טועה?פורסם במקור בפורום CODE613 ב31/03/2017 12:35 (+03:00)