نحوه ذخیره‌سازی در Windows Phone و مقایسه آن با Android‌(بخش اول)

ثبت داده‌ها در هر جا

در شماره‌های پیش در مورد ذخیره‌سازی داده‌ها در سیستم آندروید صحبت کردیم و این که چه API برای ذخیره‌سازی داده‌ها به شما ارائه می‌کند. در Windows Phone هم یک سری API برای ذخیره‌سازی داده‌ها وجود دارد. در Windows Phone از Isolated Storage برای ذخیره‌سازی‌ فایل‌ها استفاده می‌شود، این API با آنچه پیش از این در آندروید بررسی کردیم فرق می‌کند.
کد خبر: ۴۴۰۴۶۸

 در سیستم آندروید شما به تمامی اجزای گوشی خود دسترسی دارید، براحتی برنامه‌های خود را Debug می‌کنید (البته این مورد در همه دستگاه‌ها وجود ندارد، Bootloader‌ آنها توسط کارخانه بسته شده است تا نتوانید براحتی به برنامه‌های سیستم دسترسی پیدا کنید)، شما به آسانی و بدون نیاز به Marketplace می‌توانید فایل‌های APK (فایل‌های نصبی برنامه‌های آندرویدی) را روی گوشی خود نصب کنید؛ در حالی که در Windows Phone‌به مانند iOs این گونه نیست و شما به صورت دستی نمی‌توانید روی گوشی خود فایلی را ذخیره یا حتی نرم‌افزار نصب کنید. برای رفع این مشکل باید دستگاه شما Developer Unlock شود تا شما بتوانید براحتی برنامه‌های خود را روی آن Debug‌ کنید یا آن را Jailbreak‌ کنید تا بتوانید فایل‌های اجرایی برنامه‌های Windows Phone را براحتی روی دستگاه خود نصب کنید.به همین دلیل شما نمی‌توانید به Storage‌ دستگاه خود دسترسی پیدا کنید و روی آن فایل Copy کنید، اما در پایین‌ترین سطح Windows Phone با Isolated Storage به شما اجازه کار با فایل‌ها را می‌دهد. این API شبیه «آی‌پی»‌ای است که پیش از این در Silverlight‌ معرفی شد و امکان استفاده از فایل‌ها را به شما می‌دهد.

به دلیل مسائل امنیتی در Isolated Storage هر برنامه به داده‌های خود دسترسی دارد و همین طوری نمی‌تواند به فایل‌های اصلی سیستم دسترسی داشته باشد. اگر این گونه نبود هر برنامه به آسانی به فایل‌های سیستم دسترسی داشت و می‌توانست آنها را تغییر دهد؛ اما در آندروید این گونه نیست. شما به فایل‌های موجود در sdcard دسترسی مستقیم دارید ( البته اگر فایل سطح دسترسی‌های مجاز برای ویرایش و... را باز گذاشته باشد)، اما در حالت عادی شما به فایل‌های اصلی دستگاه دسترسی ندارید، نمی‌توانید فایلی را روی حافظه داخلی دستگاه بنویسید یا آن را ویرایش کنید. برای این کار شما باید Root به گوشی خود دسترسی داشته باشید تا بتوانید به عنوان یک کاربر همه کاره در سیستم وارد شده و تمامی تغییرات ممکن و مورد نیاز را روی فایل‌ها اعمال کنید. این نقطه قوت آندروید نسبت به ویندوز فون می‌تواند به اندازه کافی خطرناک نیز باشد. به طور مثال اگر شما با سطح دسترسی root بتوانید به سیستم مورد نظر وصل شوید، به سهولت می‌توانید تمامی تنظیمات و حتی شماره‌ تلفن‌ها و پیامک‌های روی دستگاه مورد نظر را برای خود کپی کنید؛ بنابراین خیلی هم نمی‌شود این ویژگی را به عنوان مزیت در مقابل Windows Phone‌ قلمداد کرد.

اما در Windows Phone‌ چگونه می‌توانیم داده‌های خود را ذخیره کنیم؟ برای این کار Isolated Storage به شما سه نوع ذخیره‌سازی ارائه می‌کند، در زیر هر یک از این راهکارها را به اختصار توضیح می‌دهیم:

۱ – Key/Value paired : این نوع ذخیره‌سازی بیشتر برای ذخیره‌سازی تنظیمات در برنامه‌های Windows Phone‌ استفاده می‌شود، شما یک ساختار کلید مقدار دارید و مقدار هر کلید را می‌توانید هر زمان که خواستید تغییر دهید. برای این کار از کلاس IsolatedStorageSettings استفاده می‌کنند. ساختارهای کلید مقدار در.net وجود دارد، برای مثال «Dictionar«key,value یکی از معروف‌ترین و پرکاربردترین آنهاست، یک شیء از کلاس IsolatedStorageSettings نیز به مانند یک Dictionary عمل می‌کند. برای دسترسی به تنظیمات برنامه خود باید به صورت زیر عمل کنید:

IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings;

Setting.add(“name”, “click”);

Setting.add(“age”, 22);

همان‌طور که مشاهده می‌کنید شبیه SharedPrefrences در آندروید است و شما می‌توانید داده‌های خود را ذخیره کنید.

۲ - فایل‌ها و دایرکتوری‌ها: در این نوع ذخیره‌سازی شما با فایل‌ها سر و کار دارید. در این حالت شما می‌توانید یک فایل یا یک دایرکتوری بسازید و به محتویات آنها دسترسی پیدا کنید؛ اما باید به یک نکته دقت داشته باشید که هر برنامه به فایل‌ها و دایرکتوری‌های خود دسترسی دارد، سیستم عامل اجازه دسترسی به فایل‌ها و دایرکتوری‌های دیگر را به شما نمی‌دهد، به کد زیر دقت کنید.

using (var store = IsolatedStorageFile.GetUserStoreForApplication())

{

if (!store.DirectoryExists("Images"))

{

store.CreateDirectory("Images");

}

using (var isoStream =

store.OpenFile(@"Images\UserImageFile.jpg", FileMode.OpenOrCreate))

{

isoStream.Write(bytes, 0, numBytesToRead);

}

store.Remove();

}

در خط اول به برنامه شما یک Store تخصیص داده می‌شود که از طریق آن می‌توانید فایل‌ها و دایرکتوری‌های خود را مدیریت کنید. در خط بعد اگر دایرکتوری Images‌ وجود نداشت، در خط سوم آن را می‌سازید، سپس در همان پوشه یک فایل UserImageFile.jpg ایجاد و اطلاعات خود را در آن ذخیره می‌کنید. در نهایت هم تمامی فایل‌ها و دایرکتوری‌هایی را که به برنامه شما اختصاص داده شده‌است حذف می‌کنید.

۳ – Local Database : شما می‌توانید با استفاده از ترکیب Linq To Sql و Isolated Storage داده‌های خود را در پایگاه داده مدل رابطه‌ای ذخیره کنید و به داده‌های خود دسترسی داشته باشید. در شماره بعدی در مورد این نوع ذخیره‌سازی مفصل‌تر توضیح می‌دهیم.

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها