سؤال

أنا أعمل حاليًا على نموذج أولي لحل ASP.NET MVC 3 والذي سيتم استخدامه كأساس للعديد من عمليات إعادة كتابة المشاريع (من نماذج الويب).

أحد الأهداف التي أملكها هو تنفيذ بعض إدارة البرامج النصية عبر التطبيق بدلاً من إدارة البرامج النصية غير المتوفرة لدينا حاليًا.

MVC 3 بها خلل في IMHO: إذا كنت بحاجة إلى برنامج نصي محدد في طريقة عرض جزئية أو عرض نموذج - فقد ينتهي بك الأمر إما بفقدان التحكم في مكان وجود كتلة البرنامج النصي في HTML المعروض أو الاضطرار إلى حدد كل ملف جافا سكريبت تابع في العرض الأصل.

لقد كنت أفكر بجدية في استخدام http://getcassette.net/ كإطار عمل لحل المشكلة الموضحة. ومع ذلك ، فإن الإصدار الأخير من MVC4 beta جعلني أشك في نفسي مرة أخرى: تبدو حزم MVC مشابهة حقًا لحزم Cassette وأنا في حيرة من أمري مرة أخرى:

  1. هل يجب علي استخدام الكاسيت الآن ثم الانتقال إلى حزم MVC4؟

  2. هل يجب أن أقوم بتطبيق مدير نصوص مبسط بنفسي (شيء ، مثل فئة مساعد البرامج النصية في معاينة MVC4) ثم الانتقال إلى MVC4

  3. أم يجب أن أدمج الكاسيت في المشروع وآمل أن يكون أكثر مقاومة للمستقبل من MVC (أنا لا أحب هذا الخيار في الوقت الحالي فقط بسبب العدد الهائل من التبعيات التي تأتي مع الكاسيت).

ليس لدي خبرة في Cassette نفسها وأجد صعوبة فعلاً في إجراء المقارنة بنفسي وسأقدر أي إجابات أو تلميحات.

تعديل: لقد اكتشفت للتو أن هناك خيارًا آخر: تثبيت حزمة بيتا nuget لتجميع MVC: https:// nuget. org / packs / Microsoft.Web.Optimization

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

ولكن إذا لم تكن خائفًا من إضافة 5+ التبعيات ومجموعة تغييرات web.config في مشروعك - فانتقل إلى الكاسيت. آمل أن يتم تحديثه في وقت ما للاستفادة من تجميع MVC بالداخل لتقليل تكرار الوظائف ، ونأمل أن يصبح أكثر نمطية.


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

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

المحلول

تتوفر معلومات حول تجميع ASP.NET MVC هنا: http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx .

تضيف ASP.NET ميزة تسهل "التجميع" أو "دمج" ملفات CSS و JavaScript متعددة في عدد أقل من طلبات HTTP. يؤدي هذا إلى طلب المتصفح عددًا أقل بكثير من الملفات وبدوره يقلل الوقت المستغرق لجلبها.

يضيف الإصدار التالي من ASP.NET أيضًا ميزة جديدة تجعله من السهل أيضًا تقليل حجم تنزيل المحتوى أو "تصغيره".

يبدو أنه في الأساس نفس الشيء مثل كاسيت.مع تساوي جميع الأشياء الأخرى ، استخدم الحل الأصلي لـ ASP.NET MVC.

نصائح أخرى

انتهى بي الأمر باستخدام Cassette في مشروعي الأخير وهو يعمل بشكل جيد.ليس هناك الكثير من التهيئة لها إذا كنت تستخدم NuGet ، لذا فإن تفكيري هو أنه لن يكون من الصعب جدًا استخدام Cassette الآن ثم التبديل لاحقًا إذا أردت ذلك.

هناك شيء آخر يجب مراعاته وهو أن Cassette تقوم بعمل ترجمة أقل.لست متأكدًا مما إذا كانت حزمة MVC4 تفعل ذلك أم لا لأنني لم يكن لدي الوقت لقراءتها.

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

كتحديث لهذا ، تمت إضافة دعم LESS و CoffeeScript في حزمة التحديث 2 لبرنامج Visual Studio 2012 ، لذلك بدأ يبدو أكثر فأكثر أنه سيكون من الأفضل إضافة التحولات التي تحتاجها إلى التنفيذ الأصلي لـالتجميع / التصغير المدعوم في MVC4 بدلاً من استخدام الكاسيت على المدى الطويل.

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