PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : دستيابی داده در asp.net 2.0



TAHA
10-28-2009, 10:34 PM
ستيابی داده در asp.net 2.0
دستيابی داده در ASP.NET 2.0 ( بخش اول )

از پرشین بلاگ

دستيابی به داده از جمله عمليات مهم در زمان پياده سازی هر نوع برنامه كامپيوتری است و برنامه های وب نيز از اين قاعده مستثنی نمی باشند . امروزه صفحات وبی كه در ارتباط با داده بوده و حاوی اطلاعاتی می باشند كه از بانك های اطلاعاتی بازيابی و نمايش داده می شود به يكی از اركان اصلی هر نوع برنامه تجاری تبديل شده است . پياده كنندگان برنامه های كامپيوتری خصوصا" برنامه های وب همواره برای پياده سازی برنامه هائی كه در ارتباط با داده می باشند با چالش های خاص خود مواجه بوده و آرزو می نمايند كه بتوانند با صرف كمترين زمان و نوشتن حداقل كد لازم به اهداف خود نائل گردند . با ارائه ASP.NET 2.0 ، زمينه تحقق خواسته فوق برای ‌پياده كنندگان برنامه های وب فراهم می گردد . چراكه در اين نسخه از ASP.NET علاوه بر ارائه بيش از پنجاه كنترل جديد ،‌ امكانات متعددی به منظور بهبود و تسهيل عمليات در ارتباط با داده ارائه شده است .
پياده كنندگان برنامه های وب كه از ASP كلاسيك و يا ASP.NET 1.1 برای طراحی و پياده سازی برنامه های خود استفاده می نمايند ، می بايست پس از نوشتن كد لازم به منظور دستيابی و بازيابی داده از منابع ذخيره سازی ، يك قالب و يا فرمت مناسب جهت نمايش اطلاعات در مرورگر را نيز ايجاد نمايند . با اين كه ويژوال استوديو دارای برنامه های كمكی خاصی ( ويزارد ) در اين رابطه می باشد ، ولی استفاده از ويژگی های پيشرفته ای نظير Paging و مرتب سازی داده ها ،‌ همچنان مستلزم همگرائی بين كدهای نوشته شده در لايه back-end و اطلاعات مورد نظر جهت نمايش در لايه front-end است . در اغلب موارد نگهداری و يكسان سازی كدهای فوق نيز مشكل می باشد خصوصا" در مواردی كه بانك اطلاعاتی تغيير می يابد و يا می بايست اطلاعات اضافه ای را بر روی يك صفحه خاص نمايش دهيم . علاوه بر موارد فوق ، استفاده از فايل های XML به عنوان منابع ذخيره سازی داده نيز ‌مستلزم نوشتن خطوط زيادی است تا بتوان يك همگرائی خاص بين منبع داده و منطق دستيابی داده را ايجاد نمود .
در ASP.NET 2.0 كد مورد نياز به منظور دستيابی و نمايش داده كاهش و از اين طريق كارآئی و بهره وری برنامه های وب به طرز محسوسی افزايش می يابد . در اين رابطه ، كنترل های جديدی ارائه شده است كه قدرت كنترل و انعطاف پياده كنندگان به منظور انجام عمليات در ارتباط با داده را افزايش می دهد. كنترل های داده جديد را می توان به همراه مجموعه وسيعی از منابع داده استفاده نمود ( از بانك های اطلاعاتی سنتی تا منابع داده جديد XML ) . بدين ترتيب تمامی منابع داده يك رفتار همگن را خواهند داشت و به دنبال آن حجم و پيچيدگی برنامه های وب مبتنی بر داده ،‌ كاهش می يابد.
دستيابی داده در برنامه های وب
درفريمورك دات نت ، دستيابی داده با استفاده از ADO.NET انجام می شود . ADO.NET در حقيقت يك رابط و يا اينترفيس برنامه نويسی است كه مجموعه امكانات لازم به منظور كار با بانك های اطلاعاتی را در اختيار پياده كنندگان برنامه های وب قرار می دهد . اينترفيس فوق با ايجاد يك لايه اضافه ، جزئيات و پيچيدگی های موجود به منظور دستيابی به داده را از ديد پياده كنندگان مخفی نگه می دارد .
برنامه های وب نوشته شده با استفاده از ASP.NET 2.0 از پتانسيل های ارائه شده توسط ADO.NET نظير : ارتباط اتوماتيك با انواع متفاوتی از منابع داده ، ايجاد كنترل های كاربر در ارتباط با داده و ساير موارد ديگر استفاده می نمايند . بدين ترتيب حجم كد مورد نياز برای نوشتن برنامه های وب مبتنی بر داده كاهش يافته و نگهداری و پشتيبانی از اين نوع برنامه ها شرايط مطلوب تری را پيدا خواهد كرد .
معماری دستيابی داده
دستيابی داده در برنامه های وب دات نت براساس يك ساختار و يا معماری دو لايه ای انجام می شود (دو لايه جداگانه ) . اولين لايه ،‌ شامل عناصر ضروری فريمورك به منظور دستيابی به داده است . دومين لايه ، شامل APIs و كنترل هائی است كه قابليت های دستيابی به داده را در اختيار برنامه نويسان قرار می دهد .
دستيابی به داده مستلزم بكارگيری چهار عنصر اساسی زير است :
• برنامه وب ( ASP.NET )
• لايه داده ( ADO.NET )
• ارائه دهنده داده ( Data Provider )
• منبع داده ( Data Source)
ارتباط بين عناصر فوق، زيرساخت و يا فونداسيون لازم برای تمامی برنامه های وب مبتنی بر داده را ارائه می نمايد .
شكل زير عناصر و معماری دستيابی به داده را نشان می دهد .
شكل 1 : معماری دستيابی داده
منبع : MSDN
در ادامه جايگاه هر يك از عناصر فوق را از پائين به بالا بررسی می نمائيم .
منابع ذخيره سازی داده
منابع ذخيره سازی داده ، نقطه نهائی در معماری دستيابی داده بوده كه بدون وجود آنان اصل مسئله دستيابی داده زير سوال می رود . با استفاده از ADO.NET 2.0 و كنترل های جديد ارائه شده در ASP.NET 2.0 ، يك برنامه وب قادر به دستيابی داده از منابع داده متنوعی نظير : بانك های اطلاعاتی رابطه ای ، فايل های XML ، سرويس های وب ، فايل های متنی و يا داده های موجود در فايل های Excel می باشد .
بخاطر داشته باشيد كه منابع ذخيره سازی داده با اين كه دارای جايگاه خاص خود می باشند ولی از آن مهمتر ، مكانيزم هائی می باشند كه با استفاده از آنان به منابع داده متصل و عمليات مرتبط با داده را انجام خواهيم داد .
Data providers
ADO.NET ،‌ به منظور ارتباط با منابع داده متفاوت از مجموعه ای كلاس و دستور استفاده می نمايد كه آنان را مديون Provider model است . در واقع Provider ،‌ مجموعه ای از اينترفيس ها و كلاس های لازم به منظور ذخيره و بازيابی داده در ارتباط با يك منبع داده خاص را ارائه می نمايد. بديهی است مهمترين دستاورد رويكرد فوق ، انعطاف لازم به منظور نوشتن كد مورد نياز برای دستيابی به داده ( استفاده از ADO.NET ) از چندين نوع منبع داده می باشد .
در ASP.NET 2.0 ، همچنان از Provider model به منظور انجام عمليات مختلف در ارتباط با دستيابی داده استفاده می گردد .
جدول زير چهار شی اساسی تشكيل دهنده ساختار عملياتی يك provider را نشان می دهد :
عملكرد شی
ايجاد يك اتصال به منبع و يا منابع مشخص شده Connection
اجرای يك دستور در ارتباط با يك منبع داده Command
خواندن داده ها از يك منبع داده بر اساس يك
ساختار با ويژگی فقط خواندنی و صرفا" به سمت جلو DataReader
نشر يك DataSet و بهنگام سازی آن با منبع داده DataAdapter
ADO.NET API
ADO.NET API ، شامل امكاناتی است كه با استفاده و بكارگيری آنان تمامی منابع داده يكسان بنظر می آيند .صرفنظر از منبع داده ، پردازش لازم به منظور بازيابی و استخراج اطلاعات ،‌ مستلزم استفاده از كلاس های كليدی و عمليات مشابهی است . دربخش دوم با اين لايه و امكانات آن بشتر آشنا خواهيم شد.

لايه برنامه وب
ASP.NET ( بالاترين لايه ) با ارائه مجموعه ای از كنترل ها و امكانات باعث كاهش حجم كد مورد نياز به منظور دستيابی به داده می گردد. مثلا" پياده كنندگان برنامه های وب می توانند از برنامه كمكی ( ويزارد) منبع داده برای ايجاد و پيكربندی اتوماتيك يك منبع داده استفاده نمايند و در ادامه با اجرای query دلخواه خود ،نتايج مورد نظر را بازيابی نمايند . علاوه بر اين ، می توان كنترل های متفاوتی را به يك منبع داده نسبت داد . بدين ترتيب شكل ظاهری و محتوی كنترل می تواند به صورت اتوماتيك مقداردهی گردد ( بر اساس اطلاعات بازيابی شده از منبع داده ) .
كنترل های فوق در اشكال و اندازه های متفاوتی ارائه شده اند ( نظير Grids ,Trees,Menus و lists ) . برای نسبت دهی يك كنترل به يك منبع داده از خصلت DataSourceID استفاده می شود كه می توان آن را در زمان طراحی و يا اجراء تعريف نمود .
كنترل های منبع داده از طريق امكانات ارائه شده توسط يك provider به يك منبع داده نسبت داده می شوند. مهمترين مزيت يك كنترل منبع داده،‌ امكان استفاده از آنان در صفحات مورد نياز است. علاوه بر اين ، برای انجام عملياتی نظير paging ،‌ مرتب سازی و بهنگام سازی ضرورتی به نوشتن حتی يك خط كد نخواهد بود .
در بخش دوم با تمركز بر روی لايه دوم ( ADO.NET API ) با امكانات موجود به منظور كار با ADO.NET ، كنترل های ASP.NET و providers بشتر آشنا خواهيم شد .