إطار عمل .NET
إطار عمل .NET (يُنطق " دوت نت ") هو إطار عمل برمجي احتكاري طورته شركة مايكروسوفت ، ويعمل بشكل أساسي على نظام التشغيل مايكروسوفت ويندوز . كان هذا الإطار هو التطبيق السائد لبنية اللغة المشتركة (CLI) حتى تم استبداله بمشروع .NET متعدد المنصات . يتضمن إطار عمل .NET مكتبة فئات ضخمة تُسمى مكتبة فئات الإطار (FCL)، ويوفر إمكانية التشغيل البيني بين لغات البرمجة المختلفة (حيث يمكن لكل لغة استخدام التعليمات البرمجية المكتوبة بلغات أخرى) . تُنفذ البرامج المكتوبة لإطار عمل .NET في بيئة برمجية (على عكس بيئة الأجهزة ) تُسمى وقت تشغيل اللغة المشتركة (CLR). يُعد وقت تشغيل اللغة المشتركة (CLR) آلة افتراضية للتطبيقات ، توفر خدمات مثل الأمان وإدارة الذاكرة ومعالجة الاستثناءات . ولذلك، يُطلق على التعليمات البرمجية المكتوبة باستخدام إطار عمل .NET اسم " التعليمات البرمجية المُدارة ". تُشكل مكتبة فئات الإطار (FCL) ووقت تشغيل اللغة المشتركة (CLR) معًا إطار عمل .NET.
توفر مكتبة FCL واجهة المستخدم ، والوصول إلى البيانات ، والاتصال بقواعد البيانات ، والتشفير ، وتطوير تطبيقات الويب ، والخوارزميات العددية ، والاتصالات الشبكية . يقوم المبرمجون بإنتاج البرامج من خلال دمج شفرة المصدر الخاصة بهم مع إطار عمل .NET ومكتبات أخرى. يُصمم إطار العمل هذا ليُستخدم في معظم التطبيقات الجديدة المُصممة لمنصة ويندوز. كما تُنتج مايكروسوفت بيئة تطوير متكاملة لبرامج .NET تُسمى Visual Studio .
بدأ إطار عمل .NET كبرنامج احتكاري ، على الرغم من أن الشركة عملت على توحيد بنية البرنامج بشكل فوري تقريبًا، حتى قبل إصداره الأول. وعلى الرغم من جهود التوحيد، أعرب المطورون، وخاصةً أولئك المنتمين إلى مجتمعات البرمجيات الحرة والمفتوحة المصدر ، عن قلقهم إزاء الشروط المختارة وآفاق أي تطبيق حر ومفتوح المصدر، لا سيما فيما يتعلق ببراءات اختراع البرمجيات . ومنذ ذلك الحين، عدّلت مايكروسوفت تطوير .NET ليتبع نموذجًا معاصرًا لمشاريع البرمجيات التي يطورها المجتمع، بما في ذلك إصدار تحديث لبراءات اختراعها يعد بمعالجة المخاوف. [ 2 ]
في أبريل 2019، أصدرت مايكروسوفت إطار عمل .NET 4.8، وهو آخر إصدار رئيسي من هذا الإطار كمنتج احتكاري، تلاه إصدار .NET 4.8.1 في أغسطس 2022. ومنذ ذلك الحين، لم تُصدر سوى تحديثات شهرية لإصلاح الأخطاء الأمنية وتحسين الموثوقية لهذا الإصدار. ولا توجد خطط لإجراء أي تغييرات أخرى عليه. وسيستمر تضمين إطار عمل .NET في الإصدارات المستقبلية من ويندوز، وسيستمر في تلقي التحديثات الأمنية، ولا توجد أي خطط لإزالته حتى يوليو 2025. [ 3 ]
تاريخ
بدأت مايكروسوفت بتطوير إطار عمل .NET في أواخر التسعينيات، وكان يُعرف في الأصل باسم خدمات ويندوز من الجيل التالي (NGWS)، كجزء من استراتيجية مايكروسوفت .NET . وبحلول أوائل عام 2000، تم إصدار النسخ التجريبية الأولى من .NET 1.0.
في أغسطس 2000، تعاونت مايكروسوفت وإنتل على توحيد معايير البنية التحتية للغة المشتركة (CLI) ولغة البرمجة C # . وبحلول ديسمبر 2001، تم اعتماد كليهما كمعيارين من معايير ECMA . [ 4 ] [ 5 ] ثم تبعتها المنظمة الدولية للمعايير (ISO) في أبريل 2003. والإصدارات الحالية من معايير ISO هي ISO/IEC 23271:2012 وISO/IEC 23270:2006. [ 6 ] [ 7 ]

رغم امتلاك مايكروسوفت وشركائها براءات اختراع لواجهة سطر الأوامر (CLI) ولغة C#، فإنّ كلاً من ECMA وISO تشترطان إتاحة جميع براءات الاختراع الأساسية للتنفيذ بموجب " شروط معقولة وغير تمييزية ". وقد وافقت الشركات على الالتزام بهذه الشروط، وعلى إتاحة براءات الاختراع مجانًا. مع ذلك، لم ينطبق هذا على جزء من إطار عمل .NET غير المشمول بمعايير ECMA-ISO، والذي يشمل Windows Forms و ADO.NET و ASP.NET . وقد تكون براءات الاختراع التي تمتلكها مايكروسوفت في هذه المجالات قد ثبّطت تطبيقات إطار العمل الكامل من قِبل جهات أخرى غير مايكروسوفت. [ 8 ]
يُعد نظام التشغيل Windows Vista أول إصدار عميل من نظام التشغيل Windows قام بدمج إطار عمل .NET.
في 3 أكتوبر 2007، أعلنت مايكروسوفت عن إتاحة شفرة المصدر لمكتبات .NET Framework 3.5 بموجب ترخيص مايكروسوفت المرجعي للمصدر (Ms-RSL [ a ] ). [ 9 ] أصبح مستودع شفرة المصدر متاحًا على الإنترنت في 16 يناير 2008، وشمل BCL وASP.NET وADO.NET وWindows Forms وWPF وXML. ووعد سكوت غوثري من مايكروسوفت بإضافة مكتبات LINQ وWCF وWF. [ 10 ]
وفرت إصدارات .NET Framework المدمجة والمصغرة من .NET Framework دعمًا لمنصات مايكروسوفت الأخرى مثل ويندوز موبايل وويندوز سي إي وغيرها من الأجهزة المدمجة ذات الموارد المحدودة. كما وفرت تقنية سيلفرلايت دعمًا لمتصفحات الويب عبر الإضافات.

في نوفمبر 2014، أصدرت مايكروسوفت تحديثًا لبراءات اختراعها، موسعةً نطاقها ليشمل ما يتجاوز التزاماتها السابقة. كانت مشاريع سابقة مثل Mono تقع في منطقة رمادية قانونية ، لأن براءات الاختراع السابقة لمايكروسوفت كانت تنطبق فقط على التقنيات الواردة في "المواصفات المشمولة"، بما في ذلك الإصدارين الرابعين من كل من ECMA-334 وECMA-335. أما براءات الاختراع الجديدة، فلا تضع حدًا أقصى لإصدار المواصفات، بل تمتد لتشمل أي تقنيات وقت تشغيل .NET موثقة على MSDN ولم تُحدد رسميًا من قبل مجموعة ECMA، إذا اختار المشروع تطبيقها. يُمكّن هذا Mono ومشاريع أخرى من الحفاظ على تكافؤ الميزات مع ميزات .NET الحديثة التي طُرحت منذ نشر الإصدار الرابع، دون التعرض لخطر دعاوى قضائية تتعلق ببراءات الاختراع بشأن تطبيق تلك الميزات. [ 11 ] مع ذلك، تحافظ براءات الاختراع الجديدة على شرط أن يلتزم أي تطبيق بالحد الأدنى من متطلبات مواصفات واجهة سطر الأوامر (CLI). [ 12 ]
في 31 مارس 2016، أعلنت مايكروسوفت خلال مؤتمر مايكروسوفت بيلد أنها ستعيد ترخيص Mono بالكامل بموجب ترخيص MIT، حتى في الحالات التي كانت تتطلب سابقًا ترخيصًا تجاريًا. [ 13 ] كما أكدت مايكروسوفت التزامها السابق بحماية براءات اختراع Mono، موضحةً أنها لن تستخدم أي "براءات اختراع سارية" ضد أي جهة "تستخدم Mono أو تبيعها أو تعرضها للبيع أو تستوردها أو توزعها". [ 14 ] [ 15 ] وأُعلن أيضًا عن مساهمة مشروع Mono في مؤسسة .NET. وجاءت هذه التطورات عقب استحواذ مايكروسوفت على Xamarin ، الذي بدأ في فبراير 2016 واكتمل في 18 مارس 2016. [ 16 ]
يُبرز البيان الصحفي لمايكروسوفت أن التزامها بدعم منصات متعددة يُتيح الآن استخدام حزمة .NET حديثة مفتوحة المصدر بالكامل من جانب الخادم. [ 2 ] وقد أصدرت مايكروسوفت الشفرة المصدرية لـ WPF وWindows Forms و WinUI في 4 ديسمبر 2018. [ 17 ]
بنيان

البنية التحتية للغة المشتركة
توفر بنية اللغة المشتركة (CLI) منصةً محايدةً للغة لتطوير التطبيقات وتنفيذها. من خلال تطبيق الجوانب الأساسية لإطار عمل .NET ضمن نطاق CLI، لن تكون هذه الوظائف مرتبطةً بلغةٍ واحدة، بل ستكون متاحةً عبر العديد من اللغات التي يدعمها إطار العمل.
بيئة تشغيل اللغة المشتركة
يتضمن إطار عمل .NET بيئة التشغيل اللغوية المشتركة (CLR). تعمل هذه البيئة كمحرك تنفيذ لإطار عمل .NET، وتوفر العديد من الخدمات مثل إدارة الذاكرة ، وأمان الأنواع ، ومعالجة الاستثناءات ، وجمع البيانات المهملة ، والأمان، وإدارة الخيوط . يتم تنفيذ جميع البرامج المكتوبة لإطار عمل .NET بواسطة بيئة التشغيل اللغوية المشتركة (CLR).
تُترجم البرامج المكتوبة لإطار عمل .NET إلى لغة وسيطة مشتركة (CIL)، بدلاً من ترجمتها مباشرةً إلى لغة الآلة . أثناء التنفيذ، يقوم مُترجم فوري خاص بالمعمارية (JIT) بتحويل كود CIL إلى لغة الآلة.
التجمعات
يُخزَّن كود واجهة سطر الأوامر المُجمَّع في تجميعات واجهة سطر الأوامر . وكما هو منصوص عليه في المواصفات، تُخزَّن التجميعات بتنسيق ملف تنفيذي محمول (PE)، وهو تنسيق شائع على نظام ويندوز لجميع مكتبات الارتباط الديناميكي (DLL) وملفات EXE التنفيذية . تتكون كل تجميعة من ملف واحد أو أكثر، ويجب أن يحتوي أحدها على بيان يتضمن البيانات الوصفية للتجميعة. يتضمن الاسم الكامل للتجميعة (وليس اسم الملف على القرص) اسمها النصي البسيط، ورقم الإصدار، واللغة، ورمز المفتاح العام . تُعتبر التجميعات متكافئة إذا كانت تحمل نفس الاسم الكامل.
يمكن لمنشئ التجميعة استخدام مفتاح خاص لتسميتها بشكل قوي . يحدد رمز المفتاح العام هوية مُوقِّع التجميعة في العالم الحقيقي. ولا يمكن توقيع التجميعات التي تحمل نفس الاسم القوي لتجميعة سابقة إلا لمن يعرف مفتاحه الخاص (في نظام التشفير ذي المفتاحين). ويُشترط استخدام التسمية القوية لإضافة التجميعات إلى ذاكرة التخزين المؤقت للتجميعات العامة .
ابتداءً من Visual Studio 2015، تسمح تقنية تجميع .NET Native بتجميع كود .NET لتطبيقات منصة Windows العالمية مباشرةً إلى كود الآلة بدلاً من كود CIL، ولكن يجب كتابة التطبيق إما بلغة C# أو Visual Basic.NET. [ 18 ]
مكتبة الفئات
يتضمن إطار عمل .NET تطبيقًا للمكتبات القياسية الأساسية لواجهة سطر الأوامر (CLI ). تُنظَّم مكتبة فئات إطار عمل .NET (FCL) في تسلسل هرمي من مساحات الأسماء . معظم واجهات برمجة التطبيقات (APIs) المدمجة هي جزء من إحدى مساحتي الأسماء `BCL` System.*أو Microsoft.*`CLI`. تُنفِّذ مكتبات الفئات هذه العديد من الوظائف الشائعة، مثل قراءة الملفات وكتابتها، وعرض الرسومات، والتفاعل مع قواعد البيانات، ومعالجة مستندات XML. تتوفر مكتبات الفئات لجميع اللغات المتوافقة مع واجهة سطر الأوامر . تُنفِّذ مكتبة فئات إطار عمل .NET مكتبة فئات واجهة سطر الأوامر الأساسية (BCL) ومكتبات فئات أخرى - بعضها مُحدَّد من قِبل واجهة سطر الأوامر والبعض الآخر خاص بمايكروسوفت.
تتضمن مكتبة فئات الأعمال الأساسية (BCL) مجموعة فرعية صغيرة من مكتبة الفئات الكاملة، وهي المجموعة الأساسية من الفئات التي تُشكل واجهة برمجة التطبيقات الأساسية لبيئة وقت التشغيل المشترك (CLR). [ 19 ] بالنسبة لإطار عمل .NET، تقع معظم الفئات التي تُعتبر جزءًا من BCL في مجلدات mscorlib.dllو System.dll. System.Core.dllتتوفر فئات BCL في إطار عمل .NET، بالإضافة إلى تطبيقات CLI البديلة، بما في ذلك .NET Compact Framework و Microsoft Silverlight و. NET Core و Mono .
تشير FCL إلى مكتبة الفئات الكاملة المرفقة مع إطار عمل .NET. وهي تشمل BCL، وهي مجموعة موسعة من المكتبات، بما في ذلك Windows Forms و ASP.NET و Windows Presentation Foundation (WPF)، بالإضافة إلى امتدادات لمكتبات الفئات الأساسية ADO.NET و Language Integrated Query (LINQ) و Windows Communication Foundation (WCF) و Workflow Foundation (WF). تُعد FCL أوسع نطاقًا بكثير من المكتبات القياسية للغات مثل C++ ، ومقاربة في نطاقها للمكتبات القياسية للغة Java .
مع ظهور تطبيقات بديلة لواجهة سطر الأوامر (مثل Silverlight)، قدمت مايكروسوفت مفهوم مكتبات الفئات المحمولة (PCL) التي تسمح بتشغيل مكتبة واحدة على أكثر من تطبيق. ومع ازدياد انتشار هذه التطبيقات، لم يعد نهج PCL قابلاً للتوسع (تُعرَّف مكتبات الفئات المحمولة بأنها نقاط التقاء واجهة برمجة التطبيقات بين تطبيقين أو أكثر). [ 20 ] وكخطوة تطويرية تالية لمكتبات الفئات المحمولة، تم إنشاء مكتبة .NET القياسية بأثر رجعي استنادًا إلى واجهات System.Runtime.dllبرمجة التطبيقات الموجودة في UWP وSilverlight. ويُشجع مطورو تطبيقات واجهة سطر الأوامر الجديدة على استخدام إصدار من المكتبة القياسية، مما يسمح لهم بتشغيل مكتبات الطرف الثالث الموجودة دون الحاجة إلى إنشاء إصدارات جديدة منها. وتتيح مكتبة .NET القياسية تطورًا مستقلاً لطبقات نموذج المكتبة والتطبيق ضمن بنية .NET. [ 21 ]
NuGet هو مدير الحزم لجميع منصات .NET. يُستخدم لاسترداد مكتبات الطرف الثالث إلى مشروع .NET باستخدام موجز مكتبة عالمي على NuGet.org. [ 22 ] يمكن إدارة الموجزات الخاصة بشكل منفصل، على سبيل المثال، بواسطة خادم بناء أو دليل نظام ملفات.

C++/CLI
قدمت مايكروسوفت لغة C++/CLI في Visual Studio 2005، وهي لغة ووسيلة لتجميع برامج Visual C++ لتشغيلها ضمن إطار عمل .NET. لا تزال بعض أجزاء برنامج C++ تعمل ضمن بيئة تشغيل Visual C++ غير المُدارة ، بينما تُترجم الأجزاء المُعدّلة خصيصًا إلى كود CIL وتُشغّل باستخدام بيئة تشغيل CLR الخاصة بإطار عمل .NET .
تُسمى التجميعات المُجمَّعة باستخدام مُجمِّع C++/CLI بالتجميعات المختلطة، لأنها تحتوي على كود أصلي وكود مُدار في نفس ملف DLL. [ 23 ] وتُعد هذه التجميعات أكثر تعقيدًا في الهندسة العكسية، لأن برامج فك تجميع .NET ، مثل .NET Reflector، لا تكشف إلا عن الكود المُدار.
مبادئ التصميم
قابلية التشغيل البيني
نظرًا لأن أنظمة الحاسوب تتطلب عادةً التفاعل بين التطبيقات الحديثة والقديمة، يوفر إطار عمل .NET وسائل للوصول إلى الوظائف المُنفذة في البرامج الحديثة والقديمة التي تعمل خارج بيئة .NET. يتم توفير الوصول إلى مكونات نموذج كائنات المكوناتSystem.Runtime.InteropServices (COM) في مساحات System.EnterpriseServicesأسماء إطار العمل. أما الوصول إلى الوظائف الأخرى فيتم عبر خدمات استدعاء النظام الأساسي (P/Invoke). ويتم الوصول إلى وظائف .NET من التطبيقات الأصلية عبر وظيفة P/Invoke العكسية.
استقلال اللغة
يُقدّم إطار عمل .NET نظام أنواع مشترك (CTS) يُحدّد جميع أنواع البيانات وبنى البرمجة التي يدعمها وقت التشغيل المشترك (CLR)، وكيفية تفاعلها أو عدم تفاعلها بما يتوافق مع مواصفات واجهة سطر الأوامر (CLI). وبفضل هذه الميزة، يدعم إطار عمل .NET تبادل الأنواع ومثيلات الكائنات بين المكتبات والتطبيقات المكتوبة باستخدام أي لغة CLI متوافقة .
أمان النوع
تُفرض كل من CTS وCLR المستخدمة في .NET Framework سلامة الأنواع . وهذا يمنع التحويلات غير المُعرّفة بشكل صحيح، واستدعاءات الدوال الخاطئة، ومشاكل حجم الذاكرة عند الوصول إلى كائن. كما يجعل هذا معظم لغات واجهة سطر الأوامر ذات أنواع ثابتة (مع أو بدون استنتاج الأنواع ). مع ذلك، بدءًا من .NET Framework 4.0، وسّع وقت تشغيل اللغة الديناميكية ( DLAN) نطاق CLR، مما يسمح بتنفيذ لغات ذات أنواع ديناميكية فوق واجهة سطر الأوامر.
سهولة الحمل
على الرغم من أن مايكروسوفت لم تُطبّق الإطار الكامل على أي نظام باستثناء نظام التشغيل ويندوز، فقد صممت الإطار ليكون متعدد المنصات، [ 24 ] وتتوفر تطبيقات لأنظمة تشغيل أخرى (انظر Silverlight وقسم التطبيقات البديلة ). قدّمت مايكروسوفت مواصفات CLI (التي تشمل مكتبات الفئات الأساسية، وCTS، وCIL)، [ 25 ] [ 26 ] [ 27 ] و C# ، [ 5 ] وC++/CLI [ 28 ] إلى كلٍ من ECMA International (ECMA) والمنظمة الدولية للمعايير (ISO)، مما أتاحها كمعايير رسمية. وهذا يُتيح لأطراف ثالثة إنشاء تطبيقات متوافقة للإطار ولغاته على منصات أخرى.
يتوفر .NET الأساسي متعدد المنصات (المعروف سابقًا باسم .NET Core) رسميًا أيضًا للعديد من توزيعات Linux و macOS. [ 29 ]
حماية
يحتوي إطار عمل .NET على آلية أمان خاصة به تتضمن ميزتين رئيسيتين: أمان الوصول إلى التعليمات البرمجية (CAS)، والتحقق من الصحة. يعتمد CAS على الأدلة المرتبطة بتجميعة معينة. عادةً ما تكون هذه الأدلة هي مصدر التجميعة (سواء كانت مثبتة على الجهاز المحلي أو تم تنزيلها من الإنترنت). يستخدم CAS هذه الأدلة لتحديد الأذونات الممنوحة للتعليمات البرمجية. عندما تتطلب التعليمات البرمجية المستدعاة إذنًا محددًا، يقوم CLR بفحص مكدس الاستدعاءات للتحقق من كل تجميعة لكل دالة في مكدس الاستدعاءات بحثًا عن الإذن المطلوب؛ إذا لم يتم منح أي تجميعة الإذن، فسيتم طرح استثناء أمني.
يُعدّ بايت كود CIL المُدار أسهل في الهندسة العكسية من الكود الأصلي، ما لم يكن مُشفرًا . [ 30 ] تُمكّن برامج فك تجميع .NET المطورين الذين لا يملكون مهارات الهندسة العكسية من الاطلاع على الكود المصدري لتجميعات .NET غير المُشفرة. في المقابل، تُعدّ التطبيقات المُجمّعة من كود الآلة الأصلي أصعب بكثير في الهندسة العكسية، ونادرًا ما يتم إنتاج الكود المصدري بنجاح، ويعود ذلك أساسًا إلى تحسينات المُجمّع ونقص تقنية الانعكاس . [ 31 ] يُثير هذا الأمر مخاوف في أوساط الأعمال بشأن احتمال فقدان الأسرار التجارية وتجاوز آليات التحكم في التراخيص. وللتخفيف من هذه المخاوف، أدرجت مايكروسوفت إصدار Dotfuscator Community Edition مع Visual Studio .NET منذ عام 2002. [ ب ] كما تتوفر أدوات تشفير خارجية من موردين مثل VMware وVi Labs و Turbo و Red Gate Software . وتتوفر أدوات تشفير على مستوى الأساليب لكود .NET من موردين مثل SafeNet .
إدارة الذاكرة
يُعفي CLR المطور من عبء إدارة الذاكرة (تخصيصها وتحريرها عند الانتهاء)؛ إذ يتولى إدارة الذاكرة بنفسه من خلال اكتشاف متى يمكن تحريرها بأمان. تُخصص نسخ أنواع .NET (الكائنات) من الكومة المُدارة؛ وهي مجموعة من الذاكرة تُديرها CLR. طالما وُجد مرجع إلى كائن، سواءً كان مباشرًا أو عبر رسم بياني للكائنات، يُعتبر الكائن قيد الاستخدام. عندما لا يوجد مرجع إلى كائن، ولا يمكن الوصول إليه أو استخدامه، يصبح بيانات مهملة، مؤهلة للجمع.
يتضمن إطار عمل .NET جامع قمامة (GC) يعمل دوريًا، على خيط منفصل عن خيط التطبيق، حيث يقوم بحصر جميع الكائنات غير القابلة للاستخدام واستعادة الذاكرة المخصصة لها. وهو جامع قمامة غير حتمي، يعمل على ضغط الذاكرة، ويعتمد على أسلوب الوسم والمسح . يعمل جامع القمامة فقط عند استهلاك مقدار محدد من الذاكرة أو عند وجود ضغط كافٍ على ذاكرة النظام. ولأنه لا يوجد ضمان لتحقق شروط استعادة الذاكرة، فإن عمليات تشغيل جامع القمامة غير حتمية . يحتوي كل تطبيق .NET على مجموعة من الجذور، وهي مؤشرات إلى كائنات في الكومة المُدارة ( الكائنات المُدارة ). تشمل هذه الجذور مراجع إلى كائنات ثابتة، وكائنات مُعرّفة كمتغيرات محلية أو معلمات طرق موجودة حاليًا في النطاق، وكائنات يُشار إليها بواسطة سجلات وحدة المعالجة المركزية. [ 32 ] عند تشغيل جامع القمامة، فإنه يُوقف التطبيق مؤقتًا، ثم يقوم، لكل كائن مُشار إليه في الجذر، بحصر جميع الكائنات التي يُمكن الوصول إليها من كائنات الجذر بشكل متكرر ، ويُعلّمها على أنها قابلة للوصول. يستخدم هذا النظام بيانات تعريف واجهة سطر الأوامر (CLI) وتقنية الانعكاس لاكتشاف الكائنات المُغلّفة داخل كائنٍ ما، ثم يتفحصها بشكلٍ متكرر. بعد ذلك، يُحصي جميع الكائنات الموجودة في الذاكرة الديناميكية (التي تم تخصيصها في البداية بشكلٍ متجاور) باستخدام تقنية الانعكاس. تُعتبر جميع الكائنات غير المُعلّمة على أنها قابلة للوصول كائنات مهملة. [ 32 ] هذه هي مرحلة التعليم . [ 33 ] بما أن الذاكرة التي تشغلها الكائنات المهملة غير مهمة، فإنها تُعتبر مساحة حرة. ومع ذلك، فإن هذا يُخلّف مساحات حرة بين الكائنات التي كانت متجاورة في البداية. ثم يتم ضغط الكائنات معًا لجعل المساحة الحرة في الذاكرة الديناميكية المُدارة متجاورة مرة أخرى. [ 32 ] [ 33 ] يتم تحديث أي مرجع لكائن تم إبطاله عن طريق نقل الكائن بواسطة جامع البيانات المهملة ليعكس الموقع الجديد. [ 33 ] يتم استئناف التطبيق بعد انتهاء عملية جمع البيانات المهملة. يستخدم أحدث إصدار من إطار عمل .NET جمع البيانات المهملة المتزامن مع كود المستخدم، مما يجعل فترات التوقف غير ملحوظة، لأنه يتم في الخلفية. [ 34 ]
يستخدم إطار عمل .NET جامع البيانات المهملة الذي يعتمد على الأجيال . [ 35 ] تُخصص لكل كائن جيل . تُصنف الكائنات المُنشأة حديثًا بالجيل 0. أما الكائنات التي تنجو من عملية جمع بيانات مهملة واحدة فتُصنف بالجيل 1. وتُصنف كائنات الجيل 1 التي تنجو من عملية جمع بيانات مهملة أخرى بالجيل 2. يستخدم إطار العمل ما يصل إلى كائنات من الجيل 2. [ 35 ] تُجمع كائنات الأجيال الأعلى بشكل أقل تكرارًا من كائنات الأجيال الأدنى. وهذا يُحسّن كفاءة جمع البيانات المهملة، حيث تميل الكائنات الأقدم إلى أن يكون لها عمر أطول من الكائنات الأحدث. [ 35 ] وبتجاهل الكائنات الأقدم في معظم عمليات جمع البيانات المهملة، تقل الحاجة إلى عمليات التحقق والضغط بشكل عام. [ 35 ]
أداء
عند تشغيل تطبيق لأول مرة، يقوم إطار عمل .NET بتحويل كود CIL إلى كود تنفيذي باستخدام مُجمِّعه الفوري ، ثم يخزن البرنامج التنفيذي مؤقتًا في ذاكرة التخزين المؤقت للصور الأصلية لـ .NET. [ 36 ] [ 37 ] وبفضل التخزين المؤقت، يتم تشغيل التطبيق بشكل أسرع في المرات اللاحقة، على الرغم من أن التشغيل الأول عادةً ما يكون أبطأ. ولتسريع التشغيل الأول، يمكن للمطورين استخدام أداة Native Image Generator لتجميع أي تطبيق .NET وتخزينه مؤقتًا يدويًا مسبقًا . [ 37 ]
قد يتسبب جامع البيانات المهملة، المدمج في بيئة التشغيل، في تأخيرات غير متوقعة في التنفيذ، والتي لا يملك المطور سيطرة مباشرة عليها. "في التطبيقات الكبيرة، قد يصبح عدد الكائنات التي يحتاج جامع البيانات المهملة إلى التعامل معها كبيرًا جدًا، مما يعني أنه قد يستغرق وقتًا طويلاً جدًا لفحصها وإعادة ترتيبها جميعًا." [ 38 ]
يوفر إطار عمل .NET دعمًا لاستدعاء امتدادات SIMD المتدفقة (SSE) عبر التعليمات البرمجية المُدارة بدءًا من أبريل 2014 في تحديث Visual Studio 2013 2. مع ذلك، يوفر Mono دعمًا لامتدادات SIMD بدءًا من الإصدار 2.2 ضمن مساحة اسم Mono.Simd في عام 2009. [ 39 ] وقد أعرب ميغيل دي إيكازا، كبير مطوري Mono، عن أمله في أن يتم اعتماد دعم SIMD هذا في معيار ECMA الخاص بـ CLR. [ 40 ] تتوفر امتدادات SIMD المتدفقة في وحدات المعالجة المركزية x86 منذ طرح Pentium III . كما تحتوي بعض البنى الأخرى، مثل ARM و MIPS، على امتدادات SIMD. في حال عدم دعم وحدة المعالجة المركزية لهذه الامتدادات، تتم محاكاة التعليمات برمجيًا. [ 41 ] [ 42 ]
تطبيقات بديلة
كان إطار عمل .NET هو التطبيق السائد لواجهة سطر الأوامر (CLI) حتى إصدار .NET . توجد تطبيقات أخرى لأجزاء من هذا الإطار. على الرغم من أن محرك وقت التشغيل موصوف بمواصفات ECMA-ISO، إلا أن تطبيقاته الأخرى قد تكون مقيدة بقضايا براءات الاختراع ؛ إذ قد تتضمن معايير ISO إخلاء المسؤولية التالي: "يُرجى الانتباه إلى احتمال أن تكون بعض عناصر هذه الوثيقة خاضعة لحقوق براءات اختراع. لا تتحمل ISO مسؤولية تحديد أي من حقوق براءات الاختراع هذه أو جميعها." [ 43 ] من الصعب تطوير بدائل لـ FCL، الذي لا يُوصف بمعيار مفتوح وقد يخضع لقيود حقوق النشر. كما أن أجزاءً من FCL لها وظائف وسلوكيات خاصة بنظام Windows، لذا قد يكون تطبيقها على منصات أخرى غير Windows إشكاليًا.
بعض التطبيقات البديلة لأجزاء من الإطار مذكورة هنا.
- إطار عمل .NET المصغر هو منصة .NET مصممة للأجهزة ذات الموارد المحدودة للغاية. يتضمن نسخة مصغرة من بيئة CLR ويدعم التطوير بلغة C# (مع أن بعض المطورين تمكنوا من استخدام VB.NET ، [ 44 ] وإن كان ذلك يتطلب بعض التعديلات البرمجية وبوظائف محدودة) وتصحيح الأخطاء (في محاكي أو على جهاز فعلي)، وكلاهما باستخدام Microsoft Visual Studio . كما يتميز بمجموعة فرعية من مكتبة فئات إطار عمل .NET (حوالي 70 فئة مع حوالي 420 دالة)، وإطار عمل واجهة المستخدم الرسومية المبني بشكل فضفاض على WPF، ومكتبات إضافية خاصة بالتطبيقات المدمجة.
- Mono هو تطبيق لـ CLI وFCL، ويُوفر وظائف إضافية. وهو مرخص كبرنامج مجاني بموجب ترخيص MIT . يدعم Mono مكتبات ASP.NET وADO.NET وWindows Forms لمجموعة واسعة من البنى وأنظمة التشغيل. كما يتضمن مُترجمات C# وVB.NET.
- يوفر Portable.NET (جزء من DotGNU ) تطبيقًا لواجهة سطر الأوامر (CLI)، وأجزاءً من مكتبة FCL، ومترجمًا للغة C#. وهو يدعم مجموعة متنوعة من وحدات المعالجة المركزية وأنظمة التشغيل. توقف تطوير المشروع، وكان آخر إصدار مستقر له في عام 2009.
- تُعدّ بنية اللغة المشتركة للمصدر المشترك من مايكروسوفت تطبيقًا غير مجاني لبيئة تشغيل اللغة المشتركة (CLR). مع ذلك، فإنّ أحدث إصدار منها يعمل فقط على نظام التشغيل ويندوز إكس بي SP2، ولم يتم تحديثه منذ عام 2006. وبالتالي، فهو لا يحتوي على جميع ميزات الإصدار 2.0 من إطار عمل .NET.
- CrossNet [ 45 ] هو تطبيق لـ CLI وأجزاء من FCL. وهو برنامج مجاني يستخدم ترخيص MIT مفتوح المصدر .
الترخيص
يتم ترخيص أطر عمل التعليمات البرمجية التي تديرها مايكروسوفت ومكوناتها على النحو التالي:
| عنصر | رخصة |
|---|---|
| إطار عمل .NET (حزمة قابلة لإعادة التوزيع) | البرمجيات الاحتكارية [ 46 ] |
| شفرة المصدر المرجعية لإطار عمل .NET الإصدار 4.5 والإصدارات الأقدم | رخصة مايكروسوفت المرجعية (Ms-RSL [ a ] ) [ 9 ] [ 47 ] |
| شفرة المصدر المرجعية لإطار عمل .NET 4.6 | رخصة معهد ماساتشوستس للتكنولوجيا [ 48 ] |
| كثرة الوحيدات | رخصة معهد ماساتشوستس للتكنولوجيا [ 16 ] |
| .NET (المعروف سابقًا باسم .NET Core) CoreFX وCoreCLR وCLI | رخصة معهد ماساتشوستس للتكنولوجيا [ 49 ] |
| إطار عمل .NET المصغر | رخصة أباتشي 2.0 [ 50 ] |
| منصة تجميع .NET (الاسم الرمزي "Roslyn") | رخصة معهد ماساتشوستس للتكنولوجيا [ 51 ] |
| ASP.NET MVC ، وواجهة برمجة تطبيقات الويب، وصفحات الويب ( Razor ) | رخصة أباتشي 2.0 [ 52 ] |
| ASP.NET Core | رخصة أباتشي 2.0 [ 53 ] |
| مجموعة أدوات التحكم ASP.NET Ajax | رخصة BSD [ 54 ] |
| ASP.NET SignalR | رخصة أباتشي 2.0 [ 55 ] |
| إطار عمل الكيانات | رخصة أباتشي 2.0 [ 56 ] |
| نوجيت | رخصة أباتشي 2.0 [ 57 ] |
انظر أيضاً
- مكتبة فئات مؤسسة مايكروسوفت (MFC)، وهي تجريد كائني التوجه يُستخدم لتسهيل برمجة التطبيقات المستندة إلى نظام التشغيل ويندوز قبل إطار عمل .NET
- .NET (المعروف سابقًا باسم .NET Core)
- قائمة لغات واجهة سطر الأوامر
- المكتبات القياسية (CLI) ، المكتبات القياسية لـ .NET
- مكتبة الفئات الأساسية (BCL)
ملحوظات
- 1 2 كان الترخيص يُختصر سابقًا إلى Ms-RL، ولكن Ms-RL يشير الآن إلى ترخيص مايكروسوفت المتبادل .
- ↑ إصدار دوتفوسكاتور المجتمعي 4.0
مراجع
- ↑ "تنزيل برنامج تثبيت .NET Framework 4.8 دون اتصال بالإنترنت" . مايكروسوفت . مؤرشف من الأصل بتاريخ 15 أغسطس 2019. تم الاطلاع عليه بتاريخ 15 أغسطس 2019 .
- 1 2 إيبانيز، لويس (19 نوفمبر 2014). "مايكروسوفت تنضم إلى عالم المصادر المفتوحة" . Opensource.com . مؤرشف من الأصل في 2 يناير 2020. تم الاطلاع عليه في 2 يناير 2020 .
- ↑ جيوارين. "إطار عمل .NET وإصدارات نظام التشغيل ويندوز" . مايكروسوفت ليرن . مؤرشف من الأصل في 3 سبتمبر 2022. تم الاطلاع عليه في 21 نوفمبر 2020 .
- ↑ "المعيار ECMA-335: البنية التحتية للغة المشتركة (CLI)" ( الطبعة السادسة). ECMA . يونيو 2012. مؤرشف من الأصل في 29 يونيو 2013. تم الاطلاع عليه في 31 أغسطس 2005 .
- 1 2 "المعيار ECMA-334: مواصفات لغة C#" ( الطبعة الرابعة). ECMA . يونيو 2006. مؤرشف من الأصل في 31 أكتوبر 2010. تم الاطلاع عليه في 31 أغسطس 2005 .
- ↑ "ISO/IEC 23271:2012 تكنولوجيا المعلومات - البنية التحتية للغة المشتركة" ( الطبعة الثالثة). المنظمة الدولية للتوحيد القياسي . 13 فبراير 2012. مؤرشف من الأصل في 17 مارس 2012. تم الاطلاع عليه في 17 مارس 2012 .
- ↑ "ISO/IEC 23270:2006 – تكنولوجيا المعلومات – لغات البرمجة – C#" ( الطبعة الثانية). المنظمة الدولية للتوحيد القياسي . 26 يناير 2012. مؤرشف من الأصل في 6 ديسمبر 2010. تم الاطلاع عليه في 1 أبريل 2008 .
- ↑ سميث، بريت (16 يوليو 2009). "وعد مايكروسوفت الفارغ" . مؤسسة البرمجيات الحرة . مؤرشف من الأصل في 19 أغسطس 2009. تم الاسترجاع في 3 أغسطس 2009.
ومع ذلك، هناك العديد من المكتبات المضمنة في Mono، والتي تستخدمها تطبيقات مثل Tomboy بشكل شائع، وهي غير مطلوبة بموجب المعيار. وللتوضيح، نحن لا نتحدث عن مكتبات خاصة بنظام Windows مثل ASP.NET وWindows Forms. بدلاً من ذلك، نتحدث عن المكتبات الموجودة ضمن مساحة اسم System والتي توفر وظائف شائعة يتوقعها المبرمجون في لغات البرمجة الحديثة.
- 1 2 غوثري، سكوت (3 أكتوبر 2007). "إصدار الشفرة المصدرية لإطار عمل NET" . مدونة سكوت غوثري . مايكروسوفت . مؤرشف من الأصل في 7 سبتمبر 2010. تم الاطلاع عليه في 15 سبتمبر 2010 .
- ↑ غوثري، سكوت (16 يناير 2008). "شفرة المصدر لمكتبة إطار عمل .NET متاحة الآن" . مدونة سكوت غوثري . مايكروسوفت . مؤرشف من الأصل في 18 مارس 2015. تم الاطلاع عليه في 28 فبراير 2015 .
- ↑ بول، رايان (7 يوليو 2009). "مايكروسوفت تُصدر وعدًا بشأن براءة اختراع، وتُبدد المخاوف القانونية المتعلقة ببرنامج مونو" . آرس تكنيكا . تم الاطلاع عليه في 1 سبتمبر 2025 .
- ↑ "وعد مايكروسوفت ببراءة اختراع لمكتبات .NET ومكونات وقت التشغيل" . جيت هاب . مؤرشف من الأصل في 21 فبراير 2021. تم الاطلاع عليه في 16 نوفمبر 2014 .
- ↑ كريل، بول (1 أبريل 2016). "بيئة تشغيل Mono الخاصة بـ Xamarin تحصل على ترخيص أكثر مرونة" . إنفوورلد . IDG . مؤرشف من الأصل في 16 أبريل 2016. تم الاسترجاع في 13 أبريل 2016 .
- ↑ فيريرا، برونو (31 مارس 2016). "Xamarin يأتي الآن مجانًا مع Visual Studio" . تقرير التقنية . مؤرشف من الأصل في 2 أبريل 2016. تم الاطلاع عليه في 12 أبريل 2016 .
- ↑ «وعد مايكروسوفت ببراءة اختراع لـ Mono» . Mono على GitHub . 28 مارس 2016. مؤرشف من الأصل في 16 أبريل 2016. تم الاطلاع عليه في 16 أبريل 2016 .
- 1 2 فريدمان، نات (31 مارس 2016). "Xamarin للجميع" . مدونة Xamarin . مؤرشف من الأصل في 12 أبريل 2016. تم الاسترجاع في 12 أبريل 2016 .
- ↑ غالو، كيفن (4 ديسمبر 2018). "الإعلان عن المصادر المفتوحة لـ WPF وWindows Forms وWinUI في مؤتمر Microsoft Connect 2018" . مدونة مطوري Windows . مايكروسوفت. مؤرشف من الأصل في 15 ديسمبر 2018. تم الاطلاع عليه في 24 ديسمبر 2018 .
- ↑ rpetrusha. "تجميع التطبيقات باستخدام .NET Native" . Microsoft Learn . مؤرشف من الأصل في 3 ديسمبر 2017. تم الاطلاع عليه في 2 ديسمبر 2017 .
- ↑ "مكتبات الفئات الأساسية المجتمعية" . مايكروسوفت . مؤرشف من الأصل في 24 أبريل 2009. تم الاسترجاع في 1 يونيو 2008 .
- ↑ "معيار منصة .NET" . جيت هاب . مؤرشف من الأصل في 19 مايو 2016. تم الاطلاع عليه في 23 أبريل 2016 .
- ↑ "تحديث حول ASP.NET Core 1.0 RC2" . سكوت هانسيلمان . 14 أبريل 2016. مؤرشف من الأصل في 19 أبريل 2016. تم الاطلاع عليه في 23 أبريل 2016 .
- ↑ "معرض NuGet - الصفحة الرئيسية" . nuget.org . مؤرشف من الأصل في 21 فبراير 2021. تم الاطلاع عليه في 21 فبراير 2021 .
- ↑ تم أرشفة التجميعات المختلطة (الأصلية والمدارة) في 22 أكتوبر 2014 على موقع Wayback Machine ، MSDN
- ↑ "سكوت غوثري: سيلفرلايت وCLR متعدد المنصات" . القناة التاسعة . 30 أبريل 2007. مؤرشف من الأصل في 22 مايو 2015. تم الاطلاع عليه في 16 أبريل 2016 .
- ↑ "ECMA 335 – معيار ECMA-335 للبنية التحتية للغة المشتركة (CLI)، الإصدار الرابع (يونيو 2006)" . ECMA. 1 يونيو 2006. مؤرشف من الأصل في 14 يونيو 2008. تم الاطلاع عليه في 1 يونيو 2008 .
- ↑ "ISO/IEC 23271:2006" . معايير المنظمة الدولية للمقاييس. 29 سبتمبر 2006. مؤرشف من الأصل في 1 يوليو 2018. تم الاطلاع عليه في 17 أبريل 2012 .
- ↑ "التقرير الفني TR/84 البنية التحتية للغة المشتركة (CLI) - المعلومات المستمدة من ملف XML للقسم الرابع" . ECMA. 1 يونيو 2006. مؤرشف من الأصل في 7 مارس 2015. تم الاطلاع عليه في 16 أبريل 2016 .
- ↑ "مواصفات لغة C++/CLI القياسية ECMA-372" . ECMA. 1 ديسمبر 2005. مؤرشفة من الأصل في 10 أغسطس 2008. تم الاطلاع عليها في 16 يناير 2008 .
- ↑ ".NET تصبح متعددة المنصات مع .NET Core" . 31 يناير 2019. مؤرشف من الأصل في 19 فبراير 2024. تم الاطلاع عليه في 19 فبراير 2024 .
- ↑ شركة غارتنر، كما ورد في "دورة الضجيج للتهديدات السيبرانية، 2006"، سبتمبر 2006، نيل ماكدونالد؛ أمريت ويليامز، وآخرون.
- ↑ سيفوينتيس، كريستينا (يوليو 1994). "6: تحليل تدفق التحكم" (ملف PDF) . تقنيات الترجمة العكسية (أطروحة). جامعة كوينزلاند للتكنولوجيا . مؤرشف من الأصل (ملف PDF) في 22 نوفمبر 2016.
- 1 2 3 "جمع البيانات المهملة: إدارة الذاكرة التلقائية في إطار عمل Microsoft .NET" . مؤرشف من الأصل في 3 يوليو 2007. تم الاطلاع عليه في 1 يونيو 2008 .
- 1 2 3 "جمع البيانات المهملة في .NET" . مؤرشف من الأصل في 25 مايو 2008. تم الاطلاع عليه في 1 يونيو 2008 .
- ↑ «يتضمن إطار عمل .NET 4.5 تحسينات جديدة على جامع البيانات المهملة لتطبيقات العميل والخادم» . 20 يوليو 2012. مؤرشف من الأصل في 4 فبراير 2016. تم الاطلاع عليه في 2 أكتوبر 2015 .
- 1 2 3 4 "جمع البيانات المهملة - الجزء 2: إدارة الذاكرة التلقائية في إطار عمل Microsoft .NET" . مؤرشف من الأصل في 26 يونيو 2007. تم الاطلاع عليه في 1 يونيو 2008 .
- ↑ "فهم عملية الترجمة الفورية لـ .NET" . telerik.com . 28 مايو 2013. مؤرشف من الأصل في 11 يونيو 2013. تم الاطلاع عليه في 21 مايو 2015 .
- ١ ٢ ترجمة MSIL إلى كود أصلي، مؤرشف في ١٩ أبريل ٢٠١٥، على Wayback Machine ، MSDN، مايكروسوفت
- ↑ "فهم عملية جمع البيانات المهملة في .NET" . 17 يونيو 2009. مؤرشف من الأصل في 10 أكتوبر 2019. تم الاطلاع عليه في 13 نوفمبر 2019 .
- ↑ "ملاحظات الإصدار Mono 2.2 – Mono" . mono-project.com . مؤرشف من الأصل بتاريخ 22 نوفمبر 2016. تم الاطلاع عليه بتاريخ 22 نوفمبر 2016 .
- ↑ دي إيكازا، ميغيل (3 نوفمبر 2008). "دعم Mono لتقنية SIMD: جعل Mono آمنًا للألعاب" . Tirania.org. مؤرشف من الأصل في 4 نوفمبر 2010. تم الاطلاع عليه في 17 أبريل 2012 .
- ↑ دي إيكازا، ميغيل (3 نوفمبر 2008). "دعم Mono لتقنية SIMD: جعل Mono آمنًا للألعاب" . tirania.org . مؤرشف من الأصل في 2 يوليو 2022. تم الاطلاع عليه في 6 مايو 2022 .
- ↑ "أنواع مُسرّعة بتقنية SIMD في .NET" . مايكروسوفت ليرن . مؤرشف من الأصل في 6 مايو 2022. تم الاطلاع عليه في 6 مايو 2022 .
- ↑ ISO 9001:2008، مقدمة
- ↑ فيربيرن، كريستوفر (1 أبريل 2008). "استخدام VB.NET مع إطار عمل .NET المصغر «/dev/mobile» . /dev/mobile . مؤرشف من الأصل في 27 فبراير 2018. تم الاطلاع عليه في 17 أبريل 2012 .
- ↑ "CrossNet" . Codeplex.com. مؤرشف من الأصل في 25 يناير 2010. تم الاطلاع عليه في 17 أبريل 2012 .
- ↑ "اتفاقية ترخيص المستخدم النهائي لحزمة Microsoft .NET Framework القابلة لإعادة التوزيع" . MSDN . Microsoft . 13 سبتمبر 2006. مؤرشفة من الأصل في 2 أبريل 2015. تم الاطلاع عليها في 28 فبراير 2015 .
- ↑ براي، براندون (15 أغسطس 2012). "الإعلان عن إصدار .NET Framework 4.5 RTM - المنتج وشفرة المصدر" . مدونة .NET Framework . مايكروسوفت . مؤرشف من الأصل في 4 أكتوبر 2016. تم الاطلاع عليه في 18 أغسطس 2016 .
- ↑ "الإعلان عن معاينة .NET 2015: حقبة جديدة لـ .NET" . مدونة .NET Framework . مايكروسوفت . 12 نوفمبر 2014. مؤرشف من الأصل في 19 أغسطس 2016. تم الاطلاع عليه في 18 أغسطس 2016 .
- ↑ ".NET Core 5" . dotnetfoundation.org . مؤسسة .NET. مؤرشف من الأصل بتاريخ 17 فبراير 2015. تم الاطلاع عليه بتاريخ 17 فبراير 2015 .
- ↑ "إطار عمل .NET المصغر" . dotnetfoundation.org . مؤسسة .NET. مؤرشف من الأصل بتاريخ 17 فبراير 2015. تم الاطلاع عليه بتاريخ 17 فبراير 2015 .
- ↑ "رخصة روزلين" . غيت هاب . مؤسسة دوت نت. 5 فبراير 2020. مؤرشف من الأصل في 24 مارس 2018. تم الاطلاع عليه في 14 أبريل 2018 .
- ↑ "ASP.NET MVC، وواجهة برمجة تطبيقات الويب، وصفحات الويب (Razor)" . dotnetfoundation.org . مؤسسة .NET. مؤرشف من الأصل بتاريخ 17 فبراير 2015. تم الاطلاع عليه بتاريخ 17 فبراير 2015 .
- ↑ "رخصة ASP.NET Core" . GitHub . مؤسسة .NET. 5 يوليو 2017. مؤرشف من الأصل في 21 فبراير 2021. تم الاطلاع عليه في 14 أبريل 2018 .
- ↑ "مجموعة أدوات التحكم ASP.NET Ajax" . dotnetfoundation.org . مؤسسة .NET. مؤرشف من الأصل بتاريخ 17 فبراير 2015. تم الاطلاع عليه بتاريخ 17 فبراير 2015 .
- ↑ "ASP.NET SignalR" . dotnetfoundation.org . مؤسسة .NET. مؤرشف من الأصل بتاريخ 17 فبراير 2015. تم الاطلاع عليه بتاريخ 17 فبراير 2015 .
- ↑ "Entity Framework" . dotnetfoundation.org . مؤسسة .NET. مؤرشف من الأصل بتاريخ 18 أبريل 2016. تم الاطلاع عليه بتاريخ 16 أبريل 2016 .
- ↑ "NuGet" . dotnetfoundation.org . مؤسسة .NET. مؤرشف من الأصل بتاريخ 17 فبراير 2015. تم الاطلاع عليه بتاريخ 17 فبراير 2015 .
روابط خارجية
- تطبيقات إطار عمل .NET
- برنامج 2002
- برامج متعددة المنصات
- واجهات برمجة تطبيقات مايكروسوفت
- أدوات تطوير مايكروسوفت
- برامج مايكروسوفت المجانية
- برنامج مجاني يعمل بنظام ويندوز فقط
