بهینه سازی در asp.net

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

جهت بهینه سازی صفحات وب طراحی شده توسط asp.net می توانید کارهای زیر را انجام دهید :

 Viewstate را غیرفعال کنید :

 گزینه ی EnableViewStateرا برای هر کنترلی که نیازی به viewstate ندارد ، برابر false قرار دهید. درصورتیکه صفحه ی شما از postback استفاده نمی کند غیرفعالسازی این خصوصیت مشکلی ایجاد نخواهد کرد.

 

 از Page.Ispostback در رویداد page_load استفاده کنید :

 مطمئن شوید که همه ی کدهای موجود در page_load در بلاک if( Page.Ispostback) باشند در غیر اینصورت با هر لودینگ صفحه کدها اجرا شده و منابع سرور را اشغال می کنند.

 

 فراخوانی ها برای سرویس های وب را همگام کنید :

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

 

برای عملیات رشته ای از string builder استفاده کنید.

در عملیات رشته ای طولانی از قابلیت فوق به جای عملیات دستی استفاده نمایید.

 

 مدیریت exception ها را به شکلی خاص انجام دهید :

 Exception ها را فقط در مواقع مورد نیاز اجرا نمایید از آنجایی که اجرای exception در کارایی سایت تان موثر خواهد بود از عبارتی مانند if not system.dbnull …. در مدیریت آنها استفاده کنید. اگر از exception استفاده کردید با دستور finally حافظه اختصاص داده شده را آزاد کنید و به Garbage Collector برای انجام این کار تکیه نکنید.

 

قابلیت Page Buffering را در حالت on قرار دهید :

این قابلیت را در حالت on قرار دهید.در جاهایی که صفحات وب بزرگی وجود دارند کاربر می تواند در حین لود صفحه بخش هایی از آن را مشاهده نماید.

 

 از caching استفاده نمایید :

تا حد ممکن داده ها را cache کنید خصوصا داده هایی را که می دانید تغییری نخواهند کرد و یا چندین بار مورد استفاده قرار می گیرند.

حتی برای صفحاتی که به طور مداوم تغییر پیدا نمی کنند نیز می توانید از قابلیت page caching استفاده کنید. کد زیر مثالی در این رابطه را نشان می دهد :

<% @OutputCache Duration=”60″ VaryByParam=”none” %>

از فایل های script استفاده کنید :

دستورات javascript را به طور مستقیم در صفحات قرار ندهید و آنها را در فایلی با پسوند .js ذخیره و سپس فراخوانی نمایید.مزیت این کار این است که کدهای یکسان به اشتراک گذاشته می شوند و فایل حاوی کدهای جاوا یک بار در کش مرورگر لود می شود و نیازی به دانلود مجدد آن نخواهد بود.

 

سایر اسکریپت های جاوای غیر قابل استفاده را حذف کنید.

 

درصورتیکه از کنترل Tabstrip استفاده می کنید HTML های مخفی را پاک کنید :

برای این کار کافی است خصوصیت Autopostback of Tabstrip را در حالت on قرار دهید. همچنین حصوصیت visibility همه ی پنل ها را به غیر از پنل جاری با   false  مقدار دهی نمایید.

این کار باعث می شود هرزمان که tab تغییر می کند صفحه مجدد برگذاری شود.

 

زمانیکه از session استفاده نمی کنید آن را غیر فعال نمایید :

کد زیر این کار را انجام می دهد :

<%@ Page EnableSessionState=”false” %>

اگر صفحه فقط session را می خواند و چیزی در آن نمی نویسد آن را در حالت read قرار دهید.

<%@ Page EnableSessionState=”ReadOnly” %>

 

Option Strict را در حالت on قرار دهید .

این قابلیت باعث می شود برخی تبدیلات انواع (type convesion) مانند int به real که به صورت مخفیانه انجام می شوند حذف شوند.

 

از قابلیت threading استفاده نمایید :

زمانیکه فصد دانلود حجم بالایی از داده ها رادارید از threading استفاده کنید.از آنجاییکه این قابلیت ممکن است باعث ایجاد سربار شود در استفاده از آن باید دقت لازم را به خرج دهید. از thread های  long term کمترین استفاده را داشته باشید و تا حد ممکن بین آنها سوئیچ ننمایید.

 

از توابع chunky استفاده کنید :

فراخوانی chunky تابعی است که چندین وظیفه را انجام می دهد. طراحی برنامه ی شما بایستی به گونه ای باشد که به فراخوانی های کوچک و مداوم که دارای سربار هستند تکیه ننماید .

 

از ajax استفاده کنید:

فایل هایی که لود ینگ آنها به صورت مداوم انجام می شود را با کد ajax طراحی کنید.

 

 از کلاس SqlDataReader استفاده کنید :

این کلاس روشی را فراهم می آورد تا جریان های داده ای را که از sqlserver بازیابی می شوند  در آن خوانده شوند.اگر تنها نیاز به خواندن داده ها دارید،  کلاس SqlDataReader کارایی بیشتری را در مقایسه با کلاس dataset ارائه می دهد.چرا که از پروتکل Tabular Data Stream برای خواند داده ها از اتصالات دیتابیس استفاده می کند.

 

 از Stored Procedures استفاده کنید :

این رویه ها سریع تر از دستورات sql قراخوانی می شوند چرا که به صورت precompile  می باشند.

 

 هنگام استفاده از سرویس های وب بیشتر دقت نمایید :

این نوع سرویس ها به دلیل دارا بودن حجم بالایی از داده ها به حافظه بالایی نیاز دارند ، فقط در مواقع ضروری از آنها استفاده نمایید.