addim-addim-asp.net-core-ders-2.-mühitin-hazirlanmasi

Addım-Addım ASP.NET CORE Dərs 2. Mühitin hazırlanması

Keçən məqaləmizdə ASP.NET CORE haqqında məlumat vermiş və demişdik ki, ASP.NET CORE özündə SignalR, Web API,Razor Pages və MVC kimi alt texnologiyaları saxlayır.

Bundan sonrakı bir neçə dərsdə ASP.NET CORE MVC-ni öyrənəcəyik. Hazırda Asp.NET CORE 3.0 versiyası çıxsa da real praktikada ona tələbat Azərbaycanda təxminən 6ay-1il ərzində formalaşacaq. Ona görə məsləhət odur ki, Asp.NET CORE-un 3.0 versiyasına qədərki ən son versiyası olan 2.2 versiyasını öyrənək. Yaxın 2-3 ayda 3.0 versiyası haqqında da maraqlı məqalələrimiz olacaq.

           Ardıcıl dərslər(tutorial)-i izləmək üçün sizdə Visual Studio-nun(bundan sonra VS) 2017 Community,Professional və ya Enterprise versiyalarından birinin olması vacibdir. Bizim dərslər üçün Community versiyası tam kifayət edəcək. VS 2019 versiyası da keçərlidir. 2.2 versiyasında kod yaza bilmək üçün .net core 2.2 versiyasını buradan endirə bilərsiniz.

MAC istifadəçiləri üçün: Mac istifadəçiləri Visual Studio Code proqram təminatını yükləyərək tutorial-larımızı izləyə bilərlər.

PS: Dərslər Visual Studio üzərindən getsə də bəzi dərslərdə Visual Studio Code –da istifadə olunacaq. Windows istifadəçiləri də bu proqramı işlətməyi bacarmalıdır. Çünki iş yerlərində sizi hansı macəraların gözlədiyini bilmək olmaz...


Yekunda lazım olacaq proqram və SDK versiyalarının adları və endirilmə linkləri:

Visual studio 2017 communityburadan yuklə

Visual Studio 2019 communityburadan yuklə

.NET CORE 2.2buradan yüklə

Visual Studio Codeburadan yuklə

           İlk dərsimizdəki kod nümunələrini Visual Studio Code üzərindən göstərəcəyik. Gələn dərslərimizdən artıq Visual Studio üzərindən işləyəcəyik.

           Başlayacaq...  Kompyuterinizdə istənilən bir yerdə yeni bir qovluq yaradaq.(Məndə D: diskində Tutorials/1_PreparingCoreMVC qovluğudur). Visual Studio Code( bundan sonra VSC) proqramını açaq və Terminal menyusundan New Terminal komandasını seçərək terminalı açaq.

 Cd D:/tutorials/1_PreparingCoreMVC yazaraq keçək qovluğumuza(siz öz yaratdığınız qovluğa gedən tam yolu verməlisiniz).

Yüklənmiş SDK-ların siyahısını görmək üçün dotnet --list-sdks əmrini yazıb enter basaq. Təxminən belə bir yazı görəcəksiniz. ( Sizdə fərqli ola bilər, artıq və ya əskik ola bilər. Önəmli olan odur ki, 2.2 versiyası olsun)

Kod buraya

Artıq hər şey hazırdırsa və lazımi versiyası siyahıda görürsünüzsə ozaman sadəcə dotnet new web yazmaqla asp.net core empty template-in generasiya olunmasını təmin etmək olar. Bu dotnet new komandası asp.net core üçün mümkün olan bütün template formalarını generasiyasına cavabdehdir. Buradan hansı komandalar ilə hansı şablon(template) generasiya olunduğunu görə bilərsiniz.

Ardıcıl dərslərimizdə həmin şablonlardan bir çoxunu istifadə edəcəyik, ona görə narahat olmayın.

Sonda isə code . (nöqtə yaddan çıxmasın) yazaraq yeni seansda mövcud qovluğumuzu aça bilərik.

 Diqqət: Əgər sizdə bir neçə sdk versiyası varsa dotnet komandası ən sonuncu versiyanı istifadə edəcək! Ola bilsin siz 3.0 versiyasını da yükləmisiniz, bu halda bizim tutorialları izləmək üçün dotnet new web komandası yazmamışdan əvvəl dotnet new globaljson komandası yazın. Sizin qovluğa global.json faylı genersiya olacaq. Bundan sonra dotnet –list-sdks komandasını yazaraq 2.2.x versiyasını axtarın və həmin versiyanı düzgün şəkildə global.json faylında “version” bölməsindəki rəqəmlə əvəzləyin. Bizdə hal-hazırda 2.2.100 versiyasıdır.

{
    "sdk": {
        "version": "2.2.100"
    }
}

Bundan sonra dotnet new web komandasını yazın code . komandasını da verdikdən sonra belə bir struktur görünəcək.

 Generasiya olunan fayllar:

1)Program.cs – Keçən dərsimizdə asp.net core-un console app olduğu haqda yazmışdıq. Program.cs faylı yazdığımız kodun müxtəlif serverlərdə host oluan bilməsi bir web host formalaşdırır. Bu web host yazdığımız application-ı işə salan əsas motor hissədir. Bütün proqram konfigurasiyaları əslində buradan yerinə yetirilir. Beləki , proqramın istifadə edəcəyi config faylları, log faylları, servis xidmətləri və.s buradan konfiqurasiya olunur. Gələn dərslərimizdən birində bu faylın bütün incəliklərinə baxacağıq.

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;


namespace _1_PreparingCoreMVC
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }


        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup< Startup >();
    }
}


2)Startup.cs – Program.cs faylından servislərin konfiqurasiyası və middleware ardıcıllığını izolyasiya etmək üçün istifadə olunur. Asp.NET CORE bizə sessiya,kuki, dbcontext, dependency injection və.s xidmətləri servis olaraq verir. Proqram işləyən zaman gələn-gedən sorğular mütləq müəyyən bir filtr mexanizmindən keçir ki, bu da middleware adlanır. Gələn dərslərimizdən birində bu faylın bütün incəliklərinə baxacağıq.

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


namespace _1_PreparingCoreMVC
{
    public class Startup
    {
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
        }


        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }


            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }
    }
}

3)appsettings.json – faylını bir mənada App.config faylı kimi istifadə edirik. Amma burada sensetive(həssas) məlumatlar yox, konfiqurasiya xarakterli məlumatlar saxlayırıq. Loq məlumatları, host konfiqurasiyalarını vəs. burada saxlaya bilərik. Bu faylın appsettings.development.json varianti isə development modunda işləyən zaman lazım olur. Əgər development modunda başqa konfiq, relizə çıxan zaman isə başqa konfiq istifadə ediriksə ozaman bu faylı öyrənəmk lazımdır. Gələn dərsimizdən birində Startup.cs faylını detallı öyrənən zaman application development mode-larına da baxacağıq.

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

4)Project_name.csproj - əhr yaratdığımız proyektin adına uyğun csproj faylı yaranır. Bu fayl vasitəsilə bəzi konfiqurasiya işləri apara bilirik. Beləki .netcore framework-nun versiyasını dəyişən zaman, git-ə hansı faylları daxil edib etməyəcəyimizi müəyyən edən zaman,hansı nuget paketlərinin yükləndiyini izləyən zaman bu fayldan istifadə edirik.

< Project Sdk="Microsoft.NET.Sdk.Web" >


  < PropertyGroup >
    < TargetFramework >netcoreapp2.2< /TargetFramework >
    < AspNetCoreHostingModel >InProcessAspNetCoreHostingModel >
    < RootNamespace >_1_PreparingCoreMVCRootNamespace >
  PropertyGroup >


  < ItemGroup >
    < PackageReference Include="Microsoft.AspNetCore.App" />
    < PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
  ItemGroup>

< /Project > 

5)launchSettings.json – yazdığımız veb tətbiqi icra edən zaman, host edən zaman hansı hallarda hansı konfiqurasiyanın işə düşəcəyini göstərir. Məsələn, mən proyekti VS üzərindən açıb IISExpress komandasını versəm, və ya sadəcə əmrlər sətrindən tətbiqi işə salsam proqrama hansı url-dən çata biləcəm,bu zaman hansı development mode əsas götürüləcək vəs. Kimi məlumatlar buradadır.

{
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:32919",
      "sslPort": 44376
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "_1_PreparingCoreMVC": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}


 




Tural

Tural Süleymani

Süleymani Tural Microsoft-un MCSD statuslu mütəxəssisidir, 2008-ci ildən bu yana proqramlaşdırma üzrə tədris aparır

Müəllifin bu dildə ən son postları

Bu yazıları da bəyənə bilərsiniz