مفاهيم اوليه ارتباط ADO.NET و XML

در اين مقاله به بررسی پتانسيل های ADO.NET که در ارتباط با XML و سرويس های وب XML می باشند ، پرداخته می گردد .

مقدمه

XML در دات نت يکی از مهمترين عناصر محسوب و دارای نقشی کليدی است ( قلب دات نت ) . ASP.NET و سرويس های وب از XML بعنوان روشی ذاتی برای دستيابی به داده ها استفاده می نمايند . سرويس های وب از پروتکل SOAP که خود مبتنی بر XML روی HTTP است ، استفاده می نمايند . پيکربندی و تنظيمات دات نت با فرمت XML ذخيره می گردند . ADO.NET از طريق چندين سطح متفاوت با XML مرتبط می گردد که اين پيوستگی و ارتباط دارای يک مزيت بزرگ خواهد : ارتباط بين داده های رابطه ای و سلسله مراتبی . بنابراين ، می توان XML را نظير چسبی در نطر گرفت که تمام اجزای دات نت را بيکديگر متصل می نمايد. برنامه ها و عناصری که با استفاده از دات نت ايجاد می گردند ، قادر به برقراری ارتباط بکمکXML می باشند . بمنظور کار با XML در دات نت، بيش از دويست کلاس ايجاد شده که در Namespace با نام System.Xml مستقر می باشند . XML با ADO.NET بطور واقعی مرتبط و از اين طريق پلی بين داده های رابطه ای و سلسله مراتبی ايجاد می گردد .

ADO.NET و XML

ADO.NET ، بصورت کامل با XML مرتبط است . مدل اشياء ADO.NET ، بگونه ای طراحی شده است که XML را بعنوان هسته اساسی خود ، نه بعنوان يک چيز اضافه نظير ADO 2.x ، پذيرفته است . تکنولوژی ADO.NET ، اين امکان را فراهم می نمايد که داده های رابطه ای سنتی را بسادگی به فرمت XML تبديل کرد.در اين راستا ، همچنين امکان تبديل داده ها از XML ، به مجموعه ای از جداول و رابطه ها نيز وجود دارد. XML ، يکی از روش های قابل حمل و قدرتمند برای ارائه داده در محيط ها ی ( پلات فرم ) مستقل و باز است. يکی از خصايص مهم داده های XML ، ماهيت مبتنی بر متن آنان است . بدين ترتيب داده های XML ، بسادگی بين برنامه ها و سرويس ها ارسال خواهند شد.( در ADO Recordset داده ها بصورت باينری ارسال می گردند) . بمنظور پردازش داده های مبتنی بر XML ، می بايست برنامه مورد نظرنوشته گردد . داده های XML ، ممکن است از طريق يک منبع خارجی ( يک بنگاه تجاری خاص ) ، يک سرويس وب XML ، پست الکترونيکی (Email) ، سرويس دهنده Microsoft Biztalk و يا منابع ديگر ، توزيع شوند.
مدل اشياء ADO.NET ، امکانات حمايتی متعددی را در رابطه با XML ارائه می نمايد. قوانين و توصيه های زير در زمان استفاده از XML بهمراه ADO.NET ، پيشنهاد می گردد :
• امکان خواندن داده ازيک DataSet با فرمت XML ، وجود خواهد داشت. روش فوق، زمانی مفيد خواهد بود که بخواهيم داده هائی را بين برنامه ها و يا سرويس ها در يک محيط توزيع شده ارسال نمائيم .
• امکان پرنمودن (Fill) يک DataSet با داده ها ی XML وجود خواهد داشت. روش فوق، زمانی مفيد خواهد بود که داده های XML را از طريق برنامه و يا سرويس ديگر دريافت و بخواهيم يک بانک اطلاعاتی را با استفاده از آنان ، بهنگام نمائيم .
• می توان يک XML Scehma را بمنظور ارائه داده ها در يک DataSet ايجاد نمود. از XML Schema ، بمنظور انجام عملياتی نظير سريال سازی داده های XML به يک Stream و يا يک فايل استفاده می گردد.
• می توان داده های XML را از طريق يک فايل و يا يک Stream ، درون يک درخت DOM)Document Object Model) لود و در ادامه ،امکان انجام عمليات بر روی داده ها بصورت XML و يا يک DataSet ، وجود خواهد داشت .بدين منظور لازم است از يک XML Schema ، برای تشريح ساختار داده ها جهت DataSet استفاده کرد .
• امکان ايجاد Typed Dataset وجود خواهد داشت . Typed DataSet ، يک زير کلاس از DataSet بوده که بهمراه آن خصلت ها و متدهائی بمنظور بکارگيری ساختار DataSet اضافه شده است .

مثال

در اين مثال نحوه استفاده از XML در مدل غير متصل ADO.NET تشريح می گردد . در مثال فوق ، از XML بمنظور ارسال داده بين بخش های متفاوت سيستم استفاده می شود :
• مرحله يک : برنامه سرويس گيرنده ، يک سرويس وب XML را بمنظور درخواست داده از بانک اطلاعاتی فرا می خواند .
• مرحله دو : سرويس وب XML ، يک Query به يک منبع داده را انجام تا داده های مورد نظر را بدست آورد .
• مرحله سه : سرويس وب XML ، نتايج را در يک DataSet لود می نمايد.
• مرحله چهار : سرويس وب XML ، داده ها را به فرمت XML ترجمه و داده های XML را برای برنامه سرويس گيرنده برمی گرداند .
• مرحله پنج : برنامه سرويس گيرنده ، پردازش های لازم در رابطه با داده های XML را انجام می دهد. مثلا" سرويس گيرنده می تواند داده XML را در يک DataSet لود و آنها را به کنترل های رابط کاربر نظير يک DataGrid نسبت دهد. پس از آمادگی برنامه سرويس گيرنده ، يک سرويس وب XML ، بمنظور بهنگام سازی منبع داده با داده های تغيير يافته فعال و فرا خوانده می گردد.
• مرحله شش : سرويس وب XML ، داده های XML جديد را درون يک DataSet لود و از داده های جديد ، بمنظور بهنگام سازی منبع داده استفاده می نمايد.