C# (.NET) يكتسب منصة جديدة: ما الذي تغير للمطورين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

C# (.NET) يدعم الآن منصة جديدة: التغييرات الرئيسية والآفاق



تواصل Microsoft توسيع حدود النظام البيئي .NET بنشاط. في إطار التحديث الأخير، أعلن فريق التطوير عن إضافة دعم منصة جديدة للغة C#. يفتح هذا القرار أمام المبرمجين إمكانيات إضافية لإنشاء تطبيقات حديثة، دون الاقتصار على بيئات التشغيل التقليدية.



المنصة الجديدة المعنية هي WebAssembly System Interface (WASI). سابقًا، كان .NET يدعم بالفعل WebAssembly للمتصفحات، ولكن الآن تسمح بيئة تشغيل .NET 8+ بتشغيل كود C# خارج المتصفح - على الخوادم، والأجهزة الطرفية (edge)، والبيئات السحابية عبر WASI. هذه خطوة نحو التعدد الحقيقي للمنصات، حيث يمكن لنفس الكود العمل على Windows وLinux وmacOS وحتى في بيئات الحماية المعزولة (sandbox).



ماذا يعني هذا للمطورين؟



دعم WASI في .NET ليس مجرد ابتكار تقني. إنه يحل العديد من المشكلات الأساسية:



  • العالمية: الآن يمكن لتطبيقات C# العمل في بيئات كانت تتطلب سابقًا Python أو Rust أو Go - مثل الوظائف السحابية (serverless) أو أجهزة إنترنت الأشياء (IoT).
  • الأمان: يوفر WASI عزلًا صارمًا (sandbox)، وهو أمر بالغ الأهمية للخدمات متعددة المستخدمين وتنفيذ الكود غير الموثوق.
  • الأداء: بفضل المترجم الأصلي AOT (Ahead-of-Time) في .NET 8، يتم تشغيل تطبيقات C# تحت WASI بشكل فوري تقريبًا، دون تأخير الترجمة في الوقت الفعلي (JIT).


كيف يعمل هذا عمليًا؟



أصدرت Microsoft إصدارًا أوليًا من dotnet wasi-experimental - وهي حزمة تسمح بترجمة مشاريع C# إلى وحدات WASI. العملية بسيطة:

  • يكفي تثبيت SDK .NET 8 وإضافة حزمة nuget Wasi.Sdk.
  • كتابة كود عادي بلغة C# (مثل تطبيق وحدة تحكم).
  • بناء المشروع مع العلم --wasi - ستحصل على ملف .wasm.
  • تشغيله في أي بيئة تدعم WASI (مثل Wasmtime أو Wasmer).


من المهم ملاحظة أن الدعم في هذه المرحلة ليس كاملاً: بعض الوظائف، مثل تعدد الخيوط والوصول المباشر إلى نظام الملفات، لا تزال محدودة. ومع ذلك، فهذا يكفي بالفعل لسيناريوهات الخوادم والخدمات المصغرة والمهام الحسابية.



المنافسة مع Python وRust



لفترة طويلة، هيمنت Python وRust على السيناريوهات التي تتطلب قابلية النقل والأمان (مثل WebAssembly). يدخل C# مع دعم WASI هذه الفئة بميزة المكتبة القياسية الغنية وبناء الجملة المألوف. بالنسبة للفرق التي تستخدم .NET بالفعل، يعني هذا خفض حاجز الدخول: لا حاجة لتعلم لغة جديدة لنشر تطبيق على المنصات الطرفية (edge).



علاوة على ذلك، تتعاون Microsoft بنشاط مع مشروع Bytecode Alliance، الذي يطور معيار WASI. وهذا يضمن بقاء .NET متوافقًا مع الإصدارات المستقبلية من المواصفات.



ماذا بعد؟



دعم WASI في .NET لا يزال ميزة تجريبية، ولكن من المتوقع استقرارها وتوسيع واجهة برمجة التطبيقات (API) في .NET 9. يجب على المطورين البدء في الاختبار الآن ليكونوا جاهزين للترحيل بحلول وقت الإصدار الرسمي.



بالنسبة لأولئك الذين اعتادوا على Python، قد يكون هذا سببًا للنظر إلى C# كبديل لـ

المكتبات الموصى بها