‎.NET

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש


Gnome-edit-clear.svg ערך זה זקוק לעריכה: ייתכן שהערך סובל מפגמים טכניים כגון מיעוט קישורים פנימיים, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו.
אתם מוזמנים לסייע ולתקן את הבעיות, אך אנא אל תורידו את ההודעה כל עוד לא תוקן הדף. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה.
.NET
הלוגו של .NET
מפתח Microsoft
תאריך השקה 13 בפברואר 2012 (לפני 12 שנים, 8 חודשים ו־8 ימים)
גרסה אחרונה 4.5.2 (מופיע כ-4.5.51209.34209) ב־6 במאי 2014 (לפני 5 חודשים ו־15 ימים)
מערכת הפעלה Microsoft Windows
רישיון Proprietary; FCL under Microsoft Reference Source License
קטגוריה שכבת תוכנה
microsoft.com/net

דוט נט של מיקרוסופט היא שכבת תוכנה שבאמצעותה מקודדות ומורצות תוכנות אחרות. שכבה זו מספקת לתוכנות שרצות מעליה סט כלים ושירותים, כך שהתוכנות לא צריכות לדאוג לדברים כמו ניהול זיכרון, שליטה בהתקני קלט/פלט, הצפנת הודעות וכו', אלא מקבלות שירותים אלה על מגש של כסף. כך המתכנתים רק צריכים לכתוב את הלוגיקה העיקרית של התוכנה שלהם, במקום לבזבז את זמנם בכתיבת ספריות עזר שאינן מטרתה העיקרית של התוכנה. בנוסף, שימוש בשכבת תוכנה זו (הנקראת גם "סביבה וירטואלית") מאפשר להריץ תוכנות על פלטפורמות שונות (חלונות, לינוקס, יוניקס, טאבלטים, טלפונים סלולריים וכו') בלי צורך בשינוי קוד התוכנה, כי התוכנה "מדברת" רק עם הסביבה הווירטואלית, וסביבה זו כבר יודעת איך לדבר עם הפלטפורמה הספציפית. NET. הושקה ב־11 בפברואר 2002.

הפלטפורמה מספקת ממשק פיתוח אחיד הן לתוכנות שולחניות, הן לפיתוח אתרי Web, והן לתוכנות לסמארטפונים המריצים Windows Phone ואף מאפשרת לקשור ביחד התקני מחשוב שונים ולשתף ביניהם יישומים ואף מידע. היא פותחה כמענה תחרותי לארכיטקטורת J2EE מבית סאן מיקרוסיסטמס. בתחום התוכנות השולחניות, מספקת NET. ספרייה אחידה לפיתוח על כל משפחת מערכת ההפעלה חלונות, החל מגרסת Windows 98, במקום ממשקי תכנות היישומים של מערכות ההפעלה עצמן, או ספריית MFC.

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

שמה של הטכנולוגיה נלקח מסיומת האינטרנט שמציינת אתרים רשתיים, וזאת מכיוון שהטכנולוגיה פותחה בשיא בועת האינטרנט (אם כי גרסתה הרשמית הראשונה, גרסה 1.0, הוכרזה לאחר התפוצצות הבועה, בתחילת 2002). פלטפורמת פיתוח זו תומכת במגוון רב של שפות תכנות, ביניהן: #C, ‏VB.NET, ‏F , שפת BOO ו-Vala. וגם מחוללי יישומים כדוגמת PowerBuilder מאפשרים עבודה בסביבה זו.

יכולות ומרכיבים עיקריים[עריכת קוד מקור | עריכה]

סקירה חזותית של ה-CLI
  • תפעוליות בינית (Interoperability): מאחר שלעתים קרובות נדרשת יכולת לתקשר עם תוכניות ישנות שלא פותחו ב-.NET, סביבת ה-.NET מאפשרת להשתמש בפונקציונליות שמבוצעת בתוכניות שפותחו מחוץ לסביבת .Net. גישה לרכיבי COM מתאפשרת באמצעות מרחבי השם System.Runtime.InteropServices ו-System.EnterpriseServices וניתן לגשת לפונקציונליות אחרות באמצעות P/Invoke.
  • מנוע Common Runtime: שפות התכנות בסביבת .Net מהודרות לשפת ביניים הנקראת Common Intermediate Language ‏(CIL). במימוש של מיקרוסופט שפת ביניים זו אינה מפורשת אלא מהודרת בזמן ריצה (just-in-time; JIT) לשפת מכונה. צירוף רעיונות אלו נקרא Common Language Infrastructure, שאותו מימשה מיקרוסופט ב-Common Language Runtime ‏(CLR).
  • אי תלות בשפה: סביבת .Net משתמשת בתקן הנקרא Common Type System ובקיצור CTS. תקן זה מגדיר את כל טיפוסי הנתונים והמושגים התכנותיים הנתמכים על ידי ה-CLR וכיצד הם יתקשרו או לא יתקשרו זה עם זה. הודות לכך מאפשרת סביבת .NET המרת מופעים של טיפוסים בין שפות שונות שנתמכות ב-.NET.
  • ספריית מחלקות בסיסית (Base Class Library): ספריית מחלקות בסיסית הנקראת Base Class Library ובקיצור BCL היא חלק מ-Framework Class Library, היא ספרייה של מחלקות המספקת פונקציונליות שניתן להשתמש בהן בכל שפות ה-.NET. ספרייה זו עוטפת פונקציות נפוצות כדוגמת קריאה וכתיבה של קבצים, ציור גרפי, תקשורת עם מסד נתונים ועבודה עם XML.
  • ניידות: התכנון של סביבת ה-.NET מאפשר ברמת התאוריה לפתח תוכנה שלא תהיה תלויה בפלטפורמה ושתעבוד במגוון פלטפורמות ללא צורך בהתאמת הקוד לכל אחת ואחת. מיקרוסופט פיתחה תמיכה בסביבת .NET בעבור Windows, Windows CE, ו-Xbox 360. הפירוט של ה-Common Language Infrastructure, של C# ושל C++/CLI מוגדר הן בתקני ECMA והן בתקני ISO, וכך יכולות חברות צד שלישי לפתח מימוש מתאים לסביבת .NET ולשפות התכנות שלה שיתאים לפלטפורמות אחרות.

פריסה ושכיחות[עריכת קוד מקור | עריכה]

מיקרוסופט הגישה את טכנולוגיית NET. לגופי תקינה בינלאומיים, והיא תוקננה בתקן ECMA-335. טכנולוגיה זו שואבת חלק ניכר מעקרונותיה ואף מעיצוב מערכת האובייקטים שלה, מטכנולוגיית Java. בין היתר, היא משתמשת ברכיב החוצץ בין התוכנית המתבצעת לבין מערכת ההפעלה, המכונה Common Language Runtime (בקיצור CLR), ושפתו נקראת Common Intermediate Language (בקיצור CIL, "שפת ביניים משותפת"). רכיב זה מהווה למעשה מכונה וירטואלית, המפרידה בין החומרה לתוכנה. רכיב זה מאפשר לפתח בשפות שונות ועבור מעבדים שונים, כל עוד השפה מהודרת לקובץ היכול לרוץ על ה־CLR. רכיב נוסף מהדר בדיוק בזמן (JIT - Just In Time) מהדר בזמן ריצה את קוד הביניים של המכונה הווירטואלית לקוד מכונה טבעי של המחשב הנוכחי, ומעניק לישום יכולת להתבצע במהירות הקרובה למהירות של יישום שהודר לקוד מכונה טבעי, וזאת בדומה לשפת Java.

מיקרוסופט עצמה פיתחה את שפת C#‎, וכמו כן יצרה מחדש את שפת Visual Basic תוך התאמתה באופן מלא לעקרונות תכנות מונחה עצמים, והיא מכונה Visual Basic .NET עבור סביבת NET. כמו כן יצרה מיקרוסופט גרסה של Java המכונה J#‎, גרסה של JavaScript המכונה JScript ואף גרסת "מנוהלת" (Managed) ל-C++‎ המכונה Managed C++‎. יצירת גרסאות NET. לשפות קיימות נועדה להקל על מפתחים שכבר היו מורגלים בשפות אלה, להגר אל סביבת NET. בנוסף, חברות אחרות יצרו גם הן גרסאות של שפות אחרות שניתן להדר אל סביבת CLI, כמו למשל גרסת NET. של שפת דלפי.

אחת מתוצאות תקנונו של ה־CLI היא שגם גופים אחרים רשאים לפתח מימוש של תקן זה. ואכן, קיימים לפחות שני פרויקטים בקוד פתוח לפיתוח סביבות NET. שלא יהיו קשורות למערכות החלונות דווקא - פרויקט מונו של חברת נובל ופרויקט דוט-גנו (GNU.). שני פרויקטים אלה מפתחים גרסאות של ה-CLI עבור מערכות לינוקס ומק, ומערכות אחרות, כך שבדומה לטכנולוגיית Java, תוכנה שפותחה על פלטפורמה אחת תרוץ על כל פלטפורמה אחרת עליה מותקנת ה־CLI. במקביל שפות פיתוח אופיינות לקוד הפתוח יצאו בגרסאות שעברו התאמה לסביבת הפיתוח של הדוט נט, כך למשל PHP יצאה בגרסה העונה לשם Phalanger.

גרסאות[עריכת קוד מקור | עריכה]

התפתחות הדוט נט
גרסא מספר גרסא תאריך הפצה Visual Studio מופץ כברירת מחדל במערכת ההפעלה
1.0 1.0.3705.0 13 בפברואר 2002 Visual Studio .NET ללא
1.1 1.1.4322.573 24 באפריל 2003 Visual Studio .NET 2003 Windows Server 2003
2.0 2.0.50727.42 7 בנובמבר 2005 Visual Studio 2005 Windows Server 2003 R2
3.0 3.0.4506.30 6 בנובמבר 2006 Windows Vista, Windows Server 2008
3.5 3.5.21022.8 19 בנובמבר 2007 Visual Studio 2008 Windows 7, Windows Server 2008 R2
4.0 4.0.30319.0 12 באפריל 2010 Visual Studio 2010 ללא
4.5 4.5.50709.17929 15 ב אוגוסט 2012 Visual Studio 2012 Windows 8, Windows Server 2012

יתרונות[עריכת קוד מקור | עריכה]

  • תמיכה בפרוטוקול SOAP של ה-W3C, שמאפשר הפעלה ללא קשר בשפה מעל פרוטוקול HTTP.
  • תמיכה בחלוקת משימות בין שרת לתוכנת לקוח כגון דפדפן.
  • תמיכה בקריאה וכתיבה של קובצי XML
  • ממשק משתמש גרפי חלונאי. במימוש של מיקרוסופט, מדובר למעשה במעטפת לפונקציות ה-C של Windows עצמה האחראיות ליצירת ממשק המשתמש. במימוש של "מונו", ממשק המשתמש מצויר על ידי אובייקט ציור הגרפיקה של NET.
  • קריאה ל-API של מערכת ההפעלה מתוך התוכנית בצורה כמעט טבעית. פעולה לא טריוויאלית, בהתחשב בכך שה-API כתוב בשפת C, בעוד שפות NET. הן שפות אחרות, מוכוונות עצמים.
  • אובייקטים משותפים שבהן משתמשות כל השפות התומכות בסביבה זו.

חסרונות[עריכת קוד מקור | עריכה]

  • אחד החסרונות העיקריים של הסביבה שקוד ההרצה שהיא יוצרת הוא קוד ביניים קריא, שאפשר בכלים פשוטים להמירו לכל שפה בדוט נט, כך שההגנה על אלגוריתם והזכויות של מפתחיו, כמו גם חסימת עקיפת מנגנון בקרת רישוי תוכנה, הפכה להיות קשה יותר, מאשר בקוד מהודר של שפה טבעית. שיטת ההגנה המרכזית נקראת עירפול, שבו תוכן הקוד משונה לאותיות ומספרים חסרי משמעות. חברת מיקרוסופט נתנה את דעתה על בעיה זו ומשחררת עם חבילת הסטודיו גרסת לייט של תוכנה בשם Dotfuscator, שיעודה לערפל קובץ הרצה (EXE,‏ DLL) שקומפל בסביבת הדוט נט.
  • יש הטוענים נגד הנפח הרב של גרסאות ההרצה בגרסאות 3 של הדוט נט. בחלק במערכות ההפעלה כדוגמת חלונות XP, כדי להריץ במחשב לקוח אפילו אפליקציה קטנה של הדוט נט בגודל של 100K שמשתמשת בתקשורת WCF, יש צורך להוריד ולהתקין קובצי הפצה בנפח של מאות מגהבייט. (מכיוון שכל גרסה נבנתה אחת על השנייה, מי שרוצה להשתמש בתכונות המעודכנות בגרסה 3.5. צריך להתקין גרסה 3 בנפח 50 מגהבייט, גרסה 3.5 בנפח 197 מגהבייט ועוד 250 מגהבייט ל-NET 3.5 SP1). בגרסה 4 של הדוט בעיה זו תוקנה בחלקה (ונפח קובץ ההפצה שאיננו תלוי בגרסאות קודמות, עומד על 48 מגהבייט ל-x86 + x64). פתרון נוסף לבעיה זו הוצג בגרסה 4 של NET. והציע אפשרות לריצה תחת תת-קבוצה של רכיבי מערכת המכונה Client Profile. ריצה בפרופיל זה מוגבלת לשימוש בספריות התשתית הנפוצות באפליקציות לקוח ובכך מאפשרת הקטנה של נפח קובצי ספריות ההרצה שהמשתמש מחויב להתקין.
  • בעוד שטבעם של התקנים שמרכיבים את ה-NET. להיות חוצי פלטפורמות, יישום מלא של NET. נתמך רק על Windows. מיקרוסופט מספקת תמיכה מוגבלת עבור פלטפורמות אחרות כגון XNA עבור Xbox 360 ועבור Windows Phone 7 , Silverlight , ו-Mac OS X. קיימים מימושים אלטרנטיבית של CLR, ספריות מחלקת בסיס ומהדרים (לפעמים של ספקים אחרים), אך בזמן שכל המימושים הללו מבוססים על אותם סטנדרטים, הם עדיין מימושים שונים עם רמות שונות של שלמות, בהשוואה לגרסה המלאה של ה-NET. המשווקת בידי מיקרוסופט.

ניהול זיכרון[עריכת קוד מקור | עריכה]

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

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]