توضیحات دانلود نظرات اشتراک
تبلیغات

کتابخانه LiteDB سی شارپ – دیتابیس NoSQL در یک فایل

LiteDB، یک دیتابیسِ NoSQL سبک، کوچک، سریع و جاسازی شده (embedded) برای دات نت است. این دیتابیس، متن‌باز بوده و به‌صورت رایگان در اختیار همه و حتی استفاده تجاری قرار دارد. LiteDB از کوئری‌های LINQ نیز پشتیبانی می‌کند. این دیتابیس، داده‌ها را در سندها ذخیره و از رمزگزاریِ فایل داده به کمک الگوریتم DES (AES) نیز پشتیبانی می‌کند.

همانند SQLite، دیتابیس LiteDB نیز داده‌ها را در یک فایل تنها ذخیره می‌کند. آن همچنین می‌تواند فیلدهای سند رابرای جستجوی سریع‌تر ایندکس کند.

ویژگی‌ها

  • ذخیره‌ی سند NoSQL بدون سرور (Serverless)
  • رابط یا API ساده، مشابه دیتابیس MongoDB
  • 100درصد نوشته شده با کد سی‌شارپ و براساس .NET 4.5 / NETStandard 1.3/2.0 در یک فایل DLL کمتر از 450 کیلوبایت
  • Thread-safe
  • ACID with full transaction support
  • Data recovery after write failure (WAL log file)
  • بازیابی داده پس از عدم موفقیت در نوشتن (WAL log file)
  • رمزگزاری داده با استفاده از الگوریتم رمزنگاری DES (AES)
  • مپ‌کردن کلاس‌های POCO خود به BsonDocument با استاده از استفاده از Attribute ها یا fluent mapper API.
  • ذخیره‌ی فایل‌ها و استریم داده (همانند GridFS در دیتابیس MongoDB)
  • ذخیره فایل تک داده (مانند SQLite)
  • ایندکس‌کردن فیلدهای سند برای جستجوی سریع
  • پشتیبانی LINQ برای کوئری‌ها
  • دستوراتی شبیه SQL برای دسترسی/انتقال داده‌ها
  • LiteDB Studio – نرم افزار رابط کاربری برای دسترسی به دیتابیس
  • متن‌باز و رایگان برای همه – از جمله استفاده تجاری
  • نصب از طریق Nuget

کاربرد

  • برنامه‌های کوچک دسکتاپی
  • فرمت فایل اپلیکیشن (ایجاد فرمت دلخواه)
  • اپلکیشن‌های تحت وب کوچک
  • دیتابیس به ازای ذخیره‌ی داده برای هر اکانت/کاربر

نصب و راه اندازی

در محیط ویژوال استودیو و پروژه‌ی خود، از منوی Tools، وارد NuGet Package Manager شده و روی Package Manager Console کلیک کنید. دستور زیر را تایپ کرده و Enter را بزنید تا کتابخانه نصب شود:

روش استفاده

در اینجا یک مثالی آورده شده است. فرض کنید کلاس POCO ای به نام Customer داریم:

حالا برای باز کردن فایل یک دیتابیس یا ایجاد آن در صورت وجود نداشتن:

  1. در اینجا، MyData.db (می‌توانید مسیر کامل بنویسید) در مسیر اپلیکیشن در صورت وجود نداشتن ایجاد شده و پس از اتصال به آن، از طریق متغیر db قابل دسترسی خواهد بود.
  2. مجموعه کلکسیون‌ مربوط به کلاس Customer که در عنوان “customers” (دلخواه) وجود دارد گرفته می‌شود. (قرار است یک کاستومر ایجاد و به آن اضافه کنیم.)
  3. درون متغیر col قرار می‌گیرد. یک آبجکت Customer جدید ساخته و ویژگی‌های آن مقداردهی می‌شود. (ولی هنوز به دیتابیس اضافه نشده است)
  4. یک ایندکس یکتا در فیلد نام ایجاد می‌شود.
  5. آبجکت Customer ایجاد شده به مجموعه اضافه می‌شود. (آیدی یا شناسه به صورت خودکار اختصاص داده می‌شود)
  6. مقدار یکی از ویژگی‌های آبجکت Customer  ایجاد شده را تغییر می‌دهیم (ولی هنوز در دیتابیس اعمال ندشه است)
  7. ازطریق متد Update مجموعه، آبجکت را ارسال می‌کنیم تا ویرایش شود.
  8. از LINQ برای کوئری زدن به سندها استفاده می‌کنیم. (بدون هیچ ایندکسی)

با استفاده از fluent maper و رفرنس‌دهی (مرجع‌دهی) چند مستندی برای مدل‌های داده‌ای پیچیده‌تر. فرض کنید کلاسی به صورت زیر داریم:

حالا:

LiteDB.Studio

از این نرم فازار می‌توان برای مدیریت و مشاهده فایل پایگاه داده استفاده کرد: (لینک‌های دانلود در انتهای مطلب قرار دارد.)

پلاگین‌ها

صفحات رسمی

کانال تلگرام فول کده

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای
برنامه‌نویس فول استک

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه