بهینه سازی و افزایش سرعت ASP.NET
دسته: طراحی وب سایت

یک شنبه ۰۶ فروردین ۱۳۹۶

در این مقاله قصد داریم نکاتی را معرفی کنیم که در بهینه سازی و افزایش کارایی و سرعت برنامه های ASP.NET تاثیر بسزایی دارند.
اگرچه ASP.NET مدل جدیدی از برنامه‌نویسی تحت وب می‌باشد و آمده است که نواقص و کمبود های قبلی را برطرف نموده و به کارایی برنامه‌های تحت وب بی افزاید، اما شما همچنان نیاز دارید که جهت کارایی و بهینه بودن برنامه‌هایتان نکاتی را رعایت کنید. این نکات جهت افزایش کارایی، سرعت و صرفه‌جویی در مصرف منابع بر روی سرور است. که به شرح زیر است:

Session State را در صورت عدم نیاز حتماً غیرفعال نمایید:
بصورت پیش فرض وضعیت Session State برای هر صفحه فعال است. اگر مطمئن هستید که در آن صفحه از متغیرهای Session استفاده نمی کنید، حتما آن را در دایرکتیو Page بالای صفحه تان با قراردادن آن برابر False غیرفعال کنید تا بدین ترتیب منابع اضافی در سرور مصرف نشود. اگر هم مطمئن هستید که در کل برنامه یا سایت تان نمی خواهید از متغیرهای Session استفاده کنید می توانید آن را در web.config بطور کلی غیرفعال کنید (توجه: در اجرای این روش دقت کافی داشته باشید).

تا آنجائیکه ممکن است از View State استفاده نکنید:
View State هم مانند Session State برای نگهداری اطلاعات و سابقه یک فرم از منابع سرور استفاده کرده و به حجم صفحات اضافه می کند. از طرفی این حالت بصورت پیش فرض فعال می باشد. لذا در صورتیکه به آن نیاز ندارید از آن استفاده نکنید و حالت آن را در دایرکتیو Page غیرفعال نمائید و همچنین می تواند مقدار ویژگی EnableViewState کنترل ها را نیز false قرار داد.

از رفت و برگشت (Postback) های زیاد از حد پرهیز کنید:
فرم های وب جهت پردازش باید به سرور ارسال شده و نتیجه پردازش برگشت داده شود. به این عمل یک رفت و برگشت یا Round trip می گویند. از آنجا که این رفت و برگشت ها برای سرور ایجاد بار پردازشی و ترافیک می کنند، سعی کنید بگونه ای از کنترل های وب استفاده کنید که حداقل رفت و برگشت را داشته باشید و تا جائیکه می توانید از پردازش های سمت کاربر (Client side) برای کارهای ساده ماننده بررسی صحت ورود اطلاعات استفاده کنید. در این روش جهت تبادل داده با سرور می توان از Ajax استفاده کرد.

از Page.IsPostback استفاده کنید:
استفاده از Page.IsPostback سبب کاهش رفت و برگشت های (Round trip) اضافی می گردد. همچنین به شما کمک می کند که تشخیص دهید چه موقع نیاز به تولید داده جدید برای یک صفحه دارید.

استفاده صحیح و به موقع از کنترل های سرور:
اگرچه کنترلهای سرور دارای قابلیت های بسیار زیاد و جالبی می باشند اما این قابلیتها ناشی از اجرای آنها بر روی سرور است. از آنجا که هر اجرائی بر روی سرور ایجاد بار اضافی در سرور می کند لذا در استفاده از این نوع کنترلها خساست و دقت بخرج دهید و اگر جایی می توانید از کنترلهای معمولی HTML استفاده نمائید. به دلیل اینکه همانگونه که ما به لایه های پایین تر از زبان برنامه نویسی برویم سرعت کار بیشتر خواهد بود.

فشرده سازی فایل های css و js:
کاهش زمان بارگزاری صفحات از طریق فشرده سازی فایل های css و js بسیار مفید است و این کار را می توانید با استفاده از افزونه های ویژوال استودیو مانند: Web Essentials و همچنین وب سایت های آنلاین مانند: cssminifier.com و javascript-minifier.com انجام داد. (نمونه کار اجرا شده: darvishihotel.com)
از Stored Procedure استفاده کنید:
اگر از بانک اطلاعاتی در برنامه تان استفاده می کنید، سعی کنید که حتما پرس و جوهای (Query) خود را به روال های ذخیره شده (Stored procedure)  بسپارید. از آنجائیکه این روال ها برای مراجعه اول کامپایل شده و از آن پس جهت اجرا در اختیار مدیر بانک اطلاعاتی (DBMS) قرار می گیرد، نسبت به پرس و جوهای معمولی درون برنامه ای بسیار کاراتر و سریعتر هستند. از طرفی با بهینه سازی خاصی که برای گرداننده SQLServer (driver) در مجموعه دات نت شده است، سرعت اجرای روال های ذخیره شده نسبت به روش های معمولی OLEDB یا ODBC بیش از دو الی سه برابر می باشد.

از SqlDataReader استفاده کنید:
اگر حجم بالایی از داده ندارید یا تنها می خواهید از بانک اطلاعاتی عمل خواندن را انجام دهید حتما از Data Reader استفاده کنید. استفاده از Data Set سبب کندی کار و مصرف بالای منابع می گردد. در کل می توان گفت از کارهایی که به مدت طولانی برنامه را جهت دریافت اطلاعات از سرور بانک اطلاعاتی بلاک می کنند بپرهیزید.

صفحه بندی در نمایش داده ها:
اگر می خواهید رکورد های زیادی را به کاربر نمایش دهید بهتر است قبل از نمایش داده ها را صفحه بندی نموده تا کاربر بتواند سریع تر اطلاعات را مشاهده کند و همچنین منابع سرور بیهوده استفاده نشده باشد.

از Caching استفاده کنید:
Caching یکی از ویژگی های منحصر به فرد ASP.NET است. تا آنجائیکه ممکن است از Caching استفاده کنید. استفاده از Caching  سبب می شود تا از تولید مجدد کد  HTML (Page Rendering)لازم برای یک صفحه تکراری جلوگیری شده و کاربر هم صفحات را خیلی سریعتر دریافت کند. در این روش میتوان متناسب با وابستگی به یک متغییر یا بازه زمانی خاص، کد تولید شده را جهت تازه سازی دوباره تولید کرد.

حالت Debug را غیرفعال کنید:
هنگامیکه کار برنامه نویسی شما تمام شده است و زمان استفاده واقعی از برنامه فرا رسیده است، فراموش نکنید که حالت Debug در کامپایل نهائی برنامه تان را غیرفعال نمائید. این کار را می توان از طریق نوار ابزار Standard انجام دهید.