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

تبلیغات

تبلیغات متنی

اتاق فرار

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

تریدینگ ویو

کاشت ابرو

لمینت دندان

ونداد کولر

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

صرافی rkchange

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

دانلود فیلم

ناب مووی

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

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

تور دبی

دزدگیر منزل

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

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

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

پیچ و مهره

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

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

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

Future Innovate Tech

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

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

قیمت فرش

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

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

میز جلو مبلی

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

آراد برندینگ

رنگ استخری

سایبان ماشین

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

مبل استیل

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

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

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

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

کی شاپ

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

دانلود رمان

وکیل کرج

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

پرس برک

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

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

خرید نشادر

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

وکیل تبریز

اجاره سند

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

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

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

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

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

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

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

خرید ریبون

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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 با نام dsCoustomer1 بوده که از يک نمونه کلاس dscoustomer dataset استفاده شده است . توجه داشته باشيد که Dataset بعنوان يک شی ذخيره شده است و در زمان بازيابی Dataset می بايست آن را مجددا" به کلاس Dataset تبديل نمود.  ذخيره و بازيابی يک Datasetبکمک يک Session statePrivate Sub Page_Load (ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles MyBase.LoadIf  Page.IsPostBack Then  dsCustomers1 = CType(Session("myDsCustomers"), dsCustomers)Else    If  Session("myDsCustomers") Is Nothing Then        OleDbDataAdapter1.Fill(dsCustomers1)        Session("myDsCustomers") = dsCustomers1  End IfEnd IfEnd Sub





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

[ارسال شده از: راسخون]
[مشاهده در: www.rasekhoon.net]
[تعداد بازديد از اين مطلب: 533]

bt

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







-


گوناگون

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


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