سؤال

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

باختصار ، كيف يمكن للهندسة المعمارية MVC و 3 مستويات العمل معًا؟ شكرا للمساعدة!

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

المحلول

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

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

نصائح أخرى

طبقة العرض التقديمي هي وجهة نظرك.

طبقة البيانات هي النموذج الخاص بك (أوصي بالنظر إلى نمط المستودع).

تظل طبقة العمل ما هي عليه.

يمكن لوحدة التحكم استدعاء طبقة العمل للوظائف عند تحميل الكائن ، أو يمكن للنموذج استدعاء طبقة العمل للوظائف عند طلب عرض ViewModel معين ، ولكنه يبقى كما هو.

لا ينبغي أن يكون لدى وحدة التحكم منطق عمل واسع في ذلك-وضع ذلك في DLL المستفيد من ذاتي.

هذا شخصي جدا. افعل ما هو منطقي لفريقك.

يمكن أن تكون MVC مرنة إلى حد ما ولا يوجد إطار MVC تقريبًا ، عبر جميع اللغات ، يفعل الأشياء بنفس الطريقة. حتى في الفضاء .NET. يقوم Fubumvc و Spring.net و MS MVC بأشياء بطرق مختلفة قليلاً.

بادئ ذي بدء ، ليس عليك التغيير إلى MVC لمجرد ... إذا كان لديك شيء يعمل ، فلا أعتقد أنك بحاجة إلى ذلك.

ولكن بالنسبة إلى السؤال ، فإن النموذج في نمط MVC هو أي نوع من الفصول التي تمثل مشكلة عملك ، يمكن أن يكون أي نوع من الحساب أو قواعد العمل أو فئات الوصول إلى البيانات. في إطار عمل MVC ، يوجد مجلد كوسيلة لاقتراح حل لك ، بحيث يمكنك وضع فصول النموذج الخاصة بك هناك ، ولكن لا يتعين عليك إنشاء مشاريع مختلفة ، لذا فإن حل مشاكل عملك وهذا هو نموذجك. لذا ، يمكنك تحديد أي طقطق آخر يمكنك استخدامه ، يمكنك استخدام نمط المستودع وتطبيقه باستخدام Nhibernate أو إطار الكيان.

طرق العرض هي مجرد صفحات ويب لإظهار المعلومات واستلامها من وإلى المستخدم.

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

آمل أن أساعد.

N-tier مع MVC يعمل على ما يرام. ما عليك سوى اتباع مبدأ الصلبة والعديد من الآخرين وستتمكن من الحفاظ على طلبك مقترنًا بشكل فضفاض ومتماسك.

أود أن أقول إن قراءة الكتب على MVC 3 ومشاهدة مقاطع فيديو Pluralsight.com هي أعظم مواردك. لا يمكنك الذهاب مع "افعل ما يصلح لفريقك". إذا قال زملاء العمل يدعى جوني وتيمي يريدون وضع مجموعة من المنطق في وحدة تحكم ، لمجرد اندفاع المدى القصير الذي "يعمل لفريقك" الذي لا يجعله صحيحًا / جيدًا / ذكيًا.

لقد وجدت الكثير من المقالات السيئة على الإنترنت لدرجة أنه من المخيف عدد الأشخاص الذين يحصلون على طريق مظلم من البؤس. اتبع المسار السعيد. استخدم Stackoverflow للرأي مثل الفن ، ولكن تحقق من مقالات MSDN وكتب MVC و Pluralsight.com

أعلم أنه مجرد رابط ويكيبيديا ، ولكن هناك بعض المعلومات هنا بخصوص N-Tier مقابل MVC الهندسة المعمارية.

"الطبقة" هي وحدة للنشر ، في حين أن "طبقة" في MVC هي فصل منطقي للمسؤولية داخل الكود.

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