Bắt Đầu Với Dot NET Core

Butter Ngo | 1142 day | 3833


 Bước 1: Download Dot Net Core hoặc Visual Studio 2017, làm theo hướng dẫn của ms.

Step 2: Mở VS và tạo project theo các bước sau.

Chọn asp.net application như hình vẽ.

Bắt Đầu Với Dot NET Core And Mvc6

Bắt Đầu Với Dot Net Core And Mvc6

và click chọn empty như hình bên trên, bạn có thể chọn webapi hoặc là web application nhưng ở đây là minh đang hướng dẫn về căn bản cho nên chung ta sẻ chọn empty để mình giải thích cho dễ.

Bây giờ mình sẻ giải thích một chút về từng class trong project 

Program.cs 

 var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .UseApplicationInsights()
                .UseUrls("http://*:80")
                .Build();

            host.Run();

   1.UserKestrel:  Hiện tại .net core thì chạy trên nhiều platform cho nên microsoft build ra 1 cái Kestrel đây được         gọi là một web host thầy vì lúc trước bạn dùng IIS để host thì hiện tại bạn có thể dùng kestrel để thây thế cho       IIS. Lý do tại sao chúng ta lại dùng kestrel để host, tại vì nếu bạn host bằng IIS chung ta chỉ có thể chạy được       trên 1 nên tang là windown con về kestrel thì chúng ta có thể chạy đa nền tảng. Kestrel nó được phát triển           dựa trên tảng Owin Seft host.

   2. UseContentRoot(Directory.GetCurrentDirectory()): dòng code này giúp chúng ta xác định được chính xác root        folder của website.

       Vi dụ: (C:\inetpub\wwwroot\your website) thì mình sẻ giải thích sau, tại sao chúng ta cần lấy chính xác root          folder.

    3. UseStartup<Startup>(): dòng code này sẻ giúp chúng ta khởi táo 1 instance nếu các bạn để ý các bạn sẻ             thấy trong project của chúng ta sẻ có 1 file Startup.cs. Thì dòng code trên giúp chung ta khởi tạo instance             của class này.

     4.UseUrls("http://*:80"): dòng code này giup chúng ta setup port.

Startup.cs

Đây là file sẻ giúp chúng cấu hình những config ban đầu của bạn như (router, register service bằng ioc, config authentication.....).

public void ConfigureServices(IServiceCollection services)
        {
            //Cho này bạn đùng để đăng ký service thì mình sẻ chỉ các bạn sau
        }
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

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

Và bây giờ chúng ta bắt đầu thử nghiệm dot net core bằng 2 cách sau đây

      1. Bạn chỉ cần click f5 trong visual studio 2017.

      2. Chúng sẻ run bằng Commad Line.

Bạn sẻ thấy chữ "Hello World!" xuất hiện trên brower như hình trên. Ở đây chúng ta có thể thây thế chữ "Hello world" bằng bất kỳ đoạn text nào await context.Response.WriteAsync("Hello World!");

 appsettings.json

    1. appsettings.json là gì ?

        + appsettings.json nó được coi như là 1 webconfig của dot net core về tình năng của nó thì tương tự như <appsettings></appsettings> của .net framework link.

   2. Làm thế nào để sử dụng nó ?

  Đầu tiên mình sẻ tạo ra 1 file appsettings.json như sau.

{
  "MessageResponse": "C-sharp.vn"
}

Tiếp theo mình sẻ thêm đoạn code như bên dưới, đoạn code này sẻ giúp chúng ta đọc file appsettings.json.

public IConfigurationRoot Configuration { get; }

        public Startup(IHostingEnvironment env)
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

            builder.AddEnvironmentVariables();

            Configuration = builder.Build();

        }

Và để sử dụng đoạn code trên chúng ta cần phải using Microsoft.Extensions.Configuration; đây là 1 namspace ms support cho chúng ta.

Ok và giờ mình sẻ giải thích về đoạn code trên. Đầu tiên bạn sẻ thấy đoạn code này có contractor và có 1 tham số chuyền vào là IHostingEnvironment. Vậy thì tham số này được chuyền vào từ đâu?

Nó được chuyền từ  ==> (  UseStartup<Startup>() trong file Program.cs ) và mình đã giải thích ở trên rồi nếu bạn nào còn mơ hồ thì keo lên trên coi lại hen.

 var builder = new ConfigurationBuilder()
//env.ContentRootPath ở đây ban cần quay về file program.cs và bạn sẻ thấy dòng code
//UseContentRoot(Directory.GetCurrentDirectory())như mình đã giải thích ở trên.
//thì ở đây env.ContentRootPath ==> Directory.GetCurrentDirectory()
.SetBasePath(env.ContentRootPath)
//Tiếp theo dòng code này chúng ta sẻ add file json mà chúng ta cần đọc và lấy data từ nó
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
//$"appsettings.{env.EnvironmentName}.json" bạn sẻ thấy ở đây tại sao lại có đoạn code này thì (env.EnvironmentName nó sẻ tương ứng với môi trường của bạn là debugger hay release .... ) thì dòng code đười đây để giúp mình thực hiện transform trong tùy môi trường vd như appsettings.Development.json or appsettings.production.json
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
Configuration = builder.Build();
app.Run(async (context) =>
            {
                //await context.Response.WriteAsync("Hello World!");
await context.Response.WriteAsync(Configuration.GetSection("MessageResponse").Value);
            });

và sau đó bạn run lại project bạn se thấy chử hello world được thây thế bằng c-sharp.vn

Download

Bắt Đầu Với Mvc6 Và .Net Core


Top Articles

Bất Đầu Với WebApi Và Dot Net Core (.Net Core)

1131 day
Butter Ngo
Views 6824
Comments 0

Repository Và Unit Of Work (Entity Framework)

1050 day
ndtung449@gmail.com
Views 4161
Comments 0

Dot Net Core Bearer Token With (JWT) (.Net Core)

1063 day
Butter Ngo
Views 4158
Comments 0

Dapper Repository & Unit of Work (.Net)

990 day
Tung Nguyen
Views 2155
Comments 0

Top Question

Bi lỗi Invalid Column Name khi sử dụng LinQ (.Net)

990 day
Bảo Dương
Views 1058
Answers 2

Làm thế nào để lấy information từ token (.Net Core)

380 day
ngovu.dl@gmail.com
Views 604
Answers 1

.NET CORE API JWT (.Net Core)

283 day
huynhminhnhut97@gmail.com
Views 594
Answers 2