ایجاد اولین پروژه NET Core. در لینوکس

سه شنبه 29 خرداد 1397

NET Core. یک نسخه چند پلت‌فرمی و opensource روی NET Framework. است که رسما توسط مایکروسافت پشتیانی و مدیریت می‌شود. این مقاله یک مرور کلی از نحوه اجرای NET Core web project. درUbuntu ارائه می‌دهد، با معماری اصلی آن آغاز کرده و با پیکربندی Kestrel برای ایجاد یک برنامه وب خاتمه می‌یابد.

ایجاد اولین پروژه NET Core. در لینوکس

NET Core framework. پیش از این، ابزارهای scaffolding را برای راه‌اندازی خودکار برنامه شما فراهم می‌کرد،‌ اما این بار توسعه را از ابتدا از یک برنامه کنسول پایه آغاز می‌کنیم.

نصب NET Core. روی لینوکس

NET Core. را در Ubuntu نصب می‌کنیم، مراحل را از وب‌سایت رسمی مایکروسافت دنبال می‌کنیم، اما شما می توانید دستورالعمل‌های نصب را برای توزیع‌های رایج پیدا کنید. برای IDE می‌توانید از هر ویرایشگر متنی استفاده کنید، اما ما قصد داریم از برنامه ویژوال استودیو استفاده کنیم، که به نظر ما بهترین یکپارچگی را ارائه می‌دهد.

ساخت اولین پروژه “Hello world” در C # .NET Core

از فرمان کنسول این دستورات را اجرا کنید:

dotnet new console (برای ایجاد یک پروژه کنسول در NET Core.)

dotnet restore (برای بازگرداندن پکیج‌ها و وابستگی‌های پروژه)

dotnet run (برای اجرای کد).

پیکربندی Kestrel

Kestrel یک وب سرور چند پلت‌فرمی است که برای میزبانی NET Core برنامه‌های وب. استفاده می‌شود.

برای افزودن Kestrel به پروژه باید وابستگی‌های آن را به فایل csproj. اضافه کنیم، همانند دستور زیر:

<ItemGroup>
  <PackageReference Include=”Microsoft.AspNetCore.Server.Kestrel” Version=”1.1.2" />
</ItemGroup>

حالا فایل Program.cs را باز کرده و در متد Main آن خطوط زیر را جایگزین می کنیم:

Console.WriteLine(“Hello World!”);

برای این خطوط:

var host = new WebHostBuilder()
          .UseKestrel()
          .UseStartup<Startup>()
          .UseIISIntegration()
          .UseContentRoot(Directory.GetCurrentDirectory())
          .Build();
host.Run();

برای استفاده از Kestrel و کانتکست HTTP باید این رفرنس‌ها را اضافه کنیم:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;

حالا بیایید dotnet restore و dotnet run را برای تست پروژه خود در مرورگر اجرا کنیم.

استفاده از Startup.cs

اکنون فایل Startup.cs را ایجاد می‌کنیم، که باید برای هاست پروژه پیکربندی شود.

برای این اتفاق می‌خواهیم خط زیر را از Program.cs حذف کنیم:

.Configure(app => app.Run(context => context.Response.WriteAsync(“Hello World!”)))

این خط را به جای آن اضافه می‌کنیم:

.UseStartup<Startup>()

در حال حاضر Startup.cs ما باید چیزی شبیه به کد زیر باشد:

using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;

namespace ConsoleApplication
{
  public class Startup
  {
    public void Configure(IApplicationBuilder app)
    {
      app.Run(context => context.Response.WriteAsync(“Hello World, from ASP.NET!”));
    }
  }
}

متد Configure در زمان اجرا فراخوانی می‌شود و برای پیکربندی و کانال درخواست HTTP استفاده می‌شود.

IApplicationBuilder مکانیزم‌هایی برای تنظیم درخواست‌های برنامه فراهم می‌کند. میان‌افزار (middleware) نیز در اینجا پیکربندی شده است.

سپس، برنامه را برای استفاده از IIS/IIS Express برای وب سرور پیکربندی می‌کنیم و محتوای ریشه (root) را تنظیم می‌کنیم. برای انجام این کار، خطوط زیر را قبل از ()Build در Program.cs اضافه می‌کنیم:

.UseIISIntegration()
.UseContentRoot(Directory.GetCurrentDirectory())

برای استفاده از IIS با ASP.NET Core، UseKestrel و UseIISIntegration باید مشخص شوند. Kestrel برای اجرا در پشت پروکسی طراحی شده است و نباید بدون آن قرار داده شود.

حالا بیایید رفرنس پکیج IIS را در csproj. اضافه کنیم، و dotnet restore را برای به روز رسانی وابستگی‌ها اجرا کنیم.

<PackageReference Include=”Microsoft.AspNetCore.Server.IISIntegration” Version=”1.1.2" />

ما “Watcher” را اضافه خواهیم کرد تا تغییرات منعکس شده را بدون نیاز به توقف و اجرای مجدد پروژه مشاهده کنیم. وابستگی‌های زیر را اضافه می‌کنیم:

<ItemGroup>
  <DotNetCliToolReference Include=”Microsoft.DotNet.Watcher.Tools” Version=”1.0.1" />
</ItemGroup>

چنانچه همیشه مجبور به اجرای dotnet restore هستیم، اکنون اگر dotnet watch run را اجرا کنیم باید بتوانیم تغییرات منعکس شده را بدون نیاز به بارگیری مجدد برنامه ببینیم.

تبریک!

شما برنامه Net Core. را روی لینوکس اجرا کردید و یاد گرفتید که با استفاده از Kestrel آن را از ابتدا پیکربندی کنید و آن را در محیط وب توسعه دهید.

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید