16.1. ADO.NET
ADO.NET (Active Data Object .NET) kutubxonasi turli xil maʼlumotlar omborlari (maʼlumotlar bazalari) bilan oʻzaro aloqa qilish uchun moʻljallangan sinflar toʻplamidir. Kutubxona ma'lumotlar bilan ishlash uchun zarur bo'lgan sinflarni o'z ichiga oladi. Ularning yordami bilan siz serverga ulanishingiz, serverga so'rovni shakllantirishingiz va yuborishingiz, natijani olishingiz va uni qayta ishlashingiz mumkin.
ADO.NET yagona ma'lumotlar bazasiga kirish kutubxonasidan iborat emas. Faqat Microsoftdan DAO (Data Access Objects), RDO (Remote Data Objects), ODBC (Open DataBase Connectivity), ADO (Active Data Objects) kabi texnologiyalari mavjud. Nega texnologiya juda ko'p? Dunyo bir joyda turmaydi, Yer doimo aylanib bormoqda, yangi texnologiyalar yaratilmoqda, ularga kirish texnologiyalari ham rivojlanishi kerak.
Ayni paytda, ADO.NET .NETda ma'lumotlarga kirishning asosiy vositasi bo'lib, hozircha bizda ko'p tanlov yo'q. Yuqorida sanab o'tilgan ma'lumotlarga kirishning qolgan texnologiyalari .NET uchun ishlab chiqilmagan. ADO.NET ning avvalgi ADO ga nisbatan ikkita asosiy ustunligini ta'kidlab o'tish zarur:
uzoq vaqt davomida mashhurlikka erishgan XML-ni to'liq qo'llab-quvvatlash;
serverdagi ma'lumotlarni yangilash mantig'i ustidan to'liq nazoratga egasiz.
ADO.NET-ni tashkil etuvchi sinflarni taxminan ikki toifaga bo'lish mumkin: ulanishni talab qiladiganlar (ba'zan siz ulangan yoki connected ifodani topishingiz mumkin) va ulanishni talab qilmaydiganlar (yoki, boshqacha qilib aytganda, disconnected, chunki Inglizcha bu atama uzilgan deyiladi)
Ulanishni talab qiladigan sinflarga quyidagilar kiradi:
Connection, Transaction, DataAdapter, Command, Parameter, DataReader.
Ulanishni talab qilmaydigan ikkinchi toifaga quyidagilar kiradi:
DataSet, DataTable, DataRow, DataColumn, Constraint, DataView.
Ma'lumotlar provayderlari ma'lumotlar bazalari bilan bog'lanish va bevosita ishlash uchun javobgardir. .NETda ikkita ma'lumot provayderi mavjud: SQL Client .NET Data Provider va OLE DB .NET Data Provider. Birinchisi faqat Microsoft SQL Server 7 va undan yuqori versiyalari ma'lumotlar bazalari bilan ishlash uchun mo'ljallangan.
Microsoft “Microsoft SQL Server”` kabi har bir alohida ma'lumotlar bazasi uchun provayderlarni yaratmagan. Ma'lumotlar bazasi ishlab chiquvchilari optimallashtirilgan ma'lumotlarga kirish uchun o'z kutubxonalarini yozishlari mumkin, ammo bu oson ish emas. Buning o'rniga Microsoft OLE DB ma'lumotlar provayderiga ega bo'lgan har qanday ma'lumotlar bazasiga ulanish imkonini beruvchi umumiy OLE DB .NET ma'lumotlar provayderini joriy qildi. Hozirgi vaqtda ko'pgina ma'lumotlar bazalari uchun bunday provayderlar mavjud, shuning uchun ikkinchi provayder yordamida biz deyarli har qanday ma'lumotlar bazasiga ulanishimiz mumkin.
Microsoft SQL Serverda OLE DB drayveri mavjud bo'lganligi sababli, siz ushbu ikkita provayderdan foydalanib, ushbu ma'lumotlar bazasiga ulanishingiz mumkin. Albatta, SQL Client .NET Data Provider yaxshi ishlaydi, lekin OLE DB .NET Data Provider sizga har qanday ma'lumotlar bazasi bilan ishlaydigan umumiy kod yaratish imkonini beradi. Sinflarni alohida saqlash uchun ular turli nom maydonlarida joylashgan. SQL Client .NET Data Provider bilan ishlash sinflari System.Data.SqlClient nom maydonida, OLE DB .NET Data Provider sinflari esa System.Data.OleDb da joylashgan.
Rivojlanish qulayligi uchun ikkala provayderning sinflari o'xshash tarzda amalga oshiriladi va bir xil asosiy sinfdan meros bo'lib qoladi. Bu shuni anglatadiki, ma'lumotlar bilan ishlash usullari bir xil bo'ladi. Kodni bir provayderdan boshqasiga o'tkazish uchun faqat sinf nomini o'zgartirish kifoya. Masalan, SQL Client provayderi ma'lumotlar bazasiga ulanish uchun SQLConnection sinfidan, OLE DB provayderi esa OleDbConnection sinfidan foydalanadi. Ikkalasi ham bir xil funksionallikni amalga oshiradigan va provayderdan mustaqil usullarni e'lon qiladigan DBConnection sinfining avlodlari. SQLConnection sinf nomini OleDbConnection bilan almashtirish orqali siz bir provayderdan boshqasiga osongina o'tishingiz mumkin.
Biz ikkala interfeysni ko'rib chiqish vaqtni behuda sarflaydi. Bundan tashqari, ma'lumotlar bazalari dasturlash uchun maxsus ajratilmagan bo’lsada, biz ularni yetarlicha batafsil o'rganamiz. Iloji boricha ko'proq materialni qamrab olish uchun biz faqat umumiy OLE DB provayderining sinflarini ko'rib chiqamiz.
Agar provayderlardan qaysi birini tanlashni bilmasangiz, loyihalaringizda qaysi ma'lumotlar bazasi ishlatilishini hal qiling. Agar u Microsoft SQL Server bo'lsa, u holda, albatta, SQL Client .NET ma'lumotlar provayderi bo'lishi kerak. Agar boshqa ma'lumotlar bazasi mavjud bo'lsa yoki siz ma'lumotlar manbasini tanlashga qaror qilmagan bo'lsangiz, OLE DB .NET ma'lumotlar provayderini tanlash yaxshidir. Siz dastur talablarini oldindan bilishingiz va qaysi ma'lumot manbasidan foydalanishni hal qilishingiz kerak.
Do'stlaringiz bilan baham: |