ای‌اس‌پی‌دات‌نت کیست؟ توضیح بده.
ای‌اس‌پی‌دات‌نت یک چارچوب کاربردی Web است که توسط شرکت مایکروسافت عرضه گردیده تا برنامه نویسان بتوانند برای ساخت سایت‌های وب (website) و برنامه‌های تحت وب (Web applications)پویا و سرویس‌های وب (Web services)پویا وسرویس‌های Web XML از آن استفاده کنند. این بخشی از زیر ساخت.NET مایکروسافت و جانشینی برای تکنولوژی صفحات سرویس دهنده فعال (ASP) است. ASP مبتنی بر زبانهای مشترک در حال اجرا است که به برنامه نویسان اجازه می‌دهد کدهای ASP را با استفاده از هر زبان Framework.NET بنویسند.مشخصات.قالب پرونده ASPX.ASPX یک پرونده با قالب متنی است که برای ساخت صفحات وب (ابهام‌زدایی) از آن استفاده می‌شود، و استاندارد پرونده‌های XML را رعایت می‌کند. پرونده ASPX معمولاً شامل نشانه گذاری های HTML یا XHTML (اکس‌اچ‌تی‌ام‌ال) و همچنین نشانه گذاری های کنترل‌های استاندارد وب و کنترل‌های تعریف شده در معماری ASP.NET است، که توسعه دهنده ها و برنامه نویسان وب همه محتویات پویا و ایستا(static) مورد نیاز را برای ایجاد صفحات وب پویا در آن قرار می‌دهند. علاوه برآن، کدهای پویایی که درسرویس دهنده ها اجرا می‌شوند، می‌توانند درمحلی دریک صفحه درون یک قطعه قرار بگیرند --٪&gt; کدهای پویا &lt;٪- که مانند دیگرتکنولوژی‌های توسعه یافته مانند PHP, JSP و ASP است اما این شیوه معمولاً توسط مایکروسافت رد می‌شود مگر به منظور الحاق داده (Data access)، زیرا زمانی‌که صفحه ترجمه می‌گردد درخواست‌های بیشتری وجود دارد.روشی که توسط مایکروسافت برای رفتار با کد برنامه پویا پیشنهاد می‌شود، مدل پشتیبانی کد است که این کد را دریک پرونده جداگانه یا ضمیمه متنی به‌طور ویژه طراحی شده قرارمی‌دهد. پرونده‌های پشتیبان کد معمولاً چیزهایی را به مفهوم "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 شامل:ascx;کنترل‌ها کاربرWEB: کنترل‌های معمول که درون صفحات وب(Web pages) جای داده می‌شوند.دیگر مجریان HTTPصفحات سرویس دهنده وبزمانیکه در web.config، درخواست trace .axd فعال می‌شود، خروجی‌های سطح کاربردی ترسیم می‌شوند. همچنین برای رسیدگی‌کننده axd منبع WEB مخصوص استفاده می‌شود که به توسعه دهنده‌های مؤلفه/ کنترل اجازه می‌دهد تا بسته یک کنترل/مؤلفه را با عکس‌ها، سند، قالب آبشاری صفحات و غیره کامل کند. برای گسترش دریک پرونده انفرادی (یک مجمع)master: صفحات اصلی؛ مطرح شده درنسخه ۲٫۰ساختارفهرست راهنما.به‌طورکلی ساختار فهرست ASP.NET می‌تواند توسط اولویت‌های توسعه دهنده تعیین شود. صرف نظرازتعداد محدودی از نام‌های ذخیره شده، سایت می‌تواند هر تعداد از پوشه‌ها را پشتیبانی کند. ساختار معمولاً انعکاس مستقیمی ازurlها است. هرچند ASP.NET قابلیت‌ها را برای جداسازی درخواست در هرمرحله از طول پردازش فراهم می‌کند، توسعه دهنده مجبورنیست درخواست‌ها را درسرتاسر یک برنامه مرکزی یا کنترل گر پیشین تبدیل کند.نام‌های پوشه‌های ویژه:کارایی.اهداف Asp.Net ایجاد کارایی بر روی سایرفناوری‌های مبتنی بر متن (شامل ASP قدیمی) توسط تألیف کد سمت سرویس دهنده به یک یا بیشتر، از پرونده‌های DLL روی سرویس دهنده وب است. این تآلیف به صورت خودکاراولین باری که یک صفحه درخواست می‌شود اتفاق می‌افتد. (که سبب می‌شود توسعه دهنده احتیاجی به انجام یک مرحله تألیف جداگانه برای صفحات نداشته باشد.) این ویژگی، سهولت توسعه ارائه توسط زبان‌های متنی را با نشان دادن کارایی برای تألیف دودویی فراهم می‌کند. به هرحال، تألیف می‌تواند سبب یک تأخیرقابل ملاحظه برای کاربرWEB زمانی‌که صفحه جدیداً ویرایش «نشر» شده را برای اولین باردرخواست می‌شود، شود.مهمترین قابلیت ایجاد صفحات تحت وب می باشد.ASPX وسایرپرونده‌های منبع دریک میزبان مجازی بر روی یکی از سرویس‌های اطلاعاتی اینترنت جای دارد (یا سایرسرویس دهنده‌های سازگار؛ درزیرسایرپیاده سازی‌ها را ببینید.) اولین باری که یک سرویس گیرنده صفحه‌ای را درخواست می‌کند، چارچوب کاری.NET پرونده(ها) را درون یک انجمن.NET تجزیه وتألیف کرده و پاسخ را ارسال می‌کند. درخواست‌های بعدی توسط پرونده‌های DLL انجام می‌شوند. به صورت پیش‌فرض به محض اولین درخواست ASP.NET سایت را بدون ایراد دردسته‌ای متشکل از۱۰۰۰ پرونده تألیف خواهدکرد. اگر به دلیل بروز مشکلی تألیف به طول انجامد، که در این حالت اندازه دسته یا راهبرد تألیف پیچیده بوده.همچنین توسعه دهنده‌ها می‌توانند تألیف مقدماتی خودشان را قبل ازگسترش انتخاب کنند، که به منظور رفع احتیاج برای تألیف به موقع دریک محیط تولید می‌باشد.گسترش.مایکروسافت بعضی ازچارچوب‌های کاری الحاقی متصل شده درون ASP.NET را منتشرمی سازد وقابلیت تابعی آن را توسعه می‌دهد. بعضی ازآنها:مقایسه ASP.NET با ASP قدیمی.ASP تلاش می‌کند تحول توسعه دهنده‌ها را ازتوسعه کاربرد ویندوز تا توسعه وب وسط ارائه قابلیت ساخت صفحات مرکب از کنترل‌ها همانند یک رابط کاربری ویندوزساده نماید. یک کنترل وب ازقبیل یک Button یا یک Label دربسیاری از سبک‌ها همانند همتای ویندوزخودش عمل می‌کند. کد می‌تواند خصوصیات وپاسخ خود را به رویدادهایش ارجاع دهد. کنترل‌ها معلومات«فوت و فن» ترجمه خود را دارند: درحالی که کنترل‌های ویندوزخودشان را بر روی پرده ترسیم می‌کنند، کنترل‌های WEB قطعاتی از HTML وجاوااسکریپت را تولید می‌کنند که بخشی از فرم صفحه حاصل را به مرورگر کاربرنهایی می‌فرستد.ASP.NET برنامه‌نویس را به توسعه کاربردها با استفاده ازنمونه رابط کاربرگرافیکی رویدادی(مدل Event-Driven GUI) وسریعتراز محیط‌های سندی مرسوم در WEB مانند ASP و PHP تشویق می‌کند. چارچوب کاری تلاش می‌کند فناوری‌های موجود از قبیل JAVASCRIPT را با مؤلفه‌های درونی همانند حالت دید برای به دست آوردن حالت پایدار«درخواست درونی» درمحیط WEB نامتمرکز اصلی ترکیب کند.سایرتفاوت‌های مقایسه‌ای ASP قدیمی هستند:معایب ASP.صفحات سرویس دهنده فعال قدیمی (ASP) وASP.NET می‌توانند در کنار یکدیگر در یک برنامه وب اجرا شوند. این رویکرد به توسعه دهنده اجازه می‌دهد برنامه‌ها را به آهستگی جابه‌جا کند به جای آنکه همه آن‌ها را یک باره تغییرحالت دهد. درIIS ۶٫۰ وقبل ازآن، صفحاتی که با نسخه‌های متفاوتی ازچارچوب کاری ASP نوشته می‌شوند نمی‌توانستند حالت جلسه را بدون استفاده ازکتابخانه‌های مشخص ثابت تقسیم کند. این ایراد درASP.NET وجود ندارد و برنامه‌های ASP در کنار یکدیگر بر روی IIS ۷ اجرا می‌شود. در IIS ۷، نمونه‌ها می‌توانند درخطوط مجتمع اجرا شوند که اجازه می‌دهد تا نمونه‌ها درهرزبانی نوشته شود، تا برای هر درخواستی قابل نمایش گردد.در برخی موارد در زمان اجرای ASP.NET پردازش عامل در حلقه می‌افتد. به‌طور مثال اگر فرایندی خارج از کنترل اجرا شود، سبب می‌شود که پردازش عامل بیش از ۶۰ درصد از حافظه اصلی سخت‌افزار موجود را استفاده کند پردازش عامل در حلقه می‌افتد. همچنین ممکن است در شرایطی که تعداد معینی از درخواست‌ها ارسال می‌شود، این اتفاق رخ دهد، برای مثال در یک سیکل زمانی. در این حالات اگر برنامه برای استفاده از یک سشن (نشست) تنظیم شده باشد، ممکن است این نشست از دست برود. اگربرنامه به حالت جلسه برای ذخیره کردن اطلاعات اعتبار سنجی وابسته باشد، و برنامه با استفاده از جلسات درون پردازشی پیکربندی شود، ممکن است در صورتی که پردازش درحلقه بیفتد ارتباط کاربر قطع شود.نشانه‌هایی که ASP.NET ۲٫۰ تولید می‌کند توسط W3C تأیید شده‌اند. اما این نکته حائز اهمبت است که ایا این افزایش قابل دسترسی است؟ یکی از این مزایا از یک لحاظ صفحات اکس‌اچ‌تی‌ام‌ال + نمایش CSS است. کنترل‌های متعدد از قبیل کنترل‌های ورود و کنترل‌های چند مرحله‌ای، به صورت پیش‌فرض از جداول HTML استفاده می‌کنند. مایکروسافت هم‌اکنون به سمت طرقی می‌رود که این مشکل را به وسیله انتشار کنترل‌های سازگارکنندهٔ ASP.NET 2.۰ CSS حل کند. به‌طور مثال افزودنی‌های رایگان که نشانه‌هایی مطابق با اکس‌اچ‌تی‌ام‌ال+CSS در دسترس تولید می‌کنند. به هر حال برخی از کنترل‌ها هنوز به جاوااسکریپت استناد می‌کنند.ابزارهای توسعه - Development IDE / Editor.برخی ازبسته‌های نرم‌افزاری دردسترس که برای توسعه کاربردهای ASP.NET وجود دارند:چارچوب کاری‌ها.زمانی که عملیات توسعه توسط ASP.NET انجام می‌شود، لزومی به استفاده از آن برای مدل توسعه فرم‌های استاندارد وب نیست. چارچوب کاری‌های قابل ملاحظه‌ای که برای انواع طراحی شده‌اند شامل: