نماد سایتنماد سایت بلاگ ایران هاست

بهینه سازی عملکرد asp.net با استفاده صحیح از Application State و Session State

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

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

انتخابی که شما انجام میدهید اعم از آنکه  چگونه و کجا یک وضعیت را ذخیره نمایید تاثیر بسزایی در عملکرد و مقیاس پذیری برنامه شما خواهد داشت.چند نوع مختلف از وضعیت ها وجود دارد که در اینجا به ۲ مورد از مهمترین وضعیت ها و تاثیر آنها در بهینه سازی عملکرد ASP.Net اشاره خواهیم کرد.

بهینه سازی عملکرد asp.net

بهینه سازی عملکرد asp.net با Application State

Application state در واقع برای ذخیره سازی اطلاعات ایستا در برنامه کاربرد دارد . ASP.Net به صورت کلی Application state را جهت انتقال برنامه های ASP(classic active server page) به پلتفرم .net بکار میبرد و این امر را برای توسعه دهندگان بسیار راحت ساخته است.

[irp posts=”۴۲۶۸″ name=”asp.net چیست و همه چیز درباره کاربرد آن”]

اگر از Application State استفاده می نمایید میتوانید موارد زیر را جهت بهینه سازی عملکرد asp.net مد نظر داشته باشید

باید همواره سعی نمایید داده ها را در اعضای ایستای یک کلاس تعریف نمایید ( از تعریف آنها در اشیاء برنامه خود بپرهیزید). این امر باعث افزایش کارایی برنامه شما خواهد شد زیرا دسترسی شما به یک متغییر ایستا بسیار سریعتر است .

به شما پیشنها می شود مقاله زبان برنامه نویسی Asp.net چیست را مطالعه بفرمایید

به عنوان مثال میتوانید قطعه کد ساده زیر را در نظر بگیرید (تعریف در اعضای static یک کلاس صورت گفته است)

<%

private static string[] _states[];

private static object _lock = new object();

public static string[] States

{

  get {return _states;}

}

public static void PopulateStates()

{

  //ensure this is thread safe

  if(_states == null)

  {

    lock(_lock)

    {

        //populate the states…    }

  }

}

public void Application_OnStart(object sender, EventArgs e)

{

  PopulateStates();

}

%>
[irp posts=”۹۸۷۱″ name=”روشهای انتقال متغیرها و داده از یک صفحه به صفحه دیگر session”]

Application State دارای کاربردی گسترده بوده و خاص سرور است بنابر این شما میتوانید اطلاعات ورودی و خروجی را در آن ذخیره نمایید ولیکن بهتر است داده های فقط خواندنی read-only)) را در آن ذخیره نمایید تا از وابستگی سرور به این داده ها جلوگیری شود . اشیاء Cache شده میتوانند جایگزین مناسب تری برای داده های read-only  باشند.

عدم اجرای این عمل برنامه شما را درتنگنا قرار داده و باعث می شود کارایی برنامه شما بشدت کاهش یابد زیرا برنامه نوشته شده تحت پلتفرم asp.net یک نخ (thread) خاص را هنگام دسترسی به کامپوننت مورد نظر اجرا میکند.

بهینه سازی عملکرد asp.net با Session State

اگر نیاز دارید که از Session State در برنامه ASP.Net استفاده نمایید می توانید از  Session State های زیر استفاده نمایید و هریک دارای درجات مختلف بوده و عملکرد و مقیاس پذیری خاصی در برنامه شما خواهد داشت.

جهت بهینه سازی عملکرد asp.net دستور العمل های زیر را مد نظر داشته باشید

میتوان session state را برای همه ی برنامه های موجود بر روی server و یا برای برخی برنامه های خاص و یا صفحه ای مورد نظر مانند آنچه در ذیل آمده است ،غیر فعال نمود:

جهت غیر فعال کردن Session State برای همه ی برنامه های میتوان کد زیر را در Machine.config  قرار داد

<sessionState mode='Off'/>

جهت غیر فعال کردن Session State برای برنامه ای خاص میتوان کد بالا را در web.config  برنامه مورد نظر قرار داد.

جهت غیر فعال کردن Session State برای صفحه ای خاص میتوان از کد زیر در تنظیمات صفحه page setting استفاده نمود

<%@ Page EnableSessionState="false" . . .%>
<%@ Page EnableSessionState="ReadOnly" . . .%>
خروج از نسخه موبایل