سؤال

لدي بعض التجارب في بناء التطبيقات باستخدام Asp.Net، ولكن الآن أصبحت أطر عمل MVC أكثر شيوعًا.أرغب في تجربة إنشاء تطبيق ويب جديد متعدد اللغات باستخدام Asp.Net MVC أو Castle MonoRail ولكني لا أعرف أيهما يناسبني.لا أحب محرك عرض نماذج الويب، لكني أحب ميزة التوجيه في Asp.Net MVC.

  • هل يمكن لأحد أن يخبرنا عن الإيجابيات والسلبيات بين هؤلاء؟
  • ما هو ViewEngine الأفضل أيضًا لتجاوز القالب الرئيسي؟
هل كانت مفيدة؟

المحلول

عندما أتحدث كمدافع عن الخط الأحادي، يجب أن أقول أنه من الأفضل أن تختار ASP.NET MVC.لنكون صادقين، فإن الحقيقة البسيطة المتمثلة في أن ASP.NET MVC سيصبح البنية الافتراضية في غضون ثلاث سنوات من المحتمل أن تتأرجح.كانت هذه المعادلة مختلفة قبل عام مضى، وذلك ببساطة لأن البنية الافتراضية كانت تعاني من مشاكل إنتاجية خطيرة مقارنة بـ MonoRail.

إذا كنت تريد التحدث عن المزايا والعيوب التقنية:

  • ASP.NET AJAX في حالة من الفوضى (تجنب ذلك)، لكن لديهم الآن jQuery.في الواقع، دعم jQuery أفضل من أي بيئة أخرى.وبطبيعة الحال، لن تحصل على ذلك بشكل كامل إلا من خلال تكامل IDE مع محرك العرض القياسي.
  • هناك بعض التحسينات الجمالية (على سبيل المثال، الطريقة التي يتم بها تمرير معلومات النموذج أكثر وضوحًا ووضوحًا من المونوريل).

أيضًا، لا تستبعد محرك العرض القياسي بعيدًا عن السيطرة.لا يتعين عليك استخدام عناصر التحكم كما فعلت مع ASP.NET، حيث يمكنك ترميزها بطريقة مشابهة جدًا لـ Brail، فقط باستخدام C# بدلاً من Boo.

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

أيضًا، من نواحٍ عديدة، تظل MonoRail هي المنصة الأكثر اكتمالاً.لا توجد فكرة للتحقق من الصحة أو الترحيل في ASP.NET، على سبيل المثال.أيضًا، ليس هناك حقًا أي مساعدة للربط بالنموذج.يتمتع المساعدون بوظائف قليلة جدًا مقارنة بنظيراتهم من القطار الأحادي.

بشكل عام، على الرغم من ذلك، أعتقد أن ASP.NET MVC هو الفائز.

نصائح أخرى

MonoRail وASP.NET MVC متشابهان جدًا بشكل أساسي، ومن المفترض أن تكون في وضع جيد باستخدام أي منهما.لقد كان MonoRail موجودًا لفترة أطول بكثير، وبالتالي فهو يتمتع بميزات ذات مستوى أعلى.

القوة الرئيسية لـ ASP.NET MVC هي محرك التوجيه الخاص به، ولكي نكون منصفين، فإن MonoRail لديه محرك توجيه مكافئ إلى حد كبير، ومع بعض التعديلات يمكنك استخدام محرك التوجيه ASP.NET MVC مع MonoRail لأن محرك التوجيه ليس موجودًا بالفعل في ASP .NET MVC ولكن في System.Web.Routing (تم إصداره في .NET 3.5 SP1).يعد ASP.NET MVC والتكامل مع Visual studio ميزة إضافية أيضًا، ومن المحتمل أن يتحسن مع اقترابنا من RTM للإصدار 1.

يحتوي مشروع MvcContrib على بعض محركات العرض الرائعة، مثل Spark وNHaml وBrail.لا يمكن اعتبار أي شخص "الأفضل"، والمفضل الشخصي هو Spark.للمزيد عن الشرارة: http://dev.dejardin.org/documentation/syntax

يتمتع محرك WebForms بالذكاء الذي يعد ميزة كبيرة تفتقر إليها جميع محركات العرض البديلة على حد علمي.

وبصرف النظر عن الشعبية والدعم الملحوظ من Microsoft، لا يزال ASP.NET MVC يفتقر إلى بعض الميزات الأساسية التي يتمتع بها Monorail لفترة طويلة مثل تنظيم وحدة التحكم (المناطق)، ومكونات ViewComponents الأصلية والمرشحات التي يمكنها استخدام IoC لتسمية أهمها.

لدي بعض التطبيقات الكبيرة التي تستخدم كل هذه الميزات وقد واجهت صعوبة في نقلها إلى ASP.NET MVC.

لقد عملت مع Monorail لعدة سنوات حتى الآن، وبينما يبدو MVC واعدًا ومرونته رائعة، ما زلت أجد أنه من غير المقبول أنه مقابل كل شيء آخر أحاول القيام به، يتبين أنه غير موجود ويجب علي إما توصيله قليلاً قطعة من MvcContrib، قطعة أخرى من SharpArchitecture، قم ببنائها بنفسي، وستحصل على الصورة.من السهل جدًا العمل مع الخط الأحادي (في الوقت الحالي).

أتوقع أن تتحسن الأمور في الأشهر القليلة المقبلة حيث ستبدأ بعض الحلول المقترحة في الارتفاع ضد الحلول الأخرى وتصبح أكثر انتشارًا.مرحبًا، إن تنوع الخيارات أمر جيد ولكن ثق بي، فأنت لا تريد أن تكون في Java-land منذ 3 سنوات حيث كان هناك الكثير من أطر عمل الويب بحيث يمكنك إنشاء موقعك باستخدام إطار واحد لكل صفحة مختلفة!

في غضون ذلك، سأستمر في نقل تطبيقات الواقع المختلط ببطء إلى MVC، تحسبًا لذلك.

  1. أعتقد أن MVC يفوز.مجموعة ميزاتها متشابهة جدًا، ولكنها ستكون الأكثر "شعبية" بين الاثنين (وبالتالي يتم دعمها وتوثيقها وتوسيعها على نطاق واسع عبر مجتمع التطوير).بالإضافة إلى ذلك، فإن ViewEngine (Razor) الجديد..وتحسينات IDE عامل مهم بالنسبة لي، وتعزز قيمة اختيار MVC بدلاً من الخط الأحادي، في رأيي.

  2. لقد استخدمت جميع محركات ViewEngines الشائعة تقريبًا، ولكن انتهى بي الأمر إلى تشغيل محركي الخاص (أنشأ مشروعًا مفتوح المصدر لذلك) باستخدام محرك قالب StringTemplate الرائع.ST هو الفصل الحقيقي بين الاهتمامات، IMO.أجد نفسي أكتب تطبيقات أفضل نتيجة لذلك، مع قدر أقل بكثير من العلامات.لقد طردت أيضًا أ مقدمة سريعة ودليل مرجعي إذا اخترت ركل الإطارات على المحرك.لقد حالفني الحظ كثيرًا في المشاريع التي نشرتها حتى الآن باستخدامها.ومع ذلك، يبدو Razor (MVC 3) مثيرًا للإعجاب.

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