دستيابی به داده ها در فرم های وب
در اغلب فرم های وب نياز به دستيابی داده ها و نمايش آنها و در برخی موارد ويرايش و بهنگام سازی آنها وجود خواهد داشت . آگاهی از تکنولوژي های دستيابی به داد ه ها در صفحات فرم های وب، باعث طراحی و پياده سازی نرم افزار های موثر و با کارائی بيشتر تحت وب خواهد شد. در اين مقاله به بررسی مفاهيم مربوط به دسيتابی داده ها در صفحات فرم های وب پرداخته و نحوه استفاده از کنترل های مربوطه جهت نسبت دهی داده ها در صفحات را بررسی خواهيم کرد.
فرم های وب ، اغلب ملزم به نمايش اطلاعاتی هستند که ماحصل بازيابی آنان از يک منبع داده ئی نظير يک بانک اطلاعاتی و يا يک سند XML خواهد بود. ساختار و معماری صفحات فرم های وب اين امکان را فراهم می نمايد که با اتکاء به برخی روش ها از منابع متفاوت داده ئی در صفحات استفاده و با نسبت دهی کنترل ها به داده ها و پردازش داده های مورد نظر، امکان انجام عمليات دلخواه و مرتبط با داده ها را بسرعت و با کيفيت بالا انجام داد. دستيابی به داده ها در فرم های وب با دستيابی به داده ها از طريق فرم های ويندوز و ساير برنامه های تحت ويندوز متفاوت بوده و همين امر يکی از وجوه تمايز اساسی بين برنامه های تحت وب با ساير برنامه ها است.
▪ استفاده از يک مدل Disconnect
▪ خواندن بيشتر داده ها نسبت به ويرايش آنها
▪ به حداقل رساندن استفاده از منابع موجود بر روی سرويس دهنده
▪ دستيابی به داده ها با استفاده از پردازش های راه دور( دستيابی به داده های توزيع شده )
در ادامه به تشريح هر يک از اصول فوق خواهيم پرداخت .
Disconnected Model . صفحات فرم های وب از نوع Disconnect می باشند. پس از درخواست يک فرم وب از طرف سرويس گيرنده و ارسال درخواست برای سرويس دهنده ، فرم ايجاد ،پردازش ،ارسال و در نهايت از حافظه سرويس دهنده حذف خواهد شد. نحوه دستيابی به داده ها در يک صفحه فرم وب نيز حکايتی اينچنين دارد. در اين راستا و در زمان پردازش فرم بر روی سرويس دهنده ، داده ها ی مورد نظر خوانده و يا ويرايش شده و در نهايت فرم برای متقاضی ( سرويس گيرنده ) ارسال خواهد شد. در چنين حالتی داده ها بر روی سرويس دهنده حذف خواهند شد ( از درون حافظه و يا بافر های استفاده شده برای پلسخگوئی به درخواست ) .
مدل فوق دارای چندين نکته مهم بوده که شناخت آنان برای موارديکه در صفحات فرم های وب با داده ها سروکار داريم ، بسيار مفيد خواهد بود.
▪ داده هائی که قصد استفاده از آنان را خواهيد داشت، بصورت خودکار و پس از رفت و آمدهای متعدد بين سرويس گيرنده و سرويس دهنده ،قابل دستيابی نخواهند بود. در صورتيکه بخواهيم به داد ه ها دستيابی داشته باشيم می بايست هر زمان که صفحه برای سرويس دهنده پست می گردد ، مجددا" داده ها از منابع مربوطه خوانده شوند. در اين راستا می توان با نوشتن کدهای اضافه که در صفحه مستقر خواهند شد ،اقدام به ذخيره سازی داده ها نموده و در زمان پردازش فرم و از طريق کدهای نوشته شده مجددا" به آنها دستيابی پيدا کرد.
▪ در زمان پردازش می توان با منابع داده ئی يک ارتباط برقرار و پس از خواندن و يا نوشتن داده ها ،اقدام به بستن ارتباط ايجاد شده با منابع داده ئی نمود. تصور اينکه ارتباط با منبع داده ئی را فعال نگه داشته تا در آينده بتوان مسائل مربوط به مديريت داده ها و دستيابی به داده ها را بهبود بخشيد ، نادرست و انتظاری نامعقول است .
▪ در زمان رفت و آمد يک صفحه بين سرويس گيرنده و سرويس دهنده عمليات مربوط به دستيابی به داده ها انجام خواهد گرفت . مثلا" در اولين مرتبه که صفحه صدا زده می شود ،ممکن است داده ئی از منبع مورد نظر خوانده و کنترل های موجود بر روی صفحه را به آن نسبت داد،زمانيکه کاربر کليدی (Button) را فعال نمائد، می توان داده ئی را از يک کنترل گرفته و در منبع داده ئی ذخيره نمود.
خواندن و بهنگام سازی داده ها . در اغلب فرم های وب ، نوع دستيابی به داده ها بصورت فقط خواندنی است . در مواردی هم ممکن است کاربر داده ئی را برای ثبت ، درج و يا بهنگام سازی در منبع داده ئی ارسال نمايد. چون اغلب عمليات دستيابی به داده ها بصورت فقط خواندنی است ،معماری Data-Binding ( نسبت دهی داده ها ) در فرم های وب ، پاسخی به اين نياز بوده است . بدين ترتيب Data-Binding ، باعث نمايش داده ها در کنترل مربوطه خواهد شد. بهنگام سازی داده ها قطعا" Overhead در يک صفحه را افزايش خواهد داد. در چنين حالتی صفحه می بايست دارای چندين نسخه از رکوردها برای ويرايش و همچنين شامل منطق مربوط برای انجام عملياتی نظير : درج و حذف رکوردها باشد. بدليل افزايش لود بر روی صفحات ، بخشی از حافظه اصلی بر روی سرويس دهنده و ساير منابع مورد نظر بخدمت گرفته خواهند شد.
به حداقل رساندن ميزان استفاده از منابع موجود بر روی سرويس دهنده .صفحات فرم های وب ، قبل از ارسال برای مرورگر سرويس گيرنده می بايست بر روی سرويس دهنده پردازش گردنند. هر نوع عملياتی که منجر به دستيابی به داده ها در صفحه گردد ، باعث افزايش لود عملياتی سرويس دهنده از دو بعد زمان پردازش و استفاده از حافظه خواهد شد. در مواردی هم که نياز به ذخيره سازی داده ها باشد استفاده از منابع در زمانی که صفحات پردازش نشده اند نيز وجود خواهد داشت . دستيابی به داده ها در صفحات فرم های وب نيازمند يک بررسی دقيق و کارشناسی و نحوه استفاده از منابع است . در اين راستا دو اصل زير را می توان همواره مد نظر داشت :
▪ در هر صفحه صرفا" به بخشی از اطلاعات که لازم است، دستيابی و از اخذ اطلاعات غيرضروری و گاها" حجيم در يک صفحه وب ، اجتناب ورزيد.
▪ در صورت امکان از گزينه های state management ( متکی بر سرويس گيرنده ) استفاده گردد.
صفحات وب در لايه نمايش يک برنامه تحت وب عمل کرده و می توان از طريق آنان به داده ها دستيابی پيدا کرد در اين راستا ترجيح داده می شود که منطق دستيابی به داده ها را از بخش UI بکمک استفاده از عناصر ديگر نظير سرويس های وب Xml و ... تفکيک نمود.
صفحات فرم های وب، بعنوان يکی از اجزای دات نت ،داده های خود را با ساير عناصر پردازشی از طريق يک جريان ممتد Xml انجام می دهند. در اين زمينه نياز به اقدام مستقيم جهت کار با Xml نخواهد بود( ارتباط بين اجزاء). فريمورک صفحات وب ( DataSet ) تبديلات فوق را بصورت خودکار انجام خواهد داد. در صورت نياز و در موارد خاص می توان دستيابی به داده ها را در يک برنامه تحت وب، مستقيما" با فرمت Xml انجام داد.
▪ دستيابی به بانک های اطلاعاتی . برای خواندن و نوشتن داده ها از بانک های اطلاعای از ADO.NET استفاده می گردد. ADO.NET شامل امکانات لازم جهت مديريت داده ها ( ارتباطات و اشياء مورد نياز ) جهت ارتباط با سرويس دهنده SQL و يا يک بانک اطلاعاتی سازگار با OLE-DB است . ADO.NET همچنين امکاناتی را برای دستيابی به داده ها از طريق يک Dataset ( در اين حالت يک ارتباط دائم و پيوسته با بانک اطلاعاتی وجود نخواهد داشت ) که داده ها در بخشی از حافظه Cache شده اند ،را پيش بينی نموده است . امکان استفاده از اشياء ADO.NET بمنظور اجرای دستورات SQL و يا Stored procedure بصورت مستقيم نيز وجود خواهد داشت. ▪ XML Data . يکی ديگر از منابع داده ئی در صفحات فرم های وب ،استفاده از سندهای Xml است . بمنظور استفاده و کار با اين نوع سندها می توان از دو روش عمده زير استفاده نمود:
● در صورتيکه داده های Xml ساختيافته باشند ،می توان آن را به يک Dataset تبديل و با استفاده از توابع داده ئی ADO.NET عمليات مربوط به خواندن و يا بهنگام سازی داده ها را انجام داد.پس از انجام عمليات مورد نظر می توان مجددا" داده ها را به فرمت Xml تبديل تا قابل استفاده برای ساير پردازش هائی باشند که قصد استفاده از اين داده ها را دارند.
● در صورتيکه داده ای Xml ساختيافته نباشند ،می توان از توابع مربوط به Parse نمودن و پردازش در System.Xml ( يک NameSpace است ) جهت انجام عمليات دلخواه بر روی داد ه ها استفاده کرد. در صفحات فرم های وب ، می توان اين کار را از طريق استفاده از کنترل های سرويس دهنده وب Xml انجام داد.
▪ ساير منابع داده ئی . صفحات فرم های وب ، اين امکان را فراهم می نمايند که بصورت مجازی با ساير داده ها نيز ارتباط برقرار گردد. معماری Data Binding در صفحات فرم های وب اين امکان را فراهم می آورد که يک کنترل را به هر نوع ساختاری بتوان نسبت داد. مثلا" می توان هر نوع برداری را به يک کنترل نسبت داد. بمنظور انعطاف بيشتر می توان Data binding را در زمان اجراء انجام داد . هر کنترل ، يک رويداد Data Binding را حمايت خواهد کرد.با نوشتن Handler مربوطه برای اين رويداد می توان کنترل هائی را برای هر صفحه و هر نوع داده انجام داد.
منبع:http://article.mjsoft.ir
/خ
فرم های وب ، اغلب ملزم به نمايش اطلاعاتی هستند که ماحصل بازيابی آنان از يک منبع داده ئی نظير يک بانک اطلاعاتی و يا يک سند XML خواهد بود. ساختار و معماری صفحات فرم های وب اين امکان را فراهم می نمايد که با اتکاء به برخی روش ها از منابع متفاوت داده ئی در صفحات استفاده و با نسبت دهی کنترل ها به داده ها و پردازش داده های مورد نظر، امکان انجام عمليات دلخواه و مرتبط با داده ها را بسرعت و با کيفيت بالا انجام داد. دستيابی به داده ها در فرم های وب با دستيابی به داده ها از طريق فرم های ويندوز و ساير برنامه های تحت ويندوز متفاوت بوده و همين امر يکی از وجوه تمايز اساسی بين برنامه های تحت وب با ساير برنامه ها است.
اصول اوليه دستيابی به داده ها در صفحات فرم های وب
▪ استفاده از يک مدل Disconnect
▪ خواندن بيشتر داده ها نسبت به ويرايش آنها
▪ به حداقل رساندن استفاده از منابع موجود بر روی سرويس دهنده
▪ دستيابی به داده ها با استفاده از پردازش های راه دور( دستيابی به داده های توزيع شده )
در ادامه به تشريح هر يک از اصول فوق خواهيم پرداخت .
Disconnected Model . صفحات فرم های وب از نوع Disconnect می باشند. پس از درخواست يک فرم وب از طرف سرويس گيرنده و ارسال درخواست برای سرويس دهنده ، فرم ايجاد ،پردازش ،ارسال و در نهايت از حافظه سرويس دهنده حذف خواهد شد. نحوه دستيابی به داده ها در يک صفحه فرم وب نيز حکايتی اينچنين دارد. در اين راستا و در زمان پردازش فرم بر روی سرويس دهنده ، داده ها ی مورد نظر خوانده و يا ويرايش شده و در نهايت فرم برای متقاضی ( سرويس گيرنده ) ارسال خواهد شد. در چنين حالتی داده ها بر روی سرويس دهنده حذف خواهند شد ( از درون حافظه و يا بافر های استفاده شده برای پلسخگوئی به درخواست ) .
مدل فوق دارای چندين نکته مهم بوده که شناخت آنان برای موارديکه در صفحات فرم های وب با داده ها سروکار داريم ، بسيار مفيد خواهد بود.
▪ داده هائی که قصد استفاده از آنان را خواهيد داشت، بصورت خودکار و پس از رفت و آمدهای متعدد بين سرويس گيرنده و سرويس دهنده ،قابل دستيابی نخواهند بود. در صورتيکه بخواهيم به داد ه ها دستيابی داشته باشيم می بايست هر زمان که صفحه برای سرويس دهنده پست می گردد ، مجددا" داده ها از منابع مربوطه خوانده شوند. در اين راستا می توان با نوشتن کدهای اضافه که در صفحه مستقر خواهند شد ،اقدام به ذخيره سازی داده ها نموده و در زمان پردازش فرم و از طريق کدهای نوشته شده مجددا" به آنها دستيابی پيدا کرد.
▪ در زمان پردازش می توان با منابع داده ئی يک ارتباط برقرار و پس از خواندن و يا نوشتن داده ها ،اقدام به بستن ارتباط ايجاد شده با منابع داده ئی نمود. تصور اينکه ارتباط با منبع داده ئی را فعال نگه داشته تا در آينده بتوان مسائل مربوط به مديريت داده ها و دستيابی به داده ها را بهبود بخشيد ، نادرست و انتظاری نامعقول است .
▪ در زمان رفت و آمد يک صفحه بين سرويس گيرنده و سرويس دهنده عمليات مربوط به دستيابی به داده ها انجام خواهد گرفت . مثلا" در اولين مرتبه که صفحه صدا زده می شود ،ممکن است داده ئی از منبع مورد نظر خوانده و کنترل های موجود بر روی صفحه را به آن نسبت داد،زمانيکه کاربر کليدی (Button) را فعال نمائد، می توان داده ئی را از يک کنترل گرفته و در منبع داده ئی ذخيره نمود.
خواندن و بهنگام سازی داده ها . در اغلب فرم های وب ، نوع دستيابی به داده ها بصورت فقط خواندنی است . در مواردی هم ممکن است کاربر داده ئی را برای ثبت ، درج و يا بهنگام سازی در منبع داده ئی ارسال نمايد. چون اغلب عمليات دستيابی به داده ها بصورت فقط خواندنی است ،معماری Data-Binding ( نسبت دهی داده ها ) در فرم های وب ، پاسخی به اين نياز بوده است . بدين ترتيب Data-Binding ، باعث نمايش داده ها در کنترل مربوطه خواهد شد. بهنگام سازی داده ها قطعا" Overhead در يک صفحه را افزايش خواهد داد. در چنين حالتی صفحه می بايست دارای چندين نسخه از رکوردها برای ويرايش و همچنين شامل منطق مربوط برای انجام عملياتی نظير : درج و حذف رکوردها باشد. بدليل افزايش لود بر روی صفحات ، بخشی از حافظه اصلی بر روی سرويس دهنده و ساير منابع مورد نظر بخدمت گرفته خواهند شد.
به حداقل رساندن ميزان استفاده از منابع موجود بر روی سرويس دهنده .صفحات فرم های وب ، قبل از ارسال برای مرورگر سرويس گيرنده می بايست بر روی سرويس دهنده پردازش گردنند. هر نوع عملياتی که منجر به دستيابی به داده ها در صفحه گردد ، باعث افزايش لود عملياتی سرويس دهنده از دو بعد زمان پردازش و استفاده از حافظه خواهد شد. در مواردی هم که نياز به ذخيره سازی داده ها باشد استفاده از منابع در زمانی که صفحات پردازش نشده اند نيز وجود خواهد داشت . دستيابی به داده ها در صفحات فرم های وب نيازمند يک بررسی دقيق و کارشناسی و نحوه استفاده از منابع است . در اين راستا دو اصل زير را می توان همواره مد نظر داشت :
▪ در هر صفحه صرفا" به بخشی از اطلاعات که لازم است، دستيابی و از اخذ اطلاعات غيرضروری و گاها" حجيم در يک صفحه وب ، اجتناب ورزيد.
▪ در صورت امکان از گزينه های state management ( متکی بر سرويس گيرنده ) استفاده گردد.
صفحات وب در لايه نمايش يک برنامه تحت وب عمل کرده و می توان از طريق آنان به داده ها دستيابی پيدا کرد در اين راستا ترجيح داده می شود که منطق دستيابی به داده ها را از بخش UI بکمک استفاده از عناصر ديگر نظير سرويس های وب Xml و ... تفکيک نمود.
صفحات فرم های وب، بعنوان يکی از اجزای دات نت ،داده های خود را با ساير عناصر پردازشی از طريق يک جريان ممتد Xml انجام می دهند. در اين زمينه نياز به اقدام مستقيم جهت کار با Xml نخواهد بود( ارتباط بين اجزاء). فريمورک صفحات وب ( DataSet ) تبديلات فوق را بصورت خودکار انجام خواهد داد. در صورت نياز و در موارد خاص می توان دستيابی به داده ها را در يک برنامه تحت وب، مستقيما" با فرمت Xml انجام داد.
منابع داده (Data Source) برای صفحات فرم های وب
▪ دستيابی به بانک های اطلاعاتی . برای خواندن و نوشتن داده ها از بانک های اطلاعای از ADO.NET استفاده می گردد. ADO.NET شامل امکانات لازم جهت مديريت داده ها ( ارتباطات و اشياء مورد نياز ) جهت ارتباط با سرويس دهنده SQL و يا يک بانک اطلاعاتی سازگار با OLE-DB است . ADO.NET همچنين امکاناتی را برای دستيابی به داده ها از طريق يک Dataset ( در اين حالت يک ارتباط دائم و پيوسته با بانک اطلاعاتی وجود نخواهد داشت ) که داده ها در بخشی از حافظه Cache شده اند ،را پيش بينی نموده است . امکان استفاده از اشياء ADO.NET بمنظور اجرای دستورات SQL و يا Stored procedure بصورت مستقيم نيز وجود خواهد داشت. ▪ XML Data . يکی ديگر از منابع داده ئی در صفحات فرم های وب ،استفاده از سندهای Xml است . بمنظور استفاده و کار با اين نوع سندها می توان از دو روش عمده زير استفاده نمود:
● در صورتيکه داده های Xml ساختيافته باشند ،می توان آن را به يک Dataset تبديل و با استفاده از توابع داده ئی ADO.NET عمليات مربوط به خواندن و يا بهنگام سازی داده ها را انجام داد.پس از انجام عمليات مورد نظر می توان مجددا" داده ها را به فرمت Xml تبديل تا قابل استفاده برای ساير پردازش هائی باشند که قصد استفاده از اين داده ها را دارند.
● در صورتيکه داده ای Xml ساختيافته نباشند ،می توان از توابع مربوط به Parse نمودن و پردازش در System.Xml ( يک NameSpace است ) جهت انجام عمليات دلخواه بر روی داد ه ها استفاده کرد. در صفحات فرم های وب ، می توان اين کار را از طريق استفاده از کنترل های سرويس دهنده وب Xml انجام داد.
▪ ساير منابع داده ئی . صفحات فرم های وب ، اين امکان را فراهم می نمايند که بصورت مجازی با ساير داده ها نيز ارتباط برقرار گردد. معماری Data Binding در صفحات فرم های وب اين امکان را فراهم می آورد که يک کنترل را به هر نوع ساختاری بتوان نسبت داد. مثلا" می توان هر نوع برداری را به يک کنترل نسبت داد. بمنظور انعطاف بيشتر می توان Data binding را در زمان اجراء انجام داد . هر کنترل ، يک رويداد Data Binding را حمايت خواهد کرد.با نوشتن Handler مربوطه برای اين رويداد می توان کنترل هائی را برای هر صفحه و هر نوع داده انجام داد.
منبع:http://article.mjsoft.ir
/خ