ای‌اس‌پی‌دات‌نت

قالب پرونده ASPX

ASPX یک پرونده با قالب متنی است که برای ساخت صفحات وب (ابهام‌زدایی) از آن استفاده می‌شود، و استاندارد پرونده‌های XML را رعایت می‌کند. پرونده ASPX معمولاً شامل نشانه گذاری های HTML یا XHTML (اکس‌اچ‌تی‌ام‌ال) و همچنین نشانه گذاری های کنترل‌های استاندارد Web و کنترل‌های تعریف شده در معماری ASP.NET است، که توسعه دهنده ها و برنامه نویسان وب همه محتویات پویا و ایستا(static) مورد نیاز را برای ایجاد صفحات Web پویا در آن قرار می‌دهند. علاوه برآن، کدهای پویایی که درسرویس دهنده ها اجرا می‌شوند، می‌توانند درمحلی دریک صفحه درون یک قطعه قرار بگیرند --٪> کدهای پویا <٪- که مانند دیگرتکنولوژی‌های توسعه یافته مانند PHP, JSP و ASP است اما این شیوه معمولاً توسط مایکروسافت رد می‌شود مگر به منظور الحاق داده، زیرا زمانی‌که صفحه ترجمه می‌گردد درخواست‌های بیشتری وجود دارد.
روشی که توسط مایکروسافت برای رفتار با کد برنامه پویا پیشنهاد می‌شود، مدل پشتیبانی کد است که این کد را دریک پرونده جداگانه یا ضمیمه متنی به‌طور ویژه طراحی شده قرارمی‌دهد. پرونده‌های پشتیبان کد معمولاً چیزهایی را به مفهوم MyPage.aspx.cs یا MyPage.aspx.vb برپایه نام پرونده ASPX نام می‌نهد. (این عمل درمایکروسافت ویژوال استادیو و سایر محیط‌های توسعه یکپارچه به صورت خودکارانجام می‌شود.) زمانی‌که از این روش برنامه‌نویسی استفاده می‌کنید، توسعه دهنده کدها را برای پاسخ دادن به رویدادهای مختلف مانند صفحه‌ای که بارگذاری می‌شود، یا کنترلی که بر روی آن کلیک می‌شود به جای رویه‌ای که در طول برنامه حرکت می‌کند، می‌نویسد.

مقایسه سرعت ASP.NET با زبان PHP

اساساً مقایسه یک فریم ورک (ASP.Net Core)  با یک زبان برنامه‌نویسی (PHP) اشتباه است .
ASP.net یک فریم ورک بر مبنای زبان برنامه‌نویسی #C است و باید آن را با یکی از فریم ورک‌های PHP (مثل Laravel  یا CodeIgniter ) مقایسه کرد. که از نظر سرعت اجرای اپلیکیشن‌ها،
ASP.NET Core بسیار سریعتر تر از دیگر فریم ورک ها حتی NodeJs عمل میکند( با پیکربندی ها و هاست بر روی لینوکس و یا استفاده از Kestrel).
همچنین مقایسه این فریم ورک‌ها از نظر امنیت نیز به رجزخوانی بین توسعه دهندگان این دو پلتفرم تبدیل شده و آزمایش عملی رسمی در این مورد صورت نگرفته‌است. 
 ؛ اما در Asp.net Core امنیت تا حد بسیار بیشتری نسبت به قبل در کنار بازدهی بالا، بهبود یافته است.
در پلتفرم asp.net web form  سیستم عامل مورد نیاز برای بارگذاری این وب سایت‌ها سیستم عامل ویندوز بود که به دلیل اشغال رم ویندوز نسبت به دگر سیستم عامل‌ها مثل لینوکس، این عیب در نسخه .net core بر طرف شد و وب سایت‌هایی که با این نرم افزار نوشته می‌شوند قابلیت بارگذاری روی دیگر سیستم عامل‌ها مانند لینوکس و مک را توسط وب سرور های مختلفی از جمله Apache، Nginx و Kestrel دارند.
این پلتفرم در سال 2017 جز پرکاربردترین و پر درآمدترین زبان های برنامه‌نویسی دنیا معرفی شد.[2]

روش فنی ترجمه

Asp.net از یک روش نمایش مرکب ترجمه‌ای استفاده می‌کند. در طول تألیف الگوی(.aspx) پرونده درون قالب کد تدوین می‌شود که یک درخت کنترل (مرکب) ساخته خواهد شد که قالب (ایستا)اصلی را نشان می‌دهد.
متن اصلی درون نمونه‌هایی ازکلاس کنترل اصلی می‌رود. کنترل‌های سرویس دهنده توسط نمونه‌هایی از یک کلاس کنترل ویژه نشان داده می‌شوند. کد آغازین با کد نوشتاری کاربر(معمولاً توسط مجمعی ازکلاس‌های جزئی چندگانه) و نتایج دریک ویژگی کلاس برای صفحه ترکیب شده‌است. صفحه مانند ریشه درخت کنترل مضاعف می‌شود.
درخواست‌های واقعی برای یک صفحه درمیان مرحله‌ای ازمراحل پردازش می‌شود. ابتدا، در طول مراحل بارگذاری نمونه‌ای ازکلاس صفحه ساخته می‌شود وکد بارگذاری اجرا می‌گردد. این حاصل درخت کنترل اصلی است که در حال حاضرمعمولاً توسط روش‌هایی ازمراحل پیگیری در صفحه اداره می‌شود. همانند هرگره دردرخت، یک کنترل نشان داده شده‌است، مانند نمونه‌ای از یک کلاس که می‌تواند ساختاردرخت را به خوبی با دستکاری خصوصیات/روش‌های گره‌های منحصربه‌فرد تغییرمی‌دهد. نهایتاً در طول مرحله ترجمه یک دیدارگربرای دیدن هرگره درخت استفاده شده‌است. هرگره برای ترجمه خود با استفاده از روش‌هایی ازناظردرخواست می‌کند. کد HTML منتج برای سرویس گیرنده (Client) فرستاده می‌شود.
پس ازپردازش درخواست نمونهٔ کلاس صفحه دورانداخته می‌شود وبا آن درخت کنترل تکمیل می‌شود.

کارایی

اهداف Asp.Net ایجاد کارایی بر روی سایرفناوری‌های مبتنی بر متن (شامل ASP قدیمی) توسط تألیف کد سمت سرویس دهنده به یک یا بیشتر، از پرونده‌های DLL روی سرویس دهنده WEB است. این تآلیف به صورت خودکاراولین باری که یک صفحه درخواست می‌شود اتفاق می‌افتد. (که سبب می‌شود توسعه دهنده احتیاجی به انجام یک مرحله تألیف جداگانه برای صفحات نداشته باشد.) این ویژگی، سهولت توسعه ارائه توسط زبان‌های متنی را با نشان دادن کارایی برای تألیف دودویی فراهم می‌کند. به هرحال، تألیف می‌تواند سبب یک تأخیرقابل ملاحظه برای کاربرWEB زمانی‌که صفحه جدیداً ویرایش «نشر» شده را برای اولین باردرخواست می‌شود، شود.
ASPX وسایرپرونده‌های منبع دریک میزبان مجازی بر روی یکی از سرویس‌های اطلاعاتی اینترنت جای دارد (یا سایرسرویس دهنده‌های سازگار؛ درزیرسایرپیاده سازی‌ها را ببینید.) اولین باری که یک سرویس گیرنده صفحه‌ای را درخواست می‌کند، چارچوب کاری.NET پرونده(ها) را درون یک انجمن.NET تجزیه وتألیف کرده و پاسخ را ارسال می‌کند. درخواست‌های بعدی توسط پرونده‌های DLL انجام می‌شوند. به صورت پیش‌فرض به محض اولین درخواست ASP.NET سایت را بدون ایراد دردسته‌ای متشکل از۱۰۰۰ پرونده تألیف خواهدکرد. اگر به دلیل بروز مشکلی تألیف به طول انجامد، که در این حالت اندازه دسته یا راهبرد تألیف پیچیده بوده.
همچنین توسعه دهنده‌ها می‌توانند تألیف مقدماتی خودشان را قبل ازگسترش انتخاب کنند، که به منظور رفع احتیاج برای تألیف به موقع دریک محیط تولید می‌باشد.

معایب ASP

صفحات سرویس دهنده فعال قدیمی (ASP) وASP.NET می‌توانند در کنار یکدیگر در یک برنامه WEB اجرا شوند. این رویکرد به توسعه دهنده اجازه می‌دهد برنامه‌ها را به آهستگی جا به جا کند به جای آنکه همه آن‌ها را یک باره تغییرحالت دهد. درIIS ۶٫۰ وقبل ازآن، صفحاتی که با نسخه‌های متفاوتی ازچارچوب کاری ASP نوشته می‌شوند نمی‌توانستند حالت جلسه را بدون استفاده ازکتابخانه‌های مشخص ثابت تقسیم کند. این ایراد درASP.NET وجود ندارد و برنامه‌های ASP در کنار یکدیگر بر روی IIS ۷ اجرا می‌شود. در IIS ۷، نمونه‌ها می‌توانند درخطوط مجتمع اجرا شوند که اجازه می‌دهد تا نمونه‌ها درهرزبانی نوشته شود، تا برای هر درخواستی قابل نمایش گردد.
در برخی موارد در زمان اجرای ASP.NET پردازش عامل در حلقه می‌افتد. به‌طور مثال اگر فرایندی خارج از کنترل اجرا شود، سبب می‌شود که پردازش عامل بیش از ۶۰ درصد از حافظه اصلی سخت‌افزار موجود را استفاده کند پردازش عامل در حلقه می‌افتد. همچنین ممکن است در شرایطی که تعداد معینی از درخواست‌ها ارسال می‌شود، این اتفاق رخ دهد، برای مثال در یک سیکل زمانی. در این حالات اگر برنامه برای استفاده از یک سشن (نشست) تنظیم شده باشد، ممکن است این نشست از دست برود. اگربرنامه به حالت جلسه برای ذخیره کردن اطلاعات اعتبار سنجی وابسته باشد، و برنامه با استفاده از جلسات درون پردازشی پیکربندی شود، ممکن است در صورتی که پردازش درحلقه بیفتد ارتباط کاربر قطع شود.
نشانه‌هایی که ASP.NET ۲٫۰ تولید می‌کند توسط W3C تأیید شده‌اند. اما این نکته حائز اهمبت است که ایا این افزایش قابل دسترسی است؟ یکی از این مزایا از یک لحاظ صفحات اکس‌اچ‌تی‌ام‌ال + نمایش CSS است. کنترل‌های متعدد از قبیل کنترل‌های ورود و کنترل‌های چند مرحله‌ای، به صورت پیش‌فرض از جداول HTML استفاده می‌کنند. مایکروسافت هم‌اکنون به سمت طرقی می‌رود که این مشکل را به وسیله انتشار کنترل‌های سازگارکنندهٔ ASP.NET 2.۰ CSS حل کند. به‌طور مثال افزودنی‌های رایگان که نشانه‌هایی مطابق با اکس‌اچ‌تی‌ام‌ال+CSS در دسترس تولید می‌کنند. به هر حال برخی از کنترل‌ها هنوز به جاوااسکریپت استناد می‌کنند.