سؤال

NHibernate ليس حقا جيدة تناسب بيئتنا بسبب كل التبعيات.(القلعة ، log4net.... الخ)

هل هناك جيدة وخفيفة الوزن البديل ؟

دعم ملف بسيط على أساس قواعد البيانات مثل Access/SQLite/VistaDB أمر ضروري.

من الناحية المثالية, شيء الواردة في اجتماع واحد فقط المراجع .صافي الجمعيات.إذا كان يتطلب فقط .الإطار الصافي 2.0 أو 3.0 هذا هو مكافأة.

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

المحلول

عموما ، على قاعدة البيانات الخاصة بك الخلفية للعمل مع .صافي تحتاج ADO.Net مزود ذلك.

MS Access (جت) ، مزود يتم شحنها مع .صافي.بالنسبة سكليتي, هناك ذاتية الخدمة ADO.Net مزود.

أما بالنسبة طبقة الوصول إلى البيانات ليب ، إذا كنت تريد بعض التجريد أكثر ADO.Net:

كل هذه تعمل بشكل جيد بدءا framework 2.0 وما فوق.

أساسا ، لك اختيار (وهناك الكثير من الخيارات)

نصائح أخرى

ضخمة - https://github.com/robconery/massive

أو

PetaPoco - https://github.com/toptensoftware/petapoco

وكلاهما واحد .cs الملف مع أي تبعيات ما عدا ما هو في GAC.

(الكشف الكامل ، PetaPoco هو ما كتبت)

خفيفة الوزن ORM أن يؤدي بشكل جيد و لا يتطلب سوى اجتماع واحد لماذا لا نحاول الخروج لايت سبيد من شركة مايند سكيب.انها ليست مفتوحة المصدر المصدر هو متاح و هو بأسعار معقولة - خطر مع معظم ORM هي التي ليست كذلك اعتمدت هو بالطبع نوعية ومستوى الدعم ، وهناك عدد قليل جدا من الأخرى مفتوحة المصدر ORM يستحق عناء مع في .صافي المساحة في هذه اللحظة.

لأن من كره من NHibernate تبعيات يبدو أنك لا تحتاج إلى تسجيل إطار أو أي من القلعة المشروع جوانب أيواللجنة الأوقيانوغرافية الحكومية الدولية ، Monorail.... الخهل تعتبر ربما أخذ الحد الأدنى من NHibernate متطلبات (log4net و Iesi مجموعات أعتقد و الوكيل الحيوية من القلعة المشروع؟) وتشغيل ILMerge عليها لتوطيد في الجمعية - قد يستغرق قليلا من تافه ، ولكن ليس من الصعب جدا - أو بدلا من ذلك يمكنك فقط سحب شفرة المصدر لكل من هذه المشاريع في بناء مخصصة من NHibernate يمكنك الحفاظ على المؤسسة التي الديكورات من ميزات لا يحتاجها مشروعك/المنظمة انها ليست صعبة/akward كما يبدو و لقد فعلت شيء على طول هذه الخطوط على مشروع واحد حيث أردنا أن تستفيد من ORM ، ولكن هناك حاجة إلى تقليل حجم توزيع الملفات/المثبت.

أيضا - ربما أنت قادرة على تفسير ما تشعر به هو أيضا "الثقيلة" عن Nhibernate على أساس حل ...في تجربتي لها معقول خفيفة الوزن ORM إطار مقارنة مع بعض.

إضافة إلى هذه القائمة ، يمكن أن يكون أيضا نظرة على رشيقة (كتب عن استخدامها من قبل ستاكوفيرفلوو نفسه).

بعض البدائل:
- ActiveRecord - ويستخدم nhibernate.dll في الخلفية, ولكن يتم التكوين من خلال الصفات.انها مثل نسخة لايت من nhibernate
- دون سرعة الصوت
- CoolStorage.NET - لا تستخدم الكثير مع المشاريع الصغيرة.يعمل بشكل جيد مع عدد من dbs

هنا قائمة كبيرة من البدائل التي أنصح:

  • Coolstorage
  • SOODA
  • ODX
  • لايت سبيد (مجانا لمدة 8 الكائنات أو أقل)

تلك 4 هي أخف منها.دون سرعة الصوت, ActiveRecord وغيرها تهدف إلى أنظمة كبيرة.أنها تعمل بشكل جيد على شبكات صغيرة ولكن (على الأقل بالنسبة ActiveRecord) تأتي مع قائمة كبيرة من تبعيات مبالغة صغيرة النظام.كنت أذهب مع لايت سبيد و أقول أي شيء تحت 8 كائنات صغيرة النظام ، ببساطة باستخدام NHibernate لأنها اعتمدت على نطاق واسع جيدة لزيادة ولكن في المدى القصير لا معنى له - وجود طبقة بين ORM و المستهلكين الخاص بك يمكن أن يعمل حول ذلك على أي حال.

LINQ to SQL يمكن أن يكون بديل جيد "يتنفس" ORM النظم إذا كان عليك استخدامه بشكل صحيح.

إذا كنت لا تحتاج وظيفية بالكامل ORM وتحتاج فقط سريع قاعدة بيانات مستقلة طبقة أكثر ADO.NET جرب مفتوحة المصدر ني.مكتبة البيانات (V2).انها خفيفة الوزن جدا (مجرد واحدة صغيرة الجمعية ، أي تبعيات أخرى) بتوفير كافة البيانات القياسية طبقة البنية التحتية:

  • الاستعلام التجريد و محلل لها تمثيل سلسلة يسمى 'والتابع' (يبدو مثل:"كتب(تقييم=5)[عنوان معرف]" - جيدة جدا بديل Linq إلى SQL و التعبيرات يمكن أن تتكون على الطاير )
  • 'عرض' مفهوم التغليف مجمع ديسيبل-جملة تعتمد استعلامات SQL
  • البيانات مشغلات
  • طبقة البيانات أذونات حدد/تحديث/حذف / استفسارات
  • من صندوق يدعم MS SQL, سكليتي, MySQL Odbc/موفري OleDb (MS Access).الدعم عن غيرها من قواعد البيانات SQL يمكن إضافتها بسهولة.

عنصرها الرئيسي (DALC) تهيئة فقط مع سطر واحد من التعليمات البرمجية:

var dalc = new DbDalc(new SqlClientDalcFactory(), connectionStr);

هذا كل شيء.إذا كنت بحاجة إلى .NET 2.0 وقت التشغيل دعم يمكنك محاولة تجميع إما أحدث V2 الإصدار 2.0 وقت التشغيل أو استخدام السابقة إرث الإصدار (ني.البيانات.Dalc, V1).

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