مفاهيم اوليه ADO.NET
اين مطلب از طريق سايت شرکت سخاروش در اختيار شما گذاشته شده است .

ADO

مفاهيم اوليه ADO.NET

برای استفاده مفيدتر از اين مقاله، توصيه می گردد، مقاله  معماری برنامه های مبتنی بر داده    را در ابتدا مطالعه نمائيد . ADO.NET ،  نسل جديدی از ADO  شرکت ماکروسافت است . نسخه ADO ،  با استفاده از مجموعه ای  اشياء ActiveX Data Object طراحی و پياده سازی شده بود. ADO.NET  گرچه در سطح ارائه پتانسيل های لازم در برخی موارد دارای شباهت هائی با ADO است ولی از نظر مدل برنامه نويسی دارای ساختاری کاملا" متفاوت( نسبت به ADO ) است.

تعريف ADO.NET

ADO.NET، مجموعه ای از کلاس ها بمنظور کار با داده ها است.

 بموازات رشد اينترنت ، طراحی و پياده سازی برنامه های مبتنی بر وب به امری متداول و نيازی همگانی مطرح شده است . در اين راستا برنامه های متعددی ، از XML بمنظور ارسال اطلاعات خود در شبکه استفاده کرده و هر روز به تعداد اين برنامه ها نيز اضافه می گردد. ADO.NET ، يک مدل برنامه نويسی  مناسب بمنظور يکپارچگی بين ويژگی های XML و ADO.NET  در فريمورک دات نت را ارائه می نمايد.

مزايای ADO.NET 
تکنولوژی فوق نسبت به ADO دارای مزايای زير است :

Namespace های مرتبط با داده
فريمورک دات نت ، پتانسيل ها ی( عمليات ) خود را به چندين Namespace تقسيم و ADO.NET نيز از اين قاعده مستثنی نخواهد بود . ADO.NET عمدتا"  در Namespace  با نام System.Data  ، پياده سازی شده است.Namespace فوق،بصورت فيزيکی در اسمبلی System.Data.dll قرار دارد. برخی از بخش های ADO.NET در Namespace با نام System.Xml  قرار دارند ( مثلا" کلاس XmlDataDocument ) مشخصات هر يک از Namespace های مرتبط با داده ها بشرح زير می باشد :

تغييرات  ADO و ADO.NET
تغييرات متعددی در ADO.NET نسبت به ADO اعمال شده است . اغلب تغييرات فوق ، با توجه به مطالعات انجام شده در رابطه با موارد مثبت و منفی  ADO صورت گرفته است . دستاورد اين تغييرات، قدرت و انعطاف مطلوب برای ADO.NET  است .

با توجه به اينکه تمامی ارائه دهندگان داده دات نت،  عمليات تراکنشی را ارائه نمی نمايند ، ADO.NET ، پتانسيل های خود را به کلاس های مجزائی  تقسيم و در اختيار قرار می دهد، بدين ترتيب  شی اتصال ADO.NET بمراتب کم حجم تر نسبت به شی اتصال ADO خواهد بود.
Recordset در ADO ، يک شی بسيار بزرگ است . شی فوق، امکان حمايت از چندين نوع Cursor را فراهم می نمايد ( از نوع سريع  تا نوع سمت سرويس گيرنده غير متصل) . سفارشی نمودن تمام امکانات شی فوق، مشکل و در برخی موارد غيرممکن است. ADO.NET ، پتانسيل های  Recordset مربوط به ADO را به چندين کلاس تفسيم کرده است .مثلا" DataReader معادل يک Cursor سريع ، DataSet يک مدل غيرمتصل Cache شده با امکان رديابی ، ثبت و کنترل نسبت دهی  و DataAdapter قابليت سفارشی نمودن  نحوه ذخيره سازی  و بهنگام سازی  داده ها و اعمال تغييرات در يک DataSet را دارا است . 

مدل اشياء ADO.NET

مدل اشياء ADO.NET شامل دو بخش اصلی است :

مدل اشياء ADO.NET ،  شامل کلاس های زير است :

استفاده از کلاس های ADO.NET در مدل متصل
NET Data Provider . ،  کلاس های مورد نياز ADO.NET را بمنظور استفاده در سناريوی متصل (Connected) ارائه می نمايد. NET data Provider.  ها ،  بگونه ای طراحی شده که کم حجم و حداقل لايه بين کد مربوطه  و منبع داده ايجاد و بدين ترتيب کارائی سيستم افزايش خواهد يافت . فريمورک دات نت دارای دو Provider است :

کلاس های هر يک از Data Provider ها،  از مدل رايج اشياء ADO.NET تبعيت می نمايند . در SQL Server .NET Data Provider ،  اسامی کلاس ها با پيشوند sql شروع می شود . مثلا" کلاس مربوطه به Connection دارای نام sqlConnection است .  در OLE DB.NET Provider ، اسامی کلاس ها با پيشوند OleDb شروع می گردد . مثلا" کلاس Connection دارای نام OleDbConnection است .
در آينده NET Date Provider . ،  بيشتر و با پيشوندهای ديگری ايجاد خواهند شد .
 در فهرست زير پيشوندهای متفاوت بصورت  Xxx  نشان داده شده اند :

مثال : کلاس XxxDataReader ، امکان دستيابی فقط خواندنی و صرفا" بسمت جلو در ارتباط با داده های موجود در يک منبع داده را فراهم می نمايد. مثلا" برای استفاده از sqlDataReader برای خواندن داده از يک بانک اطلاعاتی SQL server ، می بايست مراحل زير را انجام داد.

استفاده از ADO.NET در مدل غيرمتصل
کلاس های ADO.NET که در مدل غير متصل استفاده می گردد توسط NET Data Providers . ، ارائه  و در Namespace با نام System.Data موجود می باشند. فهرست زير کلاس هائی استفاده شده در مدل غير متصل ، را نشان می دهد :

مثال : مراحل زير نحوه کار در يک محيط غير متصل را نشان می دهد :


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
http://www.srco.
ir