ASP.NET Core 2.0 Razor vs Angular/React/etc




reactjs (2)

لقد تلقيت مع فريقي التمويل للبدء في تطوير تطبيق ويب على مستوى المؤسسة (لن أخوض في تفاصيل ما يفعله). سيحتوي التطبيق على العديد من صفحات الويب المنفصلة ، ولكن اثنتان من تلك الصفحات تكونان أكثر تركيزًا وثقيلة جدًا - كما هو الحال في الكثير من تفاعل المستخدم ، والوسائل التي تعرض البيانات الجماعية ، واتصالات موقع الويب ، والدردشة ، إلخ.

لقد تم تعييني لكبير المهندسين المعماريين في المشروع ، لذلك أقوم ببعض الأبحاث حول أحدث أطر الويب. بالنسبة للجهة الخلفية ، قمنا بإجراء بعض الاختبارات وقررنا استخدام نظام Azure SQL الأساسي. حتى الآن ، أنا أحب التحسينات التي تم إجراؤها ، والتي يتم إجراؤها ، على ASP.NET مع Core 2.0. على وجه التحديد محرك Razor ، على الإصدارات السابقة من ASP.NET MVC.

أردت الحصول على بعض آراء الخبراء حول الشفرة "الجديدة" مقابل الزاوي / التفاعل وما شابه ذلك. أنا مهتم بشكل خاص بالأداء. كيف تتمسك Core 2.0 Razor بأطر تقديم جانب العميل؟ هل الاختلافات لا تذكر؟ يستهدف تطبيقنا 1،000،000 مستخدم محتمل (حوالي 100،000 متزامن).

شكرا لك مقدما!


انتهى بنا الأمر مع واجهة Angular الأمامية والخلفية ASP.NET API API ، وذلك باستخدام Azure SQL. لقد اختبرنا Core Razor ، وعلى الرغم من أنه أفضل من Razor القديم ، كان Angular أسرع بكثير بالنسبة لنا في النهاية. بقدر ما يذهب تجربة المستخدم ، الزاوي (أو رد الفعل) متفوقة بكثير من حيث الأداء. الجوانب الملزمة لطراز Angular التي وجدناها ميزة هائلة للتقديم من جانب الخادم. ومع ذلك ، فإن استخدام Razor (أو التقديم من جانب الخادم بشكل عام) يضفي مزيدًا من التكامل التام على البيانات ، مما يجعله أفضل لنقل البيانات من الواجهة الأمامية إلى النهاية الخلفية. يوجد فصل حقيقي بين إطار الواجهة الأمامية وواجهة برمجة التطبيقات. يجب أن يتم تحويل جميع البيانات التي يتم تمريرها إلى الخادم إلى كائنات مكتوبة - وهذا يعني أنه يجب عليك إدارة مجموعتين منفصلتين لطراز POCO. قد يتسبب ذلك في حدوث مشكلات في حالة عدم محاذاة كائنات الخادم والكائنات الأمامية. في الوقت الحالي ، لم يتم نضج Entity Framework Core بشكل كبير ، لذا نواجه مشكلات مع تحديث الكائنات ، واستعلام الكائنات ، بما في ذلك الكائنات التابعة ، إلخ.

عموما ، لقد نجح هذا الإعداد كبيرة بالنسبة لنا حتى الآن! أتصور أن React سيكون بديلاً مشابهاً لـ Angular إذا كنت أكثر راحةً معه. كان علي أن أتعلم الزاوي ، الذي كان انتقالاً سهلاً للغاية ، وأنا أحب ذلك الآن!


باستخدام Angular / React مع api في جانب الخادم:

  • يمكنك التخلص من عملية إنشاء HTML في جانب الخادم ويمكنك حفظ وحدة المعالجة المركزية
  • ينتج api حمولة صغيرة (json) و Razor (html) لدورة ما سيكون حجمها أكبر بكثير ، وعمليات إعادة تحميل كاملة للصفحة الثابتة ورحلة إعادة النشر بعد الظهر. حتى المعهد ومنتجع صحي حفظ عرض النطاق الترددي
  • يمكن أن يحتوي كل من api و spa على سيناريوهات مختلفة للترجمة والتوسيع والنشر
  • باستخدام api ، يمكنك دعم تطبيق الجوّال أيضًا ، وإذا بدأت بـ Razor ، فقد تحتاج إلى api في المستقبل

ولكن باستخدام الزاوي / React يجب أن تقلق بشأن العملاء.

  • يجب على العميل تمكين جافا سكريبت
  • يجب أن يكون لدى العميل متصفحات حديثة
  • يجب أن يكون لدى العميل أجهزة قوية كافية
  • SEO




razor