صفحه 2 از 3 نخستنخست 123 آخرینآخرین
نمایش نتایج: از شماره 11 تا 20 , از مجموع 24

موضوع: ASP.net

  1. #11
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post نشان دادن قابليتهای مرورگر در Asp.net

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][FONT=Arial][B]اين مقاله نحوه نشان دادن قابليتهای مرورگر با استفاده از ASP.NET را نشان می دهد.[/B] [/FONT][/SIZE]
    [SIZE=2][FONT=Arial]<!--[URL="http://www.mycomputer.ir/index/content/view/490/51/#continue"]ادامه مقاله...[/URL]

    --><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/FONT][/SIZE]
    </TD></TR></TBODY></TABLE>[SIZE=2]
    [FONT=Arial]<HR>[/FONT][/SIZE]
    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[FONT=Arial][SIZE=2]اگرچه در حال حاضر جنگ مرورگرها تقريبا تمام شده است اما اين موضوع دليلی بر شناخته نشدن قابليتهای مرورگرها نيست. در اينجا توانايی ASP.NET در نشان دادن قابليتهای مرورگرها بحث شده است. بعنوان نمونه، مثال ۱ نوع مرورگر را به ما نشان می دهد.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]<html><body>
    You are using <% =Request.Browser.Type %>
    </body></html>[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]برای نمونه اگر شما از IE 5 استفاده می کنيد نتيجه خروجی چنين بايد باشد: [/SIZE][/FONT][FONT=Arial][SIZE=2]You are using IE5[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]در مثال ۱ Request.Browser.Type يک رشته را که همان نام ونسخه‎ی مرورگر است را بر می گرداند. اما اين موضوع چگونه صورت ميگيرد ؟[/SIZE][/FONT]

    [SIZE=2][FONT=Arial][B]شئ HTTPBrowserCapabilities [/B]
    در حقيقت خاصيت Browser در شئ Request کلاسی از HTTPBrowserCapabilities است که در فضانام System.Web قراردارد. وقتی که اين کلاس روی يک صفحه ASP.NET نمونه سازی می شود خواص صفحه سرويس گيرنده ای را نشان می دهد که از آن برای اجرا شدن کد استفاده شده است. شئ Request در برگيرنده اين خاصيت مرورگر است که اين کلاس را ميتوان معادل کلاس MSWC. BrowserCapabilities در ASP کلاسيک در نظر گرفت.[/FONT][/SIZE]
    [FONT=Arial][SIZE=2]در ليست زير اکثر خاصيتهای شی HTTPBrowserCapabilities تشريح شده است:[/SIZE][/FONT]
    [SIZE=2][FONT=Arial]ActiveXControls: نشان می دهد که مرورگر اکتيويکس را ساپورت می کند يا نه.
    AOL: چک می کند که مرورگر از نوع AOL است يا نه.
    Cookies: نشان می دهد که مرورگر کوکی ها را ساپورت می کند يا نه بايد توجه داشت که اين خاصيت وضعيت فعال بودن يا غير فعال بودن کوکی ها را نشان نمی دهد.
    Crawler: نشان ميدهد که مرورگر سرويس گيرنده از موتورهای جستجو تاثير می پذيرد يا نه.
    Browser: نوع مرورگر را نشان می دهد.
    Frames: نشان می دهد که مرورگر از قابليت Frame برخورداراست يا نه.
    MajorVersion: نسخه اصلی مرورگر را نشان می دهد بعنوان مثال در IE5 عدد 5 نشانگر نسخه اصلی است.
    MinorVersion: نسخه جزيی (کوچکتر) مرورگر را نشان می دهد بعنوان مثال در IE5.1 عدد .1 نشانگر نسخه جزيی است.
    Type: نوع ونسخه مرورگر را بصورت يک رشته بازميگرداند..
    VBScript: نشان می دهد که مرورگر VBScript را ساپورت می کند يا نه.
    Version: نسخه اصلی و جزيی مرورگر را بعنوان يک رشته برمی گرداند.
    [/FONT]
    [/SIZE][FONT=Arial][SIZE=2]در زير نمونه کامل يک مثال آورده شده است.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]<%@ page language="VB" %>
    <%@ Import Namespace="System.Web" %>
    <html>
    <body>
    <head><title>HTTPBrowserCapabilities Demo</title></head>

    <%
    Dim browserObj As HTTPBrowserCapabilities
    browserObj = Request.Browser
    %>
    <font face="verdana, arial" size=2>

    <p>Your browser supports ActiveX controls: <%=browserObj.ActiveXControls %> </p>
    <p>Your browser type: <%=browserObj.Type %> </p>
    <p>Your browser version: <%=browserObj.Version%> </p>

    ... Add any other property that you would like to display

    </font>
    </body>
    </html>[/SIZE][/FONT]
    </TD></TR></TBODY></TABLE>

  2. #12
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post رويدادهای يک صفحه Asp.net

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][FONT=Arial][B]بررسی مجموعه رويدادهايی که هنگام فراخوانی يک صفحه ASP.NET روی می دهند مانند Init و Load...[/B] [/FONT][/SIZE]
    [SIZE=2][FONT=Arial]<!--[URL="http://www.mycomputer.ir/index/content/view/489/51/#continue"]ادامه مقاله...[/URL]

    --><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/FONT][/SIZE]
    </TD></TR></TBODY></TABLE>[SIZE=2]
    [FONT=Arial]<HR>[/FONT]
    [/SIZE]<TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[FONT=Arial][SIZE=2]هنگامی که يک صفحه ASP.NET فراخوانی شود مجموعه رويدادهای زير به ترتيب رخ می دهند:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]• [B]Init:[/B] اولين رويدادی که هنگام فراخوانی صفحه انجام می گردد.
    • [B]Load:[/B] اين رويداد قبل از همه رويدادهای مربوط به کنترل های موجود درون صفحه رخ می دهد.
    • [B]PreRender:[/B] اين رويداد بعد از همه رويدادهای مربوط به کنترل های موجود درون صفحه رخ می دهد.
    • [B]Unload:[/B] هنگامی که صفحه از حافظه تخليه می گردد اين رويداد رخ می دهد.
    • [B]Disposed:[/B] اين رويداد بعد از آزاد سازی حافظه از صفحه روی می دهد.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]جهت رسيدگی به اين رويدادها می توان برای هر يک، روال مجزائی نوشت. بعنوان مثال روال رسيدگی کننده به رويداد Load می تواند مانند زير باشد:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]<Script Runat="Server">

    Sub Page_Load
    ' Place any code that you want to execute here
    End Sub
    </Script>[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]توجه داشته باشيد که شما با ايجاد روالی بنام Page_Load می توانيد به رويداد Load مربوط به يک صفحه رسيدگی کنيد. بعبارت ديگر جهت رسيدگی به رويدادهای Disposed ،Unload ،PreRender ،Load ،Init بايد از روال هايی با نامهای Page_Unload ،Page_PreRender ،Page_Load ،Page_Init و Page_Disposed استفاده نمود.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]معمولا مفيدترين رويداد يک صفحه رويداد Load می باشد. بعبارت ديگر از اين رويداد جهت مقداردهی به کنترل های موجود درون صفحه استفاده می گردد. برای مثال، مقداردهی يک برچسب يا مقداردهی يک کنترل DataGrid با داده های يک بانک اطلاعاتی در اين رويداد انجام می شود.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]مهمترين تفاوت ميان رويدادهای Load و PreRender اين است که رويداد Load قبل از همه رويدادهای مربوط به کنترل های درون صفحه انجام می شود. جهت روشن شدن مطلب به مثال زير توجه فرمائيد. اين صفحه دارای سه رويداد Button_Click ،Page_Load و Page_PreRender می باشد. اگر بر روی دکمه موجود کليک شود ابتدا روال Page_Load، بعد روال Button_Click و در نهايت روال Page_PreRender اجرا می گردد.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]

    [FONT=Arial][SIZE=2]<Script Runat="Server">

    Sub Page_Load
    Response.Write( "<li> Page_Load" )
    End Sub

    Sub Button_Click( s As Object, e As EventArgs )
    Response.Write( "<li> Button_Click" )
    End Sub

    Sub Page_PreRender
    Response.Write( "<li> Page_PreRender" )
    End Sub

    </Script>

    <html>
    <head><title>EventOrder.aspx</title></head>
    <body>

    <form runat="Server">

    <asp:Button
    Text="Click Here!"
    OnClick="Button_Click"
    Runat="Server" />

    </form>

    </body>
    </html>[/SIZE][/FONT]
    </TD></TR></TBODY></TABLE>

  3. #13
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post يک صفحه Asp.net ساده

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][FONT=Arial][B]اولين برنامه در ASP.NET و شرح قسمتهای آن[/B] [/FONT][/SIZE]
    [SIZE=2][FONT=Arial]<!--[URL="http://www.mycomputer.ir/index/content/view/488/51/#continue"]ادامه مقاله...[/URL]

    --><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/FONT][/SIZE]
    </TD></TR></TBODY></TABLE>[SIZE=2]
    [FONT=Arial]<HR>[/FONT][/SIZE]<TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[FONT=Arial][SIZE=2]يک صفحه ASP.NET بطور عمده دارای دو بخش است: قسمت تعريف کد و قسمت اجرا. قسمت تعريف کد شامل تعريف کليه موارد و زيربرنامه هايی است که در قسمت اجرای کد استفاده می شوند. قسمت اجرای کد بخشی از صفحه است که در هنگام فراخوانی صفحه اجرا می شود و حاصل آن کد HTML است که به مرورگر ارسال می گردد.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]بعنوان مثال در زير يک صفحه ASP.NET ساده آمده است که حاصل اجرای آن نمايش زمان جاری است. اين صفحه به ويژوال بيسيک نوشته شده است.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]<Script Runat="Server">
    Sub Page_Load
    myLabel.Text = DateTime.Now()
    End Sub
    </Script>
    <html>
    <head><title>Simple.aspx</title></head>
    <body>
    <asp:Label
    ID="myLabel"
    Runat="Server" />
    </body>
    </html>[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [SIZE=2][FONT=Arial][B]قسمت تعريف کد[/B]
    قسمت تعريف کد در ليست ۱ آن قسمت از صفحه است که با برچسب <Script Runat="Server"> شروع شده و با برچسب <Script/> تمام می شود. در ليست بالا يک زيربرنامه بنام Page-Load تعريف شده است که در هنگام فراخوانی صفحه، بطور خودکار اجرا می شود. اين زيربرنامه صفت Text مربوط به ابزار Label را با زمان و تاريخ جاری مقداردهی می کند.[/FONT][/SIZE]

    [SIZE=2][FONT=Arial][B]قسمت اجرای کد[/B]
    قسمت اجرای کد در اين صفحه عبارت است از مابقی صفحه در زير قسمت تعريف کد. شما حتما تاکنون متوجه شده ايد که عمده قسمت اجرای کد می تواند همان HTML معمولی باشد. در اين قسمت از ابزار Label از مجموعه ابزارهای ASP.NET برای نمايش يک متن يا برچسب بروی صفحه HTML استفاده شده است. نحوه تعريف ابزار Label در زير آمده است:[/FONT][/SIZE]
    [FONT=Arial][SIZE=2]<asp:Label ID="myLabel" Runat="Server"/>[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]هنگامی که اين صفحه اجرا می شود اين ابزار هم به کد متناظر HTML تبديل می شود.[/SIZE][/FONT]
    </TD></TR></TBODY></TABLE>

  4. #14
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post upload کردن فايل به سرور در ASP.NET

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][FONT=Arial][B]اين مقاله به چگونگی upload کردن فايل به سرور در ASP.NET می پردازد.[/B] [/FONT][/SIZE]
    [SIZE=2][FONT=Arial]<!--[URL="http://www.mycomputer.ir/index/content/view/487/51/#continue"]ادامه مقاله...[/URL]

    --><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/FONT][/SIZE]
    </TD></TR></TBODY></TABLE>[SIZE=2]
    [FONT=Arial]<HR>[/FONT][/SIZE]<TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[FONT=Arial][SIZE=2]کدهای مربوط به Upload کردن فايل به سرور را بايد به دو قسمت تقسيم نمود. قسمت اول شامل کدهايی است که نحوه نمايش در مرورگر را شامل می شوند و اساس آن بر HTML است. و قسمت دوم مربوط به طرف سرور است که شامل کدهايی است که با ASP.NET نوشته می شوند. برنامه زير حاوی کدهای مربوطه برای انجام اين کار به صورات خيلی ساده و ابتدايی می باشد. همانطور که ملاحظه می کنيد برخلاف ASP کلاسيک، نياز به وجود component خاصی نمی باشد و اين کار در ASP.NET بصورت خيلی ساده انجام پذير است.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]Upload.aspx:
    <HTML>
    <HEAD>
    <TITLE>Uploading File...</TITLE>
    <Script language="vb" runat="server">
    sub page_load(s as object,e as EventArgs)
    If Not (MyInputFile.PostedFile Is Nothing) Then
    MyInputFile.PostedFile.SaveAs("c:\filename.ext")
    Response.write("Your File was saved on the server...")
    End If
    end sub
    </script>
    </HEAD>
    <BODY>
    <FORM method="post" encType="multipart/form-data">
    <input id="MyInputFile" type="file" name="MyInputFile" runat="server">
    <input type="submit" value="Submit">
    </FORM>
    </BODY>
    </HTML> [/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]در زير به شرح و توضيح برنامه بالا می پردازيم:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [SIZE=2][FONT=Arial][B]کدهای مربوط به طرف Client[/B]
    به دليل آنکه در اين قسمت، ارسال اطلاعات به سرور را داريم، بايد کدهای مربوطه درون يک فرم قرار گيرند. اما لازم است که ويژگی encType آن فرم را به صورت زير مقدار دهی کنيم، زيرا در غير اينصورت فايل انتخاب شده توسط کاربر به سرور ارسال نخواهد شد:[/FONT][/SIZE]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]encType="multipart/form-data"[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]در HTML کنترلی وجود دارد که وظيفه دريافت نام فايل و ارسال آن به سرور را عهده دار می باشد:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]<input id="MyInputFile" type="file" name="MyInputFile" runat="server">[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]توجه کنيد که اين کنترل را به صورت يک سرور کنترل در می آوريم تا بتوانيم در ASP.NET از توانايی های آن استفاده نماييم و به همين دليل ويژگی runat="server" را به کنترل مربوطه اضافه کرده ايم. بنابراين کد مربوط به قسمت Client به صورت زير خواهد بود:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]<body>
    <form method="post" encType="multipart/form-data">
    <INPUT id="MyInputFile" type="file" name="MyInputFile" runat="server">
    <input type="submit" value="Submit">
    </form>
    </body> [/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [SIZE=2][FONT=Arial][B]کدهای مربوط به طرف Server[/B]
    اين قسمت کدهايی را شامل می شود که برای ذخيره کردن فايل بر روی سرويس دهنده مورد استفاده قرار می گيرند.همانطور که گفته شد شئ مربوط به دريافت نام فايل را به صورت سرور کنترل قرار داديم تا بتوانيم از خصوصيات آن در سرور استفاده کنيم (در اينجا نام آنرا MyInputFile درنظر گرفته ايم). يکی از خصوصيات اين شئ، شئ PostedFile می باشد که به فايل ارسالی توسط کاربر اشاره می کند. اين شئ نيز شامل متدی است که اقدام به ذخيره فايل می کند. بنابراين قبل از ذخيره کردن بايد مطمئن شد که آيا شئ PostedFile به چيزی اشاره می کند و يا اينکه تهی است. برای اين منظور کد مربوط به ذخيره سازی را در شرط زير قرار می دهيم:[/FONT][/SIZE]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]If Not (MyInputFile.PostedFile Is Nothing) Then[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]و درصورت صحيح بودن شرط، اقدام به ذخيره سازی می نماييم. متد SaveAs شئ PostedFile دارای پارامتری است که محل و نام فايلی که قرار است بر روی سرور ذخيره شود را مشخص می کند. در انتها نيز پيغامی مبنی بر اينکه فايل با موقيت ذخيره شده است را به کاربر می دهيم.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]Response.write("Your File was saved on the server successfuly...")[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]بنابراين کد طرف سرور به صورت زير خواهد بود:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2]<script language="vb" runat="server">
    sub page_load(s as object,e as EventArgs)
    If Not (MyInputFile.PostedFile Is Nothing) Then
    MyInputFile.PostedFile.SaveAs("c:\filename.ext")
    Response.write("Your File was saved on the server...")
    End If
    end sub
    </script> [/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [FONT=Arial][SIZE=2][/SIZE][/FONT]
    [SIZE=2][FONT=Arial][B]چند نکته[/B]
    ديگر خصوصيات شئ PostedFile به صورت زير است:
    • ContentLength: به اندازه فايل ارسالی اشاره ميکند.
    • ContentType: MIME فايل ارسالی را مشخص می کند که در تشخيص نوع فايل دريافتی کمک می کند.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial]
    (بعضی از انواع رايج MIME عبارت اند از : text/plain ، image/gif ، image/jpeg ، audio/mpeg ، application/msword ، application/octed-stream ، video/mpeg ، audio/wav و...)
    • FileName: نام فايل و مسير آن در کامپيوتر شخص کاربر را معين می کند.(مانند C:\images\personal\myface.jpg)
    • InputStream: يک شئ stream که به فايل upload شده اشاره می کند و آنرا برای خواندن محتوايش آماده می سازد.

    [/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]يک نکته مهم[/B]
    توجه کنيد که به طور پيش فرض طول داده های ارسالی در يک request حداکثر 4096 بايت (يا همان 4 kb ) می باشد. بدين معنی که يک فايل ارسالی حداکثر می تواند 4 kb باشد. برای اينکه اين مقدار را به مقدار لازم و مورد نياز افزايش دهيد بايد در فايل web.config ويا machine.config در قسمت <system.web> در صورتيکه قسمت زير موجود نيست آنرا اضافه کنيد[/FONT][/SIZE]
    [FONT=Arial][SIZE=2]<httpRuntime maxRequestLength="1000000"/>[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]ودر صورت وجود مقدار maxRequestLength را به مقدار دلخواه تنظيم کنيد. اين مقدار بر حسب بايت می باشد. در مثال بالا مقدار ماکزيمم فايل ارسال يک ميليون بايت (حدود 1 MGB) می باشد. به عنوان نمونه يک فايل web.config که فقط نياز فوق را برآورده سازد به صورت زير خواهد بود:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]Configuration file : web.config
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration >
    <system.web>
    <httpRuntime maxRequestLength="1000000" />
    </system.web>
    </configuration> [/SIZE][/FONT]
    </TD></TR></TBODY></TABLE>

  5. #15
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post Namespace چيست؟

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][B]ارائه تعريف و مفهوم Namespace با اشاره به namespaceهای موجود در چارچوب دات نت و نحوه بکارگيری و تعريف آنها در برنامه.[/B] <!--[URL="http://www.mycomputer.ir/index/content/view/486/51/#continue"]ادامه مقاله...[/URL] [/SIZE]

    [SIZE=2]--><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/SIZE]

    </TD></TR></TBODY></TABLE>

    [SIZE=2]<HR>[/SIZE]<TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[SIZE=2]يک نکته مهم که در زمان استفاده از NET Framework. بايد به آن توجه داشت آن است که فضانام (namespace يا نامکده) ها در ساختمان برنامه کاربردی قرار دارند. فضانام يک طرح نامگذاری منطقی برای گروه بندی کلاس های مرتبط است. اين طرح مانع از آن می شود تا کلاس هايی که برای متدها و خصوصيات از يک شناسه يکسان استفاده می کنند تداخل داشته باشند.[/SIZE]
    [SIZE=2]مثلا NET Framework. برای گروه بندی تايپ ها به مقوله های منطقی عملکرد، از قبيل چارچوب برنامه کاربردی ASP.NET، از يک طرح نامگذاری سلسله مراتبی استفاده می کند. ابزارهای طراحی از فضانام ها با هدف تسهيل مرور و ارجاع تايپ ها در برنامه بهره برداری می کنند. مثلا فرض کنيد در حال نوشتن کد زير هستيد:[/SIZE]

    [SIZE=2]Public Class NewClass[/SIZE]
    [SIZE=2][Procedures and [/SIZE][SIZE=2]Functions][/SIZE]
    [SIZE=2]End Class[/SIZE]

    [SIZE=2]Public Class NewClass[/SIZE]
    [SIZE=2][Procedures and Functions][/SIZE]
    [SIZE=2]End Class[/SIZE]

    [SIZE=2]اين کد به خطا منجر می شود چون کامپايلر راهی برای تشخيص کلاس ها از يکديگر ندارد. برای غلبه بر اين مشکل می توان از يک فضانام استفاده کرد که اجازه می دهد دو کلاس همنام در صفحه با هم وجود داشته باشند. قطعه برنامه زير تعريف اين دو کلاس در فضانام های منحصر بفرد را نشان می دهد:[/SIZE]
    [SIZE=2]Namespace One[/SIZE]
    [SIZE=2]Public Class NewClass[/SIZE]
    [SIZE=2][Procedures and Functions][/SIZE]
    [SIZE=2]End Class[/SIZE]
    [SIZE=2]End Namespace[/SIZE]

    [SIZE=2]Namespace Two[/SIZE]
    [SIZE=2]Public Class NewClass[/SIZE]
    [SIZE=2][Procedures and Functions][/SIZE]
    [SIZE=2]End Class[/SIZE]
    [SIZE=2]End Namespace[/SIZE]

    [SIZE=2]در اين کد برخوردی بين دو کلاس با نام NewClass وجود ندارد چون هر کدام در يک فضانام جداگانه قرار داده شده است. کلاس اول را می توان با استفاده از ترکيب One.NewClass صدا زد، حال آنکه کلاس دوم را می توان با استفاده از ترکيب Two.NewClass صدا زد.[/SIZE]
    [SIZE=2]شما می توانيد در فضانام های خود از يک ساختار سلسله مراتبی استفاده کنيد. قرار دادن اشياء مشابه تحت زيرعنوانها در يک فضانام مشترک تشخيص هدف فضانام را آسانتر می کند، و در عين حال باعث می شود برنامه به مراتب شئ گراتر شود.[/SIZE]
    [SIZE=2]برای توضيح فضانام می توان ساختار فايل و دايرکتوری (کشو، فولدر) در يک کامپيوتر را در نظر گرفت. در اين مثال کلاس ها به مثابه فايل ها و فضانام ها مانند دايرکتوری ها هستند. بديهی است همانگونه که می توانيم دايرکتوريهای تو در تو داشته باشيم، فضانام ها هم در حاليکه کلاس ها را در خود جای داده اند می توانند بصورت تو در تو باشند.[/SIZE]
    [SIZE=2]فضانام ها در ساخت برنامه های کاربردی ASP.NET نقش مهمی ايفا می کنند. خوشبختانه لازم نيست برای همه اشيايی که می توانند به وسيله صفحات ASP.NET مورد استفاده قرار بگيرند سيستم طبقه بندی فضانام ايجاد کنيد. مايکروسافت اين مساله را برای شما حل کرده است. دو فضانام ريشه، و فضانامهای فرزند آنها را می توان وارد صفحات ASP.NET خود کرد. اولی System ناميده می شود، و دومی Microsoft نام دارد. اين فضانامها با جزئيات بيشتر در ادامه مورد بحث قرار گرفته اند.[/SIZE]
    [SIZE=2][B]فضانام System[/B][/SIZE]
    [SIZE=2]فضانام System فضانام اصلی برای ساخت ASP.NET و همه برنامه های کاربردی ديگر مبتنی بر NET Framework. است. هر چيزی که در برنامه کاربردی شما قابل انجام باشد از طريق فضانام System کنترل می شود. به عنوان مثال کنترل آرايه، عمليات رياضی، و تبديل نوع داده ها از طريق فضانام System و فضانامهای فرزند آن اداره می شوند. ۹ فضانام پيش فرض (فضانام System و ۸ فرزند آن) وجود دارند که به صورت خودکار به صفحات ASP.NET اضافه می شوند:[/SIZE]
    [SIZE=2]• System[/SIZE]
    [SIZE=2]• System.ComponentModel.Design[/SIZE]
    [SIZE=2]• System.Data[/SIZE]
    [SIZE=2]• System.Drawing[/SIZE]
    [SIZE=2]• System.Web.SessionState[/SIZE]
    [SIZE=2]• System.Web[/SIZE]
    [SIZE=2]• System.Web.UI[/SIZE]
    [SIZE=2]• System.Web.UI.WebControls[/SIZE]
    [SIZE=2]• System.Web.UI.HTMLControls[/SIZE]

    [SIZE=2]هشت فضانام (بجز فضانام System) در زمان ساخت Visual Studio.NET يا VS.NET بطور خودکار به صفحات ASP.NET وارد می شوند. اين فضانام ها در زير به اختصار شرح داده شده اند.[/SIZE]
    [SIZE=2]• System.ComponentModel.Design: دربرگيرنده کلاس هايی است که می توان از آنها برای طراحی پشتيبانی سفارشی اجزا و زمان طراحی و دسترسی به سرويس های تامين شده توسط معماری NET Framework. استفاده کرد.[/SIZE]

    [SIZE=2]• System.Data: امکان دسترسی به کلاس ها و رابطهايی را فراهم می کند که معماری ADO.NET را برای دسترسی به داده های عمومی تشکيل می دهند.[/SIZE]

    [SIZE=2]• System.Drawing: دربرگيرنده کلاس ها و رابطهايی است که عملکرد گرافيکی اوليه را تامين می کنند. فضانام System.Drawing نيز از طريق فضانام System.Drawing.Drawing2D و System.Drawing.Imaging عملکرد پيشرفته تری فراهم می کند.[/SIZE]

    [SIZE=2]• System.Web: کلاس ها و رابطهايی تامين می کند که ارتباط مرورگر/سرويس دهنده را امکان پذير می کنند. اين فضانام دربرگيرنده کلاس HTTPRequest (فراهم کننده اطلاعات وسيعی درباره درخواست HTTP جاری)، کلاس HTTPResponse (فراهم آورنده امکان دسترسی به فرآيندها و يوتيليتی های سمت سرويس [/SIZE]

    [SIZE=2]دهنده) است.[/SIZE]

    [SIZE=2]• System.Web.SessionState: فراهم کننده کلاس ها و متدهايی برای مديريت وضعيت جلسات کاری می باشد.[/SIZE]

    [SIZE=2]• System.Web.UI: فراهم کننده کلاس ها و رابطهايی برای رابط واسط کاربر برنامه کاربردی ASP.NET است که موجب می شوند برنامه کاربردی با سطوح مختلف صفحه، ارتباط برقرار کند. کلاس اصلی اين فضانام، کلاس Page می باشد که دربرگيرنده همه خصوصيتها، متدها، و سازنده های صفحه است. اشياء اصلی Active Server Page زير خصوصيتهايی در کلاس Page هستند: Application ،Response ،Request ،Server و Session.[/SIZE]

    [SIZE=2]• System.Web.UI.HTMLControls: کلاس هايی برای عناصر HTML استاندارد، شامل فرم ها، کنترل های ورودی، آنکور، جداول، قسمتهای متنی، و غيره فراهم می کند. اين کنترلها همانند تگهای عادی HTML هستند با اين تفاوت که داری دو صفت runat="server" و id="[I]controlname[/I]" می باشند.[/SIZE]

    [SIZE=2]• System.Web.UI.HTMLControls: برای کنترلهای سرويس دهنده ای که شبيه کنترلهای HTML هستند ولی انعطاف پذيری بيشتر و عملکرد پيچيده تری دارند کلاس هايی را تامين می کند.[/SIZE]


    [SIZE=2]برخی فضانام های مهم و پرکاربرد ديگر به شرح زير می باشند.[/SIZE]
    [SIZE=2]• System.IO: دربرگيرنده رابطها و کلاس هايی است که امکان خواندن و نوشتن همگام و غيرهمگام فايل ها و جريانهای داده را فراهم می کنند.[/SIZE]

    [SIZE=2]• System.Data.OleDb: امکان دسترسی به کلاس ها و رابطهای مخصوص دسترسی به يک منبع داده از طريق ADO را فراهم می کند.[/SIZE]

    [SIZE=2]• System.Data.SqlClient: امکان دسترسی به کلاس ها و رابطهای مخصوص دسترسی به داده های خاص Microsoft SQL Server از طريق ADO را فراهم می کند.[/SIZE]

    [SIZE=2]• System.Web.Security: امکان دسترسی به کلاسها و رابطهای مخصوص امنيت برنامه کاربردی ASP.NET را فراهم می کند. دستيابی به رمزنگاری، مجوزها، و تنظيمات خط مشی برنامه کاربردی در اين فضانام قرار می گيرند.[/SIZE]

    [SIZE=2]• System.XML: امکان دسترسی به کلاسها و رابطهای مخصوص پردازش اسناد XML را فراهم می کند.[/SIZE]


    [SIZE=2][B]فضانام Microsoft[/B][/SIZE]
    [SIZE=2]علاوه بر فضانام System که در چارچوب NET. يافت می شود، مايکروسافت چند فضانام اضافه کرده است که برای زبان برنامه سازی ای که می خواهيد از آن در برنامه کاربردی خود استفاده کنيد عملکرد لازم را تامين می کنند. ممکن است شما بصورت مستقيم با اين فضانام کاری نداشته باشيد.[/SIZE]
    [SIZE=2]• Microsoft.VisualBasic: اين فضانام محتوی CLR يا زمان اجرای Visual Basic.NET است. از اين زمان اجرا با زبان Visual Basic.NET استفاده می شود. اين فضانام همچنين دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان ويژوال بيسيک پشتيبانی می کنند.[/SIZE]

    [SIZE=2]• Microsoft.CSharp: اين فضای نام دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان #C پشتيبانی می کنند.[/SIZE]

    [SIZE=2]• Microsoft.JScript: اين فضای نام دربرگيرنده کلاس هايی است که از کامپايل و توليد کد با استفاده از زبان JScript پشتيبانی می کنند.[/SIZE]

    [SIZE=2]• Microsoft.Win32: کلاسها و رابطهای مورد نياز برای کار با کليدها و hiveهای رجيستری را تامين می کند.[/SIZE]


    [SIZE=2]با وجود آنکه فضانام ها از قبل تامين می شوند، می توانيد برای استفاده از برنامه کاربردی ASP.NET فضانام های خود را ايجاد کنيد. برای هر کلاس ايجاد شده توسط سازنده يک فضانام توليد می شود.[/SIZE]
    [SIZE=2][B]استفاده از فضانام ها در صفحات ASP.NET[/B][/SIZE]
    [SIZE=2]دو راه برای افزودن فضانام به برنامه کاربردی ASP.NET وجود دارد. از شبه دستور (Directive) صفحه Import@ برای صفحات ASPX و از کلمه کليدی Imports برای افزودن فضانام به برنامه codebehind مربوطه در ويژوال بيسيک استفاده می شود و برای زبان #C از دستور using استفاده می گردد. قطعه برنامه زير ترکيب نحوی برای افزودن فضانام System.Web.UI.WebControls به صفحه ASP.NET شما است.[/SIZE]
    [SIZE=2]<%@ Import namespace = "System.Web.UI.WebControls" %>[/SIZE]
    [SIZE=2]همين فضانام را در قسمت codebehind بصورت زير به برنامه اضافه می کنيم.[/SIZE]
    [SIZE=2]Imports System.Web.UI.WebControls ([I]vb.net[/I])[/SIZE]
    [SIZE=2]using System.Web.UI.WebControls; ([I]C#[/I])[/SIZE]
    [I][SIZE=2]( به تفاوت Import و Imports دقت کنيد )[/SIZE][/I]
    [SIZE=2]در صورتيکه می خواهيد چند فضانام را به صفحه ASP.NET خود و يا صفحه codebehind اضافه کنيد بايد هرکدام را جداگانه اضافه کنيد. بعنوان مثال، برای افزودن فضانام System.Web.UI.HTMLControls به صفحات با فضانام های موجود، درست بعد از آخرين عبارت مهم به خط بعد برويد و Imports System.Web.UI.HTMLControls را اضافه کنيد. به محض آنکه .Imports System را تايپ کنيد، VS.NET فهرستی از فضانام ها را ظاهر می کند، و می توانيد به سادگی فضانام مورد نظر را با ماوس برگزينيد. امتياز اين فهرست آن است که مجبور نيستيد همه فضانام های NET. را از حفظ بدانيد، بلکه می توانيد به آسانی از فهرست انتخاب کنيد. اين ويژگی با عنوان Intellisense شناخته می شود. برای صفحات ASP.NET از اين ترکيب استفاده کنيد:[/SIZE]
    [SIZE=2]<%@ Import namespace = "System.Web.UI. WebControls" %>[/SIZE]
    [SIZE=2]<%@ Import namespace = "System.Web.UI.HTMLControls" %>[/SIZE]
    [SIZE=2]<%@ Import namespace = " [I]namespace name[/I]" %>[/SIZE]
    [SIZE=2]... [/SIZE]
    [SIZE=2]برای صفحات codebehind ويژوال بيسيک از اين ترکيب استفاده کنيد:[/SIZE]
    [SIZE=2]Imports System.Web.UI.WebControls[/SIZE]
    [SIZE=2]Imports System.Web.UI.HTMLControls[/SIZE]
    [SIZE=2]Imports [I]namespace[/I][/SIZE]
    [SIZE=2]... [/SIZE]

    </TD></TR></TBODY></TABLE>

  6. #16
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post معماری فايل Asp.net

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][FONT=Arial][B]آشنايی با انواع فايل و پسوندهای آنها در برنامه های کاربردی ASP.NET.[/B] <!--[URL="http://www.mycomputer.ir/index/content/view/484/51/#continue"]ادامه مقاله...[/URL]

    --><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/FONT][/SIZE]</TD></TR></TBODY></TABLE>[SIZE=2]
    [FONT=Arial]<HR>[/FONT][/SIZE]<TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[FONT=Arial][SIZE=2]در عمل و ساختار برنامه های کاربردی ASP.NET از فايل های زيادی استفاده می شود. در ادامه فايل های تشکيل دهنده برنامه کاربردی ASP.NET را فهرست و نقش آنها در برنامه را خواهيم ديد.[/SIZE][/FONT]
    [SIZE=2][FONT=Arial][B]asax.[/B]
    اين پسوند برای فايل خاصی بنام Global.asax استفاده می گردد. اين نوع فايل محتوی ترکيب نحوی رويداد برای نوشتن رويدادهای سطح برنامه کاربردی ASP.NET است. آن را می توان در دايرکتوری ريشه يک برنامه کاربردی ASP.NET پيدا کرد.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]ascx.[/B]
    اين نوع فايل نمايانگر يک کنترل تعريف شده توسط برنامه نويس ASP.NET است (User Control). صفحات ASP.NET عموما از کنترلهای سرويس دهنده (کادرهای متنی، کادرهای فهرست، دکمه ها و غيره) تشکيل شده اند که عناصر اوليه صفحه وب را می سازند. ASP.NET درست مانند برنامه سازی مرسوم ويژوال بيسيک امکان ايجاد کنترلهای تعريف شده توسط برنامه نويس را فراهم می کند. اين کنترل ها معمولا از ترکيب کنترل های سرويس دهنده و برنامه سازی برای انجام يک وظيفه يا مجموعه ای از وظايف بخصوص تشکيل می شوند.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]asmx.[/B]
    اين پسوند برای سرويس های XML وب استفاده می گردد. اين نوع فايل از سوی آن دسته از سرويس های وب ميزبان مورد استفاه قرار می گيرد که از راه دور يا بطور محلی در معرض برنامه های کاربردی NET. هستند. سرويس وب موجوديتی قابل برنامه ريزی است که برای برنامه کاربردی يک عنصر خاص کارکرد معينی را تامين می کند.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]aspx.[/B]
    از اين پسوند که اصلی ترين پسوند ASP.NET است برای فرم های وب و صفحات معمولی ASP.NET استفاده می گردد.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]axd.[/B]
    اين نوع فايل مربوط به tracing برنامه کاربردی ASP.NET است و به ASP.NET اجازه می دهد تا به جمع آوری اطلاعات درباره درخواستهای HTTP برای يک برنامه کاربردی بپردازد.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]vsdisco.[/B]
    اين نوع فايل XML، لينک ها را در معرض منابع ديگری قرار می دهد که سرويس وب را توصيف می کنند. از فايل VSDISCO برای کشف سرويس های وب استفاده می شود که بطور عمومی موجود هستند.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]htm.[/B]
    فايل های معمولی از نوع HTML را در برمی گيرند.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]xml.[/B]
    اين نوع سند XML مخصوص استفاده در برنامه های کاربردی ASP.NET است. اين فايل XML برای مقاصد مختلفی استفاده می شود از جمله نگهداری اطلاعات برنامه کاربردی و نيز مجموعه داده های بازگشته از بانک اطلاعاتي.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]vb.[/B]
    اين فايل شامل کد ويژوال بيسيک است که آن نيز به نوبه خود به يک فايل ASPX يا ASCX به ارث می رسد و کليه عمليات برنامه ای مربوط به صفحات ASP.NET در آن قرار می گيرد. اين نوع فايل اصطلاحا code-behind نيز ناميده می شود.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]cs.[/B]
    همانند پسوند vb. است اما بجای کد ويژوال بيسيک حاوی کد زبان #C است.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial][B]config.[/B]
    پسوند فايل web.config است.اين نوع فايل بر يک فايل پيکربندی دلالت دارد يعنی فايلی که از آن برای تعيين صفات مشخصه مختلف برنامه کاربردی استفاده می شود. اين صفات مشخصه شامل تنظِمات اشکال زدايي(debuging)، تائيد امنيت(authentication)، کارکرد پيگيری (tracing)، نگهداری جلسه کاری (state management) و عمومی سازی (globalization & localization) می شوند.[/FONT][/SIZE]
    </TD></TR></TBODY></TABLE>

  7. #17
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post Smart Navigation چيست؟

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][FONT=Arial][B]اين مقاله به توضيح مفهوم smart navigation(هدايت هوشمندانه!) و چگونگى استفاده از آن مى پردازد.[/B] <!--[URL="http://www.mycomputer.ir/index/content/view/483/51/#continue"]ادامه مقاله...[/URL] [/FONT][/SIZE]

    [SIZE=2][FONT=Arial]--><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/FONT][/SIZE]</TD></TR></TBODY></TABLE>

    [SIZE=2][FONT=Arial]<HR>[/FONT][/SIZE]

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[SIZE=2][FONT=Arial][B]مفهوم Smart Navigation و فوايد آن[/B][/FONT][/SIZE]
    [SIZE=2][FONT=Arial]Smart Navigation يكى از بهترين ابزارهاى جديدى است كه ASP.NET آنرا عرضه كرده است. اين ابزار جديد باعث شده ظاهر برنامه هاى وب و احساسى كه نسبت به آن وجود دارد شباهت بيشترى با برنامه هاى عادى و نوشته شده براى ويندوز پيدا كند.[/FONT][/SIZE]
    [FONT=Arial][SIZE=2]يكى از موانع بزرگ برنامه هاى تحت وب به معمارى و ساختار HTTP برمى گردد. جاييكه مجبوريم اطلاعات جمع آورى شده در سمت مشترى را به سرور بازگردانيم. به همين دليل مجبور به رسم مجدد و كامل صفحه اى كه قبلا ديده ايم مى باشيم، كه اين نه تنها باعث مى شود يك حالت فلش مانند در اين رفت و برگشت و رسم مجدد رخ دهد، بلكه براى صفحه هاى بلند كه براى ديدن تمام صفحه نيازمند بهscrolling هستيم، باعث مى شود كه ديدمان را به اول صفحه انتقال دهد، چيزى كه هم شايد دلخواه ما نباشد و هم اينكه ممكن است باعث سردرگمى كاربر گردد. همچنين اين فرآيند باعث تغيير فوكوس كنترل ها و بسيارى از اتفاقات ديگرنيز مى شود.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]در برنامه هاى عادى ويندوز ما به طور معمول فقط قسمت هايى از صفحه را به روز مى كنيم كه تغييرى در آن ايجاد شده باشد يا تحت تاثير چيزى قرار گيرند و اين بدون نياز به تغيير در كل برنامه مى باشد (مثلا فقط يك عضو به listbox ما اضافه مى شود. بدون تغيير و رسم مجدد فرم برنامه).[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]Smart Navigation يا به عبارتى هدايت هوشمندانه اين توانايى موجود در برنامه هاى ويندوز را براى برنامه هاى تحت وب فراهم مى كند! اما قبل از هر چيز بايد بدانيد كه اين ابزار فقط براى IE مى باشد و آن هم نسخه هاى ۵ به بالاتر آن. با اين وجود شما مى توانيد Smart Navigation را فعال يا غيرفعال سازيد، بدون آنكه تاثيرى در برنامه شما بگذارد. حتى اگر شما در پروژه تان مرورگرهاى محتلفى را مدنظر قرار داده باشيد، مى توانيد Smart Navigation را فعال سازيد. در اين صورت ASP.NET نوع مرورگر را تشخيص داده و Smart Navigation را فقط براى مرورگرهاى پشتيبانى شده فعال مى سازد.[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]چهار مورد برجسته اى كه Smart Navigation فراهم مى كند عبارتند از:[/SIZE][/FONT]
    [FONT=Arial][SIZE=2]• صفحه در ميان درخواست ها يك نمايش ممتد را داراست و به عبارتى حالت فلش زدن به خود نمى گيرد.[/SIZE][/FONT]
    [SIZE=2][FONT=Arial]• موقعيت Scroll را حفظ مى كند.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial]• فوكوس عضو دارنده فوكوس را نگه مى دارد.[/FONT][/SIZE]
    [SIZE=2][FONT=Arial]• آخرين صفحه درون تاريخچه (History) نگهدارى مى شود.[/FONT][/SIZE]
    [FONT=Arial][SIZE=2]اين ابزار در حالت واقع گرايانه براى برنامه هايى كه ارسال به عقب(!) Postback فراوانى دارند طراحى شده است ولى با توجه به اين نكته كه محتواى صفحه نبايد زياد تغيير نكند. احتمالا بنا به دلايل كارايى و نه اينكه در تغييرات زياد ايرادى بهم بزند - مترجم. شايد يك چيز شگفت آور در مورد اين ابزار اين باشد كه شما در حقيقت نياز به نوشتن هيج كد و برنامه اى نداريد.[/SIZE][/FONT]
    [SIZE=2][FONT=Arial][B]نحوه استفاده[/B][/FONT][/SIZE]
    [SIZE=2][FONT=Arial]Smart Navigation درون هدايت كننده صفحه (Page directive : <%@ %>)، براى تنظيم يك صفحه و درون web.config براى تنظيم كل برنامه استفاده مى شود. براى تنظيم در Page Directive به صورت زير عمل كنيد:[/FONT][/SIZE]
    [FONT=Arial][SIZE=2]<%@ Page SmartNavigation=true %>[/SIZE][/FONT]

    [FONT=Arial][SIZE=2]و براى تنظيم در web.config از ساختار زير استفاده نماييد: [/SIZE][/FONT][FONT=Arial][SIZE=2]<CONFIGURATION>[/SIZE][/FONT]
    [SIZE=2][FONT=Arial]<SYSTEM.WEB>[/FONT][/SIZE]
    [SIZE=2][FONT=Arial]
    [/FONT][/SIZE]</P>[SIZE=2][FONT=Arial]</SYSTEM.WEB>[/FONT][/SIZE]
    [SIZE=2][FONT=Arial]</CONFIGURATION>[/FONT][/SIZE]

    [FONT=Arial][SIZE=2]روش كار اينگونه است كه كل صفحه بدرون يك فريم دورنى مخفى (hidden IFrame) بارگذارى (load) مى شود و سپس فقط قسمت هاى تغيير كرده دوباره رندر(render) مى شوند.[/SIZE][/FONT]

    </TD></TR></TBODY></TABLE>

  8. #18
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post ويژگی های امنيتی Asp.net

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][B]بررسی مختصر مساله امنيت در برنامه های ASP.NET در نحوه ارتباط آن با کاربر[/B] <!--[URL="http://www.mycomputer.ir/index/content/view/481/51/#continue"]ادامه مقاله...[/URL] [/SIZE]

    [SIZE=2]--><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/SIZE]</TD></TR></TBODY></TABLE>

    [SIZE=2]<HR>[/SIZE]<TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[SIZE=2][B]مقدمه[/B][/SIZE]
    [SIZE=2]امنيت يکی از مسائل اصلی برای توسعه دهندگان و معماران برنامه های کاربردی است. همانطور که تعداد بيشماری از سايتهای وب با انواع امنيت ها مورد نياز است، توسعه دهندگان نيز بايد بدانند چگونه با مقوله امنيت کار کنند و چه مدل امنيتی مناسبی برای برنامه های کاربرديشان انتخاب کنند.[/SIZE]
    [SIZE=2]بعضی از سايتهای وب اطلاعات خاصی را از کاربر معمولی دريافت نمی کنند، اما اطلاعات موجود در خود را منتشر می کنند. همانند موتورهای جستجو در حاليکه سايتهای ديگری وجود دارند که نيازمند جمع آوری اطلاعات حساس از کاربرانشان هستند (برای مثال شماره کارت های اعتباری و ديگر اطلاعات شخصی). اين سايتهای وب به پياده سازی امنيت مستحکم تری برای جلوگيری از حمله احتمالی موجوديت های خارجی نيازمندند.[/SIZE]
    [SIZE=2][B]تفاوت جريان امنيتی ASP و ASP.NET[/B][/SIZE]
    [SIZE=2]جريان امنيتی صفحات ASP.NET از جريان امنيتی ASP کلاسيک متفاوت است. در ASP، بصورت پيش فرض IIS خود را به عنوان يک کاربر معتبر معرفی می نمايد در حاليکه در ASP.NET توسعه دهنده کنترل بيشتری بر روی تنظيم امنيت در سطوح مختلف را دارا می باشد.[/SIZE]
    [B][SIZE=2]عمليات اساسی امنيتی ASP.NET[/SIZE][/B]
    [SIZE=2][B]Authentication:[/B] عبارت است از روند اعتباردهی هويت يک کاربر به پذيرفتن يا رد کردن يک درخواست، يعنی دريافت گواهی نامه ها (برای مثال نام کاربر و کلمه عبور) از کاربران و اعتبار دهی آن. بعد از اينکه هويت بررسی شد و معتبر تشخيص داده شد، کاربر بصورت قانونی مطرح می شود و درخواست های دسترسی به منابع انجام می شود. بصورت ايده آل درخواست های آتی همان کاربر تا هنگام خروج از سيستم مرتبط با روند Authentication نيست.[/SIZE]
    [SIZE=2][B]Authorization:[/B] عبارت است از روند تضمين نمودن اينکه کاربران با هويت های معتبر مجاز به دسترسی به منابع مشخصی هستند.[/SIZE]
    [SIZE=2][B]Impersonation:[/B] اين روند يک برنامه کاربردی را قادر می سازد تا به نوبت هويت کاربر و درخواستهای بعدی او برای ساير منابع را تضمين کند. دسترسی به منابع متناسب با هويت کاربری که جايگزين شده است (Impersonated) تاييد يا رد می گردد. به عبارت ديگر Impersonation يک پروسه سرويس دهنده (Server Process) را قادر می سازد تا با استفاده از امنيت گواهی نامه سرويس گيرنده ها (Client) اجرا شود.[/SIZE]

    </TD></TR></TBODY></TABLE>

  9. #19
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post نکاتی جهت بهينه سازی برنامه های Asp.net

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][B]در اين مقاله با نکاتی آشنا می شويد که جهت بهينه سازی و افزايش کارآيی و سرعت برنامه های ASP.NET لازم می باشند.[/B] <!--[URL="http://www.mycomputer.ir/index/content/view/480/51/#continue"]ادامه مقاله...[/URL] [/SIZE]

    [SIZE=2]--><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/SIZE]

    </TD></TR></TBODY></TABLE>

    [SIZE=2]<HR>[/SIZE]<TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[SIZE=2]اگرچه ASP.NET مدل جديدی از برنامه نويسی تحت وب می باشد و آمده است که نواقص و کمبودهای قبلی را برطرف نموده و به کارآيی برنامه های تحت وب بيافزايد، اما شما همچنان نياز داريد که جهت کارآيی و بهينه بودن برنامه هايتان نکاتی را رعايت کنيد. اين نکات جهت افزايش کارآيی، سرعت و صرفه جويی در مصرف منابع بر روی سرور است. جهت دستيابی به ليست کامل و مفصل اين نکات به [/SIZE][URL="mk:@MSITStore:D:\taimaz\1240\IranASP.NET.chm::/msdn.microsoft.com/library/default.asp@url=_2flibrary_2fen-us_2fcpguide_2fhtml_2fcpcondevelopinghigh-performanceaspnetapplications.asp"][SIZE=2][COLOR=#009cff]اين آدرس در سايت MSDN[/COLOR][/SIZE][/URL][SIZE=2] مراجعه نمائيد. چکيده برخی از اين نکات بشرح زير است:[/SIZE]
    [SIZE=2][/SIZE]

    [SIZE=2][B]Session State را در صورت عدم نياز حتما غيرفعال نمائيد.[/B][/SIZE]
    [SIZE=2]بصورت پيش فرض وضعيت Session State برای هر صفحه فعال است. اگر مطمئن هستيد که در آن صفحه از متغيرهای Session استفاده نمی کنيد، حتما آن را در دايرکتيو Page بالای صفحه تان با قراردادن آن برابر False غيرفعال کنيد تا بدين ترتيب منابع اضافی در سرور مصرف نشود. اگر هم مطمئن هستيد که در کل برنامه يا سايت تان نمی خواهيد از متغيرهای Session استفاده کنيد می توانيد آن را در web.config بطور کلی غيرفعال کنيد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]از رفت و برگشت های زياد از حد پرهيز کنيد.[/B][/SIZE]
    [SIZE=2]فرم های وب جهت پردازش بايد به سرور ارسال شده و نتيجه پردازش برگشت داده شود. به اين عمل يک رفت و برگشت يا round trip می گويند. از آنجا که اين رفت و برگشت ها برای سرور ايجاد بار پردازشی و ترافيک می کنند، سعی کنيد بگونه ای از کنترلهای وب استفاده کنيد که حداقل رفت و برگشت را داشته باشيد و تا جائيکه می توانيد از پردازش های سمت کاربر برای کارهای ساده استفاده کنيد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]از کنترل های سرور با احتياط استفاده کنيد.[/B][/SIZE]
    [SIZE=2]اگرچه کنترلهای سرور دارای قابليتهای بسيار زياد و جالبی می باشند اما اين قابليتها ناشی از اجرای آنها بر روی سرور است. از آنجا که هر اجرائی بر روی سرور ايجاد بار اضافی در سرور می کند لذا در استفاده از اين نوع کنترلها خست بخرج دهيد و اگر جائی می توانيد از کنترلهای معمولی HTML استفاده نمائيد حتما اين کار را بکنيد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]از Page.IsPostback استفاده کنيد.[/B][/SIZE]
    [SIZE=2]استفاده از Page.IsPostback سبب کاهش رفت و برگشت های (round trip) اضافی می گردد. همچنين به شما کمک می کند که تشخيص دهيد چه موقع نياز به توليد داده جديد برای يک صفحه داريد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]تا آنجائيکه ممکن اس[/B][/SIZE][SIZE=2][B]ت از View State استفاده نکنيد.[/B][/SIZE]
    [SIZE=2]View State هم مانند Session State برای نگهداری اطلاعات و سابقه يک فرم از منابع سرور استفاده کرده و به حجم صفحات اضافه می کند. از طرفی اين حالت بصورت پيش فرض فعال می باشد. لذا در صورتيکه به آن نياز نداريد از آن استفاده نکنيد و حالت آن را غيرفعال نمائيد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]از Strict="true" در صفحات تان استفاده کنيد.[/B][/SIZE]
    [SIZE=2]جهت استفاده از مزايای early binding از عبارت فوق در دايرکتيو Page استفاده کنيد. اين مساله سبب می شود تا شما مجبور شويد تايپ هر متغير را در لحظه تعريف آن متغير بصورت صريح مشخص کنيد. همانطور که می دانيد درVB.NET و JScript.NET جهت پوشش برنامه های ASP کلاسيک که بدون تايپ بود، می توانيد تايپ يک متغير را در لحظه تعريف آن مشخص نکرده بلکه بعدا هنگام انتساب مقادير به آن، اين کار (تعيين تايپ) بصورت خودکار انجام شود. اين مساله سبب صرف منابع اضافی در سرور می گردد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]از Stored Procedure استفاده کنيد.[/B][/SIZE]
    [SIZE=2]اگر از بانک اطلاعاتی در برنامه تان استفاده می کنيد، سعی کنيد که حتما پرس و جوهای (query) خود را به روال های ذخيره شده (stored procedure) بسپاريد. از آنجائيکه اين روال ها برای مراجعه اول کامپايل شده و از آن پس جهت اجرا در اختيار مدير بانک اطلاعاتی (DBMS) قرار می گيرد، نسبت به پرس و جوهای معمولی درون برنامه ای بسيار کاراتر و سريعتر هستند. از طرفی با بهينه سازی خاصی که برای گرداننده (driver) SQLServer در مجموعه دات نت شده است، سرعت اجرای روال های ذخيره شده نسبت به روش های معمولی OLEDB يا ODBC بيش از دو الی سه برابر می باشد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]از Data Reader استفاده کنيد.[/B][/SIZE]
    [SIZE=2]اگر حجم بالائی از داده نداريد يا تنها می خواهيد از بانک اطلاعاتی عمل خواندن را انجام دهيد حتما از Data Reader استفاده کنيد. استفاده از Data Set سبب کندی کار و مصرف بالای منابع می گردد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]از Caching استفاده کنيد.[/B][/SIZE]
    [SIZE=2]Caching شاهکار ASP.NET است. تا آنجائيکه ممکن است از caching استفاده کنيد. استفاده از caching سبب می شود تا از توليد مجدد کد HTML لازم برای يک صفحه تکراری جلوگيری شده و کاربر هم صفحات را خيلی سريعتر دريافت کند.[/SIZE]

    [SIZE=2][B]حالت Debug را غيرفعال کنيد.[/B][/SIZE]
    [SIZE=2]هنگاميکه کار برنامه نويسی شما تمام شده است و زمان استفاده واقعی از برنامه فرا رسيده است، فراموش نکنيد که حالت Debug در کامپايل نهائی برنامه تان را غيرفعال نمائيد.[/SIZE]

    </TD></TR></TBODY></TABLE>

  10. #20
    مدیر بازنشسته
    تاریخ عضویت
    2008/10/14
    سن
    36
    نوشته ها
    3,180

    Post Caching در ASP.NET

    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD colSpan=2>[SIZE=2][B]آشنائی با مفهوم Caching و نحوه استفاده و بکارگيری آن در صفحات ASP.NET[/B] <!--[URL="http://www.mycomputer.ir/index/content/view/479/51/#continue"]ادامه مقاله...[/URL]

    --><!-- Ads --><!-- <TABLE id=Table1 cellSpacing=0 cellPadding=1 align=center border=0> <TR> <TD align=center>[COLOR=#666666]آگهی[/COLOR]</TD></TR> <TR> <TD> [URL="http://senatorha.com/whatever/ads.aspx"][img]http://www.senatorha.com/forum/[/img][/URL]</TD></TR></TABLE> --><!-- Ads -->[/SIZE]</TD></TR></TBODY></TABLE>
    [SIZE=2]<HR>[/SIZE]
    <TABLE class=text cellSpacing=0 cellPadding=2 width="100%" border=0><TBODY><TR><TD vAlign=top>[SIZE=2][B]۱- Caching چيست؟ چگونگی و ضعف آن درASP کلاسيک[/B][/SIZE]
    [SIZE=2]
    عمل Caching در صفحات ASP به منظور كاهش بار و ميزبان و افزايش سرعت دريافت صفحات وب می باشد. بدين ترتيب كه با توجه به دستورالعمل گفته شده، يك نسخه از صفحه درخواستی در ميزبان ايجاد می شود و با توجه به شرايط Caching پس از آن اگر درخواستی برای آن صفحه صورت گرفت، به جای اجرا كردن فايل ASP مربوطه يك كپی از نسخه ايجاد شده در ميزبان به مشتری (Client) فرستاده می شود (همانند عمليات ارسال فايل های HTML به طرف مشتری).[/SIZE]
    [SIZE=2]اما اين عمل در ASP کلاسيک اگرچه در مواردی مفيد بود اما هيچگاه به عنوان يك ابزار كاملا سودمند به آن پرداخته نشد، زيرا فقط با تعيين يك خصوصيت كه همان زمان مورد نظر برای Caching بود، دستورالعمل پايان می يافت و هيچگاه نمی توانستيم شرايطی را اعمال كنيم كه فقط در آن صورت Caching رخ دهد. همچنين قادر نبوديم كه عمليات Caching را برای عناصر خاصی از صفحه تعريف كنيم. بدين ترتيب كارايی اين روش در ASP کلاسيک چندان بالا نبود. اما در ASP.NET ما شاهد يك تحول شگرف در عمليات Caching هستيم بطوريكه ضعف هايی را كه در ASP کلاسيک شاهد آن بوديم در ASP.NET آنها را برطرف شده می يابيم.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]۲- ساختار Caching در ASP.NET چگونه است؟[/B]
    روش مورد استفاده در ASP.NET با ASP کلاسيک تفاوت دارد. شكل كلی آن به صورت زير است: [/SIZE]
    [SIZE=2]<%@ OutputCache Duration = "..." VaryByParam = "..." %>[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2]همانطور كه می دانيد در ASP.NET ما قادر خواهيم بود چندين هدايت كننده ای (<%@ ... %>) را در يك صفحه قرار دهيم. خصوصيات اين هدايت كننده همانطور كه در بالا مشخص شده است Duration و VaryByParam می باشد كه در ادامه مقاله به شرح آن خواهيم پرداخت.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]الف- خصوصيت Duration:[/B]
    اين خصيصه مدت زمان مورد نياز به Caching را به ثانيه تعيين می كند. به مثال زير توجه كنيد. فرض كنيد هدايت كننده Caching مورد نظر به صورت زير باشد: [/SIZE]
    [SIZE=2]<%@ OutputCache Duration = "15" VaryByParam = "none" %>[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2]و صفحه ASP.NET ما شامل هدايت كننده فوق و يك Label و Button باشد. به صورتيكه با فشردن دكمه مورد نظر زمان جاری ميزبان در Label مذبور به نمايش درآيد. پس از اينكه صفحه برای اولين بار نمايش داده شد ( فرض كنيد زمان 21:30:45 را نمايش دهد) پس از آن اقدام به فشردن دكمه موردنظر نماييد. خواهيد ديد كه زمان نمايش داده شده تغيير نخواهد كرد. اين عمل را تا ۱۵ ثانيه ادامه دهيد. پس از آن خواهيد ديد كه زمان نمايش داده شده 21:31:00 خواهد بود. البته مهم اين است كه پس از Download شدن صفحه ۱۵ ثانيه بگذرد و پس از آن هر درخواستی كه انجام گيرد به صورت معمول اجرا خواهد شد و بلافاصله پس از اجرا يك دوره جديد Caching به مدت ۱۵ ثانيه ايجاد خواهد شد. مثلا فرض كنيد پس از ۳۰ ثانيه كه از نمايش 21:30:45 گذشت شما دكمه را فشار دهيد. در آن صورت زمان 21:31:15 به نمايش در خواهد آمد و پس از آن يك Caching جديد به مدت ۱۵ ثانيه برای صفحه ايجاد خواهد شد.[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][B]ب- خصوصيت VaryByParam:[/B]
    اين خصيصه كه از ويژگی های جالب Caching در ASP.NET است، معين كننده اين است كه استفاده از Caching در چه صورت انجام نشود يا به عبارت ديگر اگر پارامترهايی كه به صفحه ASP.NET مورد نظر ارسال می شوند همنام با موارد معين شده در خصوصيت VaryByParam بود، ديگر از Caching قبلی استفاده نكند و صفحه جديد را با توجه به مقادير جديد دوباره اجرا و كد HTML ايجاد شده را به مشتری مورد نظر بفرستد. بعنوان مثال فرض كنيد هدايت كننده Caching به صورت زير باشد: [/SIZE]
    [SIZE=2]<%@ OutputCache Duration = "120" VaryByParam = "name" %>[/SIZE]
    [SIZE=2][/SIZE]

    [SIZE=2]همچنين در نظر بگيريد كه فرم وب مورد نظر دارای دو Label باشد. يكی نشاندهنده زمان جاری ميزبان و ديگری نشاندهنده مقدار پارامتر name كه به اين صفحه ارسال می شود. فرض كنيد مقدار Label زمان در هنگامی كه صفحه برای اولين بار درخواست می شود دارای مقدار 21:22:10 باشد. حال فرض كنيد مدت زمان Caching به پايان نرسيده باشد و ما مجددا تقاضای صفحه مذبور را داشته باشيم. اگر همانند قسمت اول بود، يعنی مقدار خصيصه VaryByParam با none تنظيم شده بود، علی الاصول بايد از صفحه Cache شده استفاده كند. ولی در اينجا شرط ديگری داريم كه در واقع می گويد اگر صفحه با مقدار جديدی از پارامتر name درخواست شد، بايد صفحه را اجرا و از Caching صرف نظر كند. مثلا فرض كنيد پس از ۳۰ ثانيه صفحه مورد نظر به صورت زير درخواست شود: [/SIZE]
    [SIZE=2][/SIZE] [SIZE=2][URL]http://www.iranasp.net/myexample.aspx?name=mahmoud[/URL][/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][/SIZE]

    [SIZE=2]چون اين متغير ارسالی قبلا مقداری نداشته است بنابراين صفحه ASP.NET مورد نظر دوباره اجرا شده و پارامتر ورودی name را نيز مد نظر می گيرد. بنابراين Label ای كه زمان را نشان می دهد به 21:22:40 و Label ای كه مقدار name را نشان می دهد دارای مقدار mahmoud می شود. حال اگر صفحه موردنظر را با همين مقادير پس از ۱۵ ثانيه دوباره درخواست كنيم خواهيم ديد كه همان اطلاعات قبلی را نشان می دهد. توجه كنيد در اين حالت زمان همان مقدار قبلی 21:22:40 را خواهد داشت. بنابراين تغيير مقدار پارامتر مورد نظر در Caching موثر است. حال فرض كنيم پس از ۵ ثانيه كه زمان سيستم ميزبان 21:23:00 خواهد بود صفحه را به صورت زير درخواست كنيم: [/SIZE][SIZE=2][/SIZE] [SIZE=2][URL]http://www.iranasp.net/myexample.aspx?name=mahmoud&student_no=80622121[/URL][/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2]خواهيد ديد كه هيچگونه تغييری مشاهده نخواهد شد. بنابراين متغيرهايی كه در VaryByParam مشخص نشده باشند در اجرای دوباره صفحه ASP.NET تاثيری ندارد.[/SIZE]
    [SIZE=2]توجه كنيد دو خصوصيت ذكر شده با هم OR می شوند. يعنی هر كدام كه شرايط را برقرار كنند باعث انجام عمل مربوطه خواهند شد و برقراری يا عدم برقراری خصوصيت ديگر در اجرای عمل تاثيری ندارد. پس اگر بعد از گذشت ۱۲۰ ثانيه هرگونه تقاضايی شود بدون توجه به پارامترهای ارسالی، صفحه درخواستی مجددا اجرا شده و نتيجه اجرای آن متعاقبا ارسال می گردد. و بالعكس آن يعنی زمانی كه مدت زمان نگهداری Caching به پايان نرسيده باشد و موارد ذكر شده در خصوصيت VaryByParam شرط را برقرار كنند از Caching صرف نظر می كند (مانند مثال قبلی).[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2]دقت کنيد كه شما می توانيد صفحه ASP.NET خود را به تمام پارامترها حساس كنيد. يعنی به جای ذكر تك تك موارد با قرار دادن * برای خصيصه VaryByParam، باعث شويد كه در صورت تغيير هر كدام از پارامترهای ارسالی، صفحه دوباره اجرا گردد. با اين حال توجه كنيد كه اگر در اين حالت هيچ يك از پارامترهای ارسالی تغيير نكند، شرط مورد نظر برقرار نمی شود. حالت مقابل آن none است كه در مثال اول مورد استفاده آن نشان داده شده است.[/SIZE]

    [SIZE=2][B]۳- Caching بخشی از صفحه[/B]
    يكی ديگر از موارد جالب در Caching صفحات وب در ASP.NET اين است كه شما قادر خواهيد بود قسمت خاصی از صفحه را تحت تاثير Caching قرار دهيد. در واقع تكنيك اين كار استفاده از UserControl ها می باشد (فايل های كه پسوند ascx دارند). بدين ترتيب كه شما يك هدايت كننده Caching را در صفحه UserContol خود قرار می دهيد. مثلا فرض كنيد كه صفحه ASP.NET عادی شما فاقد عمل Caching باشد ولی UserControl قرار داده شده در آن شامل Caching به صورت زير باشد: [/SIZE]
    [SIZE=2]<%@ OutputCache Duration = "30" VaryByParam = "none" %>[/SIZE]
    [SIZE=2][/SIZE]
    [SIZE=2]همچنين UserControl ما شامل يك Label كه زمان جاری سيستم ميزبان را نشان ميدهد باشد. همچنين صفحه اصلی ما نيز شامل يك Label زمان باشد. همچنين در هر دو روال Page_Load مربوط به صفحه اصلی و UserControl نسبت دهی زمان سيستم به اين Label ها قرار داده شود. مشاهده خواهيم برای بار اول درخواست صفحه، زمان نمايش داده شده در هر دو Label يكسان است. اما برای بار دوم درخواست در صورتی كه فاصله زمانی دو درخواست كمتر از ۳۰ ثانيه باشد مقدار زمان موجود در Label صفحه اصلی تغيير می كند ولی زمان Label موجود در UserControl تغيير نمی كند. توجه داشته باشيد كه برای درخواست های با فاصله زمانی بيش از ۳۰ ثانيه زمان هر دو يكسان خواهد بود. به هر حال زمان موجود درLabel صفحه اصلی در هر درخواست تغيير می كند.[/SIZE]
    [SIZE=2]بنابراين مشاهده شد كه توسط UserControl ها می توان Caching را فقط در قسمت خاصی از صفحه قرار داد كه اين هم سرعت صفحات را بالا می برد و هم از دوباره كاری جلوگيری می كند. توجه كنيد Caching در UserControl ها می تواند توسط خصوصيت VaryByParam نيز تحت تاثير قرار گيرد كه اين باعث می شود شرايط Caching را گسترده و گسترده تر كرد. بنابراين برعكس ASP کلاسيک كه Caching در آن چندان مورد استفاده قرار نمی گرفت (اگرچه لزوم آن احساس می شد). لزوم استفاده از Caching در بالا بردن سرعت صفحات در ASP.NET به وفور ديده می شود.[/SIZE]
    </TD></TR></TBODY></TABLE>

صفحه 2 از 3 نخستنخست 123 آخرینآخرین

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •