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

StackOverflow https://stackoverflow.com/questions/910089

سؤال

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

لذا فإن سؤالي هو: هل من الممكن معرفة إطار ASP.NET MVC للبحث في مجموعة أخرى عن المشاهدات و / أو وحدات التحكم دون خسارة المرونة المدمجة لمحرك التوجيه؟

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

المحلول

(غير معروف) هو الصحيح. إنشاء مشروعين، مكتبة فئة ومشروع Web MVC. يجب أن يشير مشروع MVC إلى مكتبة الطبقة التي تحتوي على وحدات التحكم والرمز خلف الملفات (ASAX Global ETC). هنا هو تخطيط مثال.

يجب أن تحتوي مكتبة الطبقة على ملفات .cs فقط ولا طرق عرض (ملفات .aspx / .ascx).

MyProject.BASESITE (مكتبة فئة) تحكم + HomeController.cs - ... أي وحدات تحكم أخرى - default.aspx.cs - global.asax.cs

يجب أن يحتوي مشروع Web MVC على التكوينات والاشراض وما إلى ذلك ومرجع إلى مكتبة الفصل الدراسي

myproject.exampesite + content + scripts + css + images + views + home - index.aspx - .. ملفات ASPX أخرى + Shared - site.master - web.config

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

نصائح أخرى

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

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

على الرغم من ذلك، بالطبع، فإن الإجابة الأكثر بساطة المقدمة من غير معروف (Google) ستعمل أيضا!

أدرك أن هذا سؤال قديم حقا لكني كتبت مقالا حول كيفية ما تطلبه بالضبط

http://dotnetslackers.com/articles/aspnet/storing-asp-net-mvc-controllers-views-in-sparate-assemblies.aspx.

فقط إكمال إجابة @ ديفيد:

إذا كان مشروعك يديره NuGet, ، بعد إنشاء مكتبات الفصل، قم بإجراء نسخة من packages.config ملف إلى جذر مكتبات الفصل. بعد ذلك، يجب عليك تحرير كل packages.config ملف إضافة أو إزالة الحزم، وفقا لاحتياجات كل مكتبة كل فئة.

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