در [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] با اصول اوليه سيستم پيكربندی ASP.NET 2.0 آشنا شديم . در اين بخش به بررسی برخی از تنظميات پيكربندی خواهيم پرداخت .
$$$Connection String
در ASP.NET 1.x ، اطلاعات مربوط به connection string در بخش <appSetting> ذخيره می گرديد . در ASP.NET 2.0 ، تمامی اطلاعات در ارتباط با connection-string در يك بخش جديد با نام <connectionStrings> ذخيره می گردد .
ذخيره اطلاعات connection - string در بخش <appSetting> دارای چالش های مختص به خود است :
با توجه به اين كه اطلاعات connection string مستقل از بخش appSetting ذخيره می گردد ، می توان آنان را با استفاده از مجموعه متد ConnectionString بازيابی نمود .
- <LI dir=rtl>زمانی كه اطلاعات connection string در بخش appSetting ذخيره می گردد ، برای يك كنترل مرتبط با داده نظير SqlCacheDependency و يا MembershipProvider امكان دستيابی به اطلاعات وجود ندارد .
<LI dir=rtl>ايمن سازی Connection string با استفاده از الگوريتم های رمزنگاری چالش های خاص خود را دارد .- ويژگی فوق صرفا" در ارتباط با برنامه های ASP.NET نبوده و تمامی برنامه های دات نت نظير Windows Forms , Web Service و ساير موارد ديگر را نيز شامل می شود .
كد زير نحوه ذخيره connection string در فايل Web.config را نشان می دهد .
نحوه بازيابی اطلاعات يك connection string در برنامه :<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add
name="MyConnectionString1"
connectionString="Data Source providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
پيكربندی Session StatePublic Sub Page_Load (sender As Object, e As EventArgs)
...
Dim dbConnection as New _
SqlConnection(ConfigurationSettings.ConnectionStri ngs("MyConnectionString1"))
...
End Sub
state management يكی از مسائل مهم در زمان پياده سازی برنامه های وب است كه می بايست با توجه به اهميت آن به درستی با ابعاد آن آشنا گرديد . در گذشته ای نه چندان دور ( ده سال پيش ) ، با اين كه برای پياده سازی برنامه های كامپيوتری از معماری client-server استفاده می گرديد ولی عملا" در معماری فوق ما دارای يك fat client و يك fat server می باشيم كه برای ذخيره state از امكانات موجود در سمت سرويس دهنده و يا سرويس گيرنده استفاده می شود . با توجه به اين كه در معماری فوق ، يك ارتباط دائم بين سرويس گيرندگان و سرويس دهنده وجود دارد برای ذخيره و نگهداری state با مشكل خاصی مواجه نمی شويم .
در برنامه های وب گفتگوی بين يك سرويس گيرنده و يك سرويس دهنده از طريق پروتكل HTTP انجام می شود و جملگی به خوبی می دانيم كه اين پروتكل يك پروتكل stateless است و ارتباط با يك سرويس دهنده از راه دور در زمان مورد نياز ايجاد و در ادامه و پس از سرويس دهی ، غيرفعال می شود . با اين كه HTTP 1.1 از يك روش Keep-alive استفاده می نمايد ولی سرويس دهنده نمی تواند درخواست های ايجاد شده توسط يك سرويس گيرنده را تشخيص دهد .
برای ذخيره و نگهداری state از گزينه های متعددی استفاده می گردد كه session يك نمونه در اين زمينه است .شی Session متداولترين محلی است كه می توان اطلاعات مربوط به وضعيت برنامه و كاربران را در آن ذخيره و نگهداری نمود . برای پياده سازی session از يك Hashtable استفاده می گردد و داده بر اساس تركيب زوج كليد و مقدار ذخيره می شود .
Session در ASP.NET 2.0 يك مفهوم جديد نيست و متاثر از ماهيت پروتكل HTTP است ( Stateless ) و قبل از ASP.NET و حتی ASP كلاسيك وجود داشته است .
داده Session در چه مكانی ذخيره می گردد ؟
شی Session يك روش موثر برای ذخيره و نگهداری وضعيت يك برنامه و يا كاربران آن را ارائه می نمايد. ASP.NET به همراه سه Storage Provider ارائه شده است :
در ASP.NET 2.0 ، يك قابليت جديد با نام custome به مجموعه فوق اضافه شده است . با استفاده از گزينه فوق ، پياده كنندگان می توانند داده session را در يك مكان دائم ذخيره نمايند . مثلا" ASP.NET 2.0 امكان ذخيره داده session را در برخی بانك های اطلاعاتی نظير Oracle,DB2 و يا Sybase ندارد . در صورتی كه بخواهيم داده session را در يكی از بانك های اطلاعاتی فوق و يا يك فايل XML ذخيره نمائيم ، می توان از يك Provider class سفارشی استفاده نمود .
- <LI dir=rtl>In-Process Session State Store : اطلاعات session در Cache ( حافظه ) ذخيره می گردد .
<LI dir=rtl>Out-of-Process Session State Store : اطلاعات Session در State Server Service ذخيره می گردد ( asp_net_state.exe )- Sql Session State Store : اطلاعات session در بانك اطلاعاتی SQL ذخيره می گردد . برای پيكربندی از aspnet_regsql.exe استفاده می گردد .
برای پيكربندی اطلاعات session از عنصر <sessiononState > در فايل web.config استفاده می گردد :
<configuration>
<system.web>
<sessionState mode="Off|InProc|StateServer|SQLServer|Custom" ../>
</system.web>
...
</configuration>
در ادامه به بررسی مختصر هر يك از گزينه های فوق خواهيم پرداخت .





LinkBack URL
About LinkBacks



پاسخ با نقل قول

علاقه مندی ها (Bookmarks)