یک فلوچارت از ASP.NET
**ای‌اس‌پی‌دات‌نت** (به انگلیسی: ASP.NET) یک چارچوب کاربردی Web است که توسط شرکت مایکروسافت عرضه گردیده تا برنامه نویسان بتوانند برای ساخت سایت‌های وب (website) و برنامه‌های تحت وب (Web applications)پویا و سرویس‌های وب (Web services)پویا وسرویس‌های Web XML از آن استفاده کنند. این بخشی از زیر ساخت.NET مایکروسافت و جانشینی برای تکنولوژی صفحات سرویس دهنده فعال (ASP) است. ASP مبتنی بر زبانهای مشترک در حال اجرا است که به برنامه نویسان اجازه می‌دهد کدهای ASP را با استفاده از هر زبان Framework.NET بنویسند.

مشخصات
------

### قالب پرونده ASPX

**ASPX** یک پرونده با قالب متنی است که برای ساخت صفحات وب (ابهام‌زدایی) از آن استفاده می‌شود، و استاندارد پرونده‌های XML را رعایت می‌کند. پرونده ASPX معمولاً شامل نشانه گذاری های HTML یا XHTML (اکس‌اچ‌تی‌ام‌ال) و همچنین نشانه گذاری های کنترل‌های استاندارد وب و کنترل‌های تعریف شده در معماری ASP.NET است، که توسعه دهنده ها و برنامه نویسان وب همه محتویات پویا و ایستا(static) مورد نیاز را برای ایجاد صفحات وب پویا در آن قرار می‌دهند. علاوه برآن، کدهای پویایی که درسرویس دهنده ها اجرا می‌شوند، می‌توانند درمحلی دریک صفحه درون یک قطعه قرار بگیرند --٪> **کدهای پویا** <٪- که مانند دیگرتکنولوژی‌های توسعه یافته مانند 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) جای داده می‌شوند.

ashx
دیگر مجریان HTTP

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

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

مرورگرمرورگر پرونده‌های ممکن را درقالب XML ذخیره می‌کند که درنسخه ۳ از ASP.NET ۲ که شامل بسیاری ازاینها یه صورت پیش‌فرض است، معرفی می‌گردد تا مرورگرهای WEB مشترک را پشتیبانی کند. این‌ها مشحص می‌کنند که مرورگرها کدام توانایی‌ها را دارند، بنابراین ASP.NET ۲ می‌تواند به صورت خودکاربرطبق نتیجه خروجی خود سفارشی و بهینه‌سازی شود. پرونده‌های مرورگرمخصوص برای دریافت (دانلود) رایگان برای استفاده دردسترس هستند. برای مثال، W3C Validator، به‌طوری‌که این به شکل صحیح استانداردهای تاییدی را نمایش می‌دهد.
configweb.config تنها پرونده مخصوص برنامه‌های WEB است که توسط قرارداد گسترش دهنده استفاده می‌گردد (به همین نحو machine.config درتمامی سرویس دهنده WEB و تمامی برنامه‌های درون آن اثرمی گذارد). اگر چه ASP.NET امکانات را برای ساخت واستفاده سایرپرونده‌های config فراهم می‌کند. این‌ها درقالب XML ذخیره می‌شوند بنابراین اجازه می‌دهند پیکربندی تغییرکند تا به سادگی ساخته شود. در نسخه جدید(Asp.net core) این فایل به appsettings.json تغییر یافته و شیوه پیکرندی از XML به شکل JSON در آمده است.
cs/vbدرASP.NET ۲ هرپرونده ازپرونده‌های cs/vb درون پوشه App\_Code قرارمی گیرد که به صورت پویا تألیف می‌گردد و در سرتاسر برنامه قابل دسترس است.
master: صفحات اصلی؛ مطرح شده درنسخه ۲٫۰

sitemapپرونده‌های پیکربندی نقشه سایت
skinپرونده‌های پوستهٔ زمینه
resxپرونده‌های منبع برای بین‌المللی و محلی کردن. پرونده‌های منبع می‌توانند سراسری (به‌طور مثال پیام‌ها) یا محلی باشند که هریک معنی‌های خاصی برای یک aspx یا ascx یا پرونده دارند.
dbml(نسخه ۳٫۵) لینک (برنامه‌نویسی) برای پرونده کلاس‌های داده SQL
### ساختارفهرست راهنما

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

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

App\_Browsersپرونده‌های معرفی مرورگر مخصوص سایت را نگه می‌دارد.
App\_Codeپوشه «کدهای خام» است. سرویس دهنده ASP.NET به صورت خودکارپرونده ها و زیرفهرست‌های درون این پوشه را درون انجمنی که درهرصفحه از سایت قابل دسترسی است، تألیف می‌کند. App\_Code معمولاً برای کد انتزاعی دستیابی داده، کد نمونه وکد تجاری استفاده خواهد شد. همچنین همه مشحصات سایت اجراکننده HTTP و بخش‌های جدا و پیاده‌سازی سرویس وب در این پوشه می‌روند. مانند دیگران، توسعه دهنده می‌تواند برای فراهم‌سازی استفاده از App\_Code یک مجمع جدا را با کدهای از پیش تألیف شده انتخاب کند.
App\_Dataپوشه پیش‌فرض برای پایگاه‌های داده ازقبیل پرونده‌های.mdb در access وپرونده‌های.mdf درsql server. این پوشه معمولاً تنها قابلیت ویرایش توسط یک برنامه را دارد.
App\_LocalResourcesشامل پرونده‌های منبع متمرکز برای صفحات منحصربه‌فرد سایت. به‌طور مثال پرونده‌ای که CheckOut.aspx.fr-FR.resx نامیده می‌شود، منابع متمرکزرا برای نسخه فرانسوی صفحات CheckOut.aspx نگه می‌دارد. زمانی‌که فرهنگ رابط کاربر برای فرانسه تنظیم می‌شود، ASP.NET به‌طورخودکاراین پرونده را برای این شرایط یافته و مورد استفاده قرارخواهد داد.
App\_GlobalResourcesپرونده‌های resx را با منبع محلی«متمرکز» قابل دسترس برای هرصفحه سایت نگه می‌دارد. این جایی است که توسعه دهنده ASP.NET نوعاً پیام‌های متمرکز را که برای بیش از یک صفحه مورد استفاده قرارمی گیرد، ذخیره می‌کند.
App\_Themesزمینه‌های متنوع «دیگر» سایت را نگه می‌دارد.
App\_WebReferencesپرونده‌های اکتشافی و پرونده‌های زبان توصیف خدمات وب(WSDL) را برای ارجاع به سرویس وب (Web Server) که در سایت مورد استفاده قرارمی‌گیرند، نگه داری می‌کند.

کارایی
------

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

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

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

گسترش
-----

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

ASP.NET AJAXگسترش با مؤلفه‌های ضلع سرویس گیرنده همچنین ضلع سرویس دهنده برای نوشتن صفحات ASP.NET که قابلیت AJAX را متصل می‌کند.
ASP.Net MVC - ای‌اس‌پی‌دات‌نت ام‌وی‌سیگسترش تألیف صفحات ASP.NET با استفاده ازمعماری MVC.

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

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

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

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

* کد تألیف شده سبب اجرای سریع تر برنامه‌هایی همراه با به دام انداختن خطاهای زمان طراحی بیشتر در حین توسعه می‌شود.
* عمدتاً با استفاده از مستثنی کردن به‌وسیلهٔ قالب Try-Catch مدیریت خطاهای(Exception Handling) زمان اجرا را بهبود می‌بخشد.
* شباهت به کاربردهای ویندوزی ازقبیل کنترل‌ها و رویدادها، که سبب ایجاد امکان توسعه رابط‌های کاربردی توانمند می‌شود که سابقاً تنها درمیزکاریافت می‌شد.
* مجموعه وسیعی ازکنترل‌ها و کابخانه‌های کلاس اجازهٔ ساخت سریعتر برنامه‌های را می‌دهد، به‌علاوه کنترل‌های تعریف شده توسط کاربر همچون منوها، اجازه می‌دهد که معمولاً از قالبها استفاده شود. طراحی این کنترل‌ها روی صفحه آسانتراست زیرا اغلب آن‌ها می‌توانند دربیشترویرایشگرها به صورت بصری عمل کنند.
* ASP.NET دارای قابلیت استفاده هم زمان از چند زبان شناسایی شده در VB.NETمی باشد که اجازه می‌دهد تا صفحات WEB نوشته شوند با VB.NET و C# و J# و غیره.
* توانایی Cache شدن تمام صفحه یا فقط بخشی ازآن برای بهبود نمایش.
* توانایی استفاده ازمدل کد پشتیبان برای جداسازی منطق کار از ارائه.
* اگرهرکاربرASP.NET درحافظه نفوذ کند، مجری ASP.NET میزبان دامنهٔ برنامهٔ دارای خطا را از بین می‌برد و برنامه را مجدداً راه اندازی می‌کند.
* حالت جلسه درASP.NET می‌تواند دریک پایگاه داده SQL Server یا دریک پردازش جداگانه در حال اجرا بر روی دستگاه ساده مانند سرویس دهنده WEB یا یک ماشین متفاوت ذخیره می‌شود. زمانی‌که سرویس دهنده WEB مجدداً راه اندازی می‌شود یا پردازش‌کننده ASP.NET بازیافت می‌شود، مقادیر راه‌های جلسه Session از بین نمی‌رود.
* نسخه‌های قبلی ASP.NET (1.۰ and ۱٫۱) به دلیل مغایرت با استانداردهای تاییدی مورد انتقاد بودند. HTML و جاوااسکریپتهای تولید شده به مرورگرسرویس گیرنده فرستاده می‌شدند که همیشه در برابر استانداردهای W3C/ECMA تأیید شده نبودند. به‌علاوه گاهی اوقات چارچوب کاری مرورگر خصایص را نا درست تشخیص می‌دهد یا مرورگرهای WEB، به غیر از IE ساخته شده توسط مایکروسافت مانند نسخه‌های قبلی، HTML/JAVASCRIPT بازگردانی شده به این سرویس گیرنده‌ها را با بعضی از خصایص از بین رفته یا بعضی اوقات شکسته یا ناقص شناسایی می‌کنند.
* کنترل‌های سرویس دهنده WEB: این‌ها کنترل‌های معرفی شده توسط ASP.net برای فراهم‌سازی رابط کاربری برای وب فرم هستند. این کنترل‌ها، کنترل‌ها ی مدیریت شده هستند و کنترل‌های WYSIWYG هستند. (چیزی که می‌بینید چیزی است که به دست آورده‌اید.«نمایش اطلاعات درحالت چاپ شدنی»)

معایب 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 وجود دارند:

* Visual Studio 2008-2015(برای ASP.NET 3.5 )
* نسخه رایگان Visual Studio Community (جایگرین نسخه های Express قدیمی)
* Visual Studio 2017(برای ASP.NET Core 2)
* Visual Studio 2019(برای NET Core +3.)
* ادیتور پیشرفته و چند سکویی رایگان **Vs Code** برای توسعه برنامه های Asp.net Core و با پشتیبانی از اکثر زبان های برنامه نویسی (cross platform/(مستقل«رایگان» /کد باز)
* Jetbrains Rider برای توسعه برنامه های تحت چارچوب دات نت Net Framework. و دات نت Core
* 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 ۲۰۰۵ (برای ASP.NET 2.۰)
* Macromedia HomeSite ۵٫۵ (برای برچسب‌های ASP)
* Microsoft SharePoint Designer 12
* Delphi 2006
* MonoDevelop (مستقل«رایگان» /کد باز)
* SharpDevelop (مستقل«رایگان» /کد باز)
* Adobe Dreamweaver (کمتر استفاده میشود)

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

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

* Castle Monorail، یک چاچوب کاری MVC کد باز با یک مدل اجرایی شبیه به روبی آن ریلز. چارچوب کاری معمولاً به همراه Castle Active Record استفاده می‌شود که یک لایه ORM ساخته شده درNHibernate می‌باشد.
* Spring.NET، بخشی ازچارچوب کاری ارتجاعی برای JAVA.

جستارهای وابسته
---------------

* مدیریت وضعیت ASP.NET
* Active Server Pages (ASP) ASP.NET
* صفحات اصلی ASP
* صفحهٔ زرد مرگبار صفحه ASP.NET

منابع
-----

1. ↑  "Announcing the .NET Framework 4.8".
2. ↑  Legend ASP.NET Vs PHP F
or Speed
3. ↑  Global.asax Syntax
4. ↑  Differences between IIS 7.۰ Integrated Mode and Classic mode

پیوند به بیرون
--------------

* ای‌اس‌پی‌دات‌نت در کرلی
* وب‌گاه رسمی ای‌اس‌پی دات‌نت مایکروسافت
* ام‌اس‌دی‌ان برای ای‌اس‌پی دات‌نت
* برخی از ویژگی‌های جدید ای‌اس‌پی دات‌نت ۴ بایگانی‌شده در ۲۵ دسامبر ۲۰۱۸ توسط Wayback Machine

| * ن
* ب
* و
چارچوب نرم‌افزاری تحت وب |
| --- |
| ای‌اس‌پی‌دات‌نت | 
* ای‌اس‌پی‌دات‌نت ام‌وی‌سی
* ASP.NET Web Forms
* ASP.NET Dynamic Data
* BFC
* دات‌نت‌نیوک
* MonoRail
* OpenRasta
* Umbraco

 |
| کلد فیوژن | 
* ColdSpring
* Fusebox
* Mach-II
* Model-Glue
* onTap
* on Wheels

 |
| لیسپ معمولی | 
* CL-HTTP
* SymbolicWeb
* UnCommon Web
* Weblocks

 |
| سی++ | 
* CppCMS
* Wt

 |
| جاوا | 
* آپاچی استراتس
* AppFuse
* Flexive
* ابزار وب گوگل
* Grails
* وادین
* ItsNat
* جاواسرور فیسز
* Jspx
* Makumba
* OpenXava
* پلی فریمورک
* Eclipse RAP
* Reasonable Server Faces
* RIFE
* Seam
* اسپرینگ فریمورک
* Stripes
* Tapestry
* WebWork
* Wicket
* ZK
* ICEfaces
* WaveMaker

 |
| اسکالا | 
* Lift (web framework)
* پلی فریمورک

 |
| جاوااسکریپت | 
* Ample SDK
* چارچوب جاوااسکریپت پروتوتایپ
* Rico
* script.aculo.us
* SproutCore
* جی‌کوئری
* دوجو
* امبر جی‌اس

 |
| پرل | 
* Catalyst
* Dancer
* Gantry
* Interchange
* Mason
* Maypole
* Mojolicious
* Poet
* WebGUI

 |
| پی‌اچ‌پی | 
* AppFlower
* کیک‌پی‌اچ‌پی
* کدایگنایتر
* دروپال
* ایی۱۰۷
* فیول‌پی‌اچ‌پی
* Helium
* هرد
* جوملا
* Lithium
* Midgard
* مادایکس
* Qcodo
* Seagull
* سیلوراسترایپ
* سیمفونی
* تایپو۳
* وردپرس
* Xaraya
* یی
* چارچوب زند
* Zeta Components
* لاراول
* فلر فریمورک
* فلکون

 |
| پایتون | 
* CherryPy
* جنگو
* فلسک
* Nevow
* TurboGears
* Plone
* Pyjamas
* Pylons
* Pyramid
* web2py
* Zope
* تورنادو (وب سرور)

 |
| روبی | 
* روبی آن ریلز
* Merb
* Sinatra
* Hobo
* Camping
* Nitro
* Ramaze

 |
| اسمال‌تاک | 
* AIDA/Web
* Seaside

 |
| سایر زبان‌ها | 
* Application Express (پی‌ال/اس‌کیوال)
* HAppS (هسکل)
* Kepler (لوا)
* OpenACS (تی‌سی‌ال)
* SproutCore (جاوااسکریپت/روبی)
* Yaws (ارلنگ)

 |

| * ن
* ب
* و
چارچوب دات‌نت |
| --- |
| معماری نرم‌افزار | 
* کتابخانه کلاس پایه‌ای
* زمان اجرای زبان مشترک
* امنیت دسترسی به کد
* اسمبلی (زیرساخت زبان مشترک)
* صورت‌کد (زیرساخت زبان مشترک)
* Metadata
* COM Interop

 |
| زیرساخت زبان مشترک | 
* زیرساخت زبان مشترک
* Common Type System
* زبان میانی مایکروسافت
* Virtual Execution System

 |
| زبان‌های برنامه‌نویسی در فناوری دات‌نت | 

|  |  |
| --- | --- |
| متشرک۱ | 
* سی‌شارپ
* ویژوال بیسیک دات‌نت
* C++/CLI
	+ Managed
* اف شارپ
* جی‌شارپ
* جی‌اسکریپت دات‌نت
* پاورشل

 |
| سایر۲ | 
* Axum
* A#
* Boo
* Cobra
* M
* اکسیژن (زبان برنامه‌نویسی)
* IronScheme (IronLisp)
* آیرون پایتون
* IronRuby
* Nemerle
* Phalanger
* P#
* اسکالا

 |

 |
| مهندسی نرم‌افزار بر اساس پیکرپار | 
* ای‌دی‌اودات‌نت
	+ Entity Framework
	+ Data Services
* ای‌اس‌پی‌دات‌نت
	+ AJAX
	+ ای‌اس‌پی‌دات‌نت ام‌وی‌سی
	+ Dynamic Data
* لینک (برنامه‌نویسی)
* CardSpace
* ClickOnce
* Communication Foundation
* Dynamic Language Runtime
* Forms
* بنیان نمایش ویندوز
* Remoting
* Workflow Foundation
* XAML
* Parallel Extensions
* Managed Extensibility Framework

 |
| سایر پیاده‌سازی‌ها | 
* مونو
* Compact Framework
* XNA Framework
* Micro Framework
* Portable.NET
* مایکروسافت سیلورلایت
* SSCLI

 |
| مقایسه‌ها | 
* Java and C#
* مقایسه سی‌شارپ و ویژوال بیسیک دات‌نت
* Java and .NET platforms
* Visual Basic and Visual Basic .NET

 |
| در آتیهٔ نزدیک | 
* "Jasper"
* رزلین(کامپایلر)

 |
| گذشته | 
* "Acropolis"

 |
| ابزارها | 
* CLR Profiler

 |
| 
* ۱ زبان‌هایی که پشتیبانی شده‌اند، پشتیبانی می‌شوند یا پشتیبانی در مایکروسافت ویژوال استودیو یا چارچوب دات‌نت خواهند شد.
* ۲ زبان غیرآکادمیک یا تحفیفاتی با پایگاه کاربری نسبتاً زیاد.

 |