هو Codesmith قابلة للحياة ORM أداة (أو يجب أن العصا مع صحيح ORM) [مغلقة]

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

  •  06-09-2019
  •  | 
  •  

سؤال

انا التسوق على أداة ORM.أنا مؤلمة على شراء إما CodeSmith (مما هو متاح حاليا في خصم كبير) مقابل ORM أداة.

LINQ to SQL هو خارج القائمة ؛ دون سرعة الصوت 2.x من قائمة (أنا لا تريد أن تستثمر في طريق مسدود مع العلم أن سرعة الصوت 3.0 قادم.NHibernate يبدو مبالغة كما يفعل LLBLGEN.لقد إلا لفترة وجيزة تقييم EF ولكن لا يحصل بسرعة الحصول على شعور دافئ وغامض من ذلك.

هل أنا مجنون التفكير في أن CodeSmith الرشيد هو بديل الجاهزة ORMs?سوف CodeSmith يدفع عن نفسه بطرق أخرى ؟

يرجى ملاحظة أنني لا علاقة لأي البائعين و هذا ليس رخيصا حتى السؤال فقط من أجل توليد الضجيج الناتج!أنا أبحث عن نصيحة صادقة والآراء حول CodeSmith باعتبارها أداة ORM (مع المقدمة أو المجتمع المتاحة) قوالب.

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

المحلول

في الواقع, السبات هو خير أداة ORM.ولكن ذلك يتوقف هناك!

رمز سميث قدرات يمكن أن يكون أكثر من مجرد العلائقية تعيين الموظفين!يمكنني استخدام رمز سميث لتوليد بعض UI أشكال الأعمال طبقات (قوالب), الوصول إلى البيانات طبقات, أنماط, وهلم جرا.ولكن للعمل مع رمز سميث ، قد تحتاج إلى خبرة جيدة مع تصميم نظام أو استخدام القوالب التي لا ترغب في استخدام لكني أحب كمثال.

رمز سميث نهج خاص واحد عيب;عليك أن تصميم نظام النظر في قاعدة البيانات تنفيذ الأولى.في هذه الأيام, في كائن نهج تحليل الناس النجاح في تنفيذ الأعمال و المنطق الكيانات قبل أي قاعدة بيانات تنفيذ – ينسون هذا.

قرار من الصعب ؛ لقد باستمرار قراءة أسماء مهمة مثل سكوت دبليوAmbler ، كينت بيك روبرت C.مارتن الناس من عملي المبرمجين السلسلة التي توصي ORM أداة لتسريع التنمية.قالوا أن ORM المطورين أداة نشعر بالقلق مع كل مشاكل قاعدة البيانات (تجميع اتصالات قاعدة البيانات بائع التفاصيل ، إلخ).لذلك عندما يكون لدينا لتصميم الوصول إلى البيانات طبقات علينا أن ننظر في كل هذه الجوانب أيضا.

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

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

أنا أفضل رمز سميث لأنني توليد كامل الحلول في آن واحد ، ليس فقط طبقة الوصول إلى البيانات.رمز جيل مهم جدا و ليس أقل من أن مايكروسوفت قد قلد رمز سميث نهج البصرية studio.net 2008 وهلم جرا.

حظا سعيدا

نصائح أخرى

كود سميث ليس orm، إنه مجرد مولد رمز IDE.

يمكنك إنشاء DAL باستخدام Code Smith استنادا إلى قاعدة البيانات الخاصة بك ولكن من شأنه أن يهزم (أحد) أغراض استخدام Orm وهو أساسا أنه يولد DAL ديناميكيا حتى لا تضطر إلى كتابة التعليمات البرمجية.

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

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

nhibernate. هي الطريق للذهاب. إنه orm في الصف المؤسسة. ومع التكوين التلقائي القائم على الاتفاقية من fluentnibernate. مكتبة، التكوين بسيطة يبعث على السخرية إذا التمسك باتفاقية واحدة (تحصل على تحديد الاتفاقيات، أو هناك الإعدادات الافتراضية).

مع Nibernate، كائنات المجال الخاصة بك هي كائنات C # النقية. لا توجد فصول أساسية غريبة. لا توجد ملفات CodeGenned التي تحتاج إلى تحديث في كل مرة تقرر فيها إجراء تغيير.

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

أعتقد أن استخدام Codesmith هو قابل للتطبيق. ولكن يجب عليك النظر في الأطر التي تستخدمها. صافي المستويات هو إطار تطبيق يمكن بناء عليه لإخراج دال جيد.

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

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

الذهاب مع Nettiers و .NETMVP. Nettiers هو DAL لطيف للغاية و .NETMVP هو إطار عمل لي للتو لدعم التجريد على مستوى واجهة المستخدم. :)

http://community.codesmithtools.com/codesmith/m/templates/42499.aspx.

اعتدت llbgen منذ عدة سنوات. آمل أن يكون ما رأيته قد تم إصلاحه. بحثنا إلى SQL في الخط الذي تم إنتاجه ورأيته، لاختيار صف واحد من البيانات مع المفتاح الأساسي الذي تم تمريره في:

SELECT DISTINCT * FROM TABLE WHERE primark_key_id = @primarykey.

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

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