ASPX یک پرونده با قالب متنی است که برای ساخت صفحات وب (ابهامزدایی) از آن استفاده میشود، و استاندارد پروندههای XML را رعایت میکند. پرونده ASPX معمولاً شامل نشانه گزاریهای HTML یا اکساچتیامال همچنین نشانه گزاریهای کنترلهای استاندارد Web و کنترلهای تعریف شده در معماری ASP.NET است، که توسعه دهنده ها(برنامه نویسان وب) همه محتویات پویا وایستای مورد نیاز را برای ایجاد صفحات Web پویا در آن قرار میدهند. علاوه برآن، کدهای پویایی که درسرویس دهندها اجرا میشوند، میتوانند درمحلی دریک صفحه درون یک قطعه قرار بگیرند --٪> کدهای پویا <٪- که مانند دیگرتکنولوژیهای توسعه یافته مانند PHP, JSP و ASP است اما این شیوه معمولاً توسط مایکروسافت رد میشود مگر به منظور الحاق داده، زیرا زمانیکه صفحه ترجمه میگردد درخواستهای بیشتری وجود دارد.
روشی که توسط مایکروسافت برای رفتاربا کد برنامه پویا پیشنهاد میشود، مدل پشتیبانی کد است که این کد را دریک پرونده جداگانه یا ضمیمه متنی بهطور ویژه طراحی شده قرارمیدهد. پروندههای پشتیبان کد معمولاً چیزهایی را به مفهوم MyPage.aspx.cs یا MyPage.aspx.vb برپایه نام پرونده ASPX نام مینهد. (این عمل درمایکروسافت ویژوال استادیو و سایر محیطهای توسعه یکپارچه به صورت خودکارانجام میشود.) زمانیکه از این روش برنامهنویسی استفاده میکنید، توسعه دهنده کدها را برای پاسخ دادن به رویدادهای مختلف مانند صفحهای که بارگذاری میشود، یا کنترلی که بر روی آن کلیک میشود به جای رویهای که در طول برنامه حرکت میکند، مینویسد.
اساساً مقایسه یک فریم ورک (ASP.Net Core) با یک زبان برنامهنویسی (PHP) اشتباه است .
ASP.net یک فریم ورک بر مبنای زبان برنامهنویسی #C است و باید آن را با یکی از فریم ورکهای PHP (مثل Laravel یا CodeIgniter ) مقایسه کرد. که از نظر سرعت اجرای اپلیکیشنهای متناظر ، فریم ورکهای Laravel و Yii و CodeIgniter تقریباً 33% سریعتر از ASP.NET Core2 عمل میکنند.
همچنین مقایسه این فریم ورکها از نظر امنیت نیز به رجزخوانی بین توسعه دهندگان این دو پلتفرم تبدیل شده و آزمایش عملی رسمی در این مورد صورت نگرفتهاست.
یکی از نظریات متعصبانه در مورد ASP.net را در زیر می خوانید :
همان طور که می دانید زبان برنامهنویسی ASP.NET Web Form و ASP.NET Core ، چون هنگام کامپایل به زبان ماشین تبدیل میشوند این موضوع هم باعث امنیت کد و سرعت بسیار بالای اون نسبت به سایر زبانهای برنامهنویسی دیگر مانند PHP شدهاست ! ، سرعت اجرایی کدهای ASP.NET Core بیشتر از ASP.NET Web Form بوده و سرعت ASP.NET Web Form نیز از PHP بیشتر بوده ( برای اثبات این موضوع آزمایشهایی زیادی انجام شده) متأسفانه چون یک سری اطلاعات غلط در رابطه با بیشتر بودن سرعت PHP نسبت به ASP.NET منتشر شده اکثر برنامه نویسان مبتدی فکر میکنند که سرعت اجرایی کدهای PHP ( به صورت مفسری کامپایل میشود ) از ASP.NET ( به زبان ماشین کامپایل میشود ) بیشتر بوده که اصلا اینطور نیست . [۱] در پلتفرم asp.net web form سیستم عامل مورد نیاز برای بارگذاری این وب سایتها سیستم عامل ویندوز بود که به دلیل اشغال رم ویندوز نسبت به دگر سیستم عاملها مثل لینوکس، این عیب در نسخه CORE بر طرف شد و وب سایتهایی ه با این نرم افزار نوشته میشوند قابلیت بارگذاری روی دیگر سیستم عاملها را دارند.
این پلتفرم در سال 2017 جز پرکاربردترین و پردؤامدترین زبان هی برنامهنویسی دنیا معرفی شد.[2]
ASP از یک روش نمایش مرکب ترجمهای استفاده میکند. در طول تألیف الگوی(.aspx) پرونده درون قالب کد تدوین میشود که یک درخت کنترل (مرکب) ساخته خواهد شد که قالب (ایستا)اصلی را نشان میدهد. متن اصلی درون نمونههایی ازکلاس کنترل اصلی میرود. کنترلهای سرویس دهنده توسط نمونههایی از یک کلاس کنترل ویژه نشان داده میشوند. کد آغازین با کد نوشتاری کاربر(معمولاً توسط مجمعی ازکلاسهای جزئی چندگانه) و نتایج دریک ویژگی کلاس برای صفحه ترکیب شدهاست. صفحه مانند ریشه درخت کنترل مضاعف میشود.
درخواستهای واقعی برای یک صفحه درمیان مرحلهای ازمراحل پردازش میشود. ابتدا، در طول مراحل بارگذاری نمونهای ازکلاس صفحه ساخته میشود وکد بارگذاری اجرا میگردد. این حاصل درخت کنترل اصلی است که در حال حاضرمعمولاً توسط روشهایی ازمراحل پیگیری در صفحه اداره میشود. همانند هرگره دردرخت، یک کنترل نشان داده شدهاست، مانند نمونهای از یک کلاس که میتواند ساختاردرخت را به خوبی با دستکاری خصوصیات/روشهای گرههای منحصربهفرد تغییرمیدهد. نهایتاً در طول مرحله ترجمه یک دیدارگربرای دیدن هرگره درخت استفاده شدهاست. هرگره برای ترجمه خود با استفاده از روشهایی ازناظردرخواست میکند. کد HTML منتج برای سرویس گیرنده (Client) فرستاده میشود.
پس ازپردازش درخواست نمونهٔ کلاس صفحه دورانداخته میشود وبا آن درخت کنترل تکمیل میشود.
سایرپروندههای الحاقی با نسخههای متفاوت ASP شامل: ascx; کنترلها کاربرWEB: کنترلهای معمول که درون صفحات WEB جای داده میشوند.[۲]
دیگر مجریان HTTP
صفحات سرویس دهنده WEB
زمانیکه درweb.config، درخواست trace.axd فعال میشود، خروجیهای سطح کاربردیترسیم میشوند. همچنین برای رسیدگیکننده axd منبع WEB مخصوص استفاده میشود که به توسعه دهندههای مؤلفه/ کنترل اجازه میدهد تا بسته یک کنترل/مؤلفه را با عکسها، سند، قالب آبشاری صفحات و غیره کامل کند. برای گسترش دریک پرونده انفرادی (یک مجمع)
master: صفحات اصلی؛ مطرح شده درنسخه ۲٫۰
بهطورکلی ساختار فهرست ASP.NET میتواند توسط اولویتهای توسعه دهنده تعیین شود. صرف نظرازتعداد محدودی از نامهای ذخیره شده، سایت میتواند هر تعداد از پوشهها را پشتیبانی کند. ساختار معمولاً انعکاس مستقیمی ازurlها است. هرچند ASP.NET قابلیتها را برای جداسازی درخواست در هرمرحله از طول پردازش فراهم میکند، توسعه دهنده مجبورنیست درخواستها را درسرتاسر یک برنامه مرکزی یا کنترل گر پیشین تبدیل کند.
نامهای پوشههای ویژه:
اهداف ASP ایجاد کارایی بر روی سایرفناوریهای مبتنی بر متن (شامل ASP قدیمی) توسط تألیف کد سمت سرویس دهنده به یک یا بیشتر، از پروندههای DLL روی سرویس دهنده WEB است. این تآلیف به صورت خودکاراولین باری که یک صفحه درخواست میشود اتفاق میافتد. (که سبب میشود توسعه دهنده احتیاجی به انجام یک مرحله تألیف جداگانه برای صفحات نداشته باشد.) این ویژگی، سهولت توسعه ارائه توسط زبانهای متنی را با نشان دادن کارایی برای تألیف دودویی فراهم میکند. به هرحال، تألیف میتواند سبب یک تأخیرقابل ملاحظه برای کاربرWEB زمانیکه صفحه جدیداً ویرایش «نشر» شده را برای اولین باردرخواست میشود، شود.
ASPX وسایرپروندههای منبع دریک میزبان مجازی بر روی یکی از سرویسهای اطلاعاتی اینترنت جای دارد (یا سایرسرویس دهندههای سازگار؛ درزیرسایرپیاده سازیها را ببینید.) اولین باری که یک سرویس گیرنده صفحهای را درخواست میکند، چارچوب کاری.NET پرونده(ها) را درون یک انجمن.NET تجزیه وتألیف کرده و پاسخ را ارسال میکند. درخواستهای بعدی توسط پروندههای DLL انجام میشوند. به صورت پیشفرض به محض اولین درخواست ASP.NET سایت را بدون ایراد دردستهای متشکل از۱۰۰۰ پرونده تألیف خواهدکرد. اگر به دلیل بروز مشکلی تألیف به طول انجامد، که در این حالت اندازه دسته یا راهبرد تألیف پیچیده بوده.
همچنین توسعه دهندهها میتوانند تألیف مقدماتی خودشان را قبل ازگسترش انتخاب کنند، که به منظور رفع احتیاج برای تألیف به موقع دریک محیط تولید میباشد.
مایکروسافت بعضی ازچارچوبهای کاری الحاقی متصل شده درون ASP.NET را منتشرمی سازد وقابلیت تابعی آن را توسعه میدهد. بعضی ازآنها:
ASP تلاش میکند تحول توسعه دهندهها را ازتوسعه کاربرد ویندوز تا توسعه WEB توسط ارائه قابلیت ساخت صفحات مرکب از کنترلها همانند یک رابط کاربری ویندوزساده نماید. یک کنترل WEB ازقبیل یک Button یا یک Label دربسیاری ازسبکها همانند همتای ویندوزخودش عمل میکند. کد میتواند خصوصیات وپاسخ خود را به رویدادهایش ارجاع دهد. کنترلها معلومات«فوت و فن» ترجمه خود را دارند: درحالی که کنترلهای ویندوزخودشان را بر روی پرده ترسیم میکنند، کنترلهای WEB قطعاتی ازHTML وجاوااسکریپت را تولید میکنند که بخشی ازفرم صفحه حاصل را به مرورگرکاربرنهایی میفرستد.
ASP.NET برنامهنویس را به توسعه کاربردها با استفاده ازنمونه رابط کاربرگرافیکی رویدادی(مدل event-driven GUI) وسریعترازمحیطهای سندی مرسوم درWEB مانند ASP و PHPتشویق میکند. چارچوب کاری تلاش میکند فناوریهای موجود از قبیل JAVASCRIPT را با مؤلفههای درونی همانند حالت دید برای به دست آوردن حالت پایدار«درخواست درونی» درمحیط WEB نا متمرکزاصلی ترکیب کند. سایرتفاوتهای مقایسهای ASP قدیمی هستند:
سایرتفاوتهای مقایسهای ASP قدیمی هستند:
صفحات سرویس دهنده فعال قدیمی (ASP) وASP.NET میتوانند در کنار یکدیگر در یک برنامه WEB اجرا شوند. این رویکرد به توسعه دهنده اجازه میدهد برنامهها را به آهستگی جا به جا کند به جای آنکه همه آنها را یک باره تغییرحالت دهد. درIIS ۶٫۰ وقبل ازآن، صفحاتی که با نسخههای متفاوتی ازچارچوب کاری ASP نوشته میشوند نمیتوانستند حالت جلسه را بدون استفاده ازکتابخانههای مشخص ثابت تقسیم کند. این ایراد درASP.NET وجود ندارد و برنامههای ASP در کنار یکدیگر بر روی IIS ۷ اجرا میشود. در IIS ۷، نمونهها میتوانند درخطوط مجتمع اجرا شوند که اجازه میدهد تا نمونهها درهرزبانی نوشته شود، تا برای هر درخواستی قابل نمایش گردد.[۳]
در برخی موارد در زمان اجرای ASP.NET پردازش عامل در حلقه میافتد. بهطور مثال اگر فرایندی خارج از کنترل اجرا شود، سبب میشود که پردازش عامل بیش از ۶۰ درصد از حافظه اصلی سختافزار موجود را استفاده کند پردازش عامل در حلقه میافتد. همچنین ممکن است در شرایطی که تعداد معینی از درخواستها ارسال میشود، این اتفاق رخ دهد، برای مثال در یک سیکل زمانی. در این حالات اگر برنامه برای استفاده از یک سشن (نشست) تنظیم شده باشد، ممکن است این نشست از دست برود. اگربرنامه به حالت جلسه برای ذخیره کردن اطلاعات اعتبار سنجی وابسته باشد، و برنامه با استفاده از جلسات درون پردازشی پیکربندی شود، ممکن است در صورتی که پردازش درحلقه بیفتد ارتباط کاربر قطع شود.
نشانههایی که ASP.NET ۲٫۰ تولید میکند توسط W3C تأیید شدهاند. اما این نکته حائز اهمبت است که ایا این افزایش قابل دسترسی است؟ یکی از این مزایا از یک لحاظ صفحاتاکساچتیامال + نمایش CSS است. کنترلهای متعدد از قبیل کنترلهای ورود و کنترلهای چند مرحلهای، به صورت پیشفرض از جداول HTML استفاده میکنند. مایکروسافت هماکنون به سمت طرقی میرود که این مشکل را به وسیله انتشار کنترلهای سازگارکنندهٔ ASP.NET 2.۰ CSS حل کند. بهطور مثال افزودنیهای رایگان که نشانههایی مطابق بااکساچتیامال+CSS در دسترس تولید میکنند. به هر حال برخی از کنترلها هنوز به جاوااسکریپت استناد میکنند.
برخی ازبستههای نرمافزاری دردسترس که برای توسعه کاربردهای ASP.NET وجود دارند: