ASP.NET Core
مقدمه
در این فاز با فریمورک ASP.NET Core
آشنا خواهید شد.
برای آشنایی با تاریخچه و دلیل محبویت وب و مزایای آن نسبت به مدلهای قدیمی ارتباط client-server مقاله From History of Web Application Development را مطالعه کنید.
سلام به دنیای ASP.NET Core
ASP.NET Core
یک چارچوب به زبان #C
است که به وسیله آن میتوانید یک سرور RESTful api
راهاندازی کنید.
برای ساخت یک پروژه ASP.NET Core کافی اس ت در ترمینال دستور زیر را وارد کنید:
dotnet new webapi
برای اجرا شدن اولین پروژه ASP.NET Core خود در ترمینال دستور زیر را وارد کنید:
dotnet run
پیش از اجرای برنامه خود برای اولین بار دستور dotnet dev-certs https --trust
را در ترمینال اجرا کنید.
حال برای مشاهده خروجی کار آدرس https://localhost:<app port>/WeatherForecast
را در مرورگر خود باز کنید.
همانگونه که مشاهده میکنید در خروجی یک لیست از دادههای آب و هوایی وجود دارد که در پروژه پیش فرض ASP.NET Core تعریف شده است.
برای مشاهده لیست APIها
و مطالعه مستنداتی ساده درباره هر API
میتوانید آدرس https://localhost:<appPort>/swagger
را در مرورگر باز کنید.
Controller و Action Method
در یک پروژه ASP.NET Core
درخواستهای رسیده به سایت یا Web Application
توسط کنترلرها پاسخ داده میشوند. پس به زبان خیلی ساده، کنترلرها به درخواستهایی که توسط کاربران ارسال میشوند پاسخ میدهند. کنترلرها کلاسهایی هستند که در فولدر Controllers
قرار دارند. این کلاسها با کلمه Controller
به اتمام میرسند و از کلاس Controller
یا ControllerBase
ارث بری میکنند.
هر متدی با دسترسی عمومی (Public) در کنترلر، به عنوان یک متد عملیاتی (Action Method) شناخته میشود، پس به متدهایی که درون کلاس کنترلر تعریف میکنیم اکشن متد گفته میشود. هر درخواست کاربر به اکشن متد مربوطه ارسال میشود و اکشن متد به درخواست کاربر پاسخ میدهد.
ساخت یک کنترلر ساده
در فولدر Controllers
خود یک فایل به نام SimpleController
ایجاد کنید و کدهای زیر را درون آن قرار دهید.
using Microsoft.AspNetCore.Mvc;
namespace Example.Controllers
{
[ApiController]
[Route("[controller]/[Action]")]
public class SimpleController : ControllerBase
{
[HttpGet]
public string Get()
{
return "Hello world!";
}
}
}
در کد بالا شما یک کنترلر به نام Simple
ساختید که یک اکشن متد به نام Get
دارد. مسیر دسترسی به آن را هم به صورتی تعریف شده که برای دسترسی به آن ابتدا باید نام کنترلر و سپس نام اکشن متد بیاید. برای تست کد خود لینک https://localhost:<appPort>/Simple/Get
را باز کنید و خروجی آن را مشاهده کنید.
خروجی اکشتن متدها
در ASP.NET Core خروجی اکشنها به سه صورت میتواند باشد:
Specific type
IActionResult
ActionResult<T>
برای آشنایی بیشتر با این نوع خروجیها Controller action return types in ASP.NET Core web API را مطالعه کنید.
Routing
برای مسیردهی در Asp.net core
از دو روش میتوان این کار را انجام داد. یکی ست کردن تنظیمات در فایل Program.cs
و دیگری استفاده از اتریبیوت Route.
برای آشنایی بیشتر با این موضوع لینکهای زیر را مطالعه کنید:
Dependency Injection
تزریق وابستگی یا (Dependency Injection) فرآیندی میباشد که در آن وابستگیهای ما به یک کلاس با استفاده از یک رابط کاربری (یا همان Interface) حذف می شود. در ASP.NET Core به صورت پیش فرض این امکان به ما داده شده است که بتوانیم بدون نیاز به درگیری با مورد خاصی از این ویژگی استفاده کنیم.
برای یادگیری و درک بهتر این موضوع لینکهای زیر را مطالعه کنید:
Http Methods
با استفاده از اتریبیوتهای Http Methods شما میتوانید مشخص کنید اکشن شما با استفاده از کدام Http method صدا شود.
درک بهتر لینکهای زیر را مطالعه کنید:
- Using HTTP Methods (GET, POST, PUT, etc.) in Web API
- Attribute Routing, HTTP Request Methods & Best Practices in .NET Core Web API