هل لدى Microsoft وثيقة أفضل الممارسات فيما يتعلق بتخزين بيانات التطبيق مقابل بيانات المستخدم على منصات Windows المختلفة؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

عند إنشاء تطبيق سيتم استهدافه إلى العديد من إصدارات Windows ما هي أفضل الممارسات لتحديد مكان تخزين بيانات التطبيق المحددة. خاصة:

  • تطبيق بيانات محددة (مثل بيانات التكوين التطبيقات)
  • البيانات الخاصة بالمستخدم / الإعدادات

أعرف أن Windows Vista على سبيل المثال، هناك متغيرات بيئة، مثل٪ AppData٪، والتي يمكن استخدامها، ولكن ماذا عن Windows 7، Windows XP، Windows 98.

سؤالي الرئيسي هو، هل لدى Microsoft أفضل الممارسات الوثيقة لهذا الغرض، وتحديد مواقع نظام الملفات لأنواع مختلفة من البيانات (التطبيق مقابل المستخدم) والآثار الأمنية التي يجب أن تحتفظ بها في الاعتبار عند القراءة / الكتابة إلى هذه المواقع ب

أنا مهتم أيضا بكيفية هذا الأمر إلى عدم تطبيقات .NET فقط (حيث يمكن استخدام ApplicationsetTingsBase) ولكن أيضا في تطبيقات C / C ++ غير المدارة.

بفضل PAX و Remus لكل من الإجابات العظيمة. لقد وجدت هذا البند كذلك (محددة إلى XP):

كيفية كتابة تطبيق Windows XP الذي يخزن بيانات المستخدم والتطبيق في الموقع الصحيح باستخدام Visual C ++

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

المحلول

هناك وصف جيد هنا من مختلف قيم CSIDL والمجلدات التي تشير إليها (بما في ذلك وصف يجب أن يخبرك بما تحتاج إلى معرفته).

يحتوي أيضا على روابط للوظائف التي يجب استخدامها لاسترداد مسارات المجلدات الخاصة هذه.

لاحظ أنه، اعتبارا من نظام التشغيل Vista، تغيرت الطريقة قليلا. يستخدم الآن KNOWNFOLDERID بدلا من CSIDL وقد تغيرت الوظائف كذلك. يرى هنا.

لا يزال بإمكانك استخدام الوظائف القديمة (في الوقت الحالي) لأنني أعتقد أنهم الآن مغلفون فقط حول تلك الجديدة. في مرحلة ما في المستقبل، قد يتغير ذلك.

نصائح أخرى

وعادة ما يتم وصفها هذه في برنامج شعار برامج Windows (الرابط مكسور). وبعد الرابط هو مستند متطلبات شعار Windows 7، ولكن توجد وثائق مماثلة ل XP و Windows 2003 و Vista و Windows 2008. في قسم المتطلبات الفنية ستجد بعض المعلومات التي تبحث عنها:

يجب تخزين جميع بيانات التطبيق التي يجب تقاسمها بين المستخدمين على الكمبيوتر ProgramData

يجب تخزين جميع بيانات التطبيق حصرية لمستخدم معين وعدم مشاركتها مع مستخدمي آخرين للكمبيوتر Users\<username>\AppData

في منشآت "لكل آلة"، يجب كتابة بيانات المستخدم بالتشغيل أولا وليس أثناء التثبيت. هذا لأنه لا يوجد موقع مستخدم صحيح لتخزين البيانات في وقت التثبيت.

تعديل:

مستخدمي Windows 10، ابحث عن متطلبات الشهادات ل Windows Desktop Apps (القسم 10)

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