![]() |
|
|
|
#1 |
|
كاربر عادي
![]() تاریخ عضویت: Thursday 13 October 2005
نوشته ها: 219
با تشکر: 9 تشکر شده 160 بار 61 پست ![]() |
تفاوت هاي بين ADO و ADO.Net
ADO بر اساس معماري Microsoft COM با واسط هاي OLE DB بنا نهاده شده است، در حالي كه ADO.NET بر اساس معماري Microsoft.NET و مشخصأ واسطهاي ADO.NET بنا نهاده شده است. از آنجائيكه معماري .NET كاملأ با معماري COM متفاوت مي باشد، واسطهاي ADO.NET كاملأ متفاوت از واسطهاي ADO و OLE DB مي باشند. اين در ضمن بدين معني است كه Data Provider هاي ADO.NET كاملأ با Data Provider هاي ADO متفاوت مي باشند. قبل از اينكه ما وارد جزئيات بين ADO و ADO.NET شويم، شايد نگاه كردن به تاريخچه اتصال داده مطرح شده در Platform مايكروسافت خالي از منفعت نباشد. تاريخچه مختصري بروي معماري هاي اتصال داده اي ODBC- اتصال پايگاه داده اي باز (Open Database Connectivity) اولين تكنولوژي دستيابي به داده مي باشد كه يك واسط مشترك استاندارد از طريق SQL براي دستيابي به پايگاه هاي داده رابطه اي همگن تهيه كرد. بوسيله ODBC، يك كاربرد مي تواند به پايگاه هاي داده مختلف از طريق يك مجموعه ساده اي از كدهاي مشترك دستيابي پيدا كند. توسعه دهندگان جهت متصل كردن كاربرد به داده انتخابي كاربر تنها نيازمند اضافه كردن درايورهاي ODBC مي باشند. امروزه ODBC در ميان بيش از دوازده Platform و چندين پايگاه داده فراهم مي باشد. معماري عمومي آن در شكل 1 بيان شده است: ![]() DAO- ODBC بيشتر براي برنامه نويسان C و C++ كه مجهز به تكنيك هاي فراخواني سطح پايين مي باشند تدارك ديده شده است. DAO و يا به عبارتي Data Access Object كه بوسيله مايكرسافت تهيه شده است راهي بود كه براي توسعه دهندگان Visual Basic تدارك ديده شد كه بتوانند به سادگي به داده ها دستيابي پيدا كنند. در واقع به برنامه ها اين توانائي داده شد كه بتوانند بدون استفاده از متغيرهاي نوع اشاره گر به پايگاه داده Access متصل گردند (Access نيز به عنوان Jet Engine شناخته شده است). براي استفاده از پايگاه داده هاي ديگر، مي توان DAO، ODBC و Jet Engine را همانند شكل 2 بكار برد. ![]() RDO – براي دستيابي به يك دامنه گسترده اي از پايگاه داده هاي رابطه اي با استفاده از DAO، Jet Engine مي بايست فراخواني هاي بين DAO و ODBC را ترجمه مي كرد، كه اين خود معرف يك كاهش كارائي بود. براي غلبه بر اين محدوديت، مايكروسافت Remote Data Object (RDO) را معرفي كرد. RDO بدون طي كردن مسيري از ميان Jet Engine (همانند شكل 3) به ODBC دسترسي پيدا مي كرد. ![]() OLE DB – در طي ساليان، ODBC در ارتباط برقرار كردن با پايگاه هاي داده خوب عمل كرد. اما هرچه گذشت داده ها در فرمت هاي غير رابطه اي بيشتر ذخيره گرديدند، همانند Microsoft Exchange Server، بدين سان يك معماري جديدي نياز بود تا يك ارتباط بدون نقصي را در ميان منابع داده اي متفاوت و كاربردهاي مختلف فراهم سازد. OLE DB بلاك سازنده و زيربنائي مدل شئي كامپوننت براي ذخيره سازي و بازيابي ركوردها مي باشد و درواقع دستيابي يكساني را به پايگاه هاي داده رابطه اي، غير رابطه اي و منابع داده اي غير ساخت يافته در ميان تاسيسات مختلف فراهم آورده است. OLE DB پيرو موفقيت ODBC معرفي گرديد. معماري اين تكنولوژي در شكل چهار بيان شده است: ![]() ADO- OLE DB چندين تكنيك فراخواني سطح پايين را بكار برده است كه همين امر برنامه نويسي را وحشتناك ساخته است، بخصوص براي برنامه نويسان نوع Visual Basic. براي غلبه بر اين مشكل، مايكروسافت ActiveX Data Object يا به عبارتي ADO را معرفي كرد. ADO بروي سر OLE DB فعاليت مي كند و واسط سطح بالاتر و ساده تري را همانند شكل 5 فراهم مي آورد: ![]() تفاوت هاي ADO.NET با ADO در چيست؟ از زماني كه معماري .NET شروع به طراحي شد، مايكروسافت تصميم گرفت كه مدل دستيابي به داده خودش را مجددأ طراحي كند. پيرو اين تصميم بجاي اينكه بيشتر بروي توسعه ADO فعاليت كند، مايكروسافت تصميم گرفت كه يك معماري دستيابي داده جديدي را بر اساس چهارچوب جدبد .NET طراحي كند – اما مايكروسافت همچنان لغت خلاصه ADO را مورد استفاده قرار داد. مايكروسافت ADO.NET را بر اساس تجربه موفق مدل شئي ADO طراحي كرد، اما با يك معماري كاملأ متفاوت، مبتني بر XML و مدل محاسبه غير پيوسته . معماري جديد راه هاي متعددي را براي اتصال يك كاربردي كه مي خواهد به يك منبع داده متصل گردد فراهم آورده است، همانند شكل 6: ![]() براي فهميدن تكامل به سمت ADO.NET، شناخت بعضي از نكات بر مبناي ADO كه در طراحي اين تكنولوژي پيشگام بوده است بسيار مهم است. ADO از Recordset ها و كرسرها براي دستيابي و تغيير دادن داده ها استفاده مي كند. به علت ماهيت طراحي، Recordset مي تواند كارائي را در سمت سرور بوسيله مصرف قابل توجهي از منابع كاهش دهد. علاوه بر اين، عمل COM Marshaling (كه يك پروسه تبديل داده پر هزينه اي مي باشد) براي انتقال يك Recordset مورد نياز مي بود. مايكروسافت بوسيله اضافه كردن پشتيباني هائي براي XML در ADO 2.1سعي كرد كه طراحي خود را بهينه نمايد. به هر جهت، پشتيباني به عمل آمده از XML محكم و قابل اعتماد نبود و استفاده از XML محدود به چندين محدوديت متعدد بود. ADO.NET سه نيازمندي مهمي را كه ADO مشخص نمي ساخت مورد اشاره قرار داد:
بعلت تفاوت هاي اساسي موجود در COM و .NET (به همين ترتيب تفاوت هاي اساسي در معماريADO و ADO.NET وجود دارد)، يك تكنولوژي كاملأ جديد براي دستيابي به داده ها از طريق Platform، .NET مورد نياز مي باشد. در حقيقت، نيازمندي وجود تكنولوژي Data Provider ADO حذف شده است. در حالي كه يك تهيه كننده داده ADO بر مبناي COM بوسيله C++ و بوسيله كتابخانه هاي COM توسعه داده خواهد شد، تهيه كننده داده ADO.NET تنها نيازمند نوشته شدن بوسيله كتابخانه هاي كلاس پايه چهارچوب .NET مي باشد و طوري طراحي شده است كه كاملأ درون پارامترهاي زبان مشترك زمان اجرا مي تواند فعاليت كند. علاوه بر اين، محيط ADO.NET به صورت پيش فرض طوري طراحي شده است كه به جاي كار با انواع محلي سيستمي ADO با فرمت XML كار مي كند. خلاصه ADO.NET، XML را جهت فراهم آوردن دستيابي به داده بهينه شده در چهارچوب .NET تقويت كرده است . از آنجائيكه معماري پايه از COM به .NET به صورت زيربنائي متفاوت مي باشد، تهيه كننده هاي داده ADO.NET نيز محصولاتي كاملأ متفاوت از تهيه كننده هاي داده ADO قديمي مي باشند. سازمان هائي كه تصميم بر مهاجرت به .NET دارند و مراقب جامع بودن توابع و كارائي آن هستند نيامند سرمايه گذاري بروي تهيه كننده هاي داده جديد ADO.NET هستند. مدرس دانشگاه مهندس حامي اميني amini@kawacomputer.com |
|
|
|
| ....... | |
![]() |
| ابزارهای موضوع | |
| نحوه نمایش | |
|
|
موضوعات مشابه
|
||||
| موضوع | نویسنده موضوع | انجمن | پاسخ ها | آخرين نوشته |
| Top 10 New Features of ADO.NET 2.0 | M.taghavi | ADO.Net 2 | 15 | Saturday 24 April 2010 05:37 PM |
| فاوت هاي وبي دات و سي شارپ : از افسانه تا واقعيت | Alavi58 | برنامه نویسی در #C | 0 | Sunday 19 February 2006 07:20 PM |
| مقایسه ADO , ADO.Net | VBkar | .Net Framework 1* | 1 | Sunday 29 January 2006 07:21 PM |
| تفاوت هاي بين پورتال و وب سايت | alireza ershad | مقالات و آموزش | 0 | Monday 31 October 2005 06:20 PM |