نحوه بکار گیری فایل Golbal.asa و کاربردهای آن

نحوه بکار گیری فایل Golbal.asa و کاربردهای آن

در فایل Global.asa، می توان اسکریپت هائی را تعریف نمود که همزمان با بروز یک رویداد ( Event ) فعال شده و یا اقدام به تعریف اشیاء Session و Application نمود. امکانات تعریف شده در فایل فوق برای تمامی صفحات تشکیل دهنده یک برنامه ASP قابل دستیابی و استفاده خواهند بود. ضرورت وجود فایل فوق اختیاری بوده و در صورت تعریف می بایست در فهرست ریشه ای که برنامه ASP در آن قرار دارد، استقرار یابد. هر برنامه ASP صرفا می تواند دارای یک فایل Global.asa باشد.

رویدادهای استاندارد در فایل Global.asa
در فایل فوق می توان به اشیاء Application و Session گفت که در زمان آغاز و خاتمه عملیات مربوط به خود چه کارهائی را انجام دهند. در مجموع در فایل فوق چهار نوع رویداد را می توان قرار داد :

• Application_OnStart: رویداد فوق زمانیکه اولین کاربر به اولین صفحه یک برنامه ASP دستیابی پیدا می کند، فعال می گردد.
• Session_OnStart: رویداد فوق هر دفعه که یک کاربر جدید درخواست اولین صفحه یک برنامه ASP را داشته باشد، فعال می گردد.
• Session_OnEnd: رویداد فوق هر بار که کاربری به جلسه کاری خود خاتمه می دهد فعال می گردد. در صورتیکه در یک مدت زمان مشخص و محدود ( پیش فرض بیست دقیقه ) در خواست صفحه ای توسط کاربر واصل نگردد، به جلسه کاری وی خاتمه داد می شود.
• Application_OnEnd: رویداد فوق پس از اینکه آخرین کاربر به کار خود خاتمه می دهد، فعال می گردد. معمولا رویداد فوق زمانیکه سرویس دهنده وب متوقف می گردد نیز فعال می گردد.

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

 

<script language="vbscript" runat="server">
sub Application_OnStart
. . .
end sub
sub Application_OnEnd
. . .
end sub
sub Session_OnStart
. . .
end sub
sub Session_OnEnd
. . .
end sub
</script>
 

با مشاهده چهارچوب فوق دوستان متوجه شده اند که از <% و %> استفاده نشده و بمنظور استفاده از اسکریپت ها در فایل Global.asa می بایست از تگ <script> استفاده و روال های مربوطه را تعریف نمود.

در رابطه با فایل Global.asa محدودیت هائی وجود دارد که ذیلا به آنها اشاره می شود :

• فایل فوق قادر به نمایش اطلاعات نمی باشد، بنابراین نمی توانیم بکمک آن متنی را نمایش دهیم.
• از دایرکتیو Include# نمی توان در فایل فوق استفاده نمود.
• در روال های Application_OnStart و Application_OnEnd صرفا می توان از اشیاء Server و Application استفاده کرد.
• در روال Session_OnEnd می توان از اشیاء Server و Application و Session استفاده نمود.
• در روال Session_OnStart می توان از تمامی اشیاء از پیش ساخته شده همراه ASP استفاده نمود.

نحوه استفاده از روال ها
از روال های موجود در یک فایل Global.asa می توان در جهت مقاصد مختلفی استفاده بعمل آورد. در ادامه به تشریح برخی از این نوع اهداف خواهیم پرداخت.

• از فایل Global.asa اغلب برای مقداردهی اولیه متغیرها استفاده می شود. در مثال زیر نحوه تشخیص زمان مربوط به ملاقات یک وب سایت توسط یک کاربر نشان داده شده است. زمان فوق در متغیر started مربوط به شی Session ذخیره می گردد. مقدار متغیر فوق توسط هر یک از صفحات موجود در یک برنامه ASP قابل دستیابی خواهد بود.
 

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>
 

• از دیگرکاربردهای  فایل Global.asa کنترل دستیابی به صفحات نیز می باشد. در مثال زیر پس از ارتباط کاربر با سایت، بصورت اتوماتیک وی بسمت استفاده از یک فایل ( MyNewPage.asp ) دیگر هدایت می گردد.
 


 

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("MyNewPage.ASP")
end sub
</script>

 

کاربردهای فایل Golbal.asa

در این مثال با استفاده از فایل Global.asa، تعداد ملاقات کنندگان فعال یک سایت را مشخص می نمائیم. در فایل فوق از سه روال استفاده خواهد شد که هر یک عملیات محوله را انجام خواهند داد. روال Application_OnStart، متغیر visitors مربوط به شی Application را صفر قرار می دهد. مقدار اولیه متغیر فوق پس از اینکه سرویس دهنده کار را آغاز کرد، به آن داده خواهد شد. روال Application_OnStart زمانیکه یک ملاقات کننده جدید وارد سایت می گردد، یک واحد به متغیر visitors اضافه کرده و در نهایت روال Session_OnEnd زمانیکه یک ملاقات کننده سایت را ترک می کند، یک واحد از متغیر visitors کم می کند.

 محتویات فایل Global.asa :

<script language="vbscript" runat="server">
Sub Application_OnStart
Application("visitors")=0
End Sub

Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub

Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub
</script>

  بمنظور نمایش تعداد ملاقات کنندگان فعال، می توان از یک فایل ASP مطابق زیر استفاده نمود.

<%=Application("visitors")%> Online Guests

پس از اجرای ASP فوق، خروجی زیر را خواهیم داشت.

معرفی ویژ گیها و نسب و راه اندازی
 
ایجاد یک سیستم برای ورود اعضاء
 
دریافت اطلاعات از ورودیها به وسیله فرمها
 
sql و ado و نحوه برقراری ارتباط  با asp
 
نحوه بکار گیری فایل Golbal.asa و کاربردهای آن
 

با پایگاه داده در ASP.NET

 با پایگاه داده در ASP.NET
روند کلی برقراری اتصال با دیتابیس
1- رشته اتصال ( connection string ) مناسب را تعریف کنید
2- کلاس مناسب را به برنامه خود وارد ( import ) کنید.
3-یک شی کانکشن تعریف کنید و رشته اتصال را به سازنده آن پاس کنید.
4- شی کانکشن را باز کنید.
5-عملیات مورد نظر را در دیتابیس انجام دهید *
6- شی کانکشن را ببندید.

* برای انجام هر عملیاتی از جمله اضافه یا حذف یا ویرایش یا جستجو باید اشیایی برای انجام آن عملیات از کلاس مربوطه بگیرید که در قسمت های بعدی در موردشان توضیح خواهم داد
چگونه با یک دیتابیس ارتباط برقرار کنیم؟
هدف ایجاد اتصال به یک بانک اطلاعاتی ، باز کردن اتصال و بستن آن است . بر اساس توضیحات بالا گام به گام پیش می رویم :
1- تعریف رشته اتصال : برای برقراری ارتباط با اکسس از رشته اتصالی مثل رشته زیر استفاده می کنیم.
کد:
string connectionString ="Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\\database.mdb";
در رشته اتصال بالا بعد از Data Source آدرس محل قرار گرفتن فایل اکسس خود را مشخص کنید. اگر می خواهید از اس کیو ال سرور استفاده کنید رشته اتصال شما چیزی شبیه به متن زیر خواهد بود :
کد:
string connectionString="server=127.0.0.1;database=
MY_DATABASE;UID=MY_USERNAME;PWD=MY_PASSWORD"
در رشته اتصال بالا بعد از server نام و یا ip سرور مورد نظر را وارد می کنید. به MY_DATABASE نام دیتابیس و همین طور نام کاربری و کلمه عبور را برای دسترسی به سرور مشخص کنید.
توجه کنید که رشته های اتصال پارامترهای دیگری هم دارند ولی من ساده ترین مدل را بررسی کردم. برای کسب اطلاعات بیشتر در مورد نحوه نوشتن رشته های اتصال به سایت زیر مراجعه کنید :

فقط اعضای سایت میتوانند لینک ها را ببینند ! برای ثبت نام کلیک کنید

2- اضافه کردن کلاس مناسب به کد صفحه : برای اکسس از System.Data.OleDb استفاده کنید و برای SQL Server از System.Data.SqlClient. اگر از ویژوال استودیو دات نت استفاده می کنید کافی است که آن را به ابتدای کد صفحه اضافه کنید
کد:
using System.Data.OleDb;
و اگر کدهای دات نتی را در خود صفحه aspx می نویسید در ابتدای صفحه فضا نام مربوط را import کنید.

3- تعریف شی کانکشن : برای ایجاد این شی در صورت استفاده از System.Data.OleDb خواهیم داشت :
کد:
OleDbConnection myConnection=new OleDbConnection ( connectionString );
و اگر از System.Data.SqlClient استفاده کرده اید مطابق مثال زیر به جای OleDbConnection از SqlConnection استفاده می کنید :
کد:
SqlConnection myConnection = new SqlConnection( connectionString );
4- باز کردن شی کانکشن : این کار را به کمک متد Open شی کانکشن تعریف شده انجام می دهیم :
کد:
myConnection.Open ();
5- انجام عملیات مورد نظر در دیتابیس : در این یادداشت ما هیچ اضافه ، حذف یا ویرایشی را در دیتابیس انجام نمی دهیم.
6 - بستن شی کانکشن : این کار به کمک متد Close انجام می شود.
کد:
myConnection.Close ();
این پروژه را به کمک ویژوال استودیو باز کنید ، در کد صفحه WebForm1.aspx مقدار رشته اتصال را بر اساس دیتابیس خود ست کنید. پروژه را مجددا کامپایل و اجرا کنید. در این کد از ساختار Try/Catch استفاده کرده ام ( توضیحات بیشتر در مورد ساختارهای مدیریت استثنا در سی شارپ را در

فقط اعضای سایت میتوانند لینک ها را ببینند ! برای ثبت نام کلیک کنید

بخوانید ) همچنین قبل از بستن کانکشن، به کمک یک عبارت شرطی باز بودن آن را چک می کنم.
__________________
دوباره میسازمت فروم !!