نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: آشنائی با Asp.net 2.0 ( بخش دوم )

  1. #1
    تاریخ عضویت
    Nov 2007
    محل سکونت
    Earth
    نوشته ها
    84
    سپاس ها
    0
    سپاس شده 44 در 27 پست

    آشنائی با Asp.net 2.0 ( بخش دوم )

    در [برای مشاهده لینک ها عضو سایت شوید برای عضویت در سایت بر روی اینجا کلیک کنید] اين مقاله با جايگاه وب در تولد نسل جديدی از برنامه های کامپيوتری موسوم به "برنامه های وب " آشنا شديم . پس از معرفی ASP.NET به عنوان گزينه ای برای پياده سازی برنامه ها و سرويس های وب به برخی از ويژگی های مهم آن اشاره و در ادامه با ضرورت ارائه نسخه جديد ASP.NET آشنا شديم . در اين بخش به بررسی برخی از ويژگی های مهم ASP.NET 2.0 خواهيم پرداخت .
    ارائه امکانات لازم در جهت افزايش بهره وری و کارائی پياده کنندگان
    با توجه به مدل برنامه نويسی declarative، پياده کنندگان برنامه های وب برای نوشتن برنامه های مورد نياز خود ملزم به نوشتن صدها و يا هزاران خط کد نخواهند بود . حجم کد توليد شده در ASP.NET 2.0 نسبت به نسخه قبلی کاهشی معادل 70 درصد را بدنبال خواهد داشت . برای انجام عمليات متداول در يک برنامه کامپيوتری ، می توان از سرويس های آماده شده متعددی استفاده نمود .در جهت تحقق رويکرد استراتژيک فوق ، کنترل های سرويس دهنده متعددی در ASP.NET 1.x ايجاد و با توجه به ضرورت های موجود و دريافت نقطه نظرات پياده کنندگان به تعداد آنان در ASP.NET 2.0 افزوده شده است .
    کنترل های سرويس دهنده جديد
    ASP.NET 2.0 با معرفی چهل و پنج کنترل سرويس دهنده جديد ، امکانات مناسبی را به منظور انجام عمليات متفاوتی نظير : دستيابی به داده ، login ايمن ، Wizard navigation ، توليد تصاوير ، منو ، treeview و ايجاد پورتال در اختيار پياده کنندگان قرار می دهد . تعداد زيادی از کنترل های فوق از مزايای سرويس های کاربردی هسته در ASP.NET در مواردی نظير دستيابی به داده ، عضويت و يا role استفاده می نمايند . برخی از کنترل های جديد اضافه شده در ASP.NET 2.0 عبارتند از :
    • کنترل های داده : دستيابی به داده در ASP.NET 2.0 می تواند به صورت کاملا" تعريفی و بدون نياز به کدی خاص با استفاده از کنترل های جديد منبع داده و يا نسبت دهی داده انجام شود. در اين رابطه کنترل های منبع داده جديدی ارائه شده است که امکانات متفاوتی را نظير دستيابی به بانک های اطلاعاتی SQL ، اشياء business و XML در اختيار پياده کنندگان قرار می دهد. همچنين در اين رابطه کنترل های نسبت دهی داده جديدی برای واکنش مناسب درخصوص تامين داده مورد نياز لايه رابط کاربر نظير grids ,details و فرم های نسبت دهی داده ارائه شده است .
    • <LI dir=rtl>کنترل های Navigation: کنترل های فوق ، امکانات متداول و مورد نياز در سطح لايه رابط کاربر به منظور حرکت بين صفحات يک سايت را در اختيار پياده کنندگان قرار می دهند . کنترل های treeview ، منو و breadcrumbs ، نمونه هائی در اين زمينه می باشد . کنترل های فوق از سرويس site navigation در ASP.NET 2.0 به منظور بازيابی ساختار سفارشی تعريف شده برای سايت ، استفاده می نمايند.
    • کنترل های Login : کنترل های فوق ، مسئوليت ارائه امکانات لازم به منظور تائيد و بررسی مجوزها در سطح لايه رابط کاربر برای يک برنامه وب را برعهده دارند . فرم های login ، ايجاد فرم های کاربر و بازيابی رمز عبور نمونه هائی در اين زمينه می باشد. کنترل های فوق از سرويس های آماده membership و role در ASP.NET 2.0 به منظور ارتباط با کاربر و اطلاعات role تعريف شده در سايت ، استفاده می نمايند .
    • کنترل های Web part : کنترل های فوق، امکان افزودن محتويات اختصاصی و کاملا" سفارشی و Layout را در اختيار پياده کنندگان قرار می دهند .ويرايش محتوای مورد نظر و layout بطور مستقيم و از طريق صفحات برنامه، از جمله امکانات ارائه شده توسط کنترل های web part می باشد. کنترل های فوق در ارتباط با سرويس های personalization در ASP.NET 2.0 می باشند .

  2. #2
    تاریخ عضویت
    Nov 2007
    محل سکونت
    Earth
    نوشته ها
    84
    سپاس ها
    0
    سپاس شده 44 در 27 پست

    پیش فرض پاسخ : آشنائی با Asp.net 2.0 ( بخش دوم )

    Master page

    با استفاده از ويژگی فوق می توان ساختار و عناصر اينترفيس مورد نياز يک سايت را تعريف نمود. تعريف هدر و يا فوتر برای صفحات و يا ميله مسيريابی و حرکت ، نمونه هائی در اين زمينه است که با تعريف آنان در يک مکان واحد موسوم به Master page ، امکان استفاده و به اشتراک گذاشتن آنان بين صفحات متفاوت موجود بر روی يک سايت فراهم می گردد . با استفاده از ويژگی فوق وضعيت مديريت و نگهداری يک سايت بهبود يافته و از تکرار کدهای غيرضروری به منظور اشتراک ساختار و يا رفتار سايت ، پيشگيری بعمل می آيد .
    Themes و Skinsبا استفاده از ويژگی فوق می توان شکل ظاهری يک سايت را متناسب با خواسته کاربر کاملا" سفارشی نمود . پس از تعريف اطلاعات مربوطه به هر Style ، می بايست آنان را در مکان هائی موسوم به "theme" ذخيره تا زمينه استفاده از آنان در ساير صفحات و يا کنترل های موجود بر روی يک صفحه فراهم گردد . ويژگی فوق همانند master page ، باعث بهبود وضعيت مديريت و نگهداری سايت و پيشگيری از نوشتن کدهای تکراری برای دستيابی به styles مشترک می گردد .
    حمايت از دستگاه های سرويس گيرنده متفاوت نظير موبايل
    با توجه به گسترش و فراگير شدن دستگاه های موبايل و ساير دستگاه های سرويس گيرنده ، ضرورت ايجاد برنامه های وب با قابليت استفاده توسط دستگاه های سرويس گيرنده متفاوت بيش از گذشته احساس می شود . در اين رابطه می توان از برخی کنترل های سرويس دهنده استفاده نمود که قادر به تفسير و ارسال اطلاعات برای نمايشگرهای کوچک باشند . در اين رابطه دو مسئله اصلی می تواند وجود داشته باشد : اول اينکه ، داشتن يک مجموعه مجزاء از کنترل های سرويس دهنده مختص دستگاه های موبايل نه تنها سردرگمی پياده کنندگان را بدنبال خواهد داشت بلکه هزينه پياده سازی يک پروژه را نيز بطرز قابل محسوسی افزايش می دهد . دوم اينکه ، به منظور حمايت از دستگاه های جديد می بايست عمليات پياده سازی و نگهداری اضافه ای انجام شود که اين موضوع نيز می تواند اثرات جانبی خاص خود را بدنبال داشته باشد .
    در ASP.NET 2.0 ، با استفاده از يک مجموعه کنترل و تبعيت از يک معماری بسط پذير ، امکان حمايت از دستگاه های متفاوت در اختيار پياده کنندگان قرار می گيرد . تمامی کنترل های استاندارد ارائه شده در ASP.NET 2.0 دارای يک آداپتور رابط کاربر قدرتمند قابل توسعه می باشند که با استفاده از آن می توان خروجی مورد نظر را برای مرورگرها و ساير دستگاه های سرويس گيرنده کاملا" سفارشی نمود . تمامی کنترل های از قبل تعبيه شده ASP.NET در ASP.NET 2.0 از موبايل حمايـت می نمايند .بدين ترتيب پياده کنندگان می توانند به صورت اتوماتيک خروجی برنامه های وب را برای بيش از سيصد دستگاه منحصربفرد که از استانداردهای نشانه گذاری متفاوتی حمايت می نمايند ( نظير WAP/WML , XHTML Mobile , cHTML و ... ) ، ارسال نمايند . کنترل های استاندارد ASP.NET به صورت اتوماتيک اقدام به ارسال کدهای نشانه گذاری مناسب برای يک دستگاه سرويس گيرنده خاص نموده و پياده کنندگان می توانند بسادگی برنامه هائی را پياده سازی نمايند که از سرويس گيرندگان جديد حمايت می نمايد .
    ارائه امکانات و ابزارهای لازم در جهت مديريت برنامه ها
    مديريت برنامه های وب نوشته شده با استفاده از ASP.NET 1.x مستلزم ويرايش دستی فايل های پيکربندی XML است. رويکرد فوق روشی مناسب و بهينه به منظور مديريت برنامه ها از منظر مديران برنامه ها محسوب نمی گردد . در ASP.NET 2.0 به منظور تسهيل در امر مديريت و نگهداری برنامه های وب و وب سايت های پويا از ابزارهای مديريتی مبتنی بر وب با رابط کاربر گرافيکی استفاده می گردد که با سرويس دهنده وب IIS تلفيق و خدمات مورد نظر را در اختيار مديران و پياده کنندگان قرار خواهند داد. بکارگيری و نگهداری برنامه های وب در محيط عملياتی يکی ازعناصر کليدی در چرخه حيات يک برنامه کامپيوتری است و می بايست نسبت به آن حساسيت خاصی را داشت. تمامی امکانات يک فريمورک برنامه نويسی نمی بايست محدود به ارائه تسهيلات لازم به منظور پياده سازی باشد و در اين رابطه می بايست امکانات لازم در حهت بکارگيری و نگهداری برنامه ها نيز بدرستی ارائه گردد . بدين منظور در ASP.NET 2.0 امکانات متعددی به منظور تسهيل در امر بکارگيری ، نگهداری و مديريت برنامه های وب ارائه شده است :
    • پيکربندی API: در ASP.NET 2.0 با توجه به ارائه امکانات و اينترفيس های لازم برنامه نويسی ، پياده کنندگان می توانند با استفاده از کدهای مورد نظر خود اقدام به ايجاد برنامه ها و يا اسکريپت هائی نمايند که قادر به ايجاد ، خواندن و بهنگام سازی فايل های Web.config و machine.config باشد .
    • ابزار مديريت ASP.NET : در ASP.NET 2.0 با ارائه يک ابزار جديد مديريتی که با برنامه مديريتی سرويس دهنده وب IIS تلفيق خواهد شد به پياده کنندگان و يا مديران برنامه های وب امکان مشاهده و يا اعمال تغييرات مورد نياز در ارتباط با فايل های پيکربندی XML داده می شود .
    • ابزار ترجمه اوليه : در ASP.NET 2.0 با ارائه يک ابزار بکارگيری جديد به پياده کنندگان و مديران برنامه های وب اجازه داده می شود يک برنامه را قبل از بکارگيری، ترجمه اوليه نمايند. رويکرد فوق باعث می شود که هر گونه نياز به ترجمه در هر محلی از سايت به صورت اتوماتيک شناسائی و واکنش های مناسب نسبت به آن داده شود .
    • ابزارهای مانتيورينگ و رديابی : در ASP.NET 2.0 با ارائه امکانات و ابزارهای لازم به منظور مانيتورينگ عملکرد برنامه های وب، مديران و پياده کنندگان برنامه های وب می توانند به صورت اتوماتيک از نحوه عملکرد يک برنامه بر روی سرويس دهنده آگاه و در صورت نياز واکنش های مناسب را در جهت رفع اشکالات موجود انجام دهند. با استفاده از امکانات ارائه شده در ارتباط با رديابی ، اشکال زدائی برنامه های وب با سرعت و دقت بيشتری انجام خواهد شد.
    قابليت توسعه و افزايش کارائی
    يکی از اهداف مهم طراحی ASP.NET ، ارائه يک محيط شی گراء ترجمه شده با هدف پاسخگوئی سريع به درخواست های سرويس گيرندگان است . افزايش کارائی و قابليت توسعه برنامه های وب يکی از مهمترين ويژگی های ASP.NET 2.0 نسبت به نسخه های قبلی است :
    • <LI dir=rtl>حمايت از 64 بيت : ASP.NET 2.0 قادر به حمايت از 64 بيت است . اين بدان معنی است که ASP.NET 2.0 می تواند از مزيت دستيابی به تمامی فضای حافظه در پردازنده های 64 بيتی استفاده نمايد. پياده کنندگان می توانند بسادگی برنامه های ASP.NET موجود 32 بيتی را بر روی يک سرويس دهنده که بر روی آن ASP.NET 2.0 نصب شده است ، کپی نموده و کمپايلر JIT به صورت اتوماتيک فرآيند ترجمه را انجام و برنامه های موجود را به عنوان برنامه های 64 بيتی اجراء می نمايد. در چنين مواردی نيازی به تغيير در کدهای نوشته شده نخواهد بود .
    • بهبود وضعيت Caching : نسخه شماره دو ASP.NET از ويژگی cache invalidation بانک اطلاعاتی به صورت اتوماتيک استفاده می نمايد . ويژگی فوق اين امکان را در اختيار پياده کنندگان قرار می هد که اقدام به خارج نمودن اطلاعات مربوط به صفحات مبتنی بر داده های بانک اطلاعاتی و يا بخش هائی از محتوای يک صفحه از cache نموده و از ASP.NET درخواست گردد که اينگونه اطلاعات cache شده را غيرمعتبر نموده و محتوای cache را پس از تشخيص تغيير اطلاعات موجود در بانک اطلاعاتی ، بهنگام نمايد .
    ASP.NET 2.0 امکانات متعددی را به منظور پياده سازی برنامه های وب در اختيار پياده کننده گان قرار می دهد . با پيش بينی امکانات و ابزارهای لازم بکارگيری ، نگهداری و پشتيبانی برنامه های وب وضعيت بمراتب مناسب تری را نسبت به گذشته پيدا می نمايد .
    ویرایش توسط Travis : 12-01-2007 در ساعت 00:29

  3. #3
    تاریخ عضویت
    Nov 2007
    محل سکونت
    Earth
    نوشته ها
    84
    سپاس ها
    0
    سپاس شده 44 در 27 پست

    پیش فرض پاسخ : آشنائی با Asp.net 2.0 ( بخش دوم )

    Master Page در ASP.NET 2.0
    طراحی و پياده سازی يك وب سايت پويا مسائل و چالش های مختص به خود را دارد . هماهنگی بين عناصر موجود در سايت و يكسان بودن شكل ظاهری تمامی صفحات نمونه ای در اين زمينه است . ما نمی خواهيم سايتی را پياده سازی نمائيم كه هر صفحه آن شكل ظاهری مختص به خود را داشته باشد و با هر كليك كاربر برای حركت بين صفحات موجود در سايت اين تصور ايجاد گردد كه وی قدم در سايتی ديگر نهاده كه همه چيز آن با صفحه قبل تفاوت دارد. برای حل مشكل فوق سعی می گردد كه عناصر متداول موجود بر روی يك صفحه دقيقا" بر روی ساير صفحات نيز تكرار گردد تا تمامی صفحات دارای يك شكل يكسان هم از لحاظ طرح بندی و هم از نظر عناصر باشند . در صورت تغيير صفحات ( هم از لحاظ شكل ظاهری و هم بكارگيری عناصر جديد ) ،$ می بايست عناصر اضافه شده بر روی ساير صفحات نيز منتشر شوند تا تناسب سايت حفظ شود . ( عملياتی بس خسته كننده و تكراری كه فاقد هرگونه تجربه جديد است ) .
    Master Page ارائه شده در ASP.NET 2.0 ، روشی منطقی و اصولی برای حل مشكلات فوق را در اختيار پياده كنندگان برنامه های وب قرار می دهد .

    Master Page چيست ؟
    • <LI dir=rtl>يك صفحه تمپليت است كه عناصر ويژوال به همراه رفتار آنان را برای تمامی صفحات موجود بر روی سايت مشخص می نمايد .
      <LI dir=rtl>صفحه ای است كه شامل تگ های Html و كنترل هائی است كه قصد به اشتراك گذاشتن آنان را بين چندين صفحه موجود در سايت داريم . مثلا" در صورتی كه تمامی صفحات يك وب سايت می بايست دارای يك عنوان و يا footer مشابه و يا منوهای مسيرياب يكسانی باشند ، می توان آنان را در يك Master Page و تنها برای يك مرتبه تعريف نمود . در ادامه تمامی صفحاتی كه در ارتباط با Master Page می باشند قادر به استفاده از عناصر تعريف شده خواهند بود ( جلوه ای ديگر از توارث و اين مرتبه از يك صفحه به ساير صفحات ) . بديهی است در صورتی كه عناصر موجود در Master Page تغيير يابند ، ساير صفحات مرتبط با Master page متاثر از اين تغييرات خواهند شد . بدين ترتيب نگهداری سايت شرايط مطلوب تری را پيدا كرده و از تكرار كدهای غير ضروری به منظور اشتراك ساختار و رفتار سايت پيشگيری خواهد شد .
      <LI dir=rtl>Master Page ، يك صفحه ASP.NET است كه دارای انشعاب master . است . صفحات فوق شامل عناصر HTML ،$ متن ايستا و كنترل های سرويس دهنده به منظور اشتراك بين تمامی صفحات می باشند.
    • يك Master Page ، شامل يك و يا چندين كنترل خاص با نام ContentPlaceHolder می باشد . يك ContentPlaceHolder ، ناحيه ای در Master Page را مشخص می نمايد كه محتوی آن از ساير صفحاتی كه در ارتباط با Master Page می باشند ،$مشتق خواهد شد( Content Pages ).شكل عمومی تعريف يك ContentPlaceHolder به صورت زير است :
    <asp:ContentPlaceHolder id="id" Runat="Server"/>
    ايجاد Master Page
    • <LI dir=rtl> ايجاد يك Master Page همانند تعريف يك صفحه معمولی است . صفحات Master می توانند شامل تگ های Html، كنترل ها ، كد و يا هر نوع تركيبی از عناصر فوق باشند .
    • برای مشخص نمودن Master Page از يك دايركتيو خاص با نام <% Master @%> استفاده می گردد :
    <%@ Master Language="VB" %>
    مثال : در اين مثال يك Master Page با نام Site.Master [برای مشاهده لینک ها عضو سایت شوید برای عضویت در سایت بر روی اینجا کلیک کنید] و طرح كلی يك صفحه وب را مشخص می نمايد . محتوی صفحه درون يك جدول سازماندهی شده است . در اين رابطه از يك عنوان و يك منو مشتمل بر سه لينك استفاده شده است . عناصر فوق بر روی تمامی صفحاتی كه متاثر از Master Page می باشند ،$ نمايش داده خواهند شد . در Master Page فوق همچنين از يك كنترل ContentPlaceHolder با شناسه " Content" استفاده شده است كه در عمل محل نمايش محتوی ساير صفحات را مشخص می نمايد . در اين مثال صرفا" از يك ContentPlaceHolder استفاده شده است . در صورت ضرورت و با توجه به سياست های طراحی می توان از چندين ContentPlaceHolder ،$استفاده نمود .
    Master Page : Site.Master
    <html>
    <head>
    <title>تست</title>
    </head>
    <body>
    <form Runat="Server">
    <font Face="tahoma" Size="2">
    تهيه شده در شركت سخاروش
    <table border="1" dir="rtl" width="100%">
    <tr>
    <td colspan="2">
    <div>استفاده از Master Page </div>
    </td>
    </tr>
    <tr>
    <td width="30%">
    <b>منو</b><br/><br/>
    <a href ="Page1.aspx"> صفحه اول</a><br/>
    <a href ="Page2.aspx">صفحه دوم </a><br/>
    <a href ="Page3.aspx">صفحه سوم </a><br/>
    </td>
    <td bgcolor="EEEEEE">
    <asp:ContentPlaceHolder id="CONTENT" runat="Server" />
    </td>
    </tr>
    </table>
    </font>
    </form>
    </body>
    </html>
    ايجاد Content Page
    • <LI dir=rtl>Content Pages ، صفحاتی با انشعاب aspx . می باشند كه بگونه ای كد شده اند كه بتوانند از قالب تعريف شده در Master Page تبعيت كنند.
    • صفحاتی كه قصد تبعيت و استفاده از قالب تعريف شده در Master Page را دارند از دايركتيو <% Page @%> به همراه صفت MasterPageFile كه مقدار آن نام Master Page است ، استفاده می نمايند :
    <%@ Page MasterPageFile="Site.master" %>
    • يك Content Page می تواند از كنترل های Content به منظور مشخص نمودن محتوياتی كه می بايست جايگزين محتوی بخش placeholder صفحه Master شود ،$استفاده نمايند . كنترل Content از طريق خصلت ContentPlaceHolderID با يك كنترل ContentPlaceHolder خاص مرتبط می گردد .
    <%@ Page MasterPageFile="Site.master" %>

    <asp:Content id="id" ContentPlaceHolderID="Content" Runat="Server">

    محتويات صفحه

    </asp:Content>
    • <LI dir=rtl>مقدار ContentPlaceHolderID ، شناسه يك كنترل ContentPlaceHolder موجود در Master Page می باشد .تمامی محتوی شامل HTML ،$ متن و كنترل های سرويس دهنده می بايست درون كنترل <asp:Content> قرار گيرند . دقت داشته باشيد كه تگ های <html>, <head> و <body> نمی بايست درون Content Page قرار داده شوند . تمام اطلاعاتی كه درون كنترل <asp:Content> ارائه می شود ،$ محتويات مورد نظری می باشند كه می بايست در بخش مربوطه در Master Page نمايش داده شوند . از تگ <form> نمی توان درون يك Content Page استفاده نمود چراكه تگ فوق در Master Page استفاده شده و تمامی محتويات را شامل می شود . ( يك صفحه وب صرفا" می تواند يك تگ <form > داشته باشد )
    • يك Content Page می تواند دارای چندين بخش <asp:Content> باشد . هر بخش يك كنترل ContentPlaceHolder متفاوت بر روی Master Page را هدف قرار خواهد داد.
    مثال : جدول زير سه نمونه Content Page را به اسامی page2.aspx ، Page1.aspx و Page3.aspx كه از Site.master استفاده می كنند ، نشان می دهد .
    Content Page: Page1.aspx
    <%@ page language="VB" masterpagefile="Site.master" %>

    <asp:Content ContentPlaceHolderID="content" Runat="Server">
    <P Align="Right" dir="rtl">
    استفاده از Master Page <br/>
    ( صفحه Page3.aspx فعال شده است )
    </p>
    </asp:content>


    Content Page: Page2.aspx
    <%@ page language="VB" masterpagefile="Site.master" %>

    <asp:Content ContentPlaceHolderID="content" Runat="Server">
    <P Align="Right" dir="rtl">
    استفاده از Master Page <br/>
    ( صفحه Page3.aspx فعال شده است )
    </p>
    </asp:content>

    Content Page: Page3.aspx
    <%@ page language="VB" masterpagefile="Site.master" %>

    <asp:Content ContentPlaceHolderID="content" Runat="Server">
    <P Align="Right" dir="rtl">
    استفاده از Master Page <br/>
    ( صفحه Page3.aspx فعال شده است )
    </p>
    </asp:content>

    تركيب صفحات Master و Content
    خروجی زير نحوه استفاده از Master Page و Content Page را نشان می دهد .

    توضيحات :
    • <LI dir=rtl>در زمان اجرای برنامه فوق شايد اينگونه احساس شود كه عملكرد برنامه مشابه فريم های Html و نظير يك frameset باشد . دقت داشته باشيد كه تكنولوژی پشت قضيه كاملا" متفاوت است .
      <LI dir=rtl>Master Page يك لفافه و يا پوشش برای احاطه Content Pages را ارائه می نمايد . بنابراين مقصد لينك های موجود در بخش "منو" به سمت Content page مربوطه می باشد نه Master Page .
      <LI dir=rtl> لود اوليه توسط Content Page با نام Page1.aspx انجام شده است نه از طريق صفحه Site.Master .
    • زمانی كه يك Content Page فعال می گردد ، محتويات آن با Master Page تركيب و متناسب با ناحيه ای كه توسط عناصر Master مشخص شده است ،$ نمايش داده می شوند .

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

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

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

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