كيف يمكنني تنظيم مشروع ASP.NET لإعادة الاستخدام

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

  •  26-09-2019
  •  | 
  •  

سؤال

أنا بصدد تصميم تطبيق ويب سيكون لديه عدة وحدات قابلة للتثبيت توفر وظائف مختلفة. هناك الكثير من الأشياء الشائعة التي تحدث هنا ولدي 3 مكتبات فئة 3 C# أعرف أنها ستكون سهلة الاستخدام في مشاريع مختلفة.

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

كيف تقومون ببناء مشاريع موقع الويب الخاص بك حتى يمكن إعادة استخدام الصفحات عبر مشاريع متعددة؟ حتى الآن ، فإن الحل الوحيد الذي توصلت إليه هو إنشاء مستودع في SVN والرجوع إليه في svn:externals خصائص المشروع الرئيسي. يتيح لي ذلك إضافة صفحات إلى هذا الدليل الشائع في جميع مواقع الويب ، وأنا أعلم أنني سأتمكن من استخدام هذا للتحقق منها في مشاريع أخرى. ومع ذلك ، أشعر أن هذا أمر صعب بعض الشيء وسوف يسبب مشاكل عند إنشاء مشاريع جديدة (سيكون هناك عدد من الخطوات لإنشاء الحل الجديد ، مع التأكد من وجود العوامل الخارجية الصحيحة).

هل هناك حل أفضل؟ ما هي أفضل طريقة عندما تريد مشاركة ملفات ASPX الشائعة عبر مشاريع عملاء متعددة؟ كيف تدير التغييرات ضدهم؟

شكرا لك مقدما!

تعديل:

شكرا جزيلا لديفيد على رده. لقد فكرت في هذا الأمر وأعتقد أنني سأدرج بعض أفكاري/مخاوف أكثر واقعية. أولاً ، المزيد عن المشروع (المشروع). في المقام الأول ، إنها CMS. ومع ذلك ، لدينا أيضًا عملاء يريدون CRM ، وهناك أيضًا عملاء لا يريدون ولا يريدون نظامًا مخصصًا بالكامل من الألف إلى الياء.

في مشاركتي الأصلية أعلاه ، تحدثت عن وجود دليل فرعي للجذر الرئيسي (على سبيل المثال ، cms)، استخدام svn:externals للسماح بسهولة إعادة مشاركة صفحات الويب عبر مشاريع متعددة. لقد بدأت أعتقد أن هذه هي الطريقة الوحيدة للقيام بذلك. الشيء الوحيد الذي أزعجني هو إذا كان عنوان URL للعميل هو:

http://www.shotgunanddribble.com/cms/content.aspx

ومع ذلك ، أعتقد أنه يمكنني استخدام Application_BeginRequest للتخفيف من عناوين URL الرهيبة عن طريق إعادة كتابتها وفقًا لتكوين موقع العميل. على سبيل المثال ، إذا كان العميل مجرد CMS ، يمكنني إعادة كتابة مجالهم الأعلى /cms/. نفس الشيء مع لو كانوا CRM. لو كانا على حد سواء:

http://www.shotgunanddribble.com/ -> /cms/

http://crm.shotgunanddribble.com/ -> /crm/

هل هناك أي جانب سلبي لاستخدام هذه الأنواع من إعادة الكتابة؟ أعتقد ذلك ، ما لم يكن لدى أي شخص آخر أي أفكار سحرية ، svn:externals هو أملي الوحيد.

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

المحلول

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

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