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

فریمورک ASP.NET دقیقاً همان کارخانه تولید مصالح آماده و نقشه مهندسی است که مایکروسافت در اختیار برنامهنویسان قرار داده تا بتوانند وبسایتهایی امن، سریع و قدرتمند، و همچنین وب اپلیکیشن و وب سرویس بسازند. طبق آمارهای وبسایت معتبر Stack Overflow، فریمورکهای مجله علمی آموزشی مبتنی بر NET. سالهاست که جزو محبوبترین و پرکاربردترین ابزارها در میان توسعهدهندگان سراسر جهان هستند. اما ASP.NET چیست، در چه زمینههایی کاربرد دارد و چگونه عمل میکند؟ در ادامه به این پرسشها پاسخ خواهیم داد.
فریمورک ASP.NET چیست؟
ASP.NET یک فریمورک توسعه وب سمت سرور (Server-side) است که توسط مایکروسافت در اوایل دهه ۲۰۰۰ میلادی معرفی شد. هدف اصلی آن ایجاد صفحات وب پویا بود. برخلاف صفحات وب استاتیک (که مانند یک بروشور ساده فقط متن و عکس دارند)، صفحات پویا میتوانند به دیتابیس متصل شوند، اطلاعات کاربر را پردازش کنند و برای هر شخص محتوای متفاوتی نمایش دهند (مانند صفحه پروفایل شما در اینستاگرام یا دیجیکالا).
فریمورک ASP.NET در زمان خود یک انقلاب بزرگ محسوب میشد، زیرا کدهای درهمریخته و بینظم گذشته را به یک ساختار مهندسیشده تبدیل کرد. زبان اصلی و غالب در ASP، سیشارپ (#C) است. البته از زبانهای VB.NET و #F نیز پشتیبانی میکند، اما ۹۹ درصد پروژهها با سیشارپ نوشته میشوند. خود فریمورک ASP.NET Core کاملاً رایگان است و برای دانلود، نصب و برنامهنویسی با آن نیازی به پرداخت هیچ هزینهای به مایکروسافت ندارید.
در جدول زیر، ویژگیهای مهمی که باعث محبوبیت ASP.NET شد را بررسی میکنیم:

| ویژگیهای ASP.NET | توضیح ساده و کاربردی |
|---|---|
| جداسازی کد از ظاهر | در این فریمورک، کدهای طراحی ظاهر سایت (HTML/CSS) در یک فایل و کدهای منطقی و برنامهنویسی (مانند C#) در فایلی دیگر قرار میگیرند. این کار باعث میشود برنامهنویس و طراح ظاهر سایت بتوانند بدون تداخل با هم کار کنند. |
| استقلال زبانی | شما مجبور نیستید فقط با یک زبان برنامهنویسی کار کنید. میتوانید کدهای وبسایت خود را با #C یا VB.NET بنویسید و فریمورک هر دوی آنها را به یک زبان مشترک در سرور ترجمه میکند. |
| مدیریت وضعیت | وب به صورت پیشفرض فراموشکار است! (یعنی وقتی از صفحهای به صفحه دیگر میروید، شما را از یاد میبرد). ASP.NET ابزارهایی مانند Session و ViewState دارد که اطلاعات کاربر (مانند سبد خرید) را به راحتی در طول گشتوگذار در سایت حفظ میکند. |
| امنیت داخلی قدرتمند | نیازی به نوشتن کدهای پیچیده برای امنیت نیست. فریمورک ASP.NET سیستمهای آمادهای برای ورود، ثبتنام کاربران و محافظت از سایت در برابر حملات رایج هکری دارد. |
| کنترلهای آماده | دارای جعبهابزاری پر از دکمهها، تقویمها و فرمهای آماده است که برنامهنویس میتواند آنها را مانند قطعات لگو وارد صفحه کند و سرعت کار را بالا ببرد. |
| آیا متنباز (Open-Source) است؟ | نسخه کلاسیک خیر (کدهای آن بسته و در انحصار مایکروسافت بود)، اما نسخه Core کاملاً متنباز است. تمام کدهای آن در گیتهاب قرار دارد و برنامهنویسان سراسر دنیا در توسعه آن مشارکت میکنند. |
| رایگان بودن یا نبودن | خود فریمورک کاملاً رایگان است. برای دانلود، نصب و برنامهنویسی با ASP.NET نیازی به پرداخت هیچ هزینهای به مایکروسافت ندارید. |
تاریخچه کوتاه ASP.NET
داستان از سال ۲۰۰۲ شروع شد؛ زمانی که مایکروسافت اولین نسخه ASP.NET را به عنوان بخشی از .NET Framework 1.0 معرفی کرد. تا سال ۲۰۱۵، نسخههای مختلفی (۱ تا ۴.۶) عرضه شد که همه وابسته به ویندوز بودند. نقطه عطف تاریخ این فریمورک در سال ۲۰۱۶ رقم خورد؛ زمانی که مایکروسافت تصمیم شجاعانهای گرفت، کدهای قدیمی را دور ریخت و ASP.NET Core 1.0 را کاملاً از نو، متنباز و کراسپلتفرم نوشت.
ASP.NET Core چیست؟
به زبان ساده، ASP.NET Core نسخه جدید، مدرن، سبکتر و بسیار سریعترِ همان ASP.NET قدیمی است. مایکروسافت متوجه شد که دنیای وب در حال تغییر است و برنامهنویسان میخواهند کدهایشان را نه فقط روی ویندوز، بلکه روی لینوکس و مک هم اجرا کنند. بنابراین، مایکروسافت ASP.NET Core را به صورت “کراسپلتفرم” ساخت. یعنی شما کدی را یک بار مینویسید و میتوانید آن را روی هر سیستمعاملی اجرا کنید. این فریمورک متنباز است و سرعت پردازش آن در بنچمارکهای جهانی (مانند TechEmpower) خیرهکننده است.
مقایسه ASP.NET با ASP.NET Core
برای درک بهتر، ASP.NET کلاسیک را مانند یک ماشین شاسیبلندِ سنگین و قدرتمند، اما پرمصرف و محدود به جادههای آسفالت (سیستمعامل ویندوز) در نظر بگیرید. در مقابل، ASP.NET Core مانند یک ماشین اسپرتِ برقی، سبک، فوقسریع و همهجارو است.


