تطبيق .NET حديث قد يعمل على Linux أو Windows، لكن قرار الاستضافة يعتمد على اعتماديات التطبيق وطريقة المصادقة والتقارير والنشر، لا على لغة C# وحدها. أما تطبيقات .NET Framework وتقنيات قديمة مرتبطة بـWindows فتحتاج تقييماً مختلفاً. ابدأ بتحديد ما بُني عليه التطبيق فعلياً قبل مقارنة سعر النظامين.
إذا كنت تطلب سيرفر Windows أو تدرس الانتقال إلى Linux، أرسل ملفاً مختصراً بالإطار المستهدف والمكتبات والخدمات الخارجية. النجاح في بناء المشروع لا يثبت أن كل وظائفه ستعمل في الإنتاج على نظام آخر.
التمييز الأول: .NET أم .NET Framework؟
توضح وثائق Microsoft لاختيار بيئة تطبيقات السيرفر أن .NET يدعم منصات متعددة، بينما توجد أسباب مرتبطة بالتطبيقات والتقنيات والمكتبات للاستمرار على .NET Framework. ومن أمثلتها ASP.NET Web Forms الذي لا ينتقل إلى ASP.NET Core بمجرد تغيير سيرفر الاستضافة.
اطلب من المطور اسم الإطار المستهدف وإصداره ونوع المشروع، وليس عبارة «دوت نت» فقط. افصل بين نقل التطبيق كما هو وتحديثه إلى إطار مختلف؛ الثاني مشروع تطوير واختبار قد تكون تكلفته أكبر من فرق اشتراك نظام التشغيل. يمكن أن يبقى النظام الحالي في بيئته بينما تُبنى خدمات جديدة بتقنيات متعددة المنصات إذا كان ذلك أنسب للخطة.
مصفوفة الاعتماديات التي تحسم الاختيار
| المكون | السؤال المطلوب | أثره على العرض |
|---|---|---|
| الإطار والمكتبات | هل تدعم نظام التشغيل والإصدار والمعمارية المطلوبة؟ | قبول البيئة أو الحاجة إلى تعديل تطبيقي |
| التقارير والصور | هل المحرك والمكتبات والخطوط متاحة ومتوافقة؟ | اختبار المخرجات وتراخيص محتملة |
| الهوية والصلاحيات | كيف يدخل المستخدم وكيف تُستخرج أدواره؟ | إعداد الربط واختبار المصادقة والتفويض |
| الملفات | هل توجد مسارات أو مشاركات أو صلاحيات مرتبطة بالنظام؟ | تعديل إعدادات أو طريقة الوصول والتخزين |
| خدمات الخلفية | كيف تبدأ وتُراقب وتُعاد عند الفشل؟ | إعداد خدمة تشغيل وجدولة ومراقبة |
| قاعدة البيانات | ما برنامج الاتصال وطريقة المصادقة والمتطلبات؟ | توافق الربط وموقع القاعدة وترخيصها |
وجود مكتبة في المشروع لا يعني أن كل وظائفها متعددة المنصات. اختبر الوظائف التي تستدعي موارد نظامية أو مكونات أصلية أو برامج خارجية. وقد يكون اختلاف بسيط في خط تقرير أو مسار ملف سبباً في فشل وظيفة تجارية رغم أن واجهة الدخول تعمل.
متى يكون Windows الخيار الأبسط؟
يرجح عندما يعتمد التطبيق على تقنيات أو مكونات مدعومة على Windows فقط، أو عندما يقدم مورده الدعم على توليفة محددة تشمل IIS وWindows Server. وقد تكون إجراءات فريقك للنشر والمصادقة والمراقبة مبنية عليها بصورة مستقرة، فتحتاج فائدة واضحة لتبرير الانتقال.
لكن وضوح التوافق لا يغني عن التحقق من الإصدار المدعوم ودورة صيانته والتراخيص. اطلب فصل ترخيص نظام التشغيل وقاعدة البيانات وأي مكونات تقارير أو أدوات إضافية بحسب العرض. لا تفترض أن تكلفة Windows تشمل SQL Server أو كل برامج Microsoft المستخدمة في النظام.
متى يكون Linux خياراً عملياً؟
إذا كان التطبيق مبنياً على .NET متعدد المنصات واعتمادياته مدعومة ومختبرة، يمكن تقييم Linux ضمن بنية تشغيل مناسبة. يعرض دليل Microsoft لاستضافة ASP.NET Core على Linux نموذجاً يجمع Nginx وKestrel وإدارة عملية التطبيق. هذا يوضح أن الاستضافة تشمل تشغيل الخدمة ومراقبتها، لا نسخ ملفات النشر فقط.
قد يناسب الخيار فريقاً يدير Linux وأتمتة النشر بالفعل. لكن إذا احتاج الفريق إلى تدريب وتغيير أدوات وإعادة اختبار تكاملات، أدخل هذه الأعمال في المقارنة. انخفاض بند ترخيص محتمل لا يعني انخفاض التكلفة الكاملة في كل مشروع.
المصادقة الداخلية تحتاج تجربة مستقلة
إذا كان المستخدمون يدخلون بهويات الشركة، وثق الآلية الحالية ومسار الاتصال وأدوار المستخدمين. لا تختزل الموضوع في سؤال هل يوجد Active Directory أم لا؛ طريقة التكامل والوسيط والبروكسي والصلاحيات تحدد العمل المطلوب.
توضح وثائق Microsoft لمصادقة Windows في ASP.NET Core وجود سيناريوهات Negotiate وKerberos على منصات متعددة، مع إعدادات وقيود خاصة. لذلك لا تعتبر Linux مستبعداً تلقائياً لكل تكامل هوية، ولا تعتبر النقل مباشراً دون اختبار. تحقق من الدخول والأدوار والوصول المرفوض والاتصال عبر المسار الإنتاجي المقترح.
اختبار نقل يتجاوز الصفحة الرئيسية
جهز نسخة مناسبة من البيانات وبيئة مرحلية، ثم اختبر إنشاء سجل وتعديله ورفعه وتصديره، وإنتاج التقارير العربية، وإرسال الإشعارات، والمهام المجدولة. راجع حساسية حالة الأحرف في المسارات وأسماء الملفات، والصلاحيات والخطوط والتوقيت والتنسيقات التي يعتمد عليها العمل.
اختبر النشر والتشغيل بعد إعادة تشغيل البيئة، وليس أثناء جلسة المطور فقط. تأكد من أن الخدمة تبدأ بحساب مناسب، وأن الإعدادات والأسرار تُقرأ من مصدر معتمد، وأن السجلات تساعد الفريق على تشخيص الفشل. هذه أدلة جاهزية للإنتاج، وليست تفاصيل ثانوية بعد شراء السيرفر.
وعند وجود تغيير في قاعدة البيانات، افصل اختبار محركها عن اختبار نظام التطبيق. نجاح الربط لا يثبت توافق جميع الاستعلامات والإجراءات والتقارير. حدد مسؤول قبول النتيجة بين المطور ومسؤول النظام وصاحب العملية.
قارن عرض التشغيل بعرض مشروع التحويل
اطلب بنداً للتشغيل المعتاد يشمل الموارد والإدارة والنسخ والمراقبة، وبنداً آخر لأي تعديل أو نقل أو تدريب. إذا كان الهدف مجرد استضافة تطبيق قائم، فلا تدخل إعادة تطوير واسعة في المقارنة دون بيان منفعتها ونتائجها المطلوبة.
في مثال افتراضي، شركة لديها تطبيق قديم يعتمد محرك تقارير خاصاً. قد يكون إبقاؤه على Windows مدعوم أقل كلفة وأقل تعقيداً من تغييره لتوفير اشتراك الاستضافة. وفي مثال آخر، API حديث اختُبرت اعتمادياته على Linux وللفريق أدوات نشر جاهزة؛ يمكن تقييم الخيارين باختبار حمل وتكلفة تشغيل متكافئين. لا يحسم اسم .NET وحده أياً من الحالتين.
يساعد دليل نقل الاستضافة في تجهيز الجرد والتحويل وخطة الرجوع، وتوضح مراجعة أخطاء النسخ الاحتياطي أهمية إثبات الاستعادة قبل إيقاف البيئة السابقة.
أسئلة شائعة عن استضافة .NET
هل كل مشروع C# يعمل على Linux؟
لا. اللغة وحدها لا تحدد توافق الإطار والمكتبات والواجهات النظامية. راجع نوع المشروع واعتمادياته واختبر وظائفه على النظام المستهدف.
هل الحاوية تحل مشكلة الاعتماد على Windows؟
الحاوية تنظم حزم التطبيق وبيئته، لكنها لا تجعل اعتماداً خاصاً بنظام ما متعدد المنصات تلقائياً. يحتاج اختيار صورة الحاوية ومضيفها إلى التحقق نفسه من التوافق والدعم.
متى أحتاج تقييماً قبل عرض السعر النهائي؟
عندما يغيب توثيق الإطار أو توجد مكتبات تقارير ومكونات قديمة أو مصادقة معقدة. تقييم محدود يكشف ما يمكن نقله كما هو وما يحتاج تطويراً، ويجعل العرض النهائي أوضح.
أرسل اعتماديات التطبيق لتحديد البيئة
أرسل إطار .NET وإصداره وقاعدة البيانات والمكتبات وطريقة الدخول والمهام الخلفية. اطلب مقارنة Windows وLinux تشمل التوافق والتراخيص والإدارة واختبار القبول، مع فصل أي مشروع تحويل عن تكلفة الاستضافة.