השוואת אפשרויות אחסון
- 10 דקות
ממשק המשתמש של אפליקציית .NET מרובת פלטפורמות (MAUI) מספק אפשרויות אחסון מרובות לאחסון נתונים במטמון באופן מקומי במכשיר, בהתאם לאופי, למבנה ולגודל הנתונים. שלוש האפשרויות הנפוצות ביותר לאחסון נתונים באופן מקומי באפליקציית .NET MAUI הן:
- העדפות: מאחסן נתונים בזוגות עם ערך מפתח
- קבצים: אחסון קבצים רופפים ישירות במכשיר באמצעות גישה למערכת הקבצים
- מסדנתונים : אחסון נתונים במסד נתונים יחסי
ביחידה זו נבחן את אפשרויות האחסון הללו ואת המצבים שבהם כל אפשרות מתאימה ביותר.
מתי להשתמש בהעדפות
העדפות נוחות כאשר אתה עובד עם פיסות נתונים פשוטות, כגון בחירות משתמשים. הם משמשים לעתים קרובות כדי לאפשר למשתמשים לקבוע את תצורת היישום. אתה מאחסן נתונים אלה כערכה של זוגות מפתח/ערך. לדוגמה, נניח שרצית שהמשתמש יוכל לציין אם על האפליקציה לשמור את שם המשתמש והסיסמה שלו בין הפעלה. באפשרותך לאחסן את בחירת המשתמש ב- העדפות.
הקוד הבא מראה כיצד לאחסן ערך בוליאני המוקלט במשתנה saveLoginDetails העדפה בשם SaveLoginולאחר מכן לקרוא נתונים אלה בחזרה. שים לב ששיטה Get מצפה שתספק ערך ברירת מחדל אם ההעדפה שצוינה לא נמצאה:
bool saveLoginDetails = ...;
...
Preferences.Set("SaveLogin", saveLoginDetails);
...
var savedPreference = Preferences.Get("SaveLogin", false);
מחלקת Preferences מכילה גם שיטות לקביעת אם קיימת העדפה בעלת שם (ContainsKey), מחיקת העדפה (Remove) והסרה של כל נתוני ההעדפות (Clear).
הערה
עליך לאחסן סוגי נתונים פשוטים כהעדפות בלבד. לא ניתן לאחסן הפניות לאובייקטים גדולים כגון רשימות, אוספים ומערכים. עבור נתונים מסוג זה, השתמש במערכת הקבצים או במסד נתונים.
מתי להשתמש במערכת הקבצים
למכשירים ניידים ולמכשירים שולחניים יש מערכת קבצים עם מבנה הירארכי של תיקיות וקבצים. נוח להשתמש במערכת הקבצים כאשר יש לך קבצים רופפים כגון XML, קבצים בינאריים או קבצי טקסט. לדוגמה, נניח שברצונך לאחסן נתוני יומן רישום באופן מקומי במכשיר. באפשרותך ליצור קובץ טקסט, לשמור קובץ זה במערכת הקבצים ולכתוב בו יומני רישום כאשר מתרחשים אירועים. באפשרותך גם לערוך בסידרה מבני נתונים גדולים בקובץ, ומטמון אותם באופן מקומי במערכת הקבצים אם עליך לשמור כאשר היישום נכבה. כאשר האפליקציה מופעלת מחדש, באפשרותך לקרוא מחדש נתונים אלה בחזרה לזיכרון. הקוד הבא מציג דוגמאות של עריכה בסידרה של נתונים בקובץ ושמירה של קובץ זה, ולאחר מכן קריאת הנתונים בחזרה וה ביטול עריכה בסידרה שלהם בחזרה לזיכרון במועד מאוחר יותר. כאן, אנו משתמשים ב- JSON עבור תבנית העריכה בסידרה, אך באפשרותך לשמור את הנתונים בתבנית המתאימה ביותר לאופי הנתונים ולדרישות האבטחה של האפליקציה.
using System.Text.Json;
using System.IO;
// Data to be written to the file system, and read back later
List<Customer> customers = ...;
// Serialize and save
string fileName = ...;
var serializedData = JsonSerializer.Serialize(customers);
File.WriteAllText(fileName, serializedData);
...
// Read and deserialize
var rawData = File.ReadAllText(fileName);
customers = JsonSerializer.Deserialize<List<Customer>>(rawData);
גישה לארגז החול של היישום
כאשר אתה עובד עם קבצים רופפים כגון קבצי XML, עליך לאחסן אותם במיקום מתאים במערכת הקבצים. חלק מנתונים אלה עשויים להיות רגישים, ואינך מעוניין לשמור אותם במיקום שבו אפליקציות או משתמשים אחרים יוכלו לגשת אליהם בקלות. יישומי .NET MAUI מספקים את ארגז החול של. ארגז החול של האפליקציה הוא אזור פרטי שבו היישום שלך יכול לעבוד. כברירת מחדל, יישומים אחרים אינם יכולים לגשת לאזור זה מלבד מערכת ההפעלה. באפשרותך לגשת לארגז החול באמצעות AppDataDirectory הסטטי של המחלקה FileSystem העליונה:
string path = FileSystem.AppDataDirectory;
בקוד זה, המשתנה path מכיל את נתיב הקובץ למיקום שבו ניתן לאחסן קבצים לשימוש ביישום. באפשרותך לקרוא ולכתוב נתונים בקבצים בתיקיה זו, באמצעות הטכניקות המוצגות בסעיף מתי להשתמש הקבצים.
הערה
המאפיין FileSystem.AppDataDirectory הוא הפשטה של נתיב ספציפי להתקן; הוא מוערך כתיקיות שונות ב- Android, iOS ו- WinUI3. הפשטה זו מאפשרת לך לכתוב קוד המפנה לארגז החול באופן שאינו תלוי בפלטפורמה שבה הוא פועל. השתמש בהפשטה זו במקום להפנות לנתיב ספציפי למכשיר באופן מפורש בקוד שלך.
הנחיות לשמירת נתונים ביישום iOS
Apple כוללת קווים מנחים עבור iOS לגבי מיקום האחסון של קבצים. קיימים שני מיקומי תיקיות עיקריים:
התיקיה ספריית :קודם לכן, המאפיין
FileSystem.AppDataDirectoryמחזיר תיקיה זו. השתמש בתיקיה Library בעת אחסון נתונים שנוצרו על-ידי היישום.התיקיה מסמכים-: מקטע הקוד הבא מראה כיצד להפנות לתיקיה זו במשתנה
docFolderהבא. השתמש בתיקיה מסמכים כדי לאחסן נתונים שנוצרו על-ידי המשתמש בלבד. נתונים אלה נוצרים בתגובה ישירה לפעולת משתמש. לדוגמה, אם אתה יוצר יישום עריכת טקסט כגון Microsoft Word, עליך לאחסן את המסמך בתיקיה מסמכים.string docFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
מתי להשתמש במסד נתונים
מומלץ להשתמש במסד נתונים מקומי כאשר יש לך קשרי גומלין בין נתונים, או כאשר ברצונך לסנן את הנתונים לאורך זמן. לדוגמה: בתרחיש של מדיה חברתית, כל רשומה מכילה נתונים אודות הרשומה, כגון חותמת הזמן והתוכן. עם זאת, לכל רשומה יש גם קשר גומלין עם משתמש שיצר את הרשומה. הגיוני לייצג קשר גומלין זה במסד נתונים כדי למנוע שכפול נתונים בין פרסומים, וגם כדי לשפר את יעילות החיפוש אחר נתונים.
מסד נתונים של SQLite הוא קובץ, ועל עליך לאחסן אותו במקום המתאים. מומלץ ליצור תיקיה תחת AppDataDirectory ארגז החול וליצור את מסד הנתונים בתיקיה זו.
משוב
האם עמוד זה היה מועיל?
לא
זקוק לעזרה בנושא זה?
רוצה לנסות להשתמש ב'שאל את Learn' כדי להבהיר או להדריך אותך בנושא זה?