نکاتی جهت بهينه سازی برنامه های ASP.NET
در اين مقاله با نکاتی آشنا می شويد که جهت بهينه سازی و افزايش کارآيی و سرعت برنامه های ASP.NET لازم می باشند.
اگرچه ASP.NET مدل جديدی از برنامه نويسی تحت وب می باشد و آمده است که نواقص و کمبودهای قبلی را برطرف نموده و به کارآيی برنامه های تحت وب بيافزايد، اما شما همچنان نياز داريد که جهت کارآيی و بهينه بودن برنامه هايتان نکاتی را رعايت کنيد. اين نکات جهت افزايش کارآيی، سرعت و صرفه جويی در مصرف منابع بر روی سرور است. جهت دستيابی به ليست کامل و مفصل اين نکات به اين آدرس در سايت MSDN مراجعه نمائيد. چکيده برخی از اين نکات بشرح زير است:
Session State را در صورت عدم نياز حتما غيرفعال نمائيد.
بصورت پيش فرض وضعيت Session State برای هر صفحه فعال است. اگر مطمئن هستيد که در آن صفحه از متغيرهای Session استفاده نمی کنيد، حتما آن را در دايرکتيو Page بالای صفحه تان با قراردادن آن برابر False غيرفعال کنيد تا بدين ترتيب منابع اضافی در سرور مصرف نشود. اگر هم مطمئن هستيد که در کل برنامه يا سايت تان نمی خواهيد از متغيرهای Session استفاده کنيد می توانيد آن را در web.config بطور کلی غيرفعال کنيد.
از رفت و برگشت های زياد از حد پرهيز کنيد.
فرم های وب جهت پردازش بايد به سرور ارسال شده و نتيجه پردازش برگشت داده شود. به اين عمل يک رفت و برگشت يا round trip می گويند. از آنجا که اين رفت و برگشت ها برای سرور ايجاد بار پردازشی و ترافيک می کنند، سعی کنيد بگونه ای از کنترلهای وب استفاده کنيد که حداقل رفت و برگشت را داشته باشيد و تا جائيکه می توانيد از پردازش های سمت کاربر برای کارهای ساده استفاده کنيد.
از کنترل های سرور با احتياط استفاده کنيد.
اگرچه کنترلهای سرور دارای قابليتهای بسيار زياد و جالبی می باشند اما اين قابليتها ناشی از اجرای آنها بر روی سرور است. از آنجا که هر اجرائی بر روی سرور ايجاد بار اضافی در سرور می کند لذا در استفاده از اين نوع کنترلها خست بخرج دهيد و اگر جائی می توانيد از کنترلهای معمولی HTML استفاده نمائيد حتما اين کار را بکنيد.
از Page.IsPostback استفاده کنيد.
استفاده از Page.IsPostback سبب کاهش رفت و برگشت های (round trip) اضافی می گردد. همچنين به شما کمک می کند که تشخيص دهيد چه موقع نياز به توليد داده جديد برای يک صفحه داريد.
تا آنجائيکه ممکن است از View State استفاده نکنيد.
View State هم مانند Session State برای نگهداری اطلاعات و سابقه يک فرم از منابع سرور استفاده کرده و به حجم صفحات اضافه می کند. از طرفی اين حالت بصورت پيش فرض فعال می باشد. لذا در صورتيکه به آن نياز نداريد از آن استفاده نکنيد و حالت آن را غيرفعال نمائيد.
از Strict="true" در صفحات تان استفاده کنيد.
جهت استفاده از مزايای early binding از عبارت فوق در دايرکتيو Page استفاده کنيد. اين مساله سبب می شود تا شما مجبور شويد تايپ هر متغير را در لحظه تعريف آن متغير بصورت صريح مشخص کنيد. همانطور که می دانيد درVB.NET و JScript.NET جهت پوشش برنامه های ASP کلاسيک که بدون تايپ بود، می توانيد تايپ يک متغير را در لحظه تعريف آن مشخص نکرده بلکه بعدا هنگام انتساب مقادير به آن، اين کار (تعيين تايپ) بصورت خودکار انجام شود. اين مساله سبب صرف منابع اضافی در سرور می گردد.
از Stored Procedure استفاده کنيد.
اگر از بانک اطلاعاتی در برنامه تان استفاده می کنيد، سعی کنيد که حتما پرس و جوهای (query) خود را به روال های ذخيره شده (stored procedure) بسپاريد. از آنجائيکه اين روال ها برای مراجعه اول کامپايل شده و از آن پس جهت اجرا در اختيار مدير بانک اطلاعاتی (DBMS) قرار می گيرد، نسبت به پرس و جوهای معمولی درون برنامه ای بسيار کاراتر و سريعتر هستند. از طرفی با بهينه سازی خاصی که برای گرداننده (driver) SQLServer در مجموعه دات نت شده است، سرعت اجرای روال های ذخيره شده نسبت به روش های معمولی OLEDB يا ODBC بيش از دو الی سه برابر می باشد.
از Data Reader استفاده کنيد.
اگر حجم بالائی از داده نداريد يا تنها می خواهيد از بانک اطلاعاتی عمل خواندن را انجام دهيد حتما از Data Reader استفاده کنيد. استفاده از Data Set سبب کندی کار و مصرف بالای منابع می گردد.
از Caching استفاده کنيد.
Caching شاهکار ASP.NET است. تا آنجائيکه ممکن است از caching استفاده کنيد. استفاده از caching سبب می شود تا از توليد مجدد کد HTML لازم برای يک صفحه تکراری جلوگيری شده و کاربر هم صفحات را خيلی سريعتر دريافت کند.
حالت Debug را غيرفعال کنيد.
هنگاميکه کار برنامه نويسی شما تمام شده است و زمان استفاده واقعی از برنامه فرا رسيده است، فراموش نکنيد که حالت Debug در کامپايل نهائی برنامه تان را غيرفعال نمائيد.