سؤال

عندما سمعت لأول مرة عن ستاكوفيرفلوو و سمعت أنه كان يجري بناؤه في ASP.Net MVC, لقد كنت مشوشة قليلا.اعتقد ASP.Net كان دائما مثالا على العمارة MVC.لديك .صفحة aspx التي توفر طريقة عرض .aspx.vb الصفحة التي توفر تحكم يمكنك إنشاء فئة أخرى إلى النموذج.عملية باستخدام MVC في ASP.Net الموضحة في هذه Microsoft المادة.

لذا سؤالي هو.ماذا ASP.Net MVC توفير أنك لن تكون قادرة على القيام مع العادية ASP.Net (حتى يرجع ASP.Net 1.1)?هو مجرد نزوة الروابط ؟ هو فقط من أجل حقوق المفاخرة MS أن تكون قادرا على مقارنة أنفسهم مع التكنولوجيات الجديدة مثل روبي على القضبان ، ويقول: "يمكننا أن نفعل ذلك أيضا" ؟ هل هناك شيء أكثر من ذلك ASP.Net MVC يوفر في الواقع بدلا من بضعة قوالب إضافية في ملف->الجديدة القائمة ؟

أنا ربما السبر حقا متشككا السلبية الآن لذا سأتوقف فقط.ولكن أريد حقا أن أعرف ما ASP.Net MVC يوفر في الواقع.أيضا, إذا كان أي شخص يمكن أن يقول لي لماذا هو التحكم بعرض نموذج وليس في ترتيب طبقات View-Controller-نموذج أو نموذج-مراقبة-عرض اعتمادا على ما إذا كنت تسير أعلى إلى أسفل أو العكس بالعكس ، أنا حقا أقدر ذلك جدا.

تحرير

أيضا, ربما تجدر الإشارة إلى أن كنت لا تهتم حقا عن "نماذج ويب" (ويعرف أيضا باسم خادم الضوابط) نموذج إما.لقد تستخدم فقط الحد الأدنى, لا في العمل.

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

المحلول

.aspx لا تفي نمط MVC لأن aspx صفحة (عرض) يسمى قبل التعليمات البرمجية خلف (إن 'المراقب').

وهذا يعني أن وحدة تحكم لديه 'من الصعب الاعتماد على الرأي الذي كثيرا ضد MVC المبادئ.

واحدة من المزايا الرئيسية MVC هو أنه يسمح لك لاختبار الخاص بك وحدة تحكم (الذي يحتوي على الكثير من المنطق) دون إنشاء حقيقي.كنت ببساطة لا يمكن أن تفعل هذا .aspx العالم.

اختبار تحكم من تلقاء نفسه هو أسرع بكثير من الاضطرار إلى إنشاء مثيل كامل asp.net خط أنابيب (طلب أو استجابة, عرض حالة, حالة جلسة الخ).

نصائح أخرى

سكوت غوثري وأوضح أنه في هذا المنصب "ASP.NET إطار MVC"

  • فإنه يتيح تنظيف الفصل بين المخاوف, الاختبار, و TDD من قبل الافتراضي.كل الأساسية في العقود في إطار MVC هي واجهة بناء وسهولة mockable (ويشمل واجهة بناء IHttpRequest/IHttpResponse إينترينسيكس).يمكنك وحدة اختبار التطبيق دون الحاجة إلى تشغيل تحكم في ASP.NET عملية (صنع وحدة اختبار سريع).يمكنك استخدام أي وحدة إطار اختبار لك تريد أن تفعل هذا الاختبار (بما في ذلك NUnit, MBUnit, MS الاختبار ، إلخ).

  • فمن الموسعة للغاية و قابلة للتوصيل.كل شيء في MVC إطار تم تصميمه بحيث يمكن أن الاستعاضة عنها بسهولة/حسب الطلب (على على سبيل المثال:يمكنك اختياريا في المكونات عرض الخاص بك محرك التوجيه السياسة ، المعلمة التسلسل ، إلخ).ذلك كما يدعم استخدام القائمة حقن التبعية و الحاويات اللجنة الاولمبية الدولية نماذج (وندسور ، Spring.Net, NHibernate ، إلخ).

  • ويتضمن قوية جدا تعيين URL المكونات التي تمكنك من بناء التطبيقات مع نظيفة عناوين url.عناوين المواقع لا تحتاج إلى أن يكون امتداد داخل كل منها ، وتهدف إلى بسهولة دعم كبار المسئولين الاقتصاديين و بقية الصديقة تسمية أنماط.على سبيل المثال, لا يمكن أن بسهولة خريطة /المنتجات/تحرير/4 URL "تحرير" العمل من ProductsController الدرجة في المشروع أعلاه أو خريطة /مدونات/scottgu/10-10-2007/SomeTopic/ عنوان URL "DisplayPost" عمل BlogEngineController الدرجة.

  • في إطار MVC يدعم استخدام القائمة ASP.NET .ASPX .ASCX ، .سيد الترميز الملفات "عرض قوالب" (بمعنى يمكنك بسهولة استخدام القائمة ASP.NET ميزات مثل متداخلة سيد صفحات ، <%= %> قصاصات ، التعريفي خادم الضوابط ، قوالب, ربط البيانات, التعريب, وما إلى ذلك).لا, لكن, استخدام القائمة بعد الظهر نموذج التفاعلات مرة أخرى إلى الخادم.بدلا من ذلك, سوف الطريق هناك. التفاعلات إلى وحدة تحكم فئة بدلا من ذلك - مما يساعد على ضمان نظيفة فصل من الشواغل الاختبار (وهذا يعني أيضا لا viewstate أو الصفحة دورة حياة مع MVC على أساس وجهات النظر).

  • على ASP.NET إطار MVC يدعم بشكل كامل القائمة ASP.NET الميزات مثل أشكال/مصادقة windows URL إذن العضوية/الأدوار ، إخراج البيانات في ذاكرة التخزين المؤقت ، الدورة/تعريف الدولة الإدارية ، المراقبة الصحية ، التكوين النظام مزود العمارة ، الخ.

في المقام الأول, فإنه يجعل من السهل جدا لخلق قابلة للاختبار مواقع محددة فصل من المسؤولية.أيضا أسهل بكثير لإنشاء صالحة XHTML معهد اليونسكو للإحصاء باستخدام إطار MVC.

لقد استعملت 2 CTP (أعتقد أنهم على خمسة الآن) لبدء العمل على الموقع و بعد أن خلق عدد قليل من تطبيقات الويب من قبل ، أقول مئات المرات أفضل من استخدام الخادم نموذج التحكم.

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

المادة كبيرة من قبل دينو اسبوزيتو أن المقصود هو شرح ASP.net MVC إلى ASP.net webforms developpers:

http://dotnetslackers.com/articles/aspnet/AnArchitecturalViewOfTheASPNETMVCFramework.aspx

لا مزيد من السيارات ولدت html معرفات!!!أي شخص القيام بأي نوع جافا سكريبت تقدر هذه الحقيقة.

ASP.Net مع انها رمز وراء تقريبا MVC - ولكن ليس الشيء الوحيد الذي يجعل من غير أن codebehinds ترتبط مباشرة إلى aspx - وهو مكون كبير من MVC.إذا كنت تفكر في codebehinds كما تحكم ينبغي أن تنفصل تماما عن الرأي.الجديد .صافي MVC جولات هذا - و يجلب كاملة إطار MVC.على الرغم من أن هناك الموجودة .صافي بالفعل (انظر Spring.NET).

نظرت من خلال عدة أمثلة بسيطة مثل هذا واحد.أستطيع أن أرى الفرق.ومع ذلك, أنا حقا لا أرى كيف MVC uncouples المنظر من المراقب المالي.رأي لا تزال مراجع المادة في وحدة تحكم.أنا لا أرى كيف أنه يجعل من أسهل بكثير من الاختبار ، على الأقل في MVC تحكم لا يملك أي معرفة رأي.و لا يجب عليك أن عملية عرض أساليب الدعوة في وحدة تحكم.أستطيع أن أرى ذلك تماما قفزة ، على الرغم من للوهلة الأولى قد لا يبدو مثل الكثير.

أنا لا أتفق مع @عن القتال تحكم الملقم.أنا لم أعمل في الحالة التي كانت تستخدم في الواقع, ولكن أنا أعرف الكثير من الناس الذين لديهم ، واجهت عدد قليل جدا من القيود معهم.

مقال عن ASP.net MVC مقابل ASP.net نموذج ويب

http://weblogs.asp.net/shijuvarghese/archive/2008/07/09/asp-net-mvc-vs-asp-net-web-form.aspx

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