سؤال

قامت الشركة التي أعمل بها بإنشاء هذا التطبيق الذي يعد أساسيًا لأعمالنا ويعتمد على متصفح الويب لفرض "قواعد" معينة والتي بدونها تجعل التطبيق عديم الفائدة إلى حد ما لعملائنا.آسف على توخي الحذر، اتفاقية عدم الإفشاء (NDA) بالإضافة إلى مجموعة من الأشياء الأخرى تمنعني من تحديد ماهية التطبيق بالضبط.بشكل أساسي، تتحكم JavaScript في بعض الأحداث الموقوتة (التي يجب أن تكون دقيقة حتى الثانية على الأقل) مما يجعل من الصعب التحكم بها باستخدام ajax/postbacks وما إلى ذلك.

سؤالي هو هذا:ما مدى صعوبة تحويل تطبيق ASP.NET إلى SilverLight على افتراض أن معظم التعليمات البرمجية هي في الواقع منطق أعمال C# وليست عناصر تحكم asp.net؟لقد انتهيت للتو من الاستماع إلى Deep Fried bytes وجعل موظفو MS الأمر يبدو وكأن هذا ليس بالأمر الكبير حقًا.هل هذا صحيح بالنسبة لتطبيقات الويب، أو بشكل أساسي تطبيقات Win32؟

أعلم أن الواجهة الأمامية لـ asp.net تختلف اختلافًا جوهريًا عن SilverLight، ولكن هناك مجموعة من أكواد C# التي لا أرغب في إعادة كتابتها إذا لزم الأمر.أفترض أن استبدال كود جافا سكريبت بـ Silverlight أمر تافه (أعلم افتراضًا سيئًا، لكن يجب أن أبدأ من مكان ما) لأنه يتعامل مع الأحداث المحددة بوقت، لذلك لست مهتمًا بذلك حقًا.أحتاج إلى التوصل إلى حل لكيفية التخفيف من هذه المشكلة، وآمل أن يكون هذا حلاً وسطًا بين:لا تفعل شيئًا وشاهدنا نتعرض للقصف من قبل عملائنا، وأعد كتابة التطبيق بالكامل في شيء أكثر أمانًا من صفحة الويب مع التحقق من صحة الواجهة الأمامية فقط.هل حاول أحد تحويل كود ASP.NET إلى مشروع SilverLight؟

هل كانت مفيدة؟

المحلول

إذا كان الجزء الأكبر من تطبيقك موجودًا في الواجهة الخلفية، فيجب أن تظل قادرًا على الحفاظ على غالبية التعليمات البرمجية سليمة واستبدال الواجهة الأمامية فقط.ومع ذلك، يتطلب Silverlight فهمًا لـ WPF، والذي يختلف بشكل كبير عن HTML/JS الذي يستخدمه تطبيقك حاليًا.أود أن أقول أنه إذا كانت واجهة المستخدم الخاصة بك رفيعة جدًا، فيجب أن يكون من السهل جدًا النقل إلى Silverlight، ولكن كلما زاد منطق الأعمال في واجهة المستخدم، أصبح الأمر أكثر صعوبة.

نصائح أخرى

ما مدى شدة استخدامك لمكتبات الفئات والأشياء التي يمكن اعتبارها "خطيرة"، مثل pinvoc والوصول إلى نظام الملفات وSystem.Diagnostics.Process؟

إن نقل التعليمات البرمجية من ASP.NET إلى Silverlight ليس بالمهمة السهلة.كما يشير Nate، فإن الأمر يعتمد على مقدار تطبيق ASP.NET الذي يعتمد على AJAX، ومقدار ما يعتمد على عناصر تحكم الخادم.

Silverlight عبارة عن تقنية كاملة من جانب العميل، مما يعني أن كل شيء يعمل على العميل داخل المتصفح.ASP.NET هي تقنية خادم، وهي مبنية على نموذج الطلب/الاستجابة.نظرًا لأن هذين النموذجين مختلفان تمامًا، فهو ليس منفذًا مستقيمًا.

ومع ذلك، نظرًا لأن ASP.NET هو مجرد HTML وHTTP POST لبيانات النموذج، فقد أجرى الأشخاص تجارب حيث أضافوا تطبيق Silverlight مباشرة أعلى صفحة ASP.NET، وقاموا يدويًا بإنشاء طلب HTTP POST يدويًا بإرسال البيانات الدقيقة مرة أخرى عمل تطبيق ASP.NET.إنه يشبه تقريبًا إجراء "تجريد الشاشة" لتطبيقك الخاص.يمكن أن ينجح هذا، لكنه لن يكون الأمثل.لن تحصل على زيادة في الأداء حيث سيتعين على تطبيق ASP.NET الخاص بك أن يمر بدورة صفحة كاملة عند كل طلب.

البديل الأفضل هو البدء في تغليف أي وظيفة يمتلكها المستخدم في تطبيق APS.NET كخدمات ويب.يمكنك إضافة هذه الخدمات إلى جانب صفحات ASPX الخاصة بك، ونقل التطبيق تدريجيًا.واجهة المستخدم التي ستبنيها من الألف إلى الياء بناءً على هذه الخدمات.

حظ سعيد!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top