سؤال

يرغب العديد من مطوري المنتجات في كتابة تطبيق .NET الذي سيعمل بسلاسة مع أي RDBMS شعبية مثل SQL Server، Oracle، DB2، MySQL. إذا كنا نستخدم كتلة تطبيق البيانات، فإنه يختار ديناميكيا برنامج تشغيل قاعدة البيانات (Oracleclient أو SqlClient أو Oledbclient) بناء على التكوين.

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

يمكن للمرء استخدام منتج طرف ثالث من البيانات مباشرة لكتابة رمز محايد DB باستخدام تسلسل الهروب المحدد مسبقا.

هل هناك أي أدوات أو منتجات من Microsoft والتي تعالج هذه المشكلة؟

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

المحلول

ال إطار كيان Microsoft ADO.NET هو رسم الخرائط العلائقية للكائنات إطار من Microsoft الذي تم تصميمه للسماح لك بكتابة التعليمات البرمجية التي هي (إلى حد ما) DB-Nostic. جميع DBMS الرئيسية لديها دعم لإطار الكيان، على الرغم من أنه بالنسبة للكثيرين (مثل MySQL، Postgres)، ستحتاج إلى تنزيل شيء منفصل عن تثبيت .NET Framework الخاص بك.

ملاحظة: لم أعمل بعد في مشروع كبير واحد باستخدام أداة O / RM حيث لم يكن هناك حالا واحدا على الأقل، حيث اضطررنا إلى Shell إلى SQL - إما لوظائف DB الخاصة أو لأسباب الأداء (اللازمة لكتابة استعلام بطريقة معينة للحصول على خطة استعلام جيدة). ولكن يمكن أن تعمل O / RM جيدة في معظم الوقت لمنع الاضطرار إلى كتابة SQL.

ومع ذلك، فإن الإصدار الحالي من إطار الكيان محدود جدا في عدد من الأبعاد - أطر أخرى O / RM nhibernate., دون سرعة الصوت, ، وما إلى ذلك أكثر نضجا، حيث يعني "ناضج" دعم مجموعة أعمق من ميزات DBMS دون الحاجة إلى قذيفة إلى SQL، ودعم المجتمع الأوسع، وأداء أفضل، إلخ.

هذه هي طريقتي المهذبة لقول ذلك، لمشروع حقيقي في العالم، معقدة نسبيا، لا أعتقد أن الإصدار الحالي من إطار الكيان هو أفضل طريقة للذهاب إلى أدوات O / RM الأخرى المتاحة.

على ما يبدو، القادم .NET 4.0 / VS2010 إصدار إطار كيان Microsoft تحسنت كثيرا، لذلك قد لا يكون البيان أعلاه صحيحا في العام المقبل. يضيف إطار الكيان الجديد دعم DDL، على سبيل المثال، حتى تتمكن من إنشاء جداول وفهارس في طريقة DBMS المستقل. أيضا، يتم الاستفادة من إطار كيان .NET 4.0 ميزة رائعة T4 Templates., ، وهي ميزة أنيقة للترميز التلقائي في وقت الإنشاء، وهو أمر مهم بالنسبة للأشياء مثل أغلفة O / RM التي تحتاج إلى الاحتفاظ بمزامنة مع مخطط DB خارجي - والتي يجب أن تسفر عن أفضل (AKA مترجمة مسبقا) الأداء من أدوات O / RM التي لا تعرف أنواع أعمدة قاعدة البيانات حتى وقت التشغيل.

نصائح أخرى

كما فهمت أنك تبحث عن أداة لكتابة SQL المستقل RDBMS، ولكن ليس orm. هذه مشكلة فعالة للغاية حلها بائعين أورم مختلف بطرق مختلفة. أنا فقط أستطيع أن أذكر extensive. SQL DOM. الأداة، التي تم تطويرها للأورم - dataibjects.net.. وبعد إنه تجريد أكثر من SQL مما يتيح لك كتابة الاستعلامات باستخدام نموذج DOM كامل المواصفات. في هذه اللحظة، لا يتم الترويج ل SQL DOM بشكل منفصل عن Dataibjects.net، لكنه منتج مفتوح المصدر ويمكنك بالتأكيد أن تطلب من مؤلفيها عن ذلك. بقدر ما أعرف أنه يستخدم بنجاح في بعض مشاريع الطرف الثالث.

ليس مباشرة من Microsoft. تتم تسمية هذه الأدوات بشكل شائع باسم الأفعال العلائقية للكائنات أو الأدمة القصيرة. على سبيل المثال، على سبيل المثال، هو orm شائع ومستخدما على نطاق واسع من المؤكد أن تناسب احتياجاتك. بالطبع هناك منتجات تجارية أخرى مثل Telerik OpenAccess Orm، Devexpress XPO أو Remobjects Dataabstract والتي ستساعدك على أن تكون غير نظري قاعدة البيانات.

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