سؤال

إنني أتطلع إلى إعادة كتابة جزء من تطبيقنا بلغة C# (رمز VB6 القديم حاليًا).الوحدة التي أبدأ بها مسؤولة عن استيراد البيانات من مجموعة متنوعة من الأنظمة إلى قاعدة بياناتنا.حوالي 5-6 مرات في السنة، يطلب منا عميل جديد كتابة استيراد جديد للنظام الذي يستخدمه.في الوقت الحالي، يتطلب هذا منا إصدار إصدار جديد من برنامجنا لكل خيار استيراد جديد نضيفه إلى التطبيق.

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

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

سؤالي هو، كيف يمكنني تصميم التطبيق بطريقة تسمح ببعض المرونة بين عمليات الاستيراد التي نبنيها وندعمها وفي نفس الوقت تنفيذ واجهة مشتركة تسمح للتطبيق المضيف بالتعرف بسهولة على المكونات الإضافية والخيارات أن كل واحد يعرض للمستخدم؟

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

المحلول

أنصحك بإلقاء نظرة على Managed Add-In Framework الذي يأتي مع .NET 3.5.ال فريق الوظيفة الإضافية وقد نشر بعض العينات والأدوات في موقع كودبلكس أيضًا..

نصائح أخرى

يحتوي .Net 3.5 على مساحة الاسم system.Addin.

يحتوي هذا الموضوع أيضًا على بعض المعلومات الجيدة للإصدارات الأقدم من إطار العمل:
حhttp://forums.devshed.com/net-development-87/system-plugin-532149.html

للنظرية نلقي نظرة على نمط البرنامج المساعد في أنماط مارتن فاولر لهندسة تطبيقات المؤسسات

للحصول على مثال مثير للاهتمام، قم بإلقاء نظرة على هذا البرنامج التعليمي: بنية البرنامج المساعد باستخدام C#

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