سؤال

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

لذلك أنا في مفترق طرق وجد ما يلي: -

  1. لقد نظرت إلى Plinqo (Linq إلى SQL) التي يبدو أنها تقوم بعمل كبير مع Microsoft غير مؤكد من LinQ إلى SQL، قد لا يكون هذا اختيارا جيدا.
  2. Linq إلى الكيانات - هذا لا يزال في مهده وقد أكون مخطئا ولكن الناس يشكون من النفايات وكيف الإجراءات المخزنة
  3. لقد نظرت إلى Nhibernate، وهذا ربما الخيار الأفضل ولكن يبدو أنه منحنى تعليمي حاد
  4. كما سبق ل Llbgen.
  5. خاطئ - غير متأكد من هذا؟
  6. عصا مع Nettiers مجربة ومختبرة، ننسى النفاية، ننسى أنك أجبرت على استخدام مكتبة المؤسسات، وننسى SQL الديناميكي الذي ينشئه، ننسى أنهم لا يوجد نشاط تقريبا على المنتديات، وننسى هذا واستخدامه!

أنا بالفعل رموز الرموز ولا أرغب في شراء أي شيء آخر، يجب أن يعمل التعليمات البرمجية الناتجة في وضع الثقة المتوسطة ...

قد يكون هناك آخرون فاتني. أنا أبحث عن إجابات توضح لماذا تستحق أداة orm النظر إليها.

شكرا ريتشارد

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

المحلول

لقد استخدمت. وأذن نفسي في المشروع الأخير. ولكن على الشخص الذي أعمل في الوقت الحالي، نحاول كيانات LINQ 2. أنت على حق حول LINQ2EF لا تنضج. نحن نفعل الكلبة حول الأمر طوال الوقت لهذا السبب نستخدم قوالب T4 التي تولد رمز من ملف edmx. لقد غيرنا أيضا تلك القوالب، لذلك لدينا كائنات تجارية، واجهات لحقن و DAL + DAO. نحن سعداء كيف يعمل الآن. الشيء الجيد هو أننا نستطيع استخدام LINQ ضد الكيانات.

وإلا كنت أقترح أيضا أحمق بطلاقة (حلقة الوصل) لك. كان أحد الأشياء التي نظرنا فيها أيضا. ولكن عليك أن تكتب الكثير من الأشياء بنفسك. ليس الأمر كما لو كنت معتادا عليه في. حيث يتم إنشاؤك جميع التعليمات البرمجية لك.

حيث 10. (حلقة الوصل) حوالي أسبوع واحد تقريبا أقترح عليك التحقق من ذلك. بناء على ما رأيته يبدو واعدا جدا. ويستخدم T4، حتى تتمكن من الشريحة والنرد لاستيعاب احتياجاتك.

نصائح أخرى

حاولت بضعة أسابيع قليلة واستقر أخيرا مع أحمق. من السهل جدا تخصيص. هناك منحنى تعليمي ويستغرق وقتا أطول قليلا لإعداد شيء مثل LinQ إلى SQL ولكن الاتجاه الصعودي لهذا هو أنه لا يبدو مثل السحر. سوف تفهم كيف تعمل وسوف تكون قادرة على تخصيصها بالضبط لتناسب احتياجاتك. المجتمع هو أيضا جيدة جدا وهناك الكثير من الوثائق المتاحة. يبدو لي أن أكون توازنا جيدا بين orm الحديثة (بدون جيل رمز، يمكن استخدام Poco's) ونضج.

يمكنك تجربة dataibjects.net. يستخدم هذا ORM نهج "Code-First" النهج، يدعم ترقية مخطط DB و LinQ. تحقق هذا الوصف الموجز http://www.x-tegenive.com/products/do/.

أعتقد أن أدواتهم الأكثر شهرة وقوية الآن nhibernate. و llbgen الموالية.

nhibernate = المجال جدا مدفوعة الموجهة.

llbgen pro = البيانات المدفوعة الموجهة.

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

كما قلت على الرغم من أنه في النهاية، كلاهما ممتازان ولديهم مزايا / عيوبهم الطفيفة.

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

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

نعم، سأعترف بأن منحنى التعلم شديد الانحدار ولكن إذا كنت تستثمر الوقت، فستكون الفوائد التي ستخرجها منها ضخمة. مدونات Ayende راهيين و فابيو مولو هي منجم معلومات عن lhibernate. هناك بعض الدعم LinQ ل Nhibernate عبر هذا موفر لينك لكن ستيف قوي يتم حاليا تجميع الميزات التي ستوفر دعم Linq الكامل في Nibernate. لذلك كل شيء يذهب إلى Lonhibernate ولكن في نهاية اليوم، يعتمد ذلك على ما تشعر به أكثر راحة.

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