أفضل طريقة للوصول إلى المستخدم/إعدادات الموقع

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

  •  04-07-2019
  •  | 
  •  

سؤال

كانت هناك بضعة أسئلة هذا النوع من التعامل مع هذا ولكن لا تغطي بلدي السؤال الدقيق حتى هنا نذهب.

للحصول على إعدادات الموقع ، إذا كانت هذه هي تخزينها في قاعدة البيانات هل:

  1. استردادها من قاعدة البيانات في كل مرة شخص ما يجعل الطلب
  2. وتخزينها في متغير جلسة على تسجيل الدخول
  3. ???????

المستخدم إعدادات محددة أفعل نفس إعدادات الموقع??

أي توجيه/أفضل الممارسات سيكون موضع تقدير كبير.

هتافات

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

المحلول

أنا أفضل نهج مثل Glomek تقترح...التخزين المؤقت الإعدادات في WebCache سوف يعزز إلى حد كبير سرعة الوصول.النظر في ما يلي:

    #region Data Access

private string GetSettingsFromDb(string settingName)
{
    return "";
}
private Dictionary<string,string> GetSettingsFromDb()
{
    return new Dictionary<string, string>();
}

#endregion

private const string KEY_SETTING1 = "Setting1";
public string Setting1
{
    get
    {
        if (Cache.Get(KEY_SETTING1) != null)
            return Cache.Get(KEY_SETTING1).ToString();

        Setting1 = GetSettingsFromDb(KEY_SETTING1);

        return Setting1;

    } 
    set
    {
        Cache.Remove(KEY_SETTING1);
        Cache.Insert(KEY_SETTING1, value, null, Cache.NoAbsoluteExpiration, TimeSpan.FromHours(2));
    }
}

private Cache Cache { get { return HttpContext.Current.Cache; } }

سوف تحصل على التحميل الديناميكي الخير, حفظ الذاكرة من القذف العناصر من ذاكرة التخزين المؤقت بعد 2 ساعة من غير استخدام و الاحمرار و تحميل تحتاج الإعدادات عند تعديلها.

نصائح أخرى

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

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

المستخدم إعدادات محددة وأود أن ننظر في البداية مع الافتراضي asp.net تعريف الموفر الذي سيتم تخزين الإعدادات في قاعدة البيانات وإدارة retrival من إعدادات المستخدم مرة واحدة في الطلب وحفظ التحديثات في النهاية إلى تقليل عدد DB المكالمات.بمجرد البدء في ضرب مشاكل الأداء يمكنك أن تنظر في توسيع نطاق التعريف مزود التخزين المؤقت و/أو الاحتياجات المحددة الخاصة بك.

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