آموزش ASP.NET Core از صفر: راهنمای کامل و نقشه راه
آموزش ASP.NET Core از صفر: پیشنیازها، ساختار پروژه، MVC و Razor Pages، Web API، EF Core، Identity و JWT، معماری Clean و انتشار روی هاست، با مثال کد.
آموزش ASP.NET Core بعد از یادگیری C# شروع میشود و شامل ساخت سایت با MVC یا Razor Pages، ساخت Web API، کار با پایگاه داده از طریق EF Core، امنیت با Identity و JWT و در نهایت انتشار پروژه روی هاست است.
ASP.NET Core فریمورک متنباز و چندسکویی مایکروسافت برای ساخت وبسایت، API و سرویسهای بکاند است.
در این راهنما میبینید ASP.NET Core چیست، چه پیشنیازهایی لازم دارد، ساختار یک پروژه چطور است، مفاهیم اصلی را با مثال کد یاد میگیرید و یک نقشه راه روشن برای رسیدن به سطح بازار کار دارید. آموزش ASP.NET Core تخصص اصلی آکادمی برنامه نویسی بدیعی است.
ASP.NET Core چیست؟
ASP.NET Core یک فریمورک وب برای زبان C# است که با آن سایت، فروشگاه اینترنتی، پنل مدیریت و API میسازید. این فریمورک روی ویندوز، لینوکس و مک اجرا میشود و برای پروژههای کوچک تا سامانههای سازمانی بزرگ استفاده میشود.
ویژگیهای مهم ASP.NET Core:
کارایی بالا: برای سایتها و APIهای پربازدید مناسب است.
تزریق وابستگی داخلی: بدون کتابخانه اضافه، کد را ماژولار و قابل تست نگه میدارد.
امنیت داخلی: ابزارهایی مثل Identity، احراز هویت با کوکی و JWT و محافظت در برابر حملههای رایج.
چندسکویی و متنباز: روی سرورهای لینوکسی و ویندوزی منتشر میشود.
اکوسیستم کامل: EF Core برای پایگاه داده، Blazor برای رابط کاربری با C# و SignalR برای ارتباط زنده.
پیشنیازهای آموزش ASP.NET Core
قبل از ASP.NET Core باید C# و شیگرایی را خوب بلد باشید و با مبانی وب آشنا باشید. پریدن مستقیم به فریمورک بدون این پایه، شایعترین دلیل سردرگمی است.
پیشنیاز چرا لازم است حداقل سطح
C# پایه همه کدها به C# نوشته میشوند متغیر، شرط، حلقه، متد، لیست
شیگرایی کنترلرها، سرویسها و مدلها همه کلاساند کلاس، اینترفیس، وراثت
LINQ و async کوئریها و عملیات پایگاه داده فهم Where، Select و await
HTML و CSS ساخت صفحهها و Viewها ساختار صفحه و چیدمان پایه
JavaScript پایه تعامل صفحه و Ajax DOM و درخواست به سرور
SQL پایه کار با پایگاه داده SELECT، INSERT، JOIN ساده
مفهوم HTTP فهم درخواست و پاسخ GET، POST، کد وضعیت
اگر هنوز C# را شروع نکردهاید، اول مقاله آموزش سی شارپ از صفر را بخوانید.
ساختار یک پروژه ASP.NET Core
هر پروژه ASP.NET Core یک نقطه شروع به نام Program.cs دارد که سرویسها و مسیر پردازش درخواستها (Middleware Pipeline) را تنظیم میکند.
ساخت یک پروژه جدید از ترمینال:
dotnet new webapp -n MyFirstSite
cd MyFirstSite
dotnet run
قالب webapp پروژه Razor Pages میسازد. برای MVC قالب mvc و برای API قالب webapi وجود دارد. ⚠️ نام قالبها و گزینههای پیشفرض ممکن است در نسخههای جدید .NET تغییر کند .
یک Program.cs ساده چیزی شبیه این است:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddScoped<IProductService, ProductService>();
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
دو بخش اصلی را ببینید:
builder.Services: جایی که سرویسها را برای تزریق وابستگی ثبت میکنید.
app.Use...: میانافزارها (Middleware) که هر درخواست به ترتیب از آنها عبور میکند.
مفاهیم اصلی ASP.NET Core
مفاهیم کلیدی ASP.NET Core شامل مدلهای ساخت صفحه (MVC و Razor Pages)، Web API، تزریق وابستگی، میانافزار، EF Core و احراز هویت است.
۱ . MVC و Razor Pages
در MVC برنامه به سه بخش تقسیم میشود: مدل (داده)، ویو (صفحه) و کنترلر (منطق دریافت درخواست). در Razor Pages هر صفحه کد مربوط به خودش را کنار خودش دارد و برای صفحههای فرممحور سادهتر است. هر دو در پروژههای واقعی استفاده میشوند.
۲. Web AP I
Web API به جای صفحه HTML، داده را به شکل JSON برمیگرداند. اپلیکیشن موبایل، فرانتاند جاوا اسکریپتی یا سیستمهای دیگر از آن استفاده میکنند.
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
private readonly IProductService _service;
public ProductsController(IProductService service)
_service = service;
[HttpGet("{id}")]
public async Task<IActionResult> Get(int id)
var product = await _service.GetByIdAsync(id);
if (product is null)
return NotFound();
return Ok(product);
در این کنترلر، سرویس محصول از طریق سازنده تزریق میشود. اگر محصول پیدا نشود، کد وضعیت 404 برمیگردد.
۳ . تزریق وابستگی ( Dependency Injection )
به جای اینکه هر کلاس خودش وابستگیهایش را بسازد، آنها را از بیرون میگیرد. این کار تستنویسی و تعویض پیادهسازی را راحت میکند. سه طول عمر رایج سرویسها Singleton ، Scoped و Transient هستند.
۴ . میانافزار (Middleware )
هر درخواست از یک زنجیره میانافزار عبور میکند: فایلهای ثابت، مسیریابی، احراز هویت، مجوزدهی و غیره. ترتیب این زنجیره مهم است.
۵ . EF Core و پایگاه داده
Entity Framework Core به شما اجازه میدهد با کلاسهای C# با پایگاه داده کار کنید:
public class AppDbContext : DbContext
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options) { }
public DbSet<Product> Products => Set<Product>();
با Migrationها ساختار جدولها را از روی کلاسها میسازید و تغییر میدهید.
۶ . احراز هویت و امنیت
Identity: ثبتنام، ورود، نقشها و مدیریت کاربران در سایتها.
JWT: احراز هویت مبتنی بر توکن برای APIها و اپلیکیشنهای موبایل.
محافظتهای داخلی: مثل محافظت در برابر CSRF در فرمها.
نقشه راه آموزش ASP.NET Core از صفر
بعد از C#، این مسیر را مرحله به مرحله جلو ببرید و هر مرحله را با یک پروژه کوچک تمام کنید.
مرحله ۱: مبانی وب و HTTP
درخواست و پاسخ، متدهای GET و POST، کد وضعیت و کوکی.
مرحله ۲: Razor Pages یا MVC
ساخت صفحه، فرم، اعتبارسنجی ورودی و Layout مشترک.
مرحله ۳: EF Core و SQL Server
ساخت DbContext، Migration، عملیات CRUD و رابطه بین جدولها.
مرحله ۴: تزریق وابستگی و لایه سرویس
جدا کردن منطق از کنترلر و نوشتن سرویسهای قابل تست.
مرحله ۵: Identity و امنیت
ثبتنام، ورود، نقشها و محدود کردن دسترسی صفحهها.
مرحله ۶: Web API و JWT
ساخت API برای اپ موبایل یا فرانتاند جداگانه و امن کردن آن با توکن.
مرحله ۷: Ajax و تعامل صفحه
بهروزرسانی بخشی از صفحه بدون بارگذاری مجدد.
مرحله ۸: معماری Clean یا Onion
تقسیم پروژه به لایههای Domain، Application، Infrastructure و رابط کاربری، همراه با اصول SOLID.
مرحله ۹: Git و انتشار روی هاست
مدیریت کد با Git و GitHub داخل Visual Studio و انتشار سایت روی هاست یا سرور.
درباره زمان لازم برای این مسیر، مقاله یادگیری ASP.NET Core چقدر طول میکشد؟ را بخوانید.
MVC، Razor Pages، Web API یا Blazor؟
اینها رقیب هم نیستند؛ هر کدام برای نوع خاصی از رابط کاربری یا سرویس مناسباند و همه بخشی از اکوسیستم ASP.NET Core هستند.
مدل مناسب برای خروجی
MVC سایتهای بزرگ با ساختار منظم صفحه HTML
Razor Pages صفحههای فرممحور و پنلهای ساده صفحه HTML
Web API اپ موبایل، فرانتاند جدا، ارتباط سیستمها داده JSON
Blazor رابط کاربری تعاملی با C# به جای جاوا اسکریپت زیاد کامپوننتهای تعاملی
برای آشنایی با Blazor، مقاله Blazor Server چیست؟ را ببینید.
پروژههای پیشنهادی برای تمرین
بهترین راه تثبیت ASP.NET Core، ساختن پروژههایی است که شبیه کارهای واقعی بازار باشند.
وبلاگ با پنل مدیریت: CRUD، آپلود تصویر، نقش مدیر
سامانه رزرو نوبت: فرم، اعتبارسنجی، ایمیل یا پیامک تأیید
API فروشگاه: محصولات، سبد خرید و احراز هویت با JWT
سایت چندزبانه: پشتیبانی از فارسی و انگلیسی
اتوماسیون اداری ساده: گردش کار درخواستها و نقشهای مختلف
اشتباهات رایج در یادگیری ASP.NET Core
بیشتر یادگیرندهها به جای فهم مفاهیم، فقط قالبهای آماده را کپی میکنند. این موارد را جدی بگیرید:
شروع ASP.NET Core بدون تسلط به شیگرایی و async در C#
نوشتن همه منطق داخل کنترلر به جای لایه سرویس
نادیده گرفتن امنیت؛ مثلا ذخیره رمز عبور بدون هش یا گذاشتن کلیدها داخل کد
استفاده از کد قدیمی ASP.NET MVC کلاسیک که با ASP.NET Core فرق دارد
منتشر نکردن هیچ پروژهای روی هاست
بازار کار ASP.NET Core
ASP.NET Core در شرکتهای نرمافزاری سازمانی، مالی و فروشگاهی کاربرد زیادی دارد و برنامهنویسهای این حوزه معمولا نقش بکاند یا فولاستک دارند. برای دیدن وضعیت فعلی، آگهیهای سایتهایی مثل جابینجا، جابویژن و لینکدین را جستوجو کنید و مهارتهایی که بیشتر خواسته میشوند را یادداشت کنید.
بررسی کامل را در مقاله بازار کار ASP.NET Core در ایران بخوانید. برای شناخت بهتر نقش بکاند هم مقاله برنامه نویسی بک اند را ببینید.
جمعبندی
آموزش ASP.NET Core بعد از C# شروع میشود و با Razor Pages یا MVC، EF Core، تزریق وابستگی، Identity، Web API و JWT جلو میرود. در مرحله بعد معماری Clean، Git و انتشار روی هاست شما را به سطح بازار کار نزدیک میکند. کلید موفقیت، فهم مفاهیم و ساختن پروژه واقعی است.
اگر میخواهید ASP.NET Core را از صفر و پروژهمحور یاد بگیرید، دوره جامع فولاستک وب طلایی آکادمی برنامه نویسی بدیعی همه این مراحل را پوشش میدهد: C#، ASP.NET Core، EF Core، تزریق وابستگی، معماری Clean، Web API و JWT، Identity، Ajax، Git و انتشار روی هاست. بعد از آن میتوانید با دوره Blazor Server [[ https://badiee-academy.ir/courses/blazorserver-course ]] یا دوره پروژه فروشگاه اینترنتی [[ https://badiee-academy.ir/courses/online-shop-project ]] ادامه دهید. برای انتخاب مسیر، مشاوره رایگان بگیرید.
سوالات متداول
پیشنیاز آموزش ASP.NET Core چیست؟
C# و شیگرایی، آشنایی با LINQ و async، HTML و CSS پایه، کمی JavaScript و SQL پایه.
ASP.NET Core با ASP.NET قدیمی چه فرقی دارد؟
ASP.NET Core نسخه بازطراحیشده، متنباز و چندسکویی است و روی لینوکس هم اجرا میشود. ساختار پروژه و بسیاری از APIهای آن با ASP.NET کلاسیک فرق دارد.
MVC یاد بگیرم یا Razor Pages؟
هر دو در پروژهها استفاده میشوند و مفاهیم مشترک زیادی دارند. یادگیری یکی، یادگیری دیگری را بسیار ساده میکند. Web API را هم حتما یاد بگیرید.
با ASP.NET Core میشود فروشگاه اینترنتی ساخت؟
بله. با ASP.NET Core، EF Core و SQL Server میتوانید فروشگاه کامل با سبد خرید، ورود کاربر، درگاه پرداخت و پنل مدیریت بسازید.
آموزش ASP.NET Core چقدر زمان میبرد؟
به سطح C#، ساعت تمرین و تعداد پروژههایی که میسازید بستگی دارد. عدد ثابتی برای همه وجود ندارد؛ تمرین منظم و پروژه واقعی مسیر را کوتاهتر میکند.
برای ASP.NET Core چه ویرایشگری بهتر است؟
Visual Studio برای ویندوز امکانات کاملی دارد و برای مبتدیها راحتتر است. VS Code و Rider هم گزینههای رایج دیگر هستند.
تدوین و گردآوری: آکادمی برنامهنویسی بدیعی
ادامه بدهید