سؤال

أي شخص هناك باستخدام ميزة صفحات CSHTML الجديدة وتجد أنها تفضل بناء جملة محرك العرض الجديد على محرك العرض الافتراضي ASP.NET MVC الحالي أو أكثر من نماذج الويب ، وإذا كان الأمر كذلك ، فلماذا؟ ماذا عن CSHTML يمنحك ميزة على MVC أو نماذج الويب ، أو العكس؟

مجرد فضول لسماع الناس يأخذونه.

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

المحلول

واحدة من الفوائد هي أنه يمكن تقديم طرق عرض الحلاقة داخل اختبارات الوحدة ، وهذا شيء لم يكن من الممكن بسهولة مع عارض ASP.NET السابق.

من عند إعلان سكوتغو هذا مدرج كواحد من أهداف التصميم:

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

نصائح أخرى

رأي مطور Microsoft Ex Microsoft

عملت في فريق أساسي لموقع MSDN. الآن ، أستخدم C# Razor لمواقع التجارة الإلكترونية مع فريق البرمجة الخاص بي ، ونحن نركز بشكل ثقيل على الواجهة الأمامية jQuery مع صفحات Razor Back C# وقاعدة بيانات ذاكرة LINQ-ENTITY بحيث تكون الصفحات من 1-2 مللي ثانية حتى على المتداخلة مع الحلقات مع الاستعلام ولا يوجد تخزين مؤقت للصفحة. لا نستخدم MVC ، فقط Plain ASP.NET مع صفحات الحلاقة التي يتم تعيينها باستخدام وحدة إعادة كتابة URL لـ IIS 7 ، ولا توجد صفحات ASPX أو برمجة الأحداث من جانب الخادم على الإطلاق. لا تحتوي على الطبقات الإضافية (غير الضرورية) التي يضعها MVC في بنيات الكود للتحديات التي تواجهها Regex. أقل هو أكثر بالنسبة لنا. كل شيء هزيل ومعني ، لكنني أعطي الدعائم لـ MVC لقابليتها للاختبار ولكن هذا كل شيء.

صفحات الحلاقة ليس لها دورة حياة مثل صفحات ASPX. انها مجرد تقديم كصفحة واحدة مطلوبة. C# هي لغة رائعة وينفجر الشفرة بشكل جيد للسماح لها بعملها. إن الكتابة المجهولة مع الأدوية الجيرية و LINQ تجعل الحياة سهلة للغاية مع صفحات C# و Razor. سيساعدك استخدام صفحات الحلاقة على التفكير ورمز أخف وزناً.

أحد عيب الحلاقة و MVC هو عدم وجود ثبات يشبه Viewstate. كنت بحاجة إلى تنفيذ حل لذلك ، لذا انتهى بي الأمر إلى كتابة مكون إضافي jQuery لذلك -> http://www.jasonsbring.com/dumbformstate وهو مكون إضافي للتخزين HTML 5 STORAGE SODACION المدعوم لحالة النموذج التي تعمل في جميع المتصفحات الرئيسية الآن. إنه فقط بالنسبة للدولة النموذجية حاليًا ولكن يمكنك استخدام Window.SessionStorage أو Window.LocalStorage ببساطة لتخزين أي نوع من الحالة عبر عوامل Postback أو حتى طلبات الصفحة ، لقد أزعجت فقط جعلها تلقائيًا ومساحة اسمها بناءً على عنوان URL وفهرس النموذج So So ليس عليك التفكير في الأمر.

  1. كل شيء مشفر افتراضيًا !!! هذا ضخم جدا.

  2. يمكن تجميع المساعدين التصريحيين حتى لا تحتاج إلى فعل أي شيء مميز لمشاركتهم. أعتقد أنهم سوف يحلون محل الضوابط .ascx إلى حد ما. عليك أن تقفز من خلال بعض الأطواق لاستخدام التحكم .ascx في مشروع آخر.

  3. يمكنك عمل قسم مطلوب وهو لطيف.

أكبر فائدة هي أن الكود أكثر إيجازًا. سيكون لدى محرر VS أيضًا دعم Intellisense الذي لا تملكه بعض محركات العرض الأخرى.

يبدو مساعدو HTML التصريحي أيضًا رائعين لأن القيام بمساعدين HTML ضمن رمز C# يذكرني بعناصر تحكم مخصصة في ASP.NET. أعتقد أنهم أخذوا صفحة من الجزارات ولكن مع رمز مضمّن.

لذلك بعض الفوائد المحددة على محرك عرض ASP.NET.

على النقيض من محرك View مثل Spark على الرغم من:

لا يزال Spark أكثر إساءة ، يمكنك الاحتفاظ بـ IF و Loops داخل علامة HTML نفسها. لا يزال الترميز أكثر طبيعية بالنسبة لي.

يمكنك ترميز الجزارات بالضبط كيف ستقوم بفعل مساعد تصريح ، فأنت فقط تمر على طول المتغيرات إلى الجزئي ولديك نفس الشيء. لقد كان هذا موجودًا مع Spark لفترة طويلة.

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