আমার শিক্ষানবীশকালে, আমি NHibernate ব্যবহার করেছি কিছু ছোট প্রকল্পের জন্য যা আমি বেশিরভাগই কোড করেছি এবং নিজেরাই ডিজাইন করেছি। এখন, কোনও বড় প্রকল্প শুরু করার আগে, আলোচনার উত্থান হয়েছিল কীভাবে ডেটা অ্যাক্সেস ডিজাইন করবেন এবং একটি ওআরএম স্তর ব্যবহার করবেন কি না। যেহেতু আমি এখনও আমার শিক্ষানবিশেই আছি এবং এখনও নিজেকে এন্টারপ্রাইজ প্রোগ্রামিংয়ের একটি প্রাথমিক হিসাবে বিবেচনা করি, তাই আমি সত্যিই আমার মতে জোর দেওয়ার চেষ্টা করিনি, এটি হ'ল ডাটাবেজে কোনও অবজেক্ট রিলেশনাল ম্যাপার ব্যবহার করা উন্নয়নকে অনেকটা সহজ করতে পারে। বিকাশকারী দলের অন্যান্য কোডাররা আমার চেয়ে অনেক বেশি অভিজ্ঞ, তাই আমি মনে করি আমি যা বলি ঠিক তাই করব। :-)
তবে, এনএইচবারনেট বা অনুরূপ প্রকল্প না ব্যবহারের মূল দুটি কারণ আমি পুরোপুরি বুঝতে পারি না:
- কেউ কেবল এসকিউএল কোয়েরি দিয়ে নিজের ডেটা অ্যাক্সেসের অবজেক্ট তৈরি করতে পারে এবং মাইক্রোসফ্ট এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওর বাইরে এই প্রশ্নাগুলি অনুলিপি করতে পারে।
- একটি ORM ডিবাগ করা কঠিন হতে পারে।
সুতরাং অবশ্যই আমি প্রচুর SELECT
এস ইত্যাদির সাহায্যে আমার ডেটা অ্যাক্সেস স্তরটি তৈরি করতে পারতাম , তবে এখানে আমি স্বয়ংক্রিয়ভাবে যোগদান, অলস-লোডিং প্রক্সি ক্লাস এবং কোনও টেবিলে একটি নতুন কলাম পেলে বা একটি কলাম পেলে একটি রক্ষণাবেক্ষণের কম প্রচেষ্টাটি ভুলে যাব নতুন নামকরণ। (অনেক আপডেট করা হচ্ছে SELECT
, INSERT
এবং UPDATE
ম্যাপিং কনফিগ আপডেট এবং সম্ভবত ব্যবসার ক্লাস এবং DTOs refactoring বনাম প্রশ্নের।)
এছাড়াও, এনএইচবারনেট ব্যবহার করে আপনি অপ্রত্যাশিত সমস্যার মধ্যে দৌড়াতে পারেন যদি আপনি কাঠামোটি খুব ভালভাবে জানেন না। এটি উদাহরণস্বরূপ, টেবিল এইচবিএম.এমএমএলকে বিশ্বাস করা যেখানে আপনি কোনও স্ট্রিংয়ের দৈর্ঘ্য স্বয়ংক্রিয়ভাবে বৈধ হওয়ার জন্য সেট করেছেন। তবে, আমি একই জাতীয় বাগগুলি "সরল" স্কেল সংযোগ ক্যোয়ারী ভিত্তিক ডেটা অ্যাক্সেস স্তরটিতেও কল্পনা করতে পারি।
পরিশেষে, উপরে বর্ণিত argu যুক্তিগুলি কি একটি তুচ্ছ-ডাটাবেস ভিত্তিক এন্টারপ্রাইজ অ্যাপ্লিকেশনটির জন্য কোনও ওআরএম ব্যবহার না করার জন্য একটি ভাল কারণ? তারা / আমি সম্ভবত মিস করেছি কি অন্য যুক্তি আছে?
(আমার সম্ভবত এটি যুক্ত করা উচিত যা আমি মনে করি এটি প্রথম "বড়" এর মতো N নেট / সি # ভিত্তিক অ্যাপ্লিকেশনের জন্য যা টিম ওয়ার্কের প্রয়োজন হবে Good স্ট্যাক ওভারফ্লোতে যেমন ইউনিট টেস্টিং বা অবিচ্ছিন্ন সংহতকরণ হিসাবে দেখা যায় এমন ভাল অভ্যাসগুলি অযোগ্য নয় এখানে এখন পর্যন্ত বিদ্যমান।)