سؤال

نحن نقوم بإنشاء تطبيق مؤسسة سنقوم بدمج منصات متعددة لواجهات المستخدم (أي ASP.NET WebApp و Windows و Windows و Someday و Mobile Mobs) ومنصات متعددة لقواعد البيانات الخلفية (IE SQL Server و XML و Oracle). تتمثل إحدى النقش الإضافي في أن هذه DBs الخلفية إما تكون مركزية والوصول إليها عبر الويب أو مترجمة على الكمبيوتر العميل ومزامنة أحيانًا مع الخادم المركزي.

هل يمكن لأي شخص تقديم نصيحة حول كيف يمكننا تجريد طبقة واجهة المستخدم وطبقة البيانات بحيث يمكننا ببساطة إنشاء القدرة على التكيف مع التوصيل والتشغيل بين مختلف واجهة المستخدم والخيارات المختلفة لـ DBS؟ على سبيل المثال: في إحدى الحالات ، قد يكون لدينا تطبيق ويب يعمل على خادم مركزي عبر الإنترنت ، وقد يكون لدينا آلات بعيدة تقوم بتشغيل نسخ محلية عبر تطبيق Windows. على فترات جدولة ، نريد مزامنة جميع الآلات بحيث يمكن أن تحصل جميعها على بيانات قريبة من الوقت.

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

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

المحلول

يعد استخلاص طبقة العرض مفهومًا سهلاً إلى حد ما بمجرد أن يكون لديك شنق بنية N-Tier. فقط ركز على التمييز بين "منطق المجال" من "منطق التطبيق". منطق المجال شائع عبر منصاتك المختلفة ، ومنطق التطبيق خاص بالمنصة. على سبيل المثال ، يعد التحقق من صحة البيانات منطقًا للمجال (على الرغم من أنه من الجيد أن تتمكن من القيام بذلك في الواجهة الأمامية ، مما يجعل الأمور أكثر تعقيدًا ، ولكن العمل معي هنا ...) منطق. تأكد من وضع منطق المجال الخاص بك على مستوى يمكن استخدامه بواسطة أي منصة ، وتأكد من عدم وضع أي منطق تطبيق في طبقة المجال الخاصة بك.

يبدو النصف الآخر من سؤالك وكأنك تركيزك الأكبر ، لكنني سأطرح بعض التوضيح هنا ، حيث يمكنني تمييز سؤالين أساسيين مختلفين.

  1. آمل ألا تذهب إلى "الكأس المقدسة" لاستقلال قاعدة البيانات. هذا دائمًا ما يكون هدفًا نبيلًا محصورًا خلال مرحلة التصميم ، وهو ما لا يلزم دائمًا ، في كل مرة تقريبًا ، في كل مرة.

    إذا لم يكن هذا ما تسير عليه ، فأنا أقترح أن تعرف الأشياء التي يتم تخزينها في أي وسيلة الثبات ، ويجب عليك تجنب تعقيد المرونة وأن ترمز إلى مساراتك الرأسية بشكل مستقيم بطريقة مستقيمة بطريقة مستقيمة بقدر الإمكان. IE لا ترمز إلى أشياء إضافية في بعض درجة الأعمال التي تخزن بياناتها في Oracle لتمكينك من وضعها في SQL Server "في مرحلة ما في المستقبل". (لقد عدت إلى استقلال قاعدة البيانات ، أليس كذلك؟)

  2. إن مسألة التخزين المؤقت للبيانات محليًا لتحسين الأداء لمنصات معينة خاصة بتلك المنصات وأقترح عليك أن تنظر إلى العملاء الأذكياء وإطار التخزين المؤقت الذي لدى فريق MS P&P. لقد كنت أعمل بشكل حصري على مواقع الويب على مدار العامين الماضيين ، ولكن في 05/06 كان الأمر جيدًا ، وكانوا يقومون بالكثير من العمل على أشياء عميلهم الذكية في هذه الأثناء.

نصائح أخرى

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

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

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