سؤال

سأظل (نأمل) أخذ مشروع كبير لترحيل تطبيق Enterprise Visual FoxPro إلى C # 3.0 على .NET 3.5. أعلم أن هذا التطبيق له عدد كبير من الإعدادات التي لها تأثير على كل شيء من تكوينات متعددة المستخدمين / متعددة المواقع لإبلاغ الخصائص. هناك ما لا يقل عن 150 إعدادات مختلفة موجودة حاليا على مستوى العالم.

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

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

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

المحلول

إعدادات الإعدادات القياسية. يعتقد الملف الذي أؤمن به هذه الوظيفة، بما في ذلك المتغيرات المذكورة في التطبيق أو المستخدم. على الرغم من أنني لست متأكدا 100٪ إذا تم التقاط التغييرات دون إعادة تشغيل التطبيق.

انظر هنا لمزيد من المعلومات:MSDN: استخدام الإعدادات في C #

نصائح أخرى

إذا كنت ترغب في الذهاب "Enterprise"، فيمكنك تجربة جدول تعريفات إعداد إعداد، مقترن بجدول إعدادات المستخدم.

سيكون تعريف تعريفات الإعداد التي يحددها PK بواسطة عمود مجال (لإعدادات UI وإعدادات الاتصال وإعدادات اللغة وما إلى ذلك ...) ومعرف الإعداد. عمود ثالث يحدد القيمة الافتراضية / العالمية.

سيكون لدى إعدادات المستخدم تعيين PK لإعداد تعريف التعريفات "PK + مستخدم المستخدم وعمود إعداد الإعداد، varchar (x).

إذا كان التطبيق يدرك اللغة، يجب إضافة أعمدة معرف اللغة إلى كلا الجداول.

توفير تغييرات المستخدم إلى جدول إعدادات المستخدم يجب أن يكون تافهة. يتم إعلامك عند تغيير الإعدادات العالمية أكثر تعقيدا قليلا.

تحرير: شيء واحد يجب وضعه في الاعتبار هو أن يكون دائما ما هو الافتراضي: الإعداد العالمي / اللغة الافتراضية.

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

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

هذر

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