مزرعه چاپارل

همه چیز و هیچ چیز

مزرعه چاپارل

همه چیز و هیچ چیز

ASP.NET چیست ؟

ASP.NET چیست ؟


ASP.NET یک چارچوب کاربردی WEB است که توسط مایکروسافت عرضه گردیده تا برنامه نویسان بتوانند برای ساخت سایت های WEB و برنامه های WEB پویا و سرویس های WEB پویا و سرویس های WEB XML از آن استفاده کنند. این بخشی از زیر ساخت .NET مایکروسافت و جانشینی برای تکنولوژی صفحات سرویس دهنده فعال (ASP) است. ASP مبتنی بر زبانهای مشترک در حال اجرا است که به برنامه نویسان اجازه می دهد کدهای ASP را با استفاده از هر زبان Microsoft.NET بنویسند.

 

مشخصات

 

قالب پرونده ASPX

ASPX یک پرونده قالب متنی است که برای ساخت صفحات قالب WEB از آن استفاده می شود. در اصطلاحات برنامه نویسی پرونده ASPX معمولاً شامل نشانه گزاری HTML یا XHTML ایستا ، همچنین تعیین کننده نشانه گزاری کنترل های WEB و کنترل های کاربر WEB است جائیکه توسعه دهنده ها همه محتویات پویا و ایستای مورد نیاز برای صفحات WEB را قرار می دهند. علاوه بر آن، کدهای پویایی که درسرویس دهندها اجرا می شوند، می توانند در محلی در یک صفحه درون یک قطعه قرار بگیرند . کد های پویا  که مانند دیگر تکنولوژی های توسعه یافته مانند PHP, JSP و ASP است اما این شیوه معمولاً توسط مایکروسافت رد می شود مگر به منظور الحاق داده ، زیرا زمانیکه صفحه ترجمه می گردد درخواست های بیشتری وجود دارد.

روشی که توسط مایکروسافت برای رفتار با کد برنامه پویا پیشنهاد می شود، مدل پشتیبانی کد است که این کد را در یک پرونده جداگانه یا ضمیمه متنی به طور ویژه طراحی شده قرارمی دهد. پرونده های پشتیبان کد معمولاً چیزهایی را به مفهوم MyPage.aspx.cs یا MyPage.aspx.vb بر پایه نام پرونده ASPX نام می نهد . (این عمل در مایکروسافت ویژوال استدیو و سایر محیط های توسعه یکپارچه به صورت خودکار انجام می شود .) زمانیکه از این روش برنامه نویسی استفاده می کنید ، توسعه دهنده کدها را برای پاسخ دادن به رویدادهای مختلف مانند صفحه ای که بارگذاری می شود، یا کنترلی که بر روی آن کلیک می شود به جای رویه ای که در طول برنامه حرکت می کند، می نویسد.

روش فنی ترجمه

ASP از یک روش نمایش مرکب ترجمه ای استفاده می کند. در طول تألیف الگوی(.aspx) پرونده درون قالب کد تدوین می شود که یک درخت کنترل (مرکب) ساخته خواهد شد که قالب (ایستا) اصلی را نشان می دهد. متن اصلی درون نمونه هایی از کلاس کنترل اصلی می رود . کنترل های سرویس دهنده توسط نمونه هایی از یک کلاس کنترل ویژه نشان داده می شوند. کد آغازین با کد نوشتاری کاربر(معمولاً توسط مجمعی ازکلاس های جزئی چندگانه) و نتایج در یک ویژگی کلاس برای صفحه ترکیب شده است . صفحه مانند ریشه درخت کنترل مضاعف می شود.

درخواست های واقعی برای یک صفحه در میان مرحله ای از مراحل پردازش می شود. ابتدا، در طول مراحل بارگزاری نمونه ای از کلاس صفحه ساخته می شود و کد بارگزاری اجرا می گردد. این حاصل درخت کنترل اصلی است که در حال حاضر معمولاً توسط روش هایی از مراحل پیگیری در صفحه اداره می شود. همانند هر گره در درخت، یک کنترل نشان داده شده است، مانند نمونه ای از یک کلاس که می تواند ساختار درخت را به خوبی با دستکاری خصوصیات/روش های گره های منحصر به فرد تغییر می دهد. نهایتاً در طول مرحله ترجمه یک دیدارگر برای دیدن هر گره درخت استفاده شده است . هر گره برای ترجمه خود با استفاده از روش هایی از ناظر درخواست می کند. کد HTML منتج برای سرویس گیرنده (Client) فرستاده می شود.

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

 

پرونده های دیگر

سایر پرونده های الحاقی با نسخه های متفاوت ASP شامل :

 Ascx

 کنترل ها کاربر

WEB

 کنترل های معمول که درون صفحات WEB جای داده می شوند.

ashx

دیگر مجریان HTTP

asmx

صفحات سرویس دهنده WEB

axd

زمانیکه در web.config، درخواست trace.axd فعال می شود، خروجی های سطح کاربردی ترسیم می شوند. همچنین برای رسیدگی کننده axd منبع WEB مخصوص استفاده می شود که به توسعه دهنده های مؤلفه/ کنترل اجازه می دهد تا بسته یک کنترل/مؤلفه را با عکس ها، سند، قالب آبشاری صفحات و غیره کامل کند. برای گسترش دریک پرونده انفرادی (یک مجمع)

 

مرورگر 

مرورگر پرونده های ممکن را درقالب XML ذخیره می کند که در نسخه 3 از ASP.NET 2 که شامل بسیاری از اینها به صورت پیش فرض است، معرفی می گردد تا مرورگرهای WEB مشترک را پشتیبانی کند. این ها مشخص می کنند که مرورگرها کدام توانایی ها را دارند، بنابراین ASP.NET 2 می تواند به صورت خودکار بر طبق نتیجه خروجی خود سفارشی و بهینه سازی شود. پرونده های مرورگر مخصوص برای دریافت (دانلود) رایگان برای استفاده در دسترس هستند. برای مثال ، W3C Validator ، بطوریکه این به شکل صحیح استانداردهای تاییدی را نمایش می دهد .

config 

اweb.config تنها پرونده مخصوص برنامه های WEB است که توسط قرارداد گسترش دهنده استفاده می گردد (به همین نحو machine.config در تمامی سرویس دهنده WEB و تمامی برنامه های درون آن اثر می گذارد). اگر چه ASP.NET امکانات را برای ساخت و استفاده سایر پرونده های config فراهم می کند . این ها در قالب XML ذخیره می شوند بنابراین اجازه می دهند پیکربندی تغییر کند تا به سادگی ساخته شود.

cs/vb 

در ASP.NET 2 هر پرونده از پرونده های cs/vb درون پوشه App_Code قرارمی گیرد که به صورت پویا تألیف می گردد و در سرتاسر برنامه قابل دسترس است.

master

 صفحات اصلی ; مطرح شده درنسخه 2.0

sitemap 

پرونده های پیکربندی نقشه سایت

skin 

پرونده های پوسته ی زمینه

resx 

پرونده های منبع برای بین المللی و محلی کردن. پرونده های منبع می توانند سراسری (به طور مثال پیام ها) یا محلی باشند که هر یک معنی های خاصی برای یک aspx یا ascx یا پرونده دارند.

dbml 

(نسخه 3.5) LINQ برای پرونده کلاس های داده SQL

 

ساختار فهرست راهنما

به طور کلی ساختار فهرست ASP.NET می تواند توسط الویت های توسعه دهنده تعیین شود . صرف نظر از تعداد محدودی از نام های ذخیره شده ، سایت می تواند هر تعداد از پوشه ها را پشتیبانی کند . ساختار معمولاً انعکاس مستقیمی از url ها است. هرچند ASP.NET قابلیت ها را برای جداسازی درخواست در هر مرحله از طول پردازش فراهم می کند ، توسعه دهنده مجبور نیست درخواست ها را درسرتاسر یک برنامه مرکزی یا کنترل گر پیشین تبدیل کند .

 

نام های پوشه های ویژه :

App_Browsers  

پرونده های معرفی مرورگر مخصوص سایت را نگه می دارد.

App_Code 

پوشه "کدهای خام" است. سرویس دهنده ASP.NET به صورت خودکار پرونده ها(و زیر فهرست ها)ی درون این پوشه را درون انجمنی که در هر صفحه از سایت قابل دسترسی است، تألیف می کند. App_Code معمولاً برای کد انتزاعی دستیابی داده، کد نمونه و کد تجاری استفاده خواهد شد. همچنین همه مشخصات سایت اجرا کننده http و بخش های جدا و پیاده سازی سرویس وب در این پوشه می روند . مانند دیگران ، توسعه دهنده می تواند برای فراهم سازی استفاده از App_Code یک مجمع جدا را با کدهای از پیش تالیف شده انتخاب کند.

App_Data 

پوشه پیش فرض برای پایگاه های داده از قبیل پرونده های .mdb در access و پرونده های .mdb درsql server. این پوشه معمولاً تنها قابلیت ویرایش توسط یک برنامه را دارد.

App_LocalResources 

شامل پرونده های منبع متمرکز برای صفحات منحصر به فرد سایت . به طور مثال پرونده ای که CheckOut.aspx.fr-FR.resx نامیده می شود ، منابع متمرکز را برای نسخه فرانسوی صفحات CheckOut.aspx نگه میدارد. زمانیکه فرهنگ رابط کاربر برای فرانسه تنظیم می شود، ASP.NET به طور خودکار این پرونده را برای این شرایط یافته و مورد استفاده قرارخواهد داد.

App_GlobalResources 

پرونده های resx را با منبع محلی"متمرکز" قابل دسترس برای هر صفحه سایت نگه می دارد. این جایی است که توسعه دهنده ASP.NET نوعاً پیام های متمرکز را که برای بیش ازیک صفحه مورد استفاده قرارمی گیرد، ذخیره می کند.

App_Themes 

زمینه های متنوع "دیگر" سایت را نگه می دارد.

App_WebReferences 

پرونده های اکتشافی و پرونده های WSDL را برای ارجاع به سرویس وب که در سایت مورد استفاده قرارمی گیرند، نگه می کند.

 

کارایی

اهداف ASP ایجاد کارایی بر روی سایر فناوری های مبتنی بر متن (شامل ASP قدیمی) توسط تالیف کد سمت سرویس دهنده به یک یا بیشتر، از پرونده های DLL روی سرویس دهنده WEB است . این تآلیف به صورت خودکار اولین باری که یک صفحه درخواست می شود اتفاق می افتد . (که سبب می شود توسعه دهنده احتیاجی به انجام یک مرحله تألیف جداگانه برای صفحات نداشته باشد.) این ویژگی، سهولت توسعه ارائه توسط زبان های متنی را با نشان دادن کارایی برای تألیف دودویی فراهم می کند . به هرحال، تألیف می تواند سبب یک تأخیرقابل ملاحظه برای کاربر WEB زمانیکه صفحه جدیداً ویرایش "نشر" شده را برای اولین باردرخواست می شود ، شود.

ASPX و سایر پرونده های منبع در یک میزبان مجازی بر روی یکی از سرویس های اطلاعاتی اینترنت جای دارد (یا سایر سرویس دهندههای سازگار; در زیر سایر پیاده سازی ها را ببینید.) اولین باری که یک سرویس گیرنده صفحه ای را درخواست می کند، چارچوب کاری .NET پرونده(ها) را درون یک انجمن .NET تجزیه و تألیف کرده و پاسخ را ارسال می کند. درخواست های بعدی توسط پرونده های DLL انجام می شوند. به صورت پیش فرض به محض اولین درخواست ASP.NET سایت را بدون ایراد در دسته ای متشکل از 1000 پرونده تألیف خواهد کرد. اگر به دلیل بروز مشکلی تالیف به طول انجامد ، که در این حالت اندازه دسته یا راهبرد تالیف پیچیده بوده.

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

 

گسترش

مایکروسافت بعضی از چارچوب های کاری الحاقی متصل شده درون ASP.NET را منتشرمی سازد و قابلیت تابعی آن را توسعه می دهد. بعضی ازآنها :

 

ASP.NET AJAX 

گسترش با مؤلفه های ضلع سرویس گیرنده همچنین ضلع سرویس دهنده برای نوشتن صفحات ASP.NET که قابلیت AJAX را متصل می کند.

ASP.NET MVC Framework 

گسترش تألیف صفحات ASP.NET با استفاده از معماری MAV.

 

مقایسه ASP.NET با ASP قدیمی

ASP تلاش می کند تحول توسعه دهنده ها را ازتوسعه کاربرد ویندوز تا توسعه WEB توسط ارائه قابلیت ساخت صفحات مرکب از کنترل ها همانند یک رابط کاربری ویندوز ساده نماید. یک کنترل WEB از قبیل یک Button یا یک Label در بسیاری از سبک ها همانند همتای ویندوز خودش عمل می کند. کد می تواند خصوصیات و پاسخ خود را به رویدادهایش ارجاع دهد. کنترل ها معلومات"فوت و فن" ترجمه خود را دارند: در حالی که کنترل های ویندوز خودشان را بر روی پرده ترسیم می کنند، کنترل های WEB قطعاتی ازHTML  وJAVASCRIPT  را تولید می کنند که بخشی از فرم صفحه حاصل را به مرورگر کاربر نهایی می فرستد.

ASP.NET برنامه نویس را به توسعه کاربردها با استفاده از نمونه رابط کاربر گرافیکی رویدادی(مدل event-driven GUI) و سریعتر از محیط های سندی مرسوم در WEB مانند ASP و PHP تشویق می کند. چارچوب کاری تلاش می کند فناوری های موجود از قبیل JAVASCRIPT را با مؤلفه های درونی همانند حالت دید برای به دست آوردن حالت پایدار"درخواست درونی" در محیط WEB نا متمرکز اصلی ترکیب کند. سایر تفاوت های مقایسه ای ASP قدیمی هستند:

سایر تفاوت های مقایسه ای ASP قدیمی هستند:

کد تألیف شده سبب اجرای سریع تر برنامه هایی همراه با به دام انداختن خطاهای زمان طراحی بیشتر در حین توسعه می شود .

عمدتاً با استفاده از مستثنی کردن به‌ وسیله ی قالب Try-Catch مدیریت خطاهای زمان اجرا را بهبود می بخشد .

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

مجموعه وسیعی از کنترل ها و کتابخانه های کلاس اجازه ی ساخت سریعتر برنامه های را می دهد ، بعلاوه کنترل های تعریف شده توسط کاربر همچون منوها ، اجازه می دهد که معمولاً از قالب ها استفاده شود . طراحی این کنترل ها روی صفحه آسانتر است زیرا اغلب آنها می توانند دربیشتر ویرایشگرها به صورت بصری عمل کنند.

ASP.NET دارای قابلیت استفاده هم زمان از چند زبان شناسایی شده در VB.NET می باشد که اجازه می دهد تا صفحات WEB نوشته شوند با VB.NET و C# و J# و غیره .

توانایی Cache شدن تمام صفحه یا فقط بخشی از آن برای بهبود نمایش.

توانایی استفاده ازمدل کد پشتیبان برای جداسازی منطق کار از ارائه.

اگر هر کاربرASP.NET در حافظه نفوذ کند، مجری ASP.NET میزبان دامنه ی برنامه ی دارای خطا را از بین می برد و برنامه را مجدداً راه اندازی می کند .

حالت جلسه در ASP.NET می تواند در یک پایگاه داده SQL Server یا در یک پردازش جداگانه در حال اجرا بر روی دستگاه ساده مانند سرویس دهنده WEB یا یک ماشین متفاوت ذخیره می شود. زمانیکه سرویس دهنده WEB مجدداً راه اندازی می شود یا پردازش کننده ASP.NET بازیافت می شود ، مقادیر راه های جلسه از بین نمی رود.

نسخه های قبلی (ASP.NET (1.0 and 1.1 به دلیل مغایرت با استاندارد های تاییدی مورد انتقاد بودند . HTML و JavaScript های تولید شده به مرورگر سرویس گیرنده فرستاده می شدند که همیشه در برابر استاندارد های W3C/ECMA تایید شده نبودند . بعلاوه گاهی اوقات چارچوب کاری مرورگر خصایص را نادرست تشخیص می دهد و یا مرورگر های WEB ، به غیر از IE ساخته شده توسط مایکروسافت مانند نسخه های قبلی ، HTML/JAVASCRIPT بازگردانی شده به این سرویس گیرنده ها را با بعضی از خصایص از بین رفته و یا بعضی اوقات شکسته و یا ناقص شناسایی می کنند .

کنترل های سرویس دهندهWEB : این ها کنترل های معرفی شده توسط ASP.net برای فراهم سازی رابط کاربری برای وب فرم هستند. این کنترل ها ، کنترل های مدیریت شده هستند و کنترل های WYSIWYG هستند. (چیزی که می بینید چیزی است که به دست آورده اید."نمایش اطلاعات درحالت چاپ شدنی")

 

معایب ASP

صفحات سرویس دهنده فعال قدیمی (ASP) وASP.NET  می توانند در کنار یکدیگر در یک برنامه WEB اجرا شوند. این رویکرد به توسعه دهنده اجازه می دهد برنامه ها را به آهستگی جا به جا کند بجای آنکه همه آنها را یک باره تغییر حالت دهد . درIIS 6.0  و قبل ازآن، صفحاتی که با نسخه های متفاوتی از چارچوب کاری ASP نوشته می شوند نمی توانستند حالت جلسه را بدون استفاده از کتابخانه های مشخص ثابت تقسیم کند . این ایراد درASP.NET  وجود ندارد و برنامه های ASP در کنار یکدیگر بر روی IIS 7 اجرا می شود . در IIS 7 ، نمونه ها می توانند در خطوط مجتمع اجرا شوند که اجازه می دهد تا نمونه ها در هر زبانی نوشته شود ، تا برای هر درخواستی قابل نمایش گردد.

در برخی موارد در زمان اجرای ASP.NET پردازش عامل در حلقه می افتد . (به طور مثال اگرآن بدون توجه "بی احتیاط" بیاید یا اگر هر کاربرد خارج از کنترل اجرا شود ،سبب می شود که پردازش عامل بیش از 60 درصد از رم موجود را استفاده کند ) آن همچنین می تواند در شرایطی که تعداد معینی از درخواست ها ارسال می شود ، اتفاق بیافتد ، برای مثال در یک سیکل زمانی . در این حالات اگر برنامه برای استفاده از جلسه داخلی تنظیم شده باشد ، ممکن است کاربران حالت جلسه را از دست بدهند "گم کنند" . اگر برنامه به حالت جلسه برای ذخیره کردن اطلاعات اعتبار سنجی وابسته باشد ، و برنامه با استفاده از جلسات درون پردازشی پیکربندی شود ، ممکن است در صورتی که پردازش در حلقه بیافتد ، ارتباط کاربر قطع شود .

نشانه هایی که ASP.NET 2.0 تولید می کند توسط W3C تایید شده اند .اما این نکته حائز اهمبت است که آیا این افزایش قابل دسترسی است ؟ یکی از این مزایا از یک لحاظ صفحات XHTML + نمایش CSS است . کنترل های متعدد از قبیل کنترل های ورود و کنترل های چند مرحله ای ، به صورت پیش فرض از جداول HTML استفاده می کنند . Microsoft هم اکنون به سمت طرقی می رود که این مشکل را به وسیله انتشار کنترل های سازگار کننده ی ASP.NET 2.0 CSS حل کند . به طور مثال افزودنی های رایگان که نشانه هایی مطابق با XHTML+CSS در دسترس تولید می کنند . به هر حال برخی از کنترل ها هنوز به JAVASCRIPT استناد می کنند.

 

ابزارهای توسعه

برخی ازبسته های نرم افزاری در دسترس که برای توسعه کاربردهای ASP.NET وجود دارند:

 

Microsoft Expression Web بخشی ازمجموعه کاربردی Microsoft Expression Studio

Visual Studio .NET برای (for ASP.NET 1.x)

ASP.NET Web Matrix (برای ASP.NET 1.x ; اکنون کمتر پشتیبانی می شود: جایگزین شده توسط Visual Web Developer 2005 Express Edition مستقل)

Visual Web Developer 2005 Express Edition یا Visual Studio 2005 (برای ASP.NET 2.0 )

Visual Studio 2008 (برای ASP.NET 3.5 )

Macromedia HomeSite 5.5 (برای برچسب های ASP )

Microsoft SharePoint Designer 12

Delphi 2006

MonoDevelop (مستقل"رایگان" /کد باز)

SharpDevelop (مستقل"رایگان" /کد باز)

 

چارچوب کاری ها

زمانی که عملیات توسعه توسط ASP.NET انجام می شود ، لزومی به استفاده از آن برای مدل توسعه فرم های استاندارد وب نیست . چارچوب کاری های قابل ملاحظه ای که برای انواع طراحی شده اند شامل :

Castle Monorail ، یک چاچوب کاری MVC کد باز با یک مدل اجرایی شبیه به Ruby on Rails . چارچوب کاری معمولاً به همراه Castle Active Record استفاده می شود که یک لایه ORM ساخته شده درNHibernate  می باشد .

Spring.NET ، بخشی ازچارچوب کاری ارتجاعی برای JAVA.
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد