ما هي الخيارات الموجودة في DB مدمجة سريعة في .NET؟

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

  •  21-09-2019
  •  | 
  •  

سؤال

أقوم بعمل برنامج الأداة المساعدة الصغيرة هذا (نماذج Windows) وسيحتاج إلى توفير القليل من البيانات على القرص. في مصطلحات ديسيبل ، سيكون حوالي طاولة واحدة ، لا يزيد عن حوالي ألف صف ، كل صف أقل من 1 كيلو بايت في الحجم.

ماذا ستستخدم؟

إضافة: نسيت أن أقول - سيكون من الرائع حقًا أن يكون البرنامج بأكمله مجرد ملف .exe (بالإضافة إلى ملف البيانات ، بالطبع). هكذا أفضل شيء مدمج في .NET.

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

المحلول

sqlite. إنه صغير ولديه غلاف رائع ل .net.

نصائح أخرى

أو Theres Esent ، قاعدة البيانات المضمنة الموجودة في كل نسخة من Windows. اقرأ عنها هنا: http://ayende.com/blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx

إذا كنت تشعر بالشجاعة ، فقد قمت بتجميع وثيقة بسيطة ديسيبل بيد (كما هو الحال في "سهل كما").

يمكنك استخدام SQL Server Compact Edition (مزودًا بـ Visual Studio) ، أو sqlite.

هناك العديد من الآخرين ، لكن هذه هي الأكثر شيوعًا.

أنا معجب كبير بـ SQLite ، لأنه صغير وبسيط وسريع. هناك رائع مزود ADO.NET لذلك ، الذي يدعم إطار الكيان.

إذا كنت تتحدث عن جدول واحد ، فلا يمكنني رؤية سبب شعورك تمامًا لاستخدام قاعدة بيانات علائقية لتحقيق أهدافك. ماذا عن ملف واحد؟

وبطبيعة الحال ، بناءً على سبب حاجتك لتخزين المعلومات ، والطريقة التي ترتبط بها البيانات ، يمكن أن يكون هناك سبب لك في حاجة إلى ديسيبل. لكن يجب أن تفكر في ما إذا كان DB هو في الواقع ما تحتاجه في هذه الحالة.

لا ينبغي أن تكون قاعدة البيانات العلائقية هي معيار Defacto لتخزين البيانات. هناك العديد من البدائل التي يجب مراعاتها قبل اختيار RDBMS.

انظر منشور McIntyre321 على سبيل المثال.

إذا كنت قد تم تعيينك على استخدام DB مضمن ، فمن المحتمل أن يكون إصدار SQL Server Compact هو أفضل رهان تليها SQLite كثانية قريبة.

إذا كنت تتحدث عن طاولة واحدة ، فسيبدو أن ديسيبل مضمن قد يكون مبالغة ويمكنك تقديمه بشكل أفضل بواسطة ملف نصي بسيط.

يمكنك إنشاء مجموعة من فصلك ، وتمييزها [قابلة للتسلسل] واستخدام طرق التسلسل المدمجة/إزالة التسلسل المدمج للمثابرة.

أنا الثانية التصويت ل SQLite. يعد SQL Server CE ثقيلًا جدًا لأي أغراض مضمنة إلا إذا كنت بحاجة إلى مزامنة سهلة مع قاعدة بيانات مركزية - فهي رائعة.

.NET Port of SQLite في http://code.google.com/p/csharp-sqlite/. إنه نقي .NET حتى تتمكن من ilmerge في واحد

لشيء صغير وبسيط ، ربما أذهب مع XML وعدم استخدام قاعدة بيانات. إذا قمت بتجريد رمز CRUD ، فيمكنك لاحقًا تعديل جزء طبقة البيانات من الكود بحيث يستخدم قاعدة بيانات عندما تنمو البيانات في الحجم والتعقيد.

بمجرد التحقيق في نفس المشكلة. من جميع المرشحين المحتملين بدا اثنان جيدا. هذه هي sqlite و firebird (Firebirdsql.org). ولكن كان لدى Firebird بعض الميزات أكثر من SQLite.

UPD: هنا معلومات مثيرة للاهتمام حول Firebird+dotnet http://www.firebirdsql.org/dotnetfirebird/embedded/index.html

بيركلي دي بي هو أيضا اختيار جيد لقاعدة البيانات المدمجة. وهناك أ مكتبة الذي يوفر واجهة .NET 2.0 لذلك.

إذا لم يكن من الضروري أن تكون قاعدة بيانات متوافقة مع SQL ، فسأقوم أيضًا بإلقاء نظرة على DB4O. DB4O هي قاعدة بيانات كائن لـ Java و .NET. نسخة .NET مكتوبة بالكامل في C#.

أنا الثاني SQL Lite أو ملف XML بسيط مع كاتب DEFLATE لتقليل الحجم. سريع ولا متسخ جدا.

جرب هذه: https://github.com/mdsoftware/mdata. لا توجد أطراف ثالثة ، وتشمل جميع المصادر ، وبعض الأشياء اللطيفة مثل معالجة البيانات التي تشبه LISP ومترجم التعبير. لقد حاولت أن أجعل شيئًا بسيطًا حقًا ولكن وظيفي.

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