NHibernate
এন. এইচ. আই. বি. আরনেট হল মাইক্রোসফট. নেট প্ল্যাটফর্মের জন্য একটি অবজেক্ট-রিলেশনাল ম্যাপিং (ও. আর. এম) সমাধান। এটি একটি ঐতিহ্যবাহী রিলেশনাল ডাটাবেসে একটি অবজেক্ট-ওরিয়েন্টেড ডোমেন মডেল ম্যাপ করার জন্য একটি কাঠামো প্রদান করে। এর উদ্দেশ্য হল ডেভেলপারকে রিলেশনাল ডেটা অধ্যবসায়-সম্পর্কিত প্রোগ্রামিং কাজের একটি উল্লেখযোগ্য অংশ থেকে মুক্তি দেওয়া। এন. এইচ. আই. বি. আর. এন. এ. টি হল একটি মুক্ত ও মুক্ত উৎস সফ্টওয়্যার যা জি. এন. ইউ লেসার জেনারেল পাবলিক লাইসেন্সের অধীনে বিতরণ করা হয়। হাইবারনেট হল হাইবারনেটের একটি বন্দর। বৈশিষ্ট্যের সারসংক্ষেপ এন. এইচ. আই. বি. আরনেট-এর প্রাথমিক বৈশিষ্ট্য হল. এন. ই. টি ক্লাস থেকে ডেটাবেস টেবিল (এবং সি. এল. আর ডেটা প্রকার থেকে এস. কিউ. এল ডেটা প্রকার) পর্যন্ত ম্যাপিং করা। এন. এইচ. আই. বি. আরনেট তথ্য অনুসন্ধান এবং পুনরুদ্ধারের সরঞ্জাম সরবরাহ করে। এটি এসকিউএল কমান্ড তৈরি করে এবং ম্যানুয়াল ডেটা সেট হ্যান্ডলিং এবং অবজেক্ট রূপান্তরের প্রয়োজনীয়তা সরিয়ে দেয়, অ্যাপ্লিকেশনটিকে বেশিরভাগ এসকিউএল ডাটাবেসে বহনযোগ্য রাখে, ডাটাবেস বহনযোগ্যতা খুব কম পারফরম্যান্স ওভারহেডে সরবরাহ করে। এন. এইচ. আইবারনেট প্লেইন ওল্ড সি. এল. আর অবজেক্টস (পি. ও. সি. ও)-এর জন্য স্বচ্ছ অধ্যবসায় প্রদান করে। একটি স্থায়ী শ্রেণীর জন্য একমাত্র কঠোর প্রয়োজনীয়তা হল একটি নো-আর্গুমেন্ট কনস্ট্রাক্টর, যা সর্বজনীন হতে হবে না। (কিছু অ্যাপ্লিকেশনে সঠিক আচরণের জন্য Equals () এবং GetHashCode () পদ্ধতির প্রতি বিশেষ মনোযোগের প্রয়োজন হয়।) ইতিহাস টম ব্যারেট এনএইচআইবারনেট শুরু করেছিলেন এবং পরে মাইক ডোয়ারফ্লার এবং পিটার স্মুলোভিক্স গ্রহণ করেছিলেন। 2005 সালের শেষের দিকে, জেবস, ইনকর্পোরেটেড (বর্তমানে রেড হ্যাটের অংশ) এন. এইচ. আইবারনেটের তৎকালীন প্রধান বিকাশকারী সের্গেই কোশেয়েভকে তার ভবিষ্যতের সংস্করণগুলিতে পূর্ণ-সময়ের কাজ করার জন্য নিয়োগ করেছিল। 2006 সালের শেষের দিকে, জেবস এই প্রকল্পে সমর্থন বন্ধ করে দেয়। এন. এইচ. আই. বি. আর. এন. এ. টি এখন সম্পূর্ণরূপে উন্নত এবং সম্প্রদায়ের দ্বারা পরিচালিত। সংস্করণ 1 হাইবারনেট 2.1-এর বৈশিষ্ট্য সেটের পাশাপাশি হাইবারনেট 3-এর বেশ কয়েকটি বৈশিষ্ট্যকে প্রতিফলিত করেছে। 2007 সালের নভেম্বরে প্রকাশিত এনএইচআইবারনেট 1.2.1, হাইবারনেট 3 থেকে আরও অনেক বৈশিষ্ট্য এবং. নেট 2.0, সংরক্ষিত পদ্ধতি, জেনেরিক এবং বাতিলযোগ্য প্রকারের জন্য সমর্থন চালু করে। NHibernate 2 NHibernate 2 মুক্তি পায় 2008 সালের 23শে আগস্ট। বৈশিষ্ট্যের দিক থেকে এটি হাইবারনেট 3.2-এর সাথে তুলনীয়। সংস্করণ 2 প্রকাশের সাথে, এন. এইচ. আই. বি. আরনেট. নেট 1.1-এর জন্য সমর্থন বাদ দেয়। এন. এইচ. আই. বি. আর. এন. এ. টি. 2.1 মুক্তি পায় 2009 সালের 17ই জুলাই। এন. এইচ. আই. বি. আর. এন. এ. টি. 3 2010 সালের 4ঠা ডিসেম্বর মুক্তি পায় এবং এটি. এন. ই. টি. 3 ব্যবহার করা প্রথম সংস্করণ, যেমনঃ ইন্টিগ্রেটেড এল. আই. এন. কিউ সাপোর্ট স্ট্রংলি টাইপড ক্রাইটেরিয়া-এর মতো এ. পি. আই যাকে বলা হয় কুইরিওভার এইচ. কিউ. এল ইঞ্জিনের জন্য নতুন এ. এস. টি-ভিত্তিক পার্সার অলস লোডিং কলামের জন্য সমর্থন এন. এইচ. আই. বি. আর. এন. টি. 3. এন. এইচ. আই. আই. বি. আর. এন. টি. 3 এপ্রিল, 2011 সালে মুক্তি পায়। নতুন বৈশিষ্ট্যগুলির মধ্যে রয়েছেঃ কোড দ্বারা ম্যাপিংঃ সাবলীল কনফিগারেশন,. এইচবিএম. এক্সএমএল ফাইলগুলির আর প্রয়োজন নেই; সাবসিলেক্টঃ সত্তা হিসাবে এসকিউএল ভিউ ম্যাপ করার ক্ষমতা; এইচকিউএল পেজিংঃ এইচকিউএল-এ টেক এবং স্কিপ; ইন্টিগ্রেটেড বাইটকোড প্রদানকারীঃ স্থাপনার জন্য এক কম ডিএলএল। 2014 সালের 17ই আগস্ট NHibernate 4.0 NHibernate 4 মুক্তি পায়। এই সংস্করণটির জন্য. NET ফ্রেমওয়ার্ক 4 বা তার পরেরটির প্রয়োজন। NHibernate 5.0 NHibernate 5.0 মুক্তি পায় 2017 সালের 10ই অক্টোবর। এটি অ্যাসিঙ্ক্রোনাস প্রোগ্রামিংয়ের জন্য সমর্থন প্রদান করে। এই সংস্করণটির জন্য. NET ফ্রেমওয়ার্ক 4.6.1 বা তার পরেরটির প্রয়োজন। এন. এইচ. আইবারনেট 5.1 এন. এইচ. আইবারনেট 5.1 মুক্তি পায় 2018 সালের 17ই মার্চ। এটি. NET স্ট্যান্ডার্ড 2 এবং. NET কোর 2 সমর্থন করে। NHibernate 5.2 NHibernate 5.2 মুক্তি পায় 2018 সালের 4ঠা ডিসেম্বর। 2020 সালের 19শে জুলাই এন. এইচ. আই. বি. আরনেট 5.3 মুক্তি পায়। অবদান ওপেন সোর্স সফ্টওয়্যার হিসাবে, এনএইচআইবারনেট তার ব্যবহারকারীদের কাছ থেকে অনেক অবদান পেয়েছে। এল. আই. এন. কিউ-এর বাস্তবায়নে এন. এইচ. আইবারনেট-এর সঙ্গে ভাষা সমন্বিত প্রশ্ন ব্যবহারের অনুমতি দেওয়া হয়েছে। এন. এইচ. আই. বি. আরনেট প্রোফাইলার এন. এইচ. আই. বি. আরনেট প্রোফাইলার একটি অবজেক্ট-রিলেশনাল ম্যাপিং টুল (ও. আর. এম) যা এন. এইচ. আই. বি. আরনেটের জন্য রিয়েল-টাইম ভিজ্যুয়াল ডিবাগার হিসাবে কাজ করে। এটি অ্যাপ্লিকেশনের সামগ্রিক কর্মক্ষমতা বাড়ানোর জন্য ডাটাবেসের অপ্রয়োজনীয় কাজ দূর করতে অদক্ষ এসকিউএল ডেটা প্রশ্নগুলি চিহ্নিত করে। এন. এইচ. আই. বি. আর. এন. এ. টি প্রোফাইলার ব্যবহারকারীদের ডেটা প্রশ্নের বিষয়ে সতর্ক করে দেয় যা সময়মতো খুব বেশি খরচ করে এবং তাদের সি #কোডের সঠিক লাইনে নিয়ে যায়। নমুনা এখানে ডাটাবেসে একটি বস্তু যোগ করার জন্য একটি কোড স্নিপেট এবং NHibernate ব্যবহার করে ডাটাবেসে একটি বস্তু পুনরুদ্ধার, সংশোধন এবং আপডেট করার উপায় দেখায়। //ডেটাস্টোরে একজন গ্রাহককে যুক্ত করুন// 'সেশনফ্যাক্টরি' একটি থ্রেড-নিরাপদ অবজেক্ট যা প্রতি অ্যাপ্লিকেশন জীবদ্দশায় একবার তৈরি করা হয় (তৈরি করতে কয়েক সেকেন্ড সময় নিতে পারে)// কনফিগারেশন ফাইলের উপর ভিত্তি করে যা নিয়ন্ত্রণ করে যে কীভাবে ডাটাবেস টেবিলগুলি সি #অবজেক্টে ম্যাপ করা হয়// (যেমন। কোন বৈশিষ্ট্যটি মানচিত্র করে যে ডাটাবেস টেবিলের কোন কলামে)///'সেশন' নিরাপদ এবং দ্রুত প্রাপ্তির জন্য সুরক্ষিত নয় এবং (ভার সেশন = sessionFactory.OpenSession ()) ব্যবহার করে ডাটাবেসের সাথে সংযোগ হিসাবে ভাবা যেতে পারে। //* যদি আইডি ক্ষেত্রটি ডাটাবেস দ্বারা তৈরি করা হয় (যেমন। একটি স্বয়ংক্রিয়-বর্ধিত নম্বর)// তারপর এন. এইচ. আই. বি. আর. এন. টি. এস. ই. এন. এস. ই. আর. টি কার্যকর করবে যখন। সংরক্ষণ করা হবে <আই. ডি. 3> (নতুন গ্রাহক {আই. ডি. = <আই. ডি. 4> (), ফার্স্টনেম = "বস", বয়স = 50});// নীচের কলটি এস. কিউ. এল. আই. এন. এস. ই. আর. টি কার্যকর করবে এবং লেনদেন করবে <আই. ডি. 2> ();}}// গ্রাহককে ডাটাবেস থেকে পুনরুদ্ধার করবে, রেকর্ডটি সংশোধন করবে এবং (ভার সেশন = <আই. ডি. 5> ()) ব্যবহার করে ডাটাবেস আপডেট করবে। //শুধুমাত্র যখন. ফার্স্টঅর্ডডিফল্ট কল করা হবে তখনই এন. এইচ. আই. বি. আর. এন. এ. টি এস. কিউ. এল প্রশ্নটি কার্যকর করবে গ্রাহক গ্রাহক = <আই. ডি. 4> <গ্রাহক> ()। যেখানে (সি => <আই. ডি. 2> = = টোকেন)। ফার্স্টঅর্ডডিফল্ট ();// এখন গ্রাহক 'সেশন' অবজেক্টের অংশ এবং এন. এইচ. আই. বি. আর. এন. এ. টি এতে করা পরিবর্তনগুলির উপর নজর রাখে যদি (গ্রাহক! = নাল) {// কোনও বস্তুর সম্পত্তি পরিবর্তন করা এস. কিউ. এল-কে কার্যকর করার কারণ না হয় <আই. ডি. 1> = সত্য;// এস. কিউ. এল আপডেটে লেনদেনের ফলাফল প্রতিশ্রুতিবদ্ধ করা বিবৃতি// এন. এইচ. আই. আই. বি. আর. এন. এ. টি এই সত্যটির উপর নজর রাখে যে 'গ্রাহক' আরও দেখুন অবজেক্ট-রিলেশনাল ম্যাপিং সফ্টওয়্যারের তালিকা। নেট পার্সিস্টেন্স এপিআই (এনপিএ) রেফারেন্স গ্রন্থপঞ্জি বাহ্যিক লিঙ্ক এনএইচআইবারনেট হোমপেজ সি শার্প. নেট প্রোগ্রামিং টুলস. নেট অবজেক্ট-রিলেশনাল ম্যাপিং টুলস অবজেক্ট-রিলেশনাল ম্যাপিং-এ প্রোগ্রাম করা ফ্রি সফ্টওয়্যার।