Microsoft Foundation Classes – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
ברוקולי (שיחה | תרומות)
מאין תקציר עריכה
Matanyabot (שיחה | תרומות)
מ בוט: מתקן הפניות
שורה 1:
[[מחלקה (תכנות)|מחלקות]] התשתית של [[מיקרוסופט]], '''Microsoft Foundation Classes''', או '''MFC''', זו [[ספרייה (תכנות)|ספרייה]] של מיקרוסופט, ה[[עטיפה (ספר)|עוטפת]] במחלקות [[C++‎]] את ה-[[ממשק תכנות יישומים|API]] של [[microsoft Windows|חלונות]], ומהווה [[מסגרת ישום]][http://en.wikipedia.org/wiki/Application_framework] לפיתוח בסביבת חלונות. מוגדרות בה מחלקות עבור מרבית [[ידית|ידיות]] הטיפול ב[[אובייקט (הנדסת תוכנה)|אובייקטים]] של חלונות וכן עבור חלונות מוגדרים מראש (predefined windows) ו[[פקד (מחשוב)|פקדים]] שכיחים.
 
==היסטוריה של MFC==
שורה 7:
 
===בתחרות עם בורלנד===
OWL) [[Object Windows Library]]) היה מוצר מתחרה שהוצג בידי [[בורלנד]] בערך באותו זמן ועוצב עבור המהדר [[טורבו C]] של בורלנד. לזמן מה היה OWL פופולרי יותר מאשר MFC, מכיוון שהוא נאמן יותר לקווים המנחים של [[תכנות מונחה עצמים]]. אך למרות זאת הוא איבד נתח שוק, עקב הפיגור בהוצאת עדכוני OWL למאפייניה החדישים של חלונות וכאשר בורלנד שיחררה גרסה חדשה של [[סביבת פיתוח משולבת|סביבת פיתוח]], חסרת תאימות למהדורות הקודמות, היה זה עקב כך, שנאלצה לרכוש ממיקרוסופט [[מספר סידורי (תוכנה)|רישיון]] לשימוש ב-MFC.
 
===שינויים במאקרויים של ++C===
כאשר MFC הוצגה, מיקרוסופט הרחיבה את תחביר ++C עם סדרות של [[מאקרו|מאקרויים]] לניהול הודעות (messages), [[טיפול בחריגיםבחריגות (תכנות)|חריגות]] (exceptions) וטיפול דינמי בעצמים בזמן ריצה (dynamic class instantiation), של חלונות. השינויים התחביריים להודעות חלונות נועדו לצמצום ה[[זיכרון מחשב|זיכרון]] הנדרש, באמצעות מניעת שימוש מיותר בטבלה וירטואלית (vtable) וסיפקו מבנה יותר קונקרטי למגוון הכלים המסופקים בסביבת הפיתוח [[Visual C Plus Plus++|Visual C++‎]] לעריכת ולתמרון קוד בלא לנתח את כל השפה. המאקרויים לטיפול בהודעות החליפו את מנגנון ה[[פונקציה|פונקציות]] הווירטואליות שסופק על ידי ++C. מכיוון שכמה ורסיות של מאקרויים הכשילו את בדיקת הטיפוס הנעשית בידי המהדר, השימוש בהם נעשה מקור פורה ל[[באג|באגים]] עבור משתמשי MFC. המאקרויים המיישמים סִדרות (serialization), תמיכה בחריגות וטיפוסי זמן ריצה דינמיים (dynamic runtime types), היו פחות בעייתיים והקדימו יכולות להרחבות של שפה מבוססת תקן, במספר שנים. גרסות [[32 ביט|32־ביט]] של MFC, עבור [[Microsoft Windows|Windows NT 3.1]] ו[[מערכת הפעלה|מערכות הפעלה]] מאוחרות יותר של חלונות, שמרו על מאפיינים אלו לשם תאימות.
 
===התפתחויות מאוחרות===
MFC קודמה מאוד בתחילה בידי מיקרוסופט. אך הבולטות שניתנה לה, הועמדה מאוחר יותר בצילן של מספר [[טכנולוגיה|טכנולוגיות]] אחרות. ההתפתחות באה כשנעשה ברור ש־MFC מורכבת מדי עבור מתכנתים רבים ולכן שמה מיקרוסופט דגש רב יותר על [[Visual Basic]] ככלי פיתוח לתוכנה מסחרית. כיום, היורש של Visual Basic ושל MFC הוא [[Windows Forms]][http://en.wikipedia.org/wiki/Windows_Forms] ב [http://en.wikipedia.org/wiki/Rapid_application_development]RAD) [[Rapid application development]]). של [[.NET|Net.]]. תוכניות C++
[[Native]][http://en.wikipedia.org/wiki/Native_mode] יכולות להשתמש ב־Windows Forms באמצעות הוספת [http://en.wikipedia.org/wiki/C_Plus_Plus_Managed_Extensions][[C Plus Plus Managed Extensions|C++ Managed Extensions]].
 
שורה 21:
*מהצד המעשי, יתרונה העיקרי של MFC הוא באספקת מודל [[תכנות מונחה עצמים]] ל־APIs של חלונות.
*יתרון נוסף של MFC הן עטיפות טיפוסי ++C עבור טיפוסי נתונים משויכי־משאב נפוצים של חלונות, שמספקים סגירת טיפול אוטומטית, כאשר האובייקט שייצר אותן חורג מה[[תחום (תכנות)|תחום]].
*MFC מספקת מסגרת עבודה של '''מסמך/תצוגה''' (Document/View) ליצירת ארכיטקטורה מבוססת MVC) [[model View Controller|תבנית Model-View-Controller]]).
 
==מחלקות MFC==
שורה 43:
 
בכדי לשלוט ב־MFC יש לדעת את הנושאים הבאים:
* שפת התכנות [[C (שפת Cתכנות)|C]]. למרות שיש הסוברים כי לאחר שפותחה ++C, לימוד שפת C הינו מיותר. אך כדי להכיר את Windows API שכתוב ב־C - וש־MFC מהווה מעטפת ++C עבורו - נחוץ לדעת גם שפה זו.
* שפת התכנות [[C Plus Plus++|C++‎]], משמשת בלימוד ובכתיבת הקוד של MFC.
* מערכת ההפעלה [[microsoft Windows|חלונות]]. נדרש ידע כללי על מרכיביה של מערכת הפעלה זו.
* הכרת [[יישום]] חלונות והדרך בה הוא מקושר למערכת ההפעלה חלונות, עליה הוא פועל.
* הכרה בסיסית של תכנות ב־[[ממשק תכנות יישומים|API]] של חלונות.
* ידיעת סביבת הפיתוח [[Visual C Plus Plus++|Visual C++‎]], על תפריטיה השונים ועל חלקי חלון הפרויקט שנבנה בה.
* ספריית MFC ודרך השימוש בה.