NHibernate
NHibernate مائیکروسافٹ. NET پلیٹ فارم کے لیے ایک آبجیکٹ ریلیشنل میپنگ (ORM) حل ہے۔ یہ روایتی رشتہ دار ڈیٹا بیس میں آبجیکٹ پر مبنی ڈومین ماڈل کی نقشہ سازی کے لیے ایک فریم ورک فراہم کرتا ہے۔ اس کا مقصد ڈویلپر کو رشتہ دار ڈیٹا کی استقامت سے متعلق پروگرامنگ کاموں کے ایک اہم حصے سے نجات دلانا ہے۔ این ایچ آئیبرنیٹ ایک مفت اور اوپن سورس سافٹ ویئر ہے جو جی این یو لیسر جنرل پبلک لائسنس کے تحت تقسیم کیا گیا ہے۔ NHibernate ہائبرنیٹ کی ایک بندرگاہ ہے۔ خصوصیت کا خلاصہ NHibernate کی بنیادی خصوصیت. NET کلاسوں سے ڈیٹا بیس ٹیبلز (اور CLR ڈیٹا ٹائپ سے لے کر SQL ڈیٹا ٹائپز تک) کی نقشہ سازی ہے۔ NHibernate ڈیٹا استفسار اور بازیافت کے اوزار فراہم کرتا ہے۔ یہ ایس کیو ایل کمانڈز تیار کرتا ہے اور دستی ڈیٹا سیٹ ہینڈلنگ اور آبجیکٹ کنورژن کی ضرورت کو دور کرتا ہے، ایپلی کیشن کو زیادہ تر ایس کیو ایل ڈیٹا بیس میں پورٹیبل رکھتا ہے، جس میں ڈیٹا بیس پورٹیبلٹی بہت کم کارکردگی والے اوور ہیڈ پر فراہم کی جاتی ہے۔ این ایچ آئیبرنیٹ پلین اولڈ سی ایل آر آبجیکٹس (پی او سی اوز) کے لیے شفاف استقامت فراہم کرتا ہے۔ مستقل کلاس کے لیے واحد سخت ضرورت کوئی دلیل نہیں بنانے والا ہے، جس کا عوامی ہونا ضروری نہیں ہے۔ (کچھ ایپلی کیشنز میں مناسب رویے کے لیے مساوی () اور گیٹ ہاش کوڈ () طریقوں پر بھی خصوصی توجہ دینے کی ضرورت ہوتی ہے۔) ٹام بیریٹ نے NHibernate کا آغاز کیا، اور بعد میں مائیک ڈورفلر اور پیٹر سمولوویکس نے اسے اٹھایا۔ 2005 کے آخر میں، جے باس انکارپوریٹڈ (جو اب ریڈ ہیٹ کا حصہ ہے) نے اس کے مستقبل کے ورژن پر کل وقتی طور پر کام کرنے کے لیے این ایچ آئیبرنیٹ کے اس وقت کے لیڈ ڈویلپر سرگئی کوشچیئف کی خدمات حاصل کیں۔ 2006 کے آخر میں، جے باس نے اس منصوبے کی حمایت روک دی۔ NHibernate اب مکمل طور پر تیار کیا گیا ہے اور کمیونٹی کی قیادت میں ہے۔ ورژن 1 نے ہائبرنیٹ 2.1 کے فیچر سیٹ کے ساتھ ساتھ ہائبرنیٹ 3 کی متعدد خصوصیات کی عکاسی کی۔ نومبر 2007 میں ریلیز ہونے والے NHibernate 1.2 نے ہائبرنیٹ 3 سے بہت سی مزید خصوصیات متعارف کروائیں اور. NET 2.1 کے لیے سپورٹ، ذخیرہ شدہ طریقہ کار، جنیرکس اور کالعدم اقسام متعارف کروائیں۔ NHibernate 2 NHibernate 2 23 اگست 2008 کو جاری کیا گیا تھا۔ خصوصیات کے لحاظ سے اس کا موازنہ ہائبرنیٹ 3.2 سے کیا جا سکتا ہے۔ ورژن 2 کی ریلیز کے ساتھ، NHibernate نے. NET 1.1 کے لیے سپورٹ چھوڑ دی۔ NHibernate 2.1 17 جولائی 2009 کو جاری کیا گیا تھا۔ NHibernate 3.0 NHibernate 3.0 کو 4 دسمبر 2010 کو جاری کیا گیا تھا، اور یہ. NET 3.0 استعمال کرنے والا پہلا ورژن ہے، جس میں اس طرح کی خصوصیات ہیں: انٹیگریٹڈ LINQ سپورٹ مضبوط ٹائپ شدہ معیار جیسے API جسے QueryOver نیو AST پر مبنی پارسر کہا جاتا ہے۔ سست لوڈنگ کالموں کے لیے NHibernate 3.0 NHibernate 3.0 کو اپریل 2011 میں جاری کیا گیا تھا۔ نئی خصوصیات میں شامل ہیں: کوڈ کے لحاظ سے نقشہ سازی: روانی سے ترتیب،. ایچ بی ایم. ایکس ایم ایل فائلوں کی اب ضرورت نہیں ہے۔ سب سلیکٹ: ایس کیو ایل ویوز کو اداروں کے طور پر نقشہ بنانے کی صلاحیت ؛ ایچ کیو ایل پیجنگ: ایچ کیو ایل پر ٹیک اور ایس کے آئی پی ؛ انٹیگریٹڈ بائٹ کوڈ فراہم کنندہ: تعینات کرنے کے لیے ایک کم ڈی ایل ایل۔ NHibernate 4.0 NHibernate 4.0 کو 17 اگست 2014 کو جاری کیا گیا تھا۔ اس ورژن کے لیے. NET فریم ورک 4 یا اس کے بعد کی ضرورت ہے۔ NHibernate 5.0 NHibernate 5.0 کو 10 اکتوبر 2017 کو جاری کیا گیا تھا۔ یہ غیر متزلزل پروگرامنگ کے لیے معاونت فراہم کرتا ہے۔ اس ورژن کے لیے. NET فریم ورک 4.6.1 یا اس کے بعد کی ضرورت ہے۔ NHibernate 5.1 NHibernate 5.1 کو 17 مارچ 2018 کو جاری کیا گیا تھا۔ یہ. NET سٹینڈرڈ 2 اور. NET کور 2 کی حمایت کرتا ہے۔ NHibernate 5.2 NHibernate 5.2 کو 4 دسمبر 2018 کو جاری کیا گیا تھا۔ NHibernate 5.3 NHibernate 5.3 19 جولائی 2020 کو جاری کیا گیا تھا۔ شراکت اوپن سورس سافٹ ویئر کے طور پر، NHibernate کو اپنے صارفین کی طرف سے بہت سے تعاون موصول ہوئے ہیں۔ LINQ کے نفاذ نے NHibernate کے ساتھ زبان کے مربوط استفسار کے استعمال کی اجازت دی ہے۔ NHibernate پروفائلر NHibernate پروفائلر ایک آبجیکٹ ریلیشنل میپنگ ٹول (ORM) ہے جو NHibernate کے لیے ریئل ٹائم بصری ڈیبگر کے طور پر کام کرتا ہے۔ یہ ایپلیکیشن کی مجموعی کارکردگی کو فروغ دینے کے لیے ڈیٹا بیس کے غیر ضروری کام کو ختم کرنے کے لیے غیر موثر ایس کیو ایل ڈیٹا سوالات کی نشاندہی کرتا ہے۔ NHibernate پروفائلر صارفین کو ڈیٹا کے سوالات کے بارے میں بھی آگاہ کرتا ہے جن کی قیمت وقت پر بہت زیادہ ہوتی ہے اور انہیں C #کوڈ میں صحیح لائن پر بھیجتا ہے۔ نمونے یہاں ڈیٹا بیس میں کسی شے کو شامل کرنے کے لیے کوڈ کا ایک ٹکڑا ہے اور یہ دکھاتا ہے کہ NHibernate کا استعمال کرتے ہوئے ڈیٹا بیس میں کسی شے کو کیسے بازیافت، ترمیم اور اپ ڈیٹ کیا جائے۔ //ڈیٹا اسٹور میں کسٹمر کو شامل کریں// 'سیشن فیکٹری' ایک تھریڈ سے محفوظ آبجیکٹ ہے جو فی ایپلیکیشن لائف ٹائم میں ایک بار بنایا جاتا ہے (بنانے میں سیکنڈ لگ سکتے ہیں)// جو کنفیگریشن فائلوں پر مبنی ہوتا ہے جو یہ کنٹرول کرتا ہے کہ ڈیٹا بیس ٹیبلز کو سی #آبجیکٹ// پر کیسے نقشہ بنایا جاتا ہے۔ کون سی پراپرٹی نقشہ بناتی ہے کہ ڈیٹا بیس ٹیبل میں کون سا کالم محفوظ اور تیز تر نہیں ہے اور اسے ڈیٹا بیس کے کنکشن کے طور پر سمجھا جا سکتا ہے (وار سیشن = sessionFactory.OpenSession ()) {// ٹرانزیکشن کا استعمال کرتے ہوئے ڈی بی ٹرانزیکشن کی نمائندگی کرتا ہے (آئی ٹی ٹرانزیکشن ٹرانزیکشن = session.BeginTransaction ()) {// نیچے دی گئی لائن گاہک کو ڈیٹا بیس میں داخل کرنے کے لیے NHibernate کی اشیاء کی فہرست میں شامل کرتی ہے// لیکن یہ اس مرحلے پر SQL انسٹر کمانڈ پر عمل نہیں کرتی ہے *۔ //* اگر آئی ڈی فیلڈ ڈیٹا بیس کے ذریعے تیار کیا گیا ہے (مثال کے طور پر۔ ایک آٹو انکریمینٹڈ نمبر)// پھر NHibernate اس وقت SQL INSERT کو انجام دے گا جب محفوظ کریں کو session.Save (نیا کسٹمر {ID = Guid.NewGuid ()، پہلا نام = "باس"، عمر = 50}) کہا جاتا ہے ؛// نیچے دی گئی کال SQL INSERT کو انجام دے گی اور لین دین کو انجام دے گی transaction.Commit () ؛}}// ڈیٹا بیس سے کسٹمر کو بازیافت کریں، ریکارڈ میں ترمیم کریں اور ڈیٹا بیس کو اپ ڈیٹ کریں (ور سیشن = sessionFactory.OpenSession ()) کا استعمال کرتے ہوئے (آئی ٹرانزیکشن ٹرانزیکشن = session.BeginTransaction ()) {// سیشن کا استفسار ریٹرن IQueryable <کسٹمر>۔ //صرف جب. فرسٹ اور ڈیفالٹ کو کال کیا جائے گا تب ہی این ایچ آئی بی آر نیٹ ایس کیو ایل استفسار کو انجام دے گا کسٹمر کسٹمر = session.Query <کسٹمر> ()۔ جہاں (c => c.Token = = ٹوکن)۔ فرسٹ اور ڈیفالٹ () ؛// اب کسٹمر 'سیشن' آبجیکٹ کا حصہ ہے اور این ایچ آئی بی آر نیٹ اس میں کی گئی تبدیلیوں کا سراغ لگاتا ہے اگر (کسٹمر! = صفر) {// کسی آبجیکٹ کی پراپرٹی کو تبدیل کرنے سے ایس کیو ایل پر عمل درآمد نہیں ہوتا ہے customer.TokenVerified = درست ؛// لین دین کے نتائج کو ایس کیو ایل اپ ڈیٹ بیان// این ایچ آئی بی آر نیٹ میں انجام دینے سے اس حقیقت کا سراغ لگایا جاتا ہے کہ 'کسٹمر' آبجیکٹ ریلیشنل میپنگ سافٹ ویئر کی فہرست بھی دیکھیں۔ نیٹ پرسسٹینس اے پی آئی (این پی اے) حوالہ جات کتابچہ بیرونی لنکس این ایچ آئی بی آر نیٹ ہوم پیج مفت سافٹ ویئر پروگرام شدہ سی شارپ. نیٹ پروگرامنگ ٹولز. نیٹ آبجیکٹ ریلیشنل میپنگ ٹولز آبجیکٹ ریلیشنل میپنگ