11-12-2007, 17:18
|
|
אדמין לשעבר
|
|
חבר מתאריך: 25.10.01
הודעות: 20,292
|
|
1. IL זה ראשי תיבות של שפת ביניים (Intermediate Language). זוהי השפה שאליה כל אפליקציה דוט.נטית "מתקמפלת" (המילה מתקמפלת הוא לא נכון, שכן קומפילציה היא תהליך שהתוצר שלו הוא קובץ בינארי בשפת מכונה שמתאים למערכת ההפעלה ולמעבד עליו הוא רץ). הDLL הדוט.נטי שבעצם מכיל את השפה הזאת (שדומה בתחביר שלה לASSEMBLY) אח"כ עובר ע"י הJIT קומפילציה שמתאימה אותו לסביבה שבה הוא רץ. זו הסיבה שאפליקציות בדוט.נט ניתן להריץ גם על מקינטוש ועל יוניקס.
2. כאן אנחנו נכנסים למושג שנקרא CLS. מדובר על הגדרות השפה. הCLS (Common Language Specifications) מגדיר את התחביר של הדוט.נט. התחביר הזה מגדיר כמה דברים שמגבילים את המפתח (לדוגמא, הוא לא מבדיל בין אותיות רישיות לקטנות, בדומה לVB). לכן, מי שמפתח בC# למעשה מקמפל קוד שאינו תואם את הגדרות השפה הבסיסיות לגמרי. כך לדוגמא, אם נייצר תהליך אוטומטי (בדומה לרפלקטור של לוץ' רודר) שיתרגם קוד IL לCS ולVB, תהיה לו בעיה. במקרה הזה הגדירו את הAttribute ששמו CLSCompliant שמחייב את האפליקציה שמתקמפלת להיות תואמת לתקן. הוא מוגדר בAssemblyInfo.cs. במקרה שתשתמש בו גם בVB וגם בC#, תקבל קוד זהה בין שתיהן. בלעדיו (וזו ברירת המחדל) אתה עשוי למצוא אח"כ הבדלים בIL.
_____________________________________
דורון
|