مقالات طبقه بندي شده asp.net از نو آموز تا حرفه اي
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 11

موضوع: مقالات طبقه بندي شده asp.net از نو آموز تا حرفه اي

  1. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    Icon16 مقالات طبقه بندي شده asp.net از نو آموز تا حرفه اي

    سلام به دوستان گلم
    این تاپیک را باز کردم برای کسانی که رشته آنها کامپیوتره و فکر میکنم که این مطالب برایشان مفید باشه..

    امیدوارم که تاپیک مفیدی باشه..
    خوشحال میشم اگر هم که دوستان گلم در این تاپیک کمکم کنند

    البته این موضوع تحقیق خودمم هست...

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #1 ارسال شده در تاريخ 24th November 2008 در ساعت 14:27

  2. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    آموزش asp.net (مقدمه)


    واقعا چرا asp.net ؟مايكروسافت خودش اين دلايل رو مياره ( نكته با توجه به اينكه من هرگز فكر نميكردم اين ترجمه

    رو يه روزي بخوام منتشرش كنم بنا براين نثرش خيلي شلخته است كه بايد به بزرگواري خودتون ببخشيد.)

    چرا asp.net ؟اين دلايليه كه مايكروسافت مياره.

    چرا asp.net
    1:برنامه نويسي آسان
    asp.net به طور شگفت انگيزي برنامه نويسي وب را آسان كرده است.كنترلهاي سرور asp.net ميتونند به شما كمك كنند
    كه با كمترين ميزان كد برنامه هاي قوي بسازيد .شما با اين كنترلها ميتونيد به آساني هرچه تمام تر به ديتا بيس ها متصل بشيد ,ميتوانيد وروي هاي كاربرها رو اعتبار سنجي كنيد ,فايلهاي كاربر رو به روي سرور آپلود كنيد .اما بهتر از همه!!ديگه نيازي نيست نگران مرورگرها باشيد.كنترلهاي سرور asp.net بر روي تمامي مرورگرها اجرا ميشوند!!
    عدم وابستيگ به زبان خاص
    asp.net كاملا آماده پذيرفتن برنامه نويسان زبانهاي ديگر است. شما در asp.net به يك زبان خاص متكي نيستيد .بر عكس asp كلاسيك كه شما به زبانهاي اسكريپتي jscript و vbScript وابسته بوديد اما شما در asp.net هم اكنون قادر به برنامه نويسي با 25 زبان برنامه نويسي هستيد.asp.net دست شما را براي انتخاب زبان برنامه نويسي مورد علاقه تان كاملا باز گذاشته است!!
    ابزارهاي عالي
    شما ميتوانيد حتي با تكست اديتور هاي ساده مثل notPad هم حداكثر استفاده را از asp.net ببريد .اما مي توانيد با استفاده از ويژوال استوديو به همان راحتي كه در محيط ويژوال بيسيك برنامه مينوشتيد!!در محيط وب نيز برنامه بنويسيد.ميتونيد در محيط ويژوال استوديو از راحتي كار لذت ببريد.كنترلها ار درگ اند دراپ كنيد!به راحتي هر چه تمام تر براي آنها كد بنويسيد.در اين راه
    ويژوال استوديو به عنوان يك دوست خوب همواره همراه شما خواهد بود.ابزارهاي جانبي ويژوال استوديو نيز كارهايي همچون تست و دیباگ و... را برای شما انجام میدهند.
    كلاسهاي از پيش ساخته شده
    كلاسهاي از پيش نوشته شده asp.net همواره در طول برنامه نويسي در كنار شما خواهند بود.و كارهاي پيچيده را به راحتي هر چه تمام تر براي شما انجام ميدهند.4500 كلاس فريم ورك دات نت تقريبا هر كاري را با كمترين مقدار كد براي شما انجام خواهند داد!!كارهايي مثل "كار با ديتا بيس" , "كار با XML " , "كار با تصاوير" و .....
    پرفورمنس و قابليت توسعه!
    اجراي كامپايل شده: بايد به اين كته توجه داشت كه asp.net بسيار سريع تر از asp كلاسيك و هر زبان مترجمي ديگر است
    نكته جالب اينجاست كه شما به هيچ وجه كاري با اين كامپايل نخواهيد داشت و اصولا متوجه آن نخواهيد شد!در ضمن در صورت كمترين تقييري در فايل سورس و كد كامپايل شده براي پاسخگويي به ريكوئست ها آماده خواهد بود.كد كامپايل شده همواره به روز خواهد بود.اين الگوريتم باعث شده asp.net سه تا 4 برابر سريع تر از asp كلاسيك باشد.
    پس به خاطر داشته باشيد كه كدها در asp.net در انتها به native code كامپايل ميشوند و اين باعث افزايش كارايي و سرعت asp.net ميشود!
    خروجي كش شده:
    سيستم كش asp.net به طور شگفت آوري كارايي نرم افزار شما را افزايش ميدهد . هنگامي كه سيستم كش در يك صفحه فعال باشد . asp.net فقط و تنها و فقط يك بار كد را اجرا ميكند و صفحه را در حافظه خود نگه ميدارد بارهاي ديگر فقط نتيجه اين اجرا را براي درخواست كننده ميفرستد . اين عمل باعث صرفه جويي در پراسس سرور ميشود . و از اجراي چند باره يك كد جلو گيري ميكند.كش شدن خروجي مخصوصا در صفحات متصل به دستا بيس باعث افزايش كارايي و كاهش تراكنش با ديتا بيس ميشود.
    ارائه نتيجه بهتر از رقيب (J2EE)
    در مقايسه نتايج دو تكنولوژي J2EE , asp.net نتايج بهتري از asp.net به دست مي آيد.
    يك برنامه asp.net يك چهارم J2EE به كد نويسي احتياج دارد!!و در انتها 28 برابر سريع تر از J2EE اجرا ميشود!همچنين به 7 برابر بيشتر از J2EE به كاربرها پاسخ ميدهد!تنها با يك ششم استفاده بيشتر از CPU !!
    براي دريافت كد و برنامه petshop به آدرس زير مراجعه كنيد و خودتان نتايج را بدست بياوريد و مقايسه كنيد!
    فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]
    قابل اعتماد بودن
    asp.net سعي كرده است كه برنامه همواره در دسترس يوزرهای آن باشد.يعني مشكلات تا آنجا که ممکن است باعث از كار افتادن برنامه و قطع سرويس دهي آن نشود .
    asp.net به طور اوماتيك ارورها را تشخيص و آنها را بر طرف ميكند مشكلاتي از قبيل Memory Leak شدن يا DeadLock شدن يا كرش كردن برنامه.
    به عنوان مثال شما برنامه اي نوشته ايد كه داراي مشكل Memory Leak (به هدر رفتن حافظه) است.
    بعد از يك هفته اين اشتباه باعث ميشود كه در صد بالايي از مموري سرور اشغال شود. در این وظعیت asp.net به طور اتوماتيك
    بار ديگر برنامه را اجرا ميكند و برنامه مشكل دار را از استفاده خارج ميكنداز بين ميبرد ومموري را آزاد ميسازد.تمام اين فرايندها كاملا اتوماتيك و بدون دخالت هيچ فردي اتفاق ميفتد.

    انتشار ساده

    1: asp.net انتشار و نصب برنامه را بسيار ساده كرده است.شما ميتوانيد يك برنامه چند لايه را به راحتي انتشار يك سايت html بر روي سرور كپي كنيد!بدون نياز به نصب اجراي regsvr32 براي رجيستر كردن كامپوننتها.براي تنظيم برنامه هاي asp.net تنها اديت كردن فايل web.config كافيست.

    2:يكي از مسايلي كه در asp كلاسيك برنامه نويس را دچار دردسر ميكرد مسئله كامپوننتاهاي كام بود.در حقيقت بعد از ارتقا كامپوننتها برنامه نويس بايد سرويس را راه اندازي دوباره ميكرد و مسلما براي دقايقي آن سرويس از دسترس خارج ميسد اما در asp.net اين مشكل حل شده است و براي ازتقاع شي كامپوننت فقط نياز هست كه كمپوننت جديد جايگزين كامپوننت قديمي بشود.و بعد از آن asp.net بدون كوچكترني دردسري آن كامپوننت را خواهد شناخت!

    3:يكي از ويژگي هاي asp.net اين است كه شما مجبور نيستسد برنامه هاي سابق خود را كنار بگذاريد!!بلكه ميتوانيد كماكان به طور پهلو به پهلو از 2 تكنولوژي جديد و قديم استفاده كنيد.همچنين ميتوانيد از اشيا’ كام كلاسيك خود همچنان استفاده كنيد .دليل اين موضوع هم اين است كه موتور asp كلاسيك كماكان در كنار موتور asp.net در IIS6 حضور دارد.
    سرويسهاي ويژه
    XML web serviseسرويسهاي XML شما را قادر ميسازد متدهاي خود را در اختيار ديگر برنامه هاي وب بگذاريد.در سرويسهاي وب شما حتي نبايد نگران سيستم عامل سرويس گيرنده باشيد!شما ميتوانيد به سادگي و با چند خط كد سرويس وبي بنويسيد و در اختيار ديگران قرار
    بدهيد و آنها نيز ميتوانند به آساني متدهاي اين سرويسها را كال كنند!
    هر كلاسي ميتواد به يك سرويس وب تبديل شود.تنها نيازي كه برنامه سرويس گيرنده براي در دسترس داشتن اين كلاسها لازم دارد پروتوكل SOAP هست!پس از آن به راحتي هرچه تمام تر و بدون نياز به داشتن اطلاعاطي در باره شبكه و XML ويا هر چيز ديگر.
    برنامه نويسي موبايل
    كنترلهاي موبايل به شما اين امكان را ميدهد كه به سادگي براي موبايلها PDA ها و ساير انواع موبايلها(غريب به 80 نوع) برنامه بنويسيد.شما برنامه خود را مينويسيد و سپس كنترلهاي موبايل asp.net آن را به فرمت قابل در يافت موبايلها از قبيل WAP/WML, HTML, يا iMode تبديل خواهد كرد.

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #2 ارسال شده در تاريخ 24th November 2008 در ساعت 14:30

  3. یک کاربر از این پست تشکر کرده است :


  4. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    اين مقاله از سايت dev.ir استخراج شده است ، متاسفانه اين سايت از گردونه سايتهاي فارسي خارج شده است لذا براي حفظ مقاله آن را در اينجا باز آوري ميكنيم .

    -----------------------------------------------------------------
    چرا به دات نت احتياج داريم؟
    به طور معمول نسل های جديد زبان های برنامه نويسی به اين دليل متولد می شوند که زبان های قديمی تر دارای امکانات محدود بودند و يا قدرت استفاده از تکنولوژی های فعلی را به صورت مطلوب و ساده ندارند.
    مهمترين نيازی که به عنوان آخرين تکنولوژی وجود دارد، برنامه نويسی در محيط اينترنت است. اينترنت در مدت تقريبا ۸ سال جای خود را به عنوان يکی از مهمترين وسايل ارتباطی برای کارهای روزمره و تجارت باز کرده است. سيستم های برنامه نويسی قديمی تر امکان برنامه نويسی برای اينترنت را فراهم کرده بودند اما هر کدام دارای اشکالات بزرگی هستند، برای مثال تکنولوژی COM اولين بار در ويندوز به کار گرفته شد. در سال 1970 نيز سيستم هايی برای Unix نوشته شده بودند، جاوا نيز در اصل برای ابزارهای الکترونيکی بود و نه برای اينترنت.
    سپس برای اولين بار يک سيستم جامع برای برنامه نويسی تحت اينترنت ايجاد شد. اين سيستم -NET. از مراحل سطح پايين که به زبان ماشين می باشد تا بالاترين سطح که برنامه نويسی ويژوال آن می باشد برای استفاده در اينترنت طراحی شده است. البتهNET. فقط برای اينترنت نيست و با استفاده از آن می توان برنامه های کامل تحت Client نيز ايجاد کرد، اما بزرگترين مزيت آن دربرابر سيستم های ديگر امکانات اينترنت آن است.
    برای اينکه مزايای استفاده ازNET. را بهتر متوجه بشويم بهتر است در ابتدا معايب سيستم های پيشين را ذکر کنيم. شرکت مايکروسافت تا قبل از سال 1995 به برنامه نويسی در محيط های Client و Server می پرداخت، اما از آن سال به بعد توجه بيشتری به مساله برنامه نويسی در اينترنت کرد. مايکروسافت COM و +COM را ايجاد کرد و آنها را در ويژوال استوديوی 6 به کار گرفت. در سال 1999 حدود ۵۰ در صد از بزرگترين سايتهای تجارت الکترونيکی از محصولات مايکروسافت استفاده می کردند. اما هنوز هم مشکلات بزرگی در سيستم های مايکروسافت وجود داشت که يکی از آنها دشواری نوشتن برنامه در اينترنت با محصولات مايکروسافت بود. شرکت مايکروسافت برای راحتی کار برنامه نويس ها ASP يا Active Server Page را ايجاد کرد. با اينکه اين يک قدم بزرگ بود و کارها را بسيار ساده کرد ولی هنوز از برنامه نويسی شی گرا پشتيبانی نمی کرد. همچنين در ويژوال استوديوی 6 قسمتی برای Internet Application ايجاد شده بود و در آنها امکان ساختن Web Class وجود داشت ولی هيچ وقت به عنوان يک ابزار کار آمد برای برنامه نويسی وب درنظر گرفته نشد.
    مدل برنامه نويسی DNA
    مايکروسافت يک مدل برنامه نويسی به نام Distributed interNet Application دارد که بر پايه برنامه نويسی n-tier و COM بنا نهاده شده است. مدل DNA از سه بخش اساسی تشکيل شده است.
    بخش اول به نام Presentation tire معروف است. در اين بخش رابط تصويری کاربر وجود دارد و خود نيز به دو نوع Internet Browser و Win 32 GUI تقسيم می شود که هر کدام مشکلات خاص خود را دارند. در مدلی که از Win32 GUI يا همان نرم افزارهای معمولی استفاده می شود دو مشکل بزرگ وجود دارد ؛ دشواری بروز رسانی نرم افزار و ديگری DLL Hell که در ادامه توضيح داده خواهد شد. در نوع دوم مشکلاتی از قبيل نبود امکانات برنامه نويسی کافی در محيط مرورگر، نبود رابط قوی با کاربر، نبودن مرورگر های يکسان و... وجود دارد. همچنين هميشه يک اتصال به اينترنت يا اينترانت لازم است. در اين نوع از برنامه نويسی می توان از Java Applet ها يا ActiveX استفاده کرد ولی مرورگر بايد امکان استفاده از آن را داشته باشد، مخصوصا ً هنگام استفاده از ActiveX که بايد فقط از IE استفاده کرد.
    بخش دوم که Middle tier نام دارد، مکانی است که اطلاعات و قوانين تجاری در آن وجود دارد. منظور از قوانين ، متد ها و اجزائی هستند که اعمال کاربران را کنترل می کنند. مهمترين و آسان ترين زبان برای نوشتن اين اجزا از DNA ويژوال بيسيک است. برنامه نويسی که بخواهد در اين رده برنامه بنويسد بايد آشنايی کاملی با COM و پروتکل های رايج داشته، همچنين بايد مهارت کافی در استفاده از ADO و ADSI داشته باشد. مشخص است که يک اشتباه در اين لايه باعث بروز خطا و نقص در کل سيستم می شود.
    بخش سوم يا Data tier مکانی است که اطلاعات سازمان در آن ذخيره می شود. معمولا ً در اين قسمت از بانکهای پيشرفته رابطه ای مانند SQL Server و Oracle استفاده می کنند.
    محدوديت های COM
    همانطور که ديديد مهمترين قسمت در DNA همان COM است که در جای جای آن استفاده می شود. در اينجا برخی معايب COM ذکر می شود : ( در ابتدای متن ذکر شد که برای درک نياز بهNET. بايد ابتدا معايب سيستم های قديمی را بشناسيم )
    DLL Hell: اگر کوچکترين تغييری در يک COM ايجاد شود، ديگر برنامه هايی که از ورژن قبلی استفاده می کردند قادر به فعال ساختن نسخه جديد نيستند. هنگامی که در ويندوز، يک COM نصب شود برايش در رجيستری يک GUID ثبت می شود که اطلاعات آن COM را در خود ذخيره می کند. اگر يک برنامه از نسخه اول يک COM استفاده کند و بعد از مدتی شما تغييراتی در نسخه اول بدهيد و بخواهيد آن را دوباره در سيستم نصب کنيد ويندوز به شما پيغام خطا می دهد چون ورژن آن تکراری است، اگر هم آن را به ورژن دوم ارتقا دهيد نرم افزار قبلی هنوز به دنبال نسخه اول می گردد. اين امر باعث می شود که شما مجبور شويد يکبار ديگر کل برنامه را کامپايل کرده و در کامپيوترتان نصب کنيد.
    کمبود در وراثت: در نسخه های COM که در حال حاضرهستند چيزی به نام وراثتی که در ++C وجود دارد نمی باشد، بلکه وراثت تنها در واسط يک COM می باشد، استفاده از آن هم چندان کمکی به برنامه نويسی نمی کند.
    برخی محدوديت های برنامه نويسی اينترنتی در مدل DNA
    ۱- وجود دو محيط برنامه نويسی برای اينترنت و Client
    نقصان در نوشتن برنامه هايی با رابط گرافيکی خوب که در اينترنت کار می کردند کاملا ً مشهود است، نمونه بارز آن اختلاف در برنامه نويسی در ويژوال بيسيک و ASP است. ويژوال بيسيک با رابط گرافيکی کاملا ً سطح بالا و ASP تقريبا ً رابط گرافيکی ندارد. همين امر باعث می شد که يک برنامه نويس مجبور باشد طيف وسيعی از تکنيک ها و زبان ها را فرابگيرد تا بتواند برنامه ساده ای در اينترنت بنويسد.
    ۲- نبودن حالت های ذخيره اطلاعات رابط گرافيکی در صفحه های اينترنتی
    نمونه اين حالت زمانی است که در يک textbox متنی وجود داشته باشد. در برنامه های Win32 GUI متن داخل textbox تا زمانی که کاربر يا برنامه آن را تغيير نداده بر جای خود وجود دارد. اما در محيط اينترنت و نوع ASP با هر بار refresh کردن صفحه کل اطلاعات ازبين می رود. البته اين مشکل با استفاده از شئ های Request و Response تقريبا ً قابل حل است ولی احتياج به برنامه نويسی برای هر تکه از صفحه ASP دارد.
    ۳- نداشتن Event Handler در محيط برنامه نويسی اينترنت
    يکی از مهمترين ابزاری که در برنامه نويسی Win32 GUI وجود دارد استفاده از Event ها است. با تکنولوژی که در حال حاضر وجود دارد تنها راه رسيدن به اين مهم استفاده از ActiveX است که به علت مسايل امنيتی در بيش از ۹۵ در صد مواقع توسط کاربر استفاده از آن رد می شود.
    معايب استفاده از API
    API ها توابعی هستند که از ويندوز نسخه 1 تا امروز در برنامه نويسی کاربرد داشته و دارند. مهمترين کاری که اين توابع انجام می دهند انجام کارهای سخت و سطح پايين سيستمی است که احتياج به برنامه نويسی زيادی دارند و يا حتی امکان ايجاد آن با زبان هايی مثل ويژوال بيسيک نيست. اما هر API از هر نسخه ويندوز تا نسخه ديگر آن می تواند دچار تغييرات بشود. برای مثال برنامه ای که در ويندوز 98 نوشته شده باشد می تواند در ويندوز 95 اجرا نشود. همچنين هم اکنون ابزارهای جديدی به بازار آمده است که برای آنها نيز می توان برنامه نويسی کرد، مانند تلفن های سيار، کيوسک تلفن، دستگاه های کامپيوتری جيبی و غيره. در اين نوع دستگاه ها ديگر ويندوز به مفهومی که در حال حاضر وجود دارد قابل اجرا نيست و در نتيجه API هم وجود ندارد. لازم به ذکر است که ويندوز CE برای دستگاه های مذکور می باشد ولی قابليت های آن با ويندوزهای ديگر تفاوت زيادی دارد.

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #3 ارسال شده در تاريخ 24th November 2008 در ساعت 14:31

  5. یک کاربر از این پست تشکر کرده است :


  6. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    اين مطلب از سايت Iranasp.net استخراج شده است ، متاسفانه اين سايت از گردونه سايتهاي ايراني خارج شده است ، لذا براي حفظ مطلب آن را در اينجا مي آوريم :
    -------------------------------------------------------------------------------------------
    NET نسل بعدی Active Server Pages يا ASP است که توسط شرکت ميکروسافت ارائه شده است. اين محصول توسط ميکروسافت بعنوان شاخص اصلی فناوری در ساخت سايتهای وب در نظر گرفته شده است. با استفاده از ASP.NET می توان هم اينترانت کوچک يک شرکت را ساخت و هم يک سايت وب تجاری خيلی بزرگ را طراحی و پياده سازی نمود. مهمترين نکاتی که در طراحی اين محصول در نظر گرفته شده است راحتی استفاده و بالا بودن کارائی و قابليت آن می باشد. در زير برخی ويژگيهای ASP.NET را بررسی می کنيم.
    • صفحات ASP.NET کامپايل می شوند.
    هنگامی که يک صفحه ASP.NET برای اولين بارتوسط يک مراجعه کننده به سايت فراخوانی می شود، آن صفحه ابتدا کامپايل شده و بر روی سرور نگهداشته می شود و در فراخوانی های بعدی از آن استفاده می شود. اين بدين معنی است که صفحات ASP.NET خيلی سريع اجرا می شوند.
    • صفحات ASP.NET با ابزارهای روی سرور ساخته می شوند.
    با ابزارهای موجود در ASP.NET می توان صفحات پيچيده وب را براحتی طراحی نمود. بعنوان مثال با استفاده از ابزار DataGrid می توان به آسانی داده های موجود در يک بانک اطلاعاتی را تحت وب نمايش داد.
    • مجموعهASP.NET عضوی از بدنه NET. است.
    بدنه NET. دارای بيش از ۴۵۰۰ کلاس آماده جهت استفاده در ASP.NET است. اين کلاس ها تقريبا هر نيازی را در برنامه نويسی برآورده می کنند. بعنوان مثال از اين کلاس ها می توان جهت توليد تصاوير بر حسب تقاضا، به رمز درآوردن يک فايل و يا ارسال يک نامه استفاده کرد.
    مقايسه ASP.NET و ASP کلاسيک
    ASP.NET نسل بعدی ASP يا ASP کلاسيک است. اما اين يک پيشرفت تکاملی است بطوريکه اين دو فناوری تقريبا از يکديگر متفاوتند. صفحات ASP با زبان های دستورالعمل نويسی مانند VBScript يا JScript ايجاد می شوند اما در ASP.NET ما يک فرايند کامل برنامه نويسی با زبانهای Visual Basic يا #C (سي-شارپ تلفظ شود) داريم. همچنين در ASP کلاسيک تنها پنج کلاس استاندارد (Request, Response, Application Session, Server) وجود دارد حال آنکه در ASP.NET می توان از بيش از ۴۵۰۰ کلاس استاندارد موجود در بدنه NET. بهره جست.همچنين عليرغم قدرت و امکانات زياد و متعدد ASP.NET، استفاده از آن در مقايسه با ASP کلاسيک بسيار آسانتر است. بعنوان مثال با استفاده از چند ابزار در يک صفحه ASP.NET می توان يک صفحه بسيار پيچيده HTML بدست آورد که ساخت آن در ASP کلاسيک ممکن است نياز به چند روز کار داشته باشد.
    زبانهای برنامه نويسی در ASP.NET
    شما در ASP.NET می توانيد از هر زبان برنامه نويسی که با بدنه NET. سازگار باشد استفاده کنيد. اين زبانها عبارتند از Visual Basic.NET و #C و JScript.NET . اين بدين معنی است که شما جهت نوشتن برنامه در ASP.NET نياز به فراگيری زبان جديدی نداريد و اگر يکی از زبانهای ويژوال بيسيک يا ++C يا جاوا را می دانيد هم اکنون می توانيد در ASP.NET برنامه بنويسيد.از طرف ديگر تعدادی زبانهای ديگر توسط بعضی از شرکتهای فعال در اين زمينه به مجموعه زبانهای استاندارد ASP.NET افزوده شده است. بعنوان مثال اگر مايل باشيد حتی می توانيد از PERL و COBOL هم در ASP.NET استفاده کنيد.
    ابزارهای ASP.NET
    سالهاست که برنامه نويسان ويژوال بيسيک جهت ساخت فرم های خود از ابزارهای ويژوال بيسيک مانند TextBox و ListBox استفاده کرده اند. در ASP.NET هم شما می توانيد از ابزارهای فراوان موجود در آن برای ساخت فرم ها و صفحات خود استفاده نمائيد. در ASP.NET چهار دسته عمده از ابزارها موجود است:
    • ابزارهای اصلی مانند TextBox، RadioButton، ListBox و Button.
    • ابزارهای اعتباری برای حصول اطمينان از ورود و تائيد صحت اطلاعات ورودی فرم ها.
    • ابزارهای داده ای برای ارتباط با بانک اطلاعاتی و دستکاری داده.
    • ابزارهای پيشرفته جهت نمايش عناصر پيچيده در واسط کاربر مانند تقويم و آگهی های تبليغاتي.
    با استفاده از Visual Studio.NET شما براحتی می توانيد با چيدن تصويری اين ابزارها بر روی فرم مورد نظر، صفحه دلخواه خود را بسازيد. در صورت تمايل حتی می توانيد در يک ويرايشگر ساده متن مانند Notepad برنامه مورد نظر را نوشته و از اين ابزارها استفاده کنيد.
    دريافت ASP.NET
    جهت شروع برنامه نويسی در ASP.NET تنها کافی است که مجموعه ASP.NET را بهمراه بدنه NET. از سايت ميکروسافت دريافت کنيد.
    دريافت .NET Framework
    ASP.NET با سيستم عامل های Windows 2000 (نسخه Server و Professional) و Windows XP کاملا سازگار است.

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #4 ارسال شده در تاريخ 24th November 2008 در ساعت 14:31

  7. یک کاربر از این پست تشکر کرده است :


  8. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    اين مقاله از سايت Iranasp.net استخراج شده است . متاسفانه اين سايت از گردونه سايتهاي فارسي خارج شده است ، لذا براي حفظ مطلب ضمن احترام براي سايت مذكور ، مديريت و كليه مقاله نويس هاي آن سايت اين مقاله در در اينجا مي آوريم .

    --------------------------------------------------------------------------------------
    Namespace چيست؟
    يک نکته مهم که در زمان استفاده از NET Framework. بايد به آن توجه داشت آن است که فضانام (namespace يا نامکده) ها در ساختمان برنامه کاربردی قرار دارند. فضانام يک طرح نامگذاری منطقی برای گروه بندی کلاس های مرتبط است. اين طرح مانع از آن می شود تا کلاس هايی که برای متدها و خصوصيات از يک شناسه يکسان استفاده می کنند تداخل داشته باشند.
    مثلا NET Framework. برای گروه بندی تايپ ها به مقوله های منطقی عملکرد، از قبيل چارچوب برنامه کاربردی ASP.NET، از يک طرح نامگذاری سلسله مراتبی استفاده می کند. ابزارهای طراحی از فضانام ها با هدف تسهيل مرور و ارجاع تايپ ها در برنامه بهره برداری می کنند. مثلا فرض کنيد در حال نوشتن کد زير هستيد:


    Public Class NewClass
    [Procedures and Functions]
    End Class

    Public Class NewClass
    [Procedures and Functions]
    End Class


    اين کد به خطا منجر می شود چون کامپايلر راهی برای تشخيص کلاس ها از يکديگر ندارد. برای غلبه بر اين مشکل می توان از يک فضانام استفاده کرد که اجازه می دهد دو کلاس همنام در صفحه با هم وجود داشته باشند. قطعه برنامه زير تعريف اين دو کلاس در فضانام های منحصر بفرد را نشان می دهد:



    Namespace One
    Public Class NewClass
    [Procedures and Functions]
    End Class
    End Namespace

    Namespace Two
    Public Class NewClass
    [Procedures and Functions]
    End Class
    End Namespace


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

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

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

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

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

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

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

    • System.Web.UI.HTMLControls: برای کنترلهای سرويس دهنده ای که شبيه کنترلهای HTML هستند ولی انعطاف پذيری بيشتر و عملکرد پيچيده تری دارند کلاس هايی را تامين می کند.
    برخی فضانام های مهم و پرکاربرد ديگر به شرح زير می باشند.
    • System.IO: دربرگيرنده رابطها و کلاس هايی است که امکان خواندن و نوشتن همگام و غيرهمگام فايل ها و جريانهای داده را فراهم می کنند.

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

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

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

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

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

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

    • Microsoft.Win32: کلاسها و رابطهای مورد نياز برای کار با کليدها و hiveهای رجيستری را تامين می کند.
    با وجود آنکه فضانام ها از قبل تامين می شوند، می توانيد برای استفاده از برنامه کاربردی ASP.NET فضانام های خود را ايجاد کنيد. برای هر کلاس ايجاد شده توسط سازنده يک فضانام توليد می شود.

    استفاده از فضانام ها در صفحات ASP.NET
    دو راه برای افزودن فضانام به برنامه کاربردی ASP.NET وجود دارد. از شبه دستور (Directive) صفحه Import@ برای صفحات ASPX و از کلمه کليدی Imports برای افزودن فضانام به برنامه codebehind مربوطه در ويژوال بيسيک استفاده می شود و برای زبان #C از دستور using استفاده می گردد. قطعه برنامه زير ترکيب نحوی برای افزودن فضانام System.Web.UI.WebControls به صفحه ASP.NET شما است.


    <%@ Import namespace = "System.Web.UI.WebControls" % >


    همين فضانام را در قسمت codebehind بصورت زير به برنامه اضافه می کنيم.



    Imports System.Web.UI.WebControls (vb.net )
    using System.Web.UI.WebControls; (C#)
    ( به تفاوت Import و Imports دقت کنيد )


    در صورتيکه می خواهيد چند فضانام را به صفحه ASP.NET خود و يا صفحه codebehind اضافه کنيد بايد هرکدام را جداگانه اضافه کنيد. بعنوان مثال، برای افزودن فضانام System.Web.UI.HTMLControls به صفحات با فضانام های موجود، درست بعد از آخرين عبارت مهم به خط بعد برويد و Imports System.Web.UI.HTMLControls را اضافه کنيد. به محض آنکه .Imports System را تايپ کنيد، VS.NET فهرستی از فضانام ها را ظاهر می کند، و می توانيد به سادگی فضانام مورد نظر را با ماوس برگزينيد. امتياز اين فهرست آن است که مجبور نيستيد همه فضانام های NET. را از حفظ بدانيد، بلکه می توانيد به آسانی از فهرست انتخاب کنيد. اين ويژگی با عنوان Intellisense شناخته می شود. برای صفحات ASP.NET از اين ترکيب استفاده کنيد:


    < %@ Import namespace = "System.Web.UI.WebControls" % >
    < %@ Import namespace = "System.Web.UI.HTMLControls" % >
    < %@ Import namespace = "namespace name" % >
    ...


    برای صفحات codebehind ويژوال بيسيک از اين ترکيب استفاده کنيد:


    Imports System.Web.UI.WebControls
    Imports System.Web.UI.HTMLControls
    Imports namespace
    __________________

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #5 ارسال شده در تاريخ 24th November 2008 در ساعت 14:31

  9. یک کاربر از این پست تشکر کرده است :


  10. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    یکی از موضوعاتی که معمولا برنامه نویسان محیط ASP.NET با آن مواجه هستند صفحه بندی اطلاعات دریافتی از دیتابیس درون GridView است ( که براحتی قابل انجام هست) . از طرفی در بسیاری از مواقع دوست داریم اطلاعات رو در بیش از یک ستون نمایش دهیم که مجبوریم از کنترل DataList استفاده کنیم چون GridView خاصیت RepeatColumns رو نداره و دقیقا مشکل همین جاست زیرا DataList هم خاصیت paging رو نداره . بنابراین برای استفاده از هر دو خاصیت RepeatColumns و paging به مشکل بر خواهیم خورد . در این مقاله مختصر آموزشی قصد دارم راه حلی بسیار ساده و البته اصولی رو براتون شرح بدم که مشکل فوق رو براحتی حل می کنه .
    در دات نت کلاسی با عنوان PagedDataSource در System.Web.UI.WebControls namespace وجود داره که قابلیت paging رو برای کنترل های دات نت فراهم می کنه . ما با استفاده از این کلاس خاصیت paging رو به کنترل DataList اضافه می کنیم . (این مطلب در مورد Repeater هم صادق هست)
    ابتدا یک پروژه وب سایت ایجاد کنید و در صفحه Default.aspx کدهای HTML زیر را وارد کنید :


    Code:


    <table width="100%" border="0">
    <tr>
    <td> DataList control with Paging</td>
    </tr>
    <tr>
    <td> <asp:label id="lblCurrentPage" runat="server"></asp:label></td>
    </tr>
    <tr>
    <td> <asp:button id="cmdPrev" runat="server" text=" << " OnClick="cmdPrev_Click"></asp:button>
    <asp:button id="cmdNext" runat="server" text=" >> " OnClick="cmdNext_Click"></asp:button></td>
    </tr>
    </table>
    <asp:D a t aList ID="dlPaging" runat="server" RepeatColumns="2">
    <ItemTemplate>
    <asp:Image ID="img1" runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem,"i mageURL") %>' />
    <asp:Label ID="Label2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"image Name") %>'></asp:Label>
    </ItemTemplate>
    </asp:D a t aList>



    حالا میریم به Code View :
    در متد Page_Load کد زیر را وارد می کنیم :


    Code:


    if (!IsPostBack)
    {
    ;()FetchDataToDataList
    }


    و سپس کد مربوط به متد FetchDataToDataList :
    Code:



    private void FetchDataToDataList()
    SqlConnection con = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=yourDataBase;Data Source=YourServer");
    SqlCommand cmd = new SqlCommand("select imageUrl,imageName from imageTable", con);
    con.Open();
    PagedDataSource pagedDS = new PagedDataSource();
    DataTable dt = new DataTable("_T");
    dt.Load( cmd.ExecuteReader());
    pagedDS.DataSource =dt.DefaultView;
    pagedDS.AllowPaging = true;
    pagedDS.PageSize = 5;
    pagedDS.CurrentPageIndex = CurrentPage;
    dlPaging.DataSource = pagedDS;
    dlPaging.DataBind();
    con.Close();

    lblCurrentPage.Text = "Page: " + (CurrentPage + 1).ToString() + " of "+ pagedDS.PageCount.ToString();
    // Disable Prev or Next buttons if necessary
    cmdPrev.Enabled = !pagedDS.IsFirstPage;
    cmdNext.Enabled = !pagedDS.IsLastPage;
    }

    همونطور که در کد بالا می بینیم ابتدا connection مورد نظر رو می سازیم و توسط sqlCommand دستور select مورد نظرمون رو اجرا می کنیم . قبل از اجرای select از کلاس PagedDataSource یک نمونه با نام pagedDS ایجاد می کنیم . همچنین یک Table با نام dt ایجاد کرده و با اجرای sqlCommand آن را پر می کینم . حالا لازمه شیئ pagedDS رو توسط dt پر کنیم و تنظیمات لازم مربوط به خاصیت paging رو براش ست کنیم .در نهایت مشخص می کنیم که CurrentPageIndex مقدار صفر داشته باشه تا صفحه اول اطلاعات در ابتدا نمایش داده شوند . و در آخر شیئ pagedDS رو به خصوصیت dlPaging.DataSource انتصاب می دیم.در اینجا لازمه درباره CurrentPage توضیح بدم .
    CurrentPage یک property هست که در هر لحظه شماره صفحه جاری را در this.ViewState["_CurrentPage"] نگهداری می کنه . کد این property به شرح زیره :
    Code:


    public int CurrentPage
    {
    get
    {
    // look for current page in ViewState
    object o = this.ViewState["_CurrentPage"];
    if (o == null)
    return 0; // default page index of 0
    else
    return (int)o;
    }

    set
    {
    this.ViewState["_CurrentPage"] = value;
    }
    }


    حالا لازمه برای دو دگمه ای که ما رو به صفحات قبل و بعد می بره کدهای زیر رو بنویسیم :




    Code:


    protected void cmdPrev_Click(object sender, EventArgs e)
    {
    // Set viewstate variable to the previous page
    CurrentPage -= 1;

    // Reload control
    ;() FetchDataToDataList
    }
    protected void cmdNext_Click(object sender, EventArgs e)
    {
    // Set viewstate variable to the previous page
    CurrentPage += 1;

    // Reload control
    ;() FetchDataToDataList
    }


    با این روش ساده به راحتی می تونیم خاصیت paging رو به کنترل مورد نظرمون اضافه کنیم .
    ویرایش توسط Mr.MohaMmaD : 24th November 2008 در ساعت 14:40

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #6 ارسال شده در تاريخ 24th November 2008 در ساعت 14:32

  11. یک کاربر از این پست تشکر کرده است :


  12. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    آموزش : افزورن attribute به تگ های Master Page از درون Content Pageو در حال اجرا


    مشکلی که وجود داره اینه که ما از درون صفحات Content نمی تونیم به تگ های HTML موجود در صفحه Master به راحتی دسترسی داشته باشیم . برای حل این مشکل به طریق زیر عمل می کنیم .
    فرض کنید در وب سایتمون یک صفحه Master با نام MyMasterPage.master و یک صفحه Content با نام Default.aspx داریم .فرض بفرمایید در صفحه Master متنی با عنوان "تست نوع فونت این صفحه!" وجود داشته باشه . تگ <body> صفحه Master دارای attribute زیر هست :


    Code:

    <body style="font-family:Arial">



    حال ما می خوایم از درون صفحه Default.aspx مقدار Font-family رو از Arial به Tahoma تغییر بدیم.
    برای این کار مراحل زیر را انجام می دیم :
    برای اینکه بتوانیم به تگ <body> دسترسی داشته باشیم لازمه خصوصیت سروری رو به اون افزوده کنیم :


    Code:

    <body id="MasterPageBodyTag" runat="server" style="font-family:Arial">




    توجه داشته باشید که id این تگ رو MasterPageBodyTag نام گذاری کردیم .

    برای اینکه براحتی بتونیم از درون CodeBehind به این تگ دسترسی داشته باشیم برای اون یک property از نوع public تعریف می کنیم . کد زیر را در CodeBehind صفحه MyMasterPage.master وارد می کنیم:


    Code:

    using System.Web.UI.HtmlControls;
    public HtmlGenericControl BodyTag
    {
    get
    {
    return MasterPageBodyTag;
    }
    set
    {
    MasterPageBodyTag = value;
    }
    }




    دقت کنید که MasterPageBodyTag از نوع System.Web.UI.HtmlControls.HtmlGenericControl هست. حالا برای اینکه ما بتونیم به خصوصیات تگ <body> که درون property فوق تعریف شده از درون صفحه Default.aspx دسترسی داشته باشیم لازمه که directive زیر را به ابتدای کدهای HTML صفحه Default.aspx اضافه کنیم .
    Code:

    <%@ MasterType TypeName="MyMasterPage" %>





    در واقع این کد به ما اجازه میده تا بتونیم به پراپرتی BodyTag موجود در صفحه Master دسترسی داشته باشیم.
    بنابراین در جایی دلخواه از صفحه Default.aspx (مثلا در Page_Load) کد زیر را وارد می کنیم :

    Code:

    Master.BodyTag.Attributes.Add("style", "font-family:Tahoma");




    حالا برنامه رو اجرا کنید . همان طور که خواهید دید متن "تست نوع فونت این صفحه!" به جای آنکه با فونت Arial نمایش داده شود با فونت Tahoma دیده خواهد شد . این مطلب برای کلیه attribute های موجود یک تگ قابل استفاده است .

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #7 ارسال شده در تاريخ 24th November 2008 در ساعت 14:53

  13. یک کاربر از این پست تشکر کرده است :


  14. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    اضافه کردن یوزر کنترل به صورت پویا



    چطور یک یوزر کنترل را به صورت پویا به صفحه اصلی اضافه کنیم .

    ابتدا به جایی نیاز داریم که توسط آنجا بتوانیم یوزر کنترل را در جای مناسبی قرار دهیم .

    در مثال ما از یک td که به صورت runat=server است استفاده کرده ایم ، شما میتوایند از هرچیزی مثلا placeholder استفاده کنید :


    <table cellpadding="0" align="center" cellspacing="0">
    <tr>
    <td runat="server" id="MainTD">
    </td>
    </tr>
    </table>





    برای اینکه ببنید runat=server کجا استفاده شده آن را قرمز کردم ، متوجه id این td هم باشد id="MainTD" که لازم است آن را در کد بیهایند بالا PageLoad تعریف کنید به این صورت :


    protected System.Web.UI.HtmlControls.HtmlTableCell MainTD;



    خوب حالا میماند اضافه کردن کنترل به صفحه :


    string pageStr ;
    pageStr = Request.QueryString["PageID"];
    Control ctrl;
    ctrl = LoadControl(pageStr + ".ascx");
    MainTD.Controls.Add(ctrl);

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #8 ارسال شده در تاريخ 24th November 2008 در ساعت 15:00

  15. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    آموزش : چگونه پسوند صفحات وب را مخفی کنیم !!!



    برای این کار راههای مختلفی در اینترنت وجود داره و که من به یکی از راحت ترین و بهترینشون می پردازم .
    ابتدا باید در مورد یکی از متدهای موجود در دات نت که این امکان رو به ما میده صحبت کنم . متد HttpContext.RewritePath() به ما این اجازه رو می ده که به طور داینامیک آدرسی خاص که توسط مرورگر درخواست میشه رو به مسیری جدید redirect کنیم . به عنوان مثال هر گاه آدرسفقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ] درخواست شد ، به آدرسفقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]هدایت بشیم .

    خب ، با دونستن این مطلب مساله رو به این شکل فرض می کنیم که : ما یک وب سایت داریم به نامفقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]که این سایت حاوی یک دایرکتوری به نام Dir1 می باشد و درون این دایرکتوری دو صفحه موجود است به نام های Page1.aspx و Page2.aspx . در root سایت هم صفحه Default.aspx رو داریم که حاوی دو Button هست که هر یک ما رو هدایت می کنه به یکی از دو صفحه فوق .
    حالا می خوایم زمانی که به صفحه Page1.aspx میریم در نوار آدرس این تغییر بوجود بیاد :

    فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]
    --->فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ]


    راه حل : به سایتمون فایل global.asax را اضافه می کنیم . ( کلیک راست بر روی وب سایت ، انتخاب گزینه Add New Item… و انتخاب گزینه Global Application Class ) . سپس درون این فایل متد زیر را اضافه می کنیم :

    Code:



    void Application_BeginRequest(object sender, EventArgs e)
    {

    string fullOrigionalpath = Request.Url.ToString();

    if (fullOrigionalpath.Contains("~/Dir1/(.+)/"))
    {
    Context.RewritePath("~/Dir1/$1.aspx");
    }

    }




    این متد زمانی فراخوانی میشه که یک درخواست برای مشاهده یک آدرس به سرور ارسال میشه . آدرس درخواست شده درون متغیر fullOrigionalpath ذخیره میشه و بررسی می کنیم چنانچه این آدرس متعلق به یکی از صفحات درون دایرکتوری Dir1 باشه و شکل آدرس درخواستی مثلا به شکل ~/Dir1/Page1/ باشه اون رو به آدرس واقعیش هدایت کنه . عبارت (.+) به معنای "هرچیزی" هست ، یعنی هر چیزی بعد از /Dir1/ بیاد به جای عبارت $1 در دستور Context.RewritePath("~/Dir1/$1.aspx"); قرار بگیره . مثلا اگر ما آدرس ~/Dir1/Page1/ رو درخواست کنیم به آدرس ~/Dir1/Page1.aspx میریم .
    حالا لازمه مجوزهایی رو درون web.config ایجاد کنیم که به ما اجازه پردازش آدرسهای فوق رو بده . برای این کار یک فقط کاربران ثبت نام شده میتوانند لینک های انجمن را مشاهده کنند. ] و کارساز وجود داره که لازمه دانلود کنیم . پس از دانلود این dll که نامش هست Intelligencia.UrlRewriter.dll اون رو به دایرکتوری bin وب سایتمون اضافه می کنیم (add reference) .
    حالا به web.config رفته و در زیر تگ <configuration> عبارت زیر رو قرار میدیم.


    Code:



    <configSections>
    <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.Rewr iterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
    </configSections>



    و پس از تگ <system.web> ، عبارت زیر را :


    Code:


    <httpModules>
    <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule , Intelligencia.UrlRewriter"/>
    </httpModules>



    و بالاخره بعد از تگ بسته </system.web> عبارت زیر را وارد می کنیم :

    Code:




    <rewriter>
    <rewrite url="~/Dir1/(.+)/" to="~/Dir1/$1.aspx" />
    </rewriter>



    حالا کافیه در صفحه Default.aspx دو عدد Button بگذارید و در رویداد هر یک کدهای زیر رو وارد کنید :


    Code:





    protected void Button1_Click(object sender, EventArgs e)
    {
    Response.Redirect("~/Dir1/Page1/");
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
    Response.Redirect("~/Dir1/Page2/");
    }




    همین!

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #9 ارسال شده در تاريخ 24th November 2008 در ساعت 15:13

  16. یک کاربر از این پست تشکر کرده است :


  17. Mr.MohaMmaD آواتار ها
    Mr.MohaMmaD
    مدیر سابق
    Sep 2008
    40,497
    35,136
    تشکر شده : 65,987

    پیش فرض

    بررسی انواع گزارش گیری های تحت وب توسط ASP.net


    برای تهیه گزارش روی برنامه های تحت وب سه راه عمده وجود دارد

    1)استفاده از کریستال ریپرتس
    2)استفاده از ریپورتینگ سرویس
    3)طراحی گزارش با کمک برنامه نویسی .

    ابتدا به شرح مختصر هر یک از راه های پیش رو میپردازیم :
    کریستال ریپرتس :
    ابزار گزارش گیری بسیار کار آمدی که از قبل از تکنولوژی دات نت نیز با ویژال استدیو عرضه شده بوده است . هم اکنون این ابزار پا به پای ویژال استدیو پیشرفت کرده و به قابلیت های آضافه شده است . تهیه گزارش با این ابزار به بسیار ساده میباشد تا جایی که با استفاده ازجادوگر (ویزارد) این ابزار طراحی گزارش های ساده بسیار آسان بوده و فقط کافی است به بانک اطلاعاتی مربوطه را مشخص کنیم دیگر نیازی نیست نگران صفحه بندی و ظاهر گزارش خود باشیم .
    سناریوی استفاده از کریستال ریپرتس در وب دات نت بدین صورت است که یک گزارش آماده که توسط متخصص طراحی کریستال ریپرتس طراحی شده است توسط برنامه نویس مورد استفاده قرار میگیرد گرچه طراحی خود گزارش نیز میتواند توسط برنامه نویس دات نت صورت بگیرد هیچ انتظاری مبنی بر طراحی گزارش از یک برنامه نویس نمیرود ( همانطور که انتظار نمیرود یک برنامه نویس وب یک گرافیست ماهر یا یک انیماتور فلاش باشد ).
    گرچه کریستال ریپرتس در نگاه اول بسیار آسان به نظر میرسد و استفاده ازگزارش آماده آن توسط برنامه نویس لذت بخش مینماید ، در صورتی که برنامه نویس بخواهد خود ساختن یک گزارش حرفه ای را که کمی از گزارش معمولی پیچیده تر است به عهده بگیرد بدون شک خود را در دردسر بزرگی انداخته است !

    ریپورتینگ سرویس :
    یکی از ابزارهایی که در SQL server 2005 به نحو شایسته ای بدان پرداخته شده است ریپورتینگ سرویس میباشد که با SQL SERVER 2005 عرضه میشود . این ابزار بسیار قدرتمند است و در ساختن گزارش ها و ایجاد نمودار ها بسیار کارامد میباشد . از طرف دیگر تهیه گزارشهایی با قال بندی پیچیده توسط آن نسبت به تهیه گزارش به وسیله کریستال ریپورتس ساده تر میباشد.

    ایجاد گزارش ها در نظر اول با هریک از ابزار های بالا از ایجاد گزارش توسط برنامه نویسی روی وب فرم منطقی تر به نظر میرسد . لیکن اکثر هاستینگ هایی که به صورت مشارکتی سروری را به چندین سایت تخصیص میدهند قالبیت های پایه هیچ یک از این ابزار ها را ندارند . به عبارت دیگر کریستال ریپرتس روی سرور وب و ریپورتینگ سرویس روی اس کیو ال سرور نصب نیست ! دلیل منطقی هم دارند ! چون این ابزارها قابل کنترل نیستند و برای هر گزارش ممکن است منابع بسیار زیادی از سرور مصرف شود . شما شاید نتوانید فشاری که ممکن است با این کار برای حتی چندین دقیقه بابت هر گزارش به سرور تحمیل شود را تصور کنید . به هر حال عاقلانه این است که چنین امکانی روی یک سرور اشتراکی موجود نباشد !

    پس چه کنیم !؟!
    اگر مجبورید نرم افزار تحت و ب خود را روی جایی غیر از یک سرور اختصاصی نصب کنید چاره ای که برای شما میماند آن است که با همان ابزارهای معمولی برنامه نویسی وب گزارش خود را پیاده سازی کنید .
    بهترین کار این است که فشار این گزارش را بین SQL server و web server تقسیم کنید ! و عاقلانه این است که برنامه خود را به نحوی بنویسید که کمترین فشار به سرور وارد شود . بین منظور باید از ترکیبی از برنامه نویسی روی SQL با دستورات T-SQL و همینطور برنامه نویسی روی وب توسط ASP.net بهره ببرید. گرچه کار طاقت فرسایی مینماید ولی نتیجه بهتری عاید شما خواهد شد .

    ****
    مااز تبار
    کوروش و فرزندجمشیدیم
    پیروز
    بی برده،بت نپرستیدیم


    *****





    #10 ارسال شده در تاريخ 24th November 2008 در ساعت 15:16

  18. یک کاربر از این پست تشکر کرده است :


صفحه 1 از 2 12 آخرینآخرین

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

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

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