سؤال

هل يوفر أي مصممي خرائط .Net O/R (كائن/علائقي) أساليب غير متزامنة خارج الصندوق؟

لا أريد أن أضطر إلى كتابة لوحة الغلاية للطريقة غير المتزامنة إن أمكن

لقد قمت بتدوير DAL الخاص بي باستخدام أساليب غير متزامنة باستخدام إطار عمل CCR.يتطلب CCR بشكل أساسي عدم حظر أي من سلاسل الرسائل الخاصة به في انتظار استجابات الإدخال/الإخراج.

الجزء الجيد في الحل الذي توصلت إليه حتى الآن هو أنه وصل إلى الحد الأدنى.ولكن مع نمو هذا المشروع من حيث الحجم والوظيفة، أواجه مهمة شاقة إلى حد ما تتمثل في الحفاظ على استعلامات SQL الأولية ورمز لوحة الغلاية.

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

من فضلك لا تركز على بدائل البرمجة غير المتزامنة.

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

المحلول

وبينما أنا لست متأكدا مما إذا كان أي منهم القيام بذلك من خارج منطقة الجزاء، هل يمكن استخدام .NetTiers ، وهو نموذج يستند. هل يمكن أن مجرد إضافة أجزاء المتزامن إلى القالب. ومن شأن ذلك أن ما لا يقل عن القضاء على الحاجة إلى الحفاظ على رمز النمطي والاستفسارات SQL العارية. هذا بلوق يبين كيف إضافة إلى المكالمات المتزامن إلى المكتبة MS المؤسسة (التي .NetTiers يمكن استخدامها إذا اخترت).

واعتبارا من منتصف ديسمبر كانون الاول عام 2008، LLBLGen برو لا يدعم أصلا المكالمات المتزامن. حاليا الجينوم لا سواء. لا يبدو أن Telerik يفعل سواء. الى حد كبير مجرد البحث وثائقها وبحثت عن أي المتزامن أو الأساليب التي تبدأ مع بدء لأن هذا النمط.

واسمحوا لي أن إجابات أخرى تتحدث للو انها فكرة جيدة أم لا ...

نصائح أخرى

نعم، لSQLAlchemy (واحد من أفضل ORMs)، وهناك sAsync:

http://foss.eepatents.com/sAsync

ووNADBAPI:

http://developer.berlios.de/projects/nadbapi/

وأعتقد أنك قد اخطأت. ما أفهمه هو أن تنفيذ متزامنة في حالتك يجب أن يتم التعامل معها على مستوى العمارة بدلا من مستوى ORM أي قائمة انتظار الرسائل مدفوعة الهندسة المعمارية. ما أراه هو أن webserive الخاص بك وسوف يضع فقط رسالة في قائمة الانتظار، وهناك نوع من وكيل خلفية يفعل المعالجة غير المتزامنة من قائمة الانتظار.

وبما أنني لم يكن لديك ما يكفي من سمعة التعليق وستاكوفيرفلوو هو تنبيه لي ادخال آخر "الجواب" سأترك تعليقي هنا.

ولي B: SQLAlchemy؟ كيف يمكنك استخدامه مع صافي ؟؟؟

ويمكن تحقيق ذلك

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

وهذه ليست معقدة أقل من إنشاء موضوع نفسك واستدعاء س / ص مخطط لجلب المنطق من أن الموضوع.

وكما ذكرتم الذي تريد إنشاء خدمة ويب التي ينبغي أن تكون استجابة، كنت قد لندرك أن المتصل هو خارج خدمة ويب وينتظر البيانات. IOW: إذا كان الطالب يستخدم خدمة ويب لجلب البيانات، فمن غير متزامن بالفعل، وعملاء آخرين سوف لا يزال قادرا على استدعاء خدمة ويب وكذلك: يتم التعامل مع طلب المتصل الأصلي على موضوع مختلف، منطق لجلب وركض البيانات داخل تلك خيط، ثم يتم إرجاع البيانات إلى الطالب.

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

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

Nhibernate يبدو أن أسهل نسبيا لتنفيذ التزامن من LinqToSQL. انظر هذا

وشخصيا ما أود القيام به هو على الرغم من استخدام ما أنا مرتاح مع (وأنا لم تستخدم NHibernate أود أن تقلق بشأن منحنى التعلم والمشاكل المحتملة لذلك يفضل استخدام شيء من هذا القبيل LINQtoSQL أو طبقة الوصول إلى البيانات مفصل) والتفاف في انها خدمة الويب الخاصة WCF LOB محول .

إذا كنت حقا لا تريد أن رمز نفسك أنك يمكن أن تستخدم فقط خدمات البيانات ADO.NET حيث يقوم أساسا أن للإطار الكيان.

يبدو أنك تفتقد بعض الفهارس.

أو تحتاج إلى تحويل تصميم قاعدة البيانات إلى نموذج OLAP.

إذا لم يكن الأمر كذلك.

  1. الحصول على المزيد من ذاكرة الوصول العشوائي.
  2. احصل على المزيد من وحدة المعالجة المركزية.
  3. تقسيم الجداول الخاصة بك.
  4. أنشئ غلافًا أمام قاعدة البيانات يمكنه التعامل مع الطلبات غير المتزامنة.سوف تبدو وكأنها قائمة الانتظار.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top