تور لحظه آخری
امروز : یکشنبه ، 17 تیر 1403    احادیث و روایات:  امام علی (ع):بر زبان مؤمن نورى (الهى) است و درخشان و برزبان منافق شيطانى است كه سخن مى گويد.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

اتاق فرار

خرید ووچر پرفکت مانی

تریدینگ ویو

کاشت ابرو

لمینت دندان

ونداد کولر

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

رسانه حرف تو - مقایسه و اشتراک تجربه خرید

سرور اختصاصی ایران

تور دبی

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

پیچ و مهره

طراحی کاتالوگ فوری

دانلود کتاب صوتی

تعمیرات مک بوک

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

پی جو مشاغل برتر شیراز

قیمت فرش

آموزش کیک پزی در تهران

لوله بازکنی تهران

میز جلو مبلی

هتل 5 ستاره شیراز

آراد برندینگ

رنگ استخری

سایبان ماشین

قالیشویی در تهران

مبل استیل

بهترین وکیل تهران

شرکت حسابداری

نظرسنجی انتخابات 1403

استعداد تحلیلی

کی شاپ

خرید دانه قهوه

دانلود رمان

وکیل کرج

آمپول بیوتین بپانتین

پرس برک

بهترین پکیج کنکور

خرید تیشرت مردانه

خرید نشادر

خرید یخچال خارجی

وکیل تبریز

اجاره سند

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ووچر پرفکت مانی

خرید سی پی ارزان

خرید ابزار دقیق

بهترین جراح بینی خانم

تاثیر رنگ لباس بر تعاملات انسانی

خرید ریبون

 






آمار وبسایت

 تعداد کل بازدیدها : 1805288874




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

استراتژی دستیابی به داده ها در وب


واضح آرشیو وب فارسی:پرشین وی: در زمان طراحی و پیاده سازی یک برنامه تحت وب و بمنظور دستیابی به داده ها ، چالش های متعددی وجود دارد: نحوه ارتباط با یک منبع داده ، نحوه ذخیره سازی داده ها در زمان رفت و آمد صفحات بین سرویس گیرنده و سرویس دهنده ، محل ذخیره سازی داده ها در صورت تاکید بر ذخیره سازی داده ها و ... . نحوه برخورد با چالش های فوق و انتخاب راهکارهای متاسب ، در طراحی و پیاده سازی یک برنامه تحت وب تاثیرات خود را بدنبال داشته و می تواند در نحوه اجراء و کارائی برنامه ، پیامدهای مستقیمی را داشته باشد. برای دستیابی به داده ها یک استراتژی ثابت و منفرد که در تمامی حالات پاسخگو باشد ،وجود نداشته و با انتخاب هر رویکرد می بایست پذیرای نکات مثبت و منفی آن نیز بود. در ادامه به بررسی اصول اولیه در طراحی صفحات فرم های وب بمنظور دستیابی به داده ها خواهیم پرداخت . ●DataSet or Direct Access and Data Reader یکی از اولین مواردیکه می بایست به آن پاسخ داد این مطلب است که : " آیا می خواهیم رکوردها را بکمک یک Dataset استفاده نمود و یا قصد دستیابی به بانک اطلاعاتی را مستقیما" داشته و بکمک یک Data Reader از رکوردها استفاده نمائیم؟" برای انجام برخی عملیات نظیر ایجاد و ویرایش ساختار بانک اطلاعاتی نمی توان از یک Dataset استفاده نمود. مثلا" اگر بخواهیم ، ایجاد یک جدول جدید را از طریق برنامه انجام دهیم ،نمی توان از Dataset استفاده نمود. در حالت کلی برای دستیابی به داده ها می بایست بین استفاده از یک Dataset و یا کار مستقیم با بانک اطلاعاتی از طریق بخدمت گرفتن دستورات مربوطه یکی و یا هر دو را با توجه به شرایط حاکم بر یک برنامه انتخاب نمود. هر یک از رویکردهای فوق، دارای مزایا و معایبی می باشند. مثلا" Dataset جهت کار با جداول رابطه ای و کار با داده های مستقر شده در چندین جدول مناسبت تر بنظر می آیند. در مقابل استفاده از یک Data Reader دارای کارائی بیشتر مخصوصا" ازبعد استفاده از حافظه بوده که باعث حذف مراحل اضافی برای تکمیل و استقرار داده ها در یک DataSet خواهد شد. در این حالت امکان اعمال کنترل بیشتری بر روی داده ها از طریق عبارات و یا Stored Procedures ها نیز وجود خواهد داشت . ● DataSet and Data commands in web form pages زمانیکه با صفحات فرم های وب کار می شود ، فاکتورهای دیگری نیز جهت انتخاب DataSet و یا Data Reader وجود خواهد داشت . یکی از این فاکتورها " چرخه حیات یک صفحه وب " است . صفحات فرم های وب ، مقداردهی اولیه ، پردازش و در نهایت حذف خواهند شد( به ازای هر رفت و آمد بین سرویس دهنده و سرویس گیرنده ) . در صورتیکه بخواهیم داده ها را بسادگی بر روی صفحه نمایش دهیم ، می توان یک Dataset را ایجاد و آن را از داده های مورد نظر تکمیل و در نهایت آن را به یک کنترل Bind نمود. عملیات فوق مستلزم overhead غیر ضروری است ، چون بلافاصله Dataset از بین خواهد رفت .در برخی موارد مناسبت تر است که از Data Reader بمنظور بازیابی داده ها استفاده و با Bind نمودن کنترل به آن در زمان اجراء، زمینه استفاده از داده ها را فراهم نمود. در حالت کلی می توان از دستورات مربوط جهت اجرای عبارات SQL و یا Stored Procedurdes استفاده کرد. مثلا" جهت نمایش داده ها در یک دستور DataList می توان یک عبارت SQL را اجراء و در ادامه کنترل مربوطه را به یک Data reader نسبت داد. در این زمینه برخی حالات خاص نیز وجود دارد که به آنها اشاره می گردد: ▪ کار با جداول رابطه ای . Dataset امکان پشتیبانی چندین جدول رابطه ای و حمایت از ارتباطات مربوطه را فراهم می نماید.کار با رکوردهای رابطه ای در یک Dataset بمراتب راحت تر از خواندن رکوردها بصورت مستقل و بکمک اجرای دستوراتی در رابطه با یک بانک اطلاعاتی است. ▪ مبادله داده بین سایر پردازش ها . در صورتیکه صفحات فرم های وب داده های خود را از سایر عناصر اخذ نمایند ،( نظیر سرویس های وب Xml) می بایست از یک Dataset جهت نگهداری یک نسخه از داده ها استفاده نمود.Dataset بصورت خودکار Xml های استفاده شده بین عناصر متفاوت در دات نت را خوانده و یا در آنها اطلاعاتی را خواهد نوشت. ▪ کار با یک مجموعه ثابت از رکوردها . در صورتیکه به مجموعه ای از رکوردها مکررا" نیاز باشد ،( مثلا" عملیات paging در یک grid) شایسته است که رکوردهای مورد نظر را در یک Dataset قرار داد. یکی از مزایای عمده Dataset ، برنامه نویسی ساده تر آن نسبت به استفاده مستقیم از دستورات است . ●Save Dataset or Recreate each time در صورت استفاده از یک DataSet ، تصمیم بعدی در رابطه با این موضوع خواهد بود که " آیا پس از هر رفت و آمد بین سرویس دهنده و سرویس گیرنده ، می بایست مجددا" Dataset را ایجاد نمود؟ در رابطه با مسئله فوق دو رویکرد وجود دارد : ▪ هر زمان که صفحه پردازش می گردد ،یک نمونه از Dataset ایجاد و مقدار دهی شود، .پس از اتمام پردازش صفحه و ارسال آن برای مرورگر ،Dataset حذف خواهد شد. ▪ ایجاد و تکمیل Dataset یک بار انجام شده ( اولین باری که صفحه اجراء می گردد) و درادامه Dataset را با یک روش ذخیره و در نهایت امکان بازیابی و استفاده از رکوردهای موجود در آن فراهم خواهد شد. ایجاد Dataset در هر مرتبه ، بدین معنی است که هر زمان کاربری بر روی یک Button کلیک می نماید ،یک Query و یا Stored Procedure اجراء خواهد شد. مثلا" می توان یک فرم صفحه وب را داشت که کاربر اطلاعات را صفحه به صفحه مشاهده نماید. در صورتیکه هر بار Dataset ایجاد گردد ،فرم های وب یک query را در از منابع داده ئی جهت دستیابی و اخذ رکوردهای بعدی جهت نمایش ، انجام خواهند داد. در صورتیکه Dataset را ذخیره و مجددا" بازیابی نمائیم ،نیاز به مراجعه مجدد به منبع داده ئی برای اخذ رکوردهای جدید نخواهد بود. ذخیره نمودن یک Dataset دارای چالش های جدی است. یکی از مهمترین چالش ها ،اشغال بخشی از حافظه توسط Dataset خواهد بود( در زمان رفت و آمد صفحه بین سرویس گیرنده و سرویس دهنده ) در صورتیکه Dataset دارای حجم بالائی باشد ،قطعا" حجم بالاتری از حافظه اشغال شده و اگر در چنین وضعیتی چندین کاربر دیگر نیز Dataset هائی را ایجاد کرده باشند ،میزان استفاده از حافظه بمراتب بیشتر از وضعیت قبلی خواهد بود.( یکی از راهکارهای موجود ذخیره داده در صفحه است ). یکی دیگر از چالش های موجود در این زمینه ، مسئله یکسان سازی ( نمودن ) داده های موجود در Dataset با منبع داده ئی است . با توجه به اینکه Dataset تکمیل و حاوی داده های درخواستی بوده و در زمان درخواست کاربر برای داده ها ،Dataset مجددا" Refresh نمی گردد ،این احتمال وجود خواهد داشت که داده های موجود در Dataset یک تصویر زنده از داده های موجود در منابع داده ئی را نشان ندهند .شاید بهتر باشد که برای هر رفت و آمد ،مجددا" Dataset را ایجاد نمود. ● Cache on Server or on the Client در صورتیکه تصمیم به ذخیره سازی یک Dataset را داشته باشیم ( در زمان رفت و آمد صفحات بین سرویس دهنده و سرویس گیرنده ) می بایست در رابطه با محل ذخیره سازی آن تصمیم مناسب را اتخاذ نمود. مورد فوق به استانداردها و روش های گفته شده در بحث State management برخواهد گشت . در رابطه با ذخیره سازی Dataset دو رویکرد عمده وجود دارد : ▪ بر روی سرویس دهنده ،Dataset را در یک Session State , Application State و یا Cache ذخیره نمود. ▪ بر روی سرویس گیرنده ،Dataset را با استفاد ه از View State و یا فیلد های مخفی ذخیره نمود. ذخیره نمودن Dataset بر روی سرویس دهنده باعث افزایش استفاده از منابع سرویس دهنده خواهد شد.در چنین حالتی درصورتیکه حجم Dataset بالا بوده و یا کاربران زیادی با Dataset ها ی با حجم کم وجود داشته باشد ، بر کارائی سرویس دهنده اثرات منفی را خواهد گذاشت . استفاده از cache هم مسائل مربوط به خود را دارد چون در صورتیکه سرویس دهنده نیازمند حافظه بیشتری بوده و یا تاریخ اعتبار Cache به پایان رسیده باشد ،مدیریت Cache فضای اشغال شده را آزاد خواهد کرد. بهرحال در چنین مواردی هیچگونه تضمینی وجود نخواهد داشت که Dataset در Cache موجود باشد و می بایست با افزودن منطق مربوطه در صفحات ،در ابتدا بررسی گردد که آیا Dataset در Cache موجود هست یا خیر؟ در صورتیکه Dataset در Cache موجود نباشد ،مجددا" آن را ایجاد و یک نسخه از آن را هم در Cache ذخیره نمود. ذخیره سازی داده ها در صفحات ، بدین معنی است که ازمنابع موجود بر روی سرویس دهنده برای ذخیره سازی داد ه ها استفاده نشده است . در این روش ، داده ها بعنوان بخشی از Html Stream در صفحات وب قرار خواهند گرفت و اگر Dataset حجیم باشد در زمان لود صفحه در مرورگر و یا ارسال برای سرویس دهنده ، مدت زمان زیادی صرف خواهدشد. در این راستا می بایست این سیاست: "همواره سعی گردد که حجم Dataset به حداقل مقدار خود رسیده و صرفا" رکوردهای مورد نظر را ذخیره کرد " ، مورد توجه جدی قرار گیرد. در مواردیکه می خواهیم یک Dataset را ذخیره نمائیم ،می بایست با افزودن کدهای مربوطه در صفحه ، امکان ذخیره و بازیابی آن را در زمان معقول تحقق بخشید. در برنامه زیر برای ذخیره و بازیابی یک Dataset از یک Session state استفاده شده است . Dataset با نام dsCoustomer۱ بوده که از یک نمونه کلاس dscoustomer dataset استفاده شده است . توجه داشته باشید که Dataset بعنوان یک شی ذخیره شده است و در زمان بازیابی Dataset می بایست آن را مجددا" به کلاس Dataset تبدیل نمود aftabir.com




این صفحه را در گوگل محبوب کنید

[ارسال شده از: پرشین وی]
[مشاهده در: www.persianv.com]
[تعداد بازديد از اين مطلب: 962]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن