کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش ساخت یک پروژه خالی در ASP.Net MVC Core

ASP.NET MVC CORE 2.0 EMPTY PROJECT

مشکل

یک پروژه خالی ASP.NET MVC Core ایجاد کنید که شامل ویژگی های پیش فرض مانند empty shell نیست.

راه حل

ابتدا یک پروژه خالی جدید با استفاده از ویژوال استودیو 2017 ایجاد کنید

  1. File > New > Project
  2. در زیر (.NET Core) ASP.NET MVC Core Web Application انتخاب می کنیم. نام و مکان را وارد کنید روی OK کلیک کنید
  3. "Empty" را انتخاب کنید روی OK کلیک کنید

بعد کد را از Program.cs و Startup.cs حذف کنید تا به صورت شبیه کد های زیر شود (statements های مورد نیاز را نگه دارید):

  public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }
 
        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup()
                .Build();
    }
 
    public class Startup
    {
        public Startup(
            IHostingEnvironment env,
            ILoggerFactory loggerFactory,
            IConfiguration config)
        {
 
        }
 
        public void ConfigureServices(
            IServiceCollection services)
        {
            // setup dependency injection in service container
        }
 
        public void Configure(
            IApplicationBuilder app,
            IHostingEnvironment env)
        {
            // setup request pipeline using middleware
        }
    }

مباحثه

قالب Empty project در ویژوال استودیو 2017 یک پروژه با کلاس های Program.cs و Startup.cs ایجاد می کند:

Program.cs

درست مثل یک Console application، public static void Main() نقطه شروع برای برنامه های ASP.NET Core است.

ما یک میزبان (WebHost) را تنظیم می کنیم که به درخواست های مدیریت سرور (Kestrel) اشاره دارد. این روش با استفاده از متد CreateDefaultBuilder () پیکربندی شده است:

  1. Kestrel: cross-platform web server
  2. Root : content root از web project’s root folder استفاده می کند.
  3. IIS: as the reverse proxy server
  4. Startup: به کلاس اشاره می کند که configuration، services و pipeline را تنظیم می کند.
  5. Configuration : appsettings.json و Environment Variables را به IConfiguration که از طریق Dependency Injection در دسترس است اضافه می کند.
  6. Logging: adds a Console and Debug logging providers.

پس از پیکربندی ، ما (Build()) و (Run()) برای host ، در آن نقطه main thread مسدود شده است و میزبان(host) شروع به گوش دادن به درخواست از سرور می کند.

هنگام تنظیم WebHostBuilder، می توانید مقادیر(values) برای تنظیمات مختلف را از طریق متد UseSetting () تنظیم کنید، که در یک جفت key/ value برای یک propertyدر نظر گرفته می شود.این خواص عبارتند از applicationName (string), contentRoot (string), detailedErrors (bool), environment (string), urls (semicolon separated list) and webroot (string). برخی از این properties همچنین می توانند از طریق متد های extension در WebHostBuilder تنظیم شوند.

Startup.cs

این کلاس سرویس های تزریق وابستگی برنامه(application dependency injection services) را ایجاد می کند و درخواست pipeline برای درخواست ما را با استفاده از روش های زیر انجام می دهد:

  1. ConfigureServices(): add services to the service container
  2. Configure() : درخواست نصب pipeline با استفاده از Middleware

پارامترهای این متد ها را می توان در لیست کد بالا مشاهده کرد.

این متد ها به همان ترتیب ذکر شده در بالا فراخوانی می شوند.

نکته :

مهم در مورد دنباله ای که در آن اجرا می شود به خاطر می آید این است که service container پس از ConfigureServices، یعنی در متد Configure () و قبل از آن، در دسترس است.

1396/08/15 3894 1339
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...